アプリケーション開発・管理・運用

OpenStackとは 快適なクラウド環境を構築するには

クラウド環境の導入を検討しているものの、どのサービスを利用するべきか悩んでいる企業経営者の方も多いと思われます。
そこで今回は、代表的なサービスの1つである「OpenStack」について紹介し、開発の経緯や実現できることなどについて解説します。

OpenStackとは 快適なクラウド環境を構築するには

アプリケーション開発における課題別の解決方法とは? 〜Azureを導入するメリットも紹介〜

OpenStackとは何か

OpenStackとは、ネットワークに参加した複数のマシンやストレージを束ねて、クラウド環境を構築し運用するシステムです。オープンソースであるため、ライセンスの取得などの必要もなく、社内環境への導入が可能です。
OpenStackには、クラウド環境を運用するための様々な機能が搭載されていますが、その中でも優れている機能はマシンが有する物理的なリソースのプール化です。
IaaS環境を構築するOpenStackは、CPUやメモリ、ストレージといったネットワークに参加する個々のPCのリソースを、クラウド環境上で仮想リソースとして1つに集約します。そして、それを各プロジェクト参加者の必要に応じて配分することで、社内のリソースを効率よく活用できるようになります。

OpenStack開発の経緯

OpenStackプロジェクトとは、AWSライクなIaaSのクラウド環境を構築するソフトウェア開発に関するプロジェクトです。
アメリカに本社を置くテクノロジー企業Rackspace社が開発した「Swift」とNASA(アメリカ航空宇宙局)が開発した「Nova」という2つのプロジェクトを中心に開始し、ソフトウェアの開発が進められました。2012年にはOpenStackの開発を管理するOpenStack Foundation(現OpenInfra Foundation)が設立され、多くの国や組織のプログラマーが開発・改良に携わるメンバーとして加わりました。我が国からも自社に導入するシステムの構築と改善に貢献するため、多数のプログラマーがプロジェクトに参加しています。
世界中で利用されるOS「Windows」を提供するMicrosoft社も、OpenInfra Foundationのサポーターであることを示すプラチナメンバーとなっており、同プロジェクトを支援しています。

OpenStackでできること

OpenStackを導入することで、次のようなことが可能になります。

プライベートクラウド・パブリッククラウドの構築

パブリッククラウドとは、データセンター事業者などが提供するクラウドサービスのことで、一般のユーザーや企業が利用するクラウドコンピューティング環境を、ネットワークを通じて提供するサービスです。一方プライベートクラウドとは、企業(組織)が自社で利用するためのクラウド環境を構築・運用するクラウドサービスのことを指します。
ネットワーク回線を通じてCPUやメモリ、ストレージといったハードウェアリソースを提供するOpenStackであれば、いずれの環境であってもクラウド構築が可能です。知識と設備さえあれば誰でもクラウド環境を作れるため、自宅にプライベートなクラウド環境を作るといった使い方もできます。
プライベートクラウド上においてもリソースの割り振りを管理できるため、社内のとあるプロジェクトで多大なリソースを要求されている時は、そちらに優先してリソースを割り振るといった調整が行えます。社内リソースのクラウド化により各プロジェクトを遅滞なく進行させることで、効率的に業務を遂行できるようになります。

ネットワーク機能の仮想化

OpenStackで仮想化が可能なのはマシンやストレージだけに留まりません。社内ネットワークについても、シリアル ポートやルーターといったハードウェア機器も含めて仮想化と制御が可能です。
例えば、社内ネットワークで特定の部署だけ回線を分離させたいなどといった場合、その部署にだけ独立したルーターと回線を用意するなど、物理的な手段が考えられます。しかし、OpenStackの主要機能コンポーネントであるNeutron(旧Quantum)を利用すれば、それまで物理的な手段で独立させていたネットワークについても、仮想化によって別のネットワークの構築と自由な割り振りが可能になります。さらに、回線の切り替えの手間なく、ネットワーク構成の動的な変化や制御もできるようになりました。
このように、社内でもネットワークの使い分けが可能になるため、とあるプロジェクトではこちらのネットワークを利用し、また別のプロジェクトでは違うネットワークを利用する、といった使い分けができるようになるのです。
加えて、Neutronではネットワークだけでなく、ファイアウォールやロードバランサーなどのセキュリティや負荷制御に関わる高度な機能まで仮想化が可能です。

コンテナの利用

OpenStack上では「コンテナ化」というOS共有に関する技術を用いることができます。
従来アプリケーションの開発を行う際は、不具合の確認や動作の検証用に、条件や環境の異なるマシンや端末を幾つも用意する必要がありました。そこで実機を用意する負担を解消するため、テスト用の仮想環境を物理マシンや仮想マシン上に作り出し、その内部でテストを行う手段が取られるようになりました。
しかし、この仮想環境については、OSから起動するアプリまで全て再現する必要があり、かつテストの都度仮想環境を作らなければいけないこともあって、その分マシンのリソース消費は多大です。
その点、コンテナ化された環境では「コンテナエンジン」と呼ばれるホストマシンとOSを共有した仮想マシン上でアプリケーションを動作させるため、仮想OSを構築するリソースと時間を節約できます。OSの構築1回辺りの効果は微小かも知れませんが、多数の仮想環境の起動が必要なプロジェクトであればあるほど、コンテナ化の意義が大きくなると言えるでしょう。

MicrosoftのAzure Stackとの違い

同様にクラウド環境を構築するプラットフォームである「Azure Stack」とOpenStackにはどのような違いがあるのでしょうか。

Azure Stackとは

Microsoft社が提供するAzure Stackは、自社のネットワーク内に完全プライベートな「Azure(アジュール)」のクラウド環境を構築できるシステムです。
構築されるクラウドでは、やはりMicrosoft社が提供するパブリッククラウドのAzureと同じインターフェースが用いられ、それまでと同様のサービスを利用できます。
従来のAzureとの接続も自由に選択でき、計算量が必要な場合はAzureに接続して利用し、その必要がなかったりセキュリティの都合上外部への接続ができなかったりする場合にはプライベートクラウドとして利用するなど、自社のニーズに合わせて環境を設定できます。

両者の違い

オープンソースであるOpenStackはライセンス料が必要ないため、導入費のコストを削減できます。クラウド環境の構築においても自分たちに必要な機能を選んで独自の環境の構築が可能です。
ただしオープンソースである関係上、サポートは手薄で、導入の際も構築手順を自分で調べておく必要があります。また、トラブルが起きた際のチェックやシステムのメンテナンスに備えて、知識を持った人員を維持しておく必要があります。
一方、Microsoft社の有料サービスであるAzure Stackは、導入に際してライセンス料こそ必要なものの、提供元からのサポートは充実していて、利便性に優れています。また、パブリッククラウドであるAzureとも基本的に仕様が同等なため、クラウド上及び自社運用の機器との間でアプリケーションの実行環境を統一できます。
将来的にパブリッククラウドへの移行を考えている場合も、Azure Stackが導入済みであればスムーズな移行が可能です。

Microsoft Azureとは何か?入門から応用まで徹底解説

クラウドとは何か?Azureとは何か?導入のメリットや構成、コストに至るまでの基礎的な知識から、どのように活用すべきかまでを徹底的に解説しています。

Microsoft Azureとは何か?入門から応用まで徹底解説

ブログ記事を見る

まとめ

社内ネットワークのクラウド化を推進することで、社内のPCリソースを有効に活用できるようになり、業務が潤滑化します。
自社でのOpenStack導入に敷居の高さを感じている場合は、サポートの充実したAzure Stackの導入について検討することをおすすめします。

  • fb-button
  • line-button
  • linkedin-button

無料メルマガ

RELATED SITES

関連サイト

CONTACT

サイト掲載の
お問い合わせ

TOP