OpenStackと企業のデジタル変革でクラウドの力を解剖する

  • OpenStack
  • レポート

最終更新⽇:

掲載⽇:

2024年3月22日(金)に開催した「OpenStackと企業のデジタル変革でクラウドの力を解剖する」と題したウェビナーの内容をご紹介いたします。

OpenStackとは

 OpenStackとはオープンソースのクラウド基盤のソフトウェアです。
プールされた仮想リソースを使用してプライベートクラウド及びパブリッククラウドを構築し、管理するオープンソース・プラットフォームです。コンピューティング、ストレージ、およびネットワークリソースの大規模なプールを制御し、APIまたはダッシュボードを介して管理します。大規模なデータセンタークラウドやIoTシステム、5G用エッジノードなどに、自動化されたスケーラブルなインフラストラクチャを提供します。

1731412891.png

 OpenStackのメリットとデメリットを下記にまとめました。

1731413478.png

メリット
オープンソースである:オープンソースのため無料で入手できます。これによりライセンス料金を支払うことなくクラウドインフラストラクチャを構築することができます。
柔軟性と拡張性がある:高い柔軟性があり、異なるハードウェアやネットワーク構成に対応できます。また、各機能がモジュール化されており、必要に応じて機能を追加できます。
プライベートクライド構築できる:プライベートクラウドを構築してデータとアプリケーションをセキュアに管理できます。
大規模なスケーラビリティに対応できる:数千台の仮想マシンをサポートできます。
豊富な機能セットが用意されている:計算、ストレージ、ネットワーキング、認証、オーケストレーションなど、豊富な機能セットを提供しており、多岐にわたるクラウドニーズに対応できます。

デメリット
複雑である:オープンソースのため構築と管理は複雑であり、経験が必要です。初めて利用する場合、専門知識がないと導入が難しいことがあります。
リソース要件大規模なインフラストラクチャを構築するには相応のハードウェアリソースが必要です。これには専用のハードウェアやスキルセットが必要となります。
統合することへの複雑性:異なるOpenStackの機能が複数のプロジェクトとして開発されており、これらの統合と動作の調整は非常に複雑です。
サポートとトレーニングが心配サポートやトレーニングが不足している場合があり、組織は自己学習や外部のコンサルタントの支援を必要とすることがあります。

メリットの一つである「プライベートクラウド」について、プライベートクラウドとパブリッククラウドとの違いは次のようなことがあげられます。

1731414169.png

プライベートクラウド
プライベートクラウドは独自システムの高度なセキュリティ環境の構築や設定が可能です。カスタマイズ性が高い一方で、自分たちで構築する必要があるため初期投資や運用コストがかかります。

パブリッククラウド
パブリッククラウドは自社で障害に対応できない場合があり、カスタマイズ性に制限があります。従量課金制で必要な時に必要な分だけ利用可能ですが、既存のサービスとの互換性がない可能性があります。

京セラみらいエンビジョンでは、OpenStackのメリットデメリットまた、パブリッククラウドとプライベートクラウドの違いといったところを確認するべく、検証を行っています。
2021年以前より前から検証環境を準備し様々なところを検証し、仮想化VMwareの確認からHCI(VSANやnutanix)での検証も実施しました。
2023年は本ウェビナーのデモンストレーションの対象となるOpensatckの構築を進めていました。ベアメタルでの動作確認も行いましたし、ネスト環境も確認しています。2024年は、DockerやKubernetesも検討しています。また、パブリッククラウドとしてはAWSの検証も進めています。

デモンストレーション

 設定している環境の解説、その後OpenStackの主要機能をつかさどっているUI(Horizon)、認証(Keystone)、イメージ(Glance)、コンピュート(Nova)、ネットワーキング(Neutron)、ブロッキングストレージ(Cinder)についてご説明いたします。

■環境の設定
OpenStackは自前でハードウェア・OSを準備する必要があります。今回は動作検証のためサーバー2台とフリーで利用が可能なOS(Ubuntu)を使っています。
OpenStackは1台から構築することも、機能ごとに分離した構成も可能となっています。今回はサーバーが2台あるため、「コントローラーノード」「コンピュートノード」を選択しており、環境概要図は下記になります。

1731576746.png

■UI(Horizon)と認証(Keystone)
利用者がクラウドを操作するにはHorizonが提供するダッシュボードにログインする必要があり、ログインが成功するとダッシュボードから一元的に各コンポーネントにアクセスして操作することができます。その裏ではKeystoneによって各コンポーネントへ認証が行われており、認証が成功すると各コンポーネントへのアクセスに必要となるAPIエンドポイントとトークンIDが発行されます。利用者はAPIエンドポイントの情報とトークンIDを使って各コンポーネントへアクセスします。

1731577694.png
まとめると、Horizonの主な役割は「ユーザーインタフェースの提供」で、クラウド利用者はWEBブラウザからHorizonにアクセスするだけで各コンポーネント操作が可能になります。Keystoneの主な役割は「認証」と「APIエンドポイントの提供」で、クラウド利用者が各コンポーネントにアクセスするためにはKeystoneにて認証が必要です。認証成功後に発行するトークンIDとAPIエンドポイントをユーザーに通知し、各コンポーネントにアクセスが可能となります。アクセスされたコンポーネントは、トークンIDの有効性をKeynoteに確認後、要求された処理を実行します。

■イメージ(Glance)
コンピュートサービス(Nova)によって起動されるインスタンスには、もととなるマシンイメージが必要になります。そのマシンイメージを提供しているのがglance-apiです。このAPI経由でバックエンドに格納されているマシンイメージをNovaに提供します。マシンイメージや取得したファイル、スナップショット等の情報はglance-registryにカタログ情報としてデータベースに保持される仕組みになっています。

1731577599.png
まとめるとGlanceの主な役割は「イメージの提供」と「スナップショット保管」で、glance-apiコンピュートからの要求に応じて「マシンイメージの提供」とNovaにて取得した「インスタンスのスナップショット」を保管します。インスタンスやスナップショットは新たなイメージとして利用が可能です。glance-registryはデータベースと連携してカタログを管理します。

■コンピュート(Nova)
Novaは管理を行う「コントローラーノード」とインスタンスを起動する「コンピュートノード」に別れています。利用者がインスタンス起動してコンソール接続するまでのプロセスを概要図で説明しています。利用者がインスタンスの起動を要求すると、その要求はnova-apiに受け継がれます。その後、どのコンピュートノードでインスタントを起動させるか判断するのがnova-schedlerというプロセスです。nova-schedlerはリソース状況や、事前に設定されたフィルターと重みづけから判断します。その結果選ばれたコンピュートノードのnova-computeプロセスによって実際にインスタンスが起動します。起動したインスタンスへはnova-covncproxyとnova-consolauthを使って接続します。

1731578492.png
まとめるとNovaの主な役割は「インスタンスの管理と操作」です。nova-apiはAPIにてNovaへのリクエストを受け付け、nova-schedulerはインスタンスを起動するコンピュートをPlacementサービスのプレフィルター、フィルタリングと重み付けにて決定します。nova-computeはインスタンスの操作(作成/起動/停止/削除)、仮想ホストのリソース状況の取得/通知を行います。nova-novncproxyはインスタンスへのコンソール接続機能を提供し、nova-consolauthはコンソール接続時の認証機能を提供します。

■ネットワーキング(Neutron)
ネットワークは様々な構成を組むことができますが、今回はL2にlinuxbridgeを使用してインスタンスがインターネットに接続するまでのプロセスの概要図を説明します。クラウド利用者はネットワーク設定や操作をする際には、neautron-serverが処理を受け付けます。その処理はメッセージングキューサービスに入り、そこからエージェントを通って処理が行われます。その後仮想ルータ、ブリッジを経由してインターネットに接続されます。


1731580677.png
まとめると、Neutronの主な役割は「仮想ネットワークの管理」です。neutron-serverは利用者からのネットワーク設定・操作をAPIにて受付け、プラグイン/ドライバに中継し、その後メッセージングキューから各エージェントに処理要求が橋渡しされます。実際にはネットワーク機能はOS標準機能を用いて実装されており、各エージェントがその設定と操作を行います。

ブロックストレージ(Cinder
CinderはNovaから機能を分離して作られたコンポーネントのため、構成は基本的に同じになります。インスタント作成要求が来たらcinder-apiが処理を受け付け、どのストレージでボリュームを作成するかは、cinder-schedulerがフィルタリングと重み付けにて決定します。決定されたストレージノードcinde-volumeが起動してボリュームが作成されます。

1731581514.png

まとめるとCinderの主な役割は「ブロックストレージの提供」です。cinder-apiはAPIにてCinderへのリクエストを受け付け、cinder-schedulerはブロックボリュームを作成するストレージをフィルタリングと重み付けにて決定します。

まとめ

 OpenStackの大規模環境な導入事例もあり、今後さらに利用は進み市場は拡大することが予想されます。
 OpenStackは始める敷居が低く、環境を独自かつ自由に構築できる反面、サーバ、ネットワーク、ストレージと、実際の導入・運用では幅広い知識が必要となります。

おわりに

 京セラみらいエンビジョンでは提案から実装までをワンストップで対応させていただいております。クラウドに関するお困りごとが有りましたらお気軽にお問い合わせください。