オープンスタックとは?

オープンソースのクラウドコンピューティングプラットフォームであるOpenStackは、現在最も注目を集めているソリューションの一つです。
この記事では、OpenStackに関心のある技術者の皆さんに向けて、その概要と主な特性について説明していきます。

OpenStackは、以下の特徴を持っています。

  • さまざまな企業やコミュニティによって開発が進められており、柔軟性と拡張性に優れたクラウドインフラストラクチャを構築することができます。
  • オープンソースであるため、ベンダーロックインのリスクがなく、カスタマイズも自由に行えます。

OpenStackの機能と利点について、より詳しく解説していきましょう。

週10時間の副業案件を
会員登録した方限定で配信中!

オープンスタック(OpenStack)とは

オープンスタック(OpenStack)とは

オープンスタックは、共有された仮想リソースを活用し、オープンなクラウド環境を実現するためのオープンソースソフトウェアです。

クラウドの黎明期には、異なるクラウド間の移行や連携が困難でした。
各企業が独自の技術を採用し、特にプライベートクラウドではサービスの差別化が図られていたためです。

そこで、ユーザーにとって使いやすいクラウド環境を構築する目的で、オープンスタックが誕生しました。
プロジェクトは2010年にRackspace社とNASAが中心となって開始されました。
その後、2012年にはOpenStackファウンデーションが設立され、現在では100か国以上から9,500人以上の個人メンバーが参加しています。

オープンスタックプラットフォームは、以下のコアサービスを提供するツール群で構成されています。

  • コンピューティング
  • ネットワーキング
  • ストレージ
  • ID管理
  • イメージサービス

10以上のオプションツールを組み合わせて、カスタマイズされたクラウド環境を構築することも可能です。

オープンスタック(OpenStack)の特徴

オープンスタック(OpenStack)の特徴

オープンスタックには4つの主要な側面があります。

  • まず、必要な機能のみを抽出してカスタマイズが可能です。
  • 次に、オープンソース形式で提供されているため、コスト面での負担が軽減されています。
  • 一方で、一定の専門知識がなければ運用が困難な点も指摘されています。

これらの特性について、詳しく解説していきましょう。

オープンスタックの構成と機能拡張

オープンスタックは、必要な機能を選択して利用することができる柔軟性があります。
この仮想化プラットフォームは、複数のコンポーネントから構成されており、APIによって相互接続されています。
主要なコンポーネントには、

  • コンピューティングリソース管理
  • オブジェクトストレージ
  • イメージ管理
  • 認証・認可
  • ダッシュボード
  • ネットワーク管理
  • ブロックストレージ
  • テレメトリー
  • オーケストレーション

などがあります。
標準機能に加えて、カスタマイズによる新機能の追加も可能です。
新しい機能を実装し、設定ファイルを変更することでプラグインとして組み込むことができます。
また、対象プロジェクトがPython Pasteフレームワークを使用している場合は、専用のミドルウェアを作成し、環境設定を通じて機能拡張を行えます。

オープンソースソフトウェアのメリット

オープンスタックは無償で提供されるオープンソース製品です。
オープンソースソフトウェアを活用することで、コスト削減以外にも様々な利点が得られます。

  • 信頼性が高く、発見された脆弱性やバグは迅速に修正されます。
  • また、ソースコードが公開されているため、安定したメンテナンスが可能です。
  • さらに、第三者機関によるプログラムの監査が実施でき、ソースコードへの修正も柔軟に行えます。
  • 加えて、システムに応じてサポートレベルを選択できる柔軟性があります。

オープンスタックの経済的メリット

オープンソースのOpenStackは無償で利用できるため、ライセンス料金の支払いは不要です。

  • ライセンス管理業務の軽減
  • ライセンス違反リスクの回避
  • サポート終了時の定期的な更新コストの削減

など、さまざまな側面でコスト削減が実現できます。

オープンスタックの自走運用の難しさ

オープンソースソフトウェアであるOpenStackを自社で運用する際、サポートサービスを利用しない場合、発生した問題は自社の力で解決する必要があります。
オープンソースコミュニティで公開されているドキュメントやフォーラムを活用することで、一定の問題解決は可能ですが、時として

  • 大量の資料を確認したり
  • ソースコードを解析する必要があり

エンジニアに求められる技術力は高いレベルとなります。

AWSとの違い

AWSとの違い

AmazonのAWSは、クラウド環境を提供するサービスです。ネットワーク設定を含む必要な要素を、Webインターフェースから設定できます。

一方、オープンソースのOpenStackは、同様の環境を自社で構築することが可能です。

AWSの特徴 OpenStackの特徴
  • 運用コストがかかる
  • サポートを受けられる
  • 高度な技術は不要
  • 運用には専門知識が求められる
  • コストを抑えられる

Dockerとの違い

Dockerとの違い

クラウド領域で最も注目されているソフトウェアの一つがDockerです。
OpenStackと並んで高い評価を受けています。
AWSはクラウド基盤を構築するためのソフトウェアですが、
Dockerはコンテナ型の仮想化を実現します。
Dockerを活用することで、従来のクラウドにおける物理サーバー仮想化に加え、
OSレベルでの仮想化が可能になります。
その結果、

  • リソースの効率的な利用
  • 迅速なアプリケーションのデプロイ
  • 軽量なソフトウェアパッケージング

が実現できます。

オープンスタック(OpenStack)のコンポーネント

オープンスタック(OpenStack)のコンポーネント

オープンスタックは複数の要素から構成されています。

  • まずは仮想マシンの管理を担うNOVAがあります。
  • 次にネットワーク管理のNEUTRONが存在します。
  • ストレージ関連では、
    オブジェクトストレージのSWIFT
    ブロックストレージのCINDER

    があります。

  • さらに
    認証サービスのKEYSTONE
    イメージ管理のGLANCE

    が重要な役割を果たしています。

これらの機能が連携することで、クラウドインフラストラクチャが実現されます。

仮想マシン自動生成とサービス提供

ここでは、NOVA(Compute)は仮想マシンを動的に作成し、サービスを提供する役割を担っています。
従来のコンピューターやサーバーに相当する存在と言えます。
さまざまな仮想化ソフトウェア、例えば

  • KVM
  • XenServer

などのハイパーバイザーと連携して、仮想OSを管理する機能を有しています。

ネットワーク構成の選択肢

ネットワーク仮想化コンポーネントであるNOVAは、基本的な設定で機能する一方、NEUTRONはプラグインを介して外部のネットワーク製品と連携することで、高度なネットワーク構築を実現します。

オブジェクトストレージの分散型プラットフォーム

オブジェクトデータを格納するための分散型ストレージシステムです。
RESTful APIを介してアクセスできる構造となっています。
ノード間でデータの複製と補完を自動的に行うことで、高い信頼性を実現しています。

ボリューム管理機能を備えたCinderの概要

ボリュームの管理を担うCinderは、仮想マシンが利用するブロックストレージデバイスを提供する役割を果たします。
主な機能としては、

  • ボリュームの生成と破棄
  • テナント単位での使用量制限の設定
  • スナップショットの作成と削除

などが挙げられます。

ユーザー認証管理コンポーネント Keystone

ユーザーの認証を一元的に制御する機能を備えています。
OpenStackで構築されたシステムにアクセスするユーザーは、この機能によって管理されることになります。

仮想マシンイメージ管理コンポーネント GLANCE

仮想マシンの起動に必要なイメージファイルを管理するコンポーネントがGLANCEです。
従来の物理サーバーでイメージディスクと呼ばれていたものと同様の役割を果たします。
GLANCEを活用することで、ユーザーは以下が可能になります。

  • 仮想マシンイメージの検索
  • 仮想マシンイメージの登録
  • 仮想マシンイメージの取得

まとめ

まとめ

オープンソースのOpenStackは、仮想リソースのプールを活用し、低コストでオープンなクラウド環境を提供します。
しかし、運用には高度な技術力が必要とされます。
技術者が不在の場合は、ベンダーの商用プラットフォームの利用を検討するとよいでしょう。
本文は、

  • オープンソースのクラウドプラットフォームOpenStackの概要
  • 運用における課題

について説明しています。