SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み

Keystoneの動作と仕組み~エンドポイントと認証認可

マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み 第1回


  • X ポスト
  • このエントリーをはてなブックマークに追加

 この新連載「マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み」では、今流行の「マイクロサービスアーキテクチャ」という側面から、多くのベンダーが参画して開発が進められているOSSのクラウドコンピューティングサービス基盤「OpenStack」の6つのコアサービスの動作と仕組みを解説します。マイクロサービスアーキテクチャから解説するのは、このアーキテクチャがOpenStackの設計や動作に大きく寄与しており、OpenStackを理解するアプローチとして適しているためです。今回はコアサービスの1つ「Keystone」を取り上げます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

OpenStackはマイクロサービスアーキテクチャで作られている

ソフトウェア開発者の皆さんも、OpenStackという名前を一度は聞いたことがあると思います。OpenStackは、クラウドコンピューティングサービスを提供する基盤(いわゆるクラウド)を構築するためのソフトウェア群です。ソフトウェアという側面から見たときのOpenStackの特徴として、マイクロサービスアーキテクチャ(以下、MSA)と呼ばれるソフトウェアアーキテクチャで作られていることがあります。

MSAは役割ごとに小さく分割したソフトウェアが互いに通信することで全体として動作する、というアーキテクチャです。OpenStackはまさにこの「ソフトウェアが互いに通信すること」で、クラウドコンピューティングサービスという複雑なシステムをシンプルでかつ、可用性も高めた形で提供することに成功しています。

本連載では、MSAという切り口からOpenStackの動作と仕組みを解説していきます。今回は、OpenStackの認証およびエンドポイント管理をつかさどるKeystoneというソフトウェアを紹介します。

OpenStackの構造

最初に、OpenStackとKeystoneがどのような機能を持っているのか、またMSAとしてどのような特徴を持っているのかを紹介します。まずはOpenStackからです。

繰り返しになりますが、OpenStackはクラウドコンピューティングサービス基盤を構築するためのソフトウェア群です。そこに含まれるソフトウェア1つ1つを、OpenStackではサービスと呼びます。つまり、OpenStackではサービスを組み合わせてクラウドコンピューティングサービスを構築します。また、サービス1つ1つが、MSAを構成するマイクロサービスとなっています。

本稿執筆時点では、OpenStackには19のサービスがあります。そのうち、頻繁に登場するのは次表の6つで、OpenStackではこれらをコアサービスと呼びます。

Keystone OpenStackの認証とエンドポイントの管理をつかさどるサービス。今回解説します
Nova 仮想マシンを作成したり終了したりするためのサービス
Glance NOVAによって作られる仮想マシンの基となるイメージを扱うサービス
Cinder 仮想マシンに仮想外部ストレージを管理するサービス
Neutron ルータやネットワークインタフェースなど、ネットワーク全般を処理するためのサービス
Swift バックアップなど、各種オブジェクトを格納するストレージとして利用できるサービス

コアサービスは全て、REST APIで外部からのアクセスポイントを提供しています。サービス同士は相互にREST APIにアクセスすることにより協調して動作します。コアサービス同士の関係をまとめると次図のようになります。

OpenStackのコアサービス
OpenStackのコアサービス

コアサービスは必要なものだけを選んで使います。全部を使う必要はありません。例えば、用途から考えて仮想外部ストレージの提供が不要なのであれば、Cinderを使わなくても構いません。

また、サービスのどれかに障害が発生して停止したとしても、他のサービスの動作には影響を及ぼしません。例えば、Glanceが稼動しているサーバーが何らかの障害で停止したとしても、動作しないのはGlanceの機能だけです。

あるサービスが停止しても他のサービスに影響を及ぼさないというのは、「サービスのバージョンアップや追加が容易」であることも意味します。全機能が止まるわけではないため、バージョンアップ時や追加時のユーザーへの影響が最小限に抑えられるからです。モノリシックなソフトウェアでは、いったんサービス全体を停止し、バージョンアップやサービス追加を行い、それからサービスを再開する必要があります。

こうした「必要なサービスだけを選んで使える」「あるサービスが障害で停止しても他のサービスに影響を及ぼさない」という特徴は、OpenStackがMSAで作られているからこそです。システム管理者は作業の煩雑さから解放され、障害発生時には原因を容易に特定でき、停止したサービスの回復に集中できます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Keystoneとは

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み連載記事一覧

もっと読む

この記事の著者

大嶋 俊祐(株式会社ワークスアプリケーションズ)(オオシマ シュンスケ)

株式会社ワークスアプリケーションズ所属。 社内では技術研修を担当しながら、OpenStackを使ってプライベートクラウドを作っています。 自分が運営する研修を自分が作ったプライベートクラウドを使って運営するのがマイブーム。 あだ名はひよこ。TRPGが趣味なのでどなたかお誘いください。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9636 2021/03/25 21:17

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング