OpenStack が提供する各種コンポーネントを3行でまとめてみた

Written by @ryysud

Dec 10, 2018 20:51 · 1873 words · 4 minutes read #openstack

モチベーション

お仕事で OpenStack を使うことになったのですが、最後に OpenStack を学んだのが 2015年 だったこともあり、現在の知識に危機感を覚えました…。なので、まずは概要だけでも把握しておくかという想いから、今回 OpenStack について調べてまとめてみることしました。

OpenStack とはなにか?

公式サイトにシンプルな答えが書いてありました。

Open source software for creating private and public clouds.

https://www.openstack.org/

OpenStack はクラウド環境を構築するための OSS( https://github.com/openstack )のようです。
自前で AWS/GCP/Azure のようなクラウド環境を構築できる OSS という理解で大きな間違いはなさそう。
※ AWS/GCP/Azure が提供する全てのサービスに相当するものが揃っているわけではない

上記に加えて、調べて得た OpenStack に関連する情報を列挙していきます。

  • マルチテナント型の IaaS として利用可能
  • OpenStack は元々 AWS を参考に開発が開始された
  • OpenStack が提供する各種コンポーネントは HTTP ベースの REST API で相互接続している
  • WebUI、CLI、REST API からリソースプロビジョニング、ストレージリソース管理、ネットワーキングリソース管理 などが行える
  • 2010年10月の Austin 初回リリースからアルファベット順に半年に1回リリースされている
  • OpenStack Releases を見ると 2018年12月時点 の最新バージョンは Stein でアルファベット無くなりそう
  • RedHat、VMware などの各ベンダーから OpenStack の商用ディストリビューションも提供されている
  • OpenStack Components からわかるように40以上のコンポーネントが存在している
  • 各種コンポーネント毎にポップなマスコットがあってどれも可愛い
  • OpenStack の全体像を俯瞰したいときは OpenStack Map を見ると良さそう
  • https://docs.openstack.org には Google Analytics が導入されている(関係ない)
  • CLI は openstack コマンド ( https://docs.openstack.org/ocata/user-guide/cli-cheat-sheet.html )

ここから本題に戻って、公式サイトで Popular Project Set として紹介されていた 各種コンポーネント日本OpenStackユーザー会の資料で紹介されている利用率が高いコンポーネント を参考に、いくつかをピックアップして3行程度でまとめていこうと思います。なお、OpenStack は AWS を参考に開発されたということなので、独断と偏見で AWS のサービスで例えられそうなものは進んで例えていこうと思います。

Nova ( Compute Service )

  • コンピュートリソースを提供するコンポーネント
  • VM、システムコンテナ、ベアメタル(Ironic が必要)をサポートしている
  • AWS でいう Amazon EC2

https://docs.openstack.org/nova/latest/

Neutron ( Networking )

  • ネットワーク機能を提供するコンポーネント
  • ルーティング、ファイアウォール、ロードバランシング、VPN など
  • AWS でいう Amazon VPC や Elastic Load Balancing (ELB)

https://docs.openstack.org/neutron/latest/

Swift ( Object Storage )

  • オブジェクトストレージの役割を持つコンポーネント
  • 簡単にスケールアウトできる
  • AWS でいう Amazon S3

https://docs.openstack.org/swift/latest/

Glance ( Image Service )

  • マシンイメージを管理するコンポーネント
  • AWS でいう Amazon AMI

https://docs.openstack.org/glance/latest/

Keystone ( Identity Service )

  • ユーザーの認証/認可を管理するコンポーネント
  • 各種コンポーネント間の相互認証も行う
  • AWS でいう Amazon IAM

https://docs.openstack.org/keystone/latest/

Cinder ( Block Storage )

  • Nova で払い出したコンピュートリソースにボリュームを提供するコンポーネント
  • インスタンス終了後も保持される永続的なブロックストレージを提供
  • AWS でいう Amazon EBS

https://docs.openstack.org/cinder/latest/

Horizon ( Dashboard )

  • 各種コンポーネントを操作するためのダッシュボードを提供するコンポーネント
  • AWS でいう AWS Management Console

https://docs.openstack.org/horizon/latest/

Designate ( DNS service )

  • DNS を提供するコンポーネント
  • AWS でいう Amazon Route53

https://docs.openstack.org/designate/latest/

Heat ( Orchestration )

  • 各種リソースをまとめて構築するためのコンポーネント
  • 構築したいコンポーネントをテンプレートに記載するだけで宣言した構成を構築することが可能
  • 環境構築の自動化やオートスケーリングを実現
  • AWS でいう AWS CloudFormation

https://docs.openstack.org/heat/latest/

Ironic ( Bare Metal Provisioning Service )

  • ベアメタルマシン(物理マシン)を扱うためのコンポーネント
  • AWS でいう Amazon EC2

https://docs.openstack.org/ironic/latest/

Sahara ( Big Data Processing Framework Provisioning )

  • みんなが大好き(個人バイアス)な Hadoop Cluster を構築するためのコンポーネント
  • AWS でいう Amazon EMR

https://docs.openstack.org/sahara/latest/

まとめ

AWS/GCP/Azure のようなクラウド環境を構築できる OSS といっても、著名なパブリッククラウドサービスには劣るのでは?という浅はかな先入観を持っていたのですが、今回の記事を通して OpenStack の概要をガッツリ調べてみて、コンポーネントの種類が負けず劣らず豊富であることに何より驚きました。

あとは、各種コンポーネントのマスコットが可愛い過ぎるので、OpenStack に興味がない方は推しマスコットを決めるだけでも十分楽しめそうです。ちなみに自分の推しマスコットは、Glance のリス と Horizen の犬 です。

とりあえずは OpenStack の概要を掴んだので、今後なにかのコンポーネントを深く触っていくときにでも詳細に理解していけたらなと思います!次回は自前で OpenStack でクラウド環境を構築してみるのも良いなあなんて思っています。では良き OpenStack ライフを〜!

Appendix

OpenStack のようなクラウド環境を構築する OSS として以下のようなものがある。
少し調べた感じだと OpenStack と Cloudstack が比較されていることが多い印象を覚えました。