Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

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

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加

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

目次

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で作られているからこそです。システム管理者は作業の煩雑さから解放され、障害発生時には原因を容易に特定でき、停止したサービスの回復に集中できます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

バックナンバー

連載:マイクロサービスアーキテクチャが支えるOpenStackの動作と仕組み
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5