Oracle Cloud固有のリソース管理概念にコンパートメントと呼ばれる機能があります。リソースをグループ分けして管理できるようになるだけでなく、コンパートメントごとに権限を振り分け、使用コストの管理、認証の許可を分割することも可能になります。本記事ではコンパートメントの特徴、機能、作成方法について解説します。
コンパートメントとは
コンパートメントとは、Oracle Cloud Infrastructure(以下、OCIと表記)上で利用可能なリソース管理コンポーネントです。OCIにおけるリソース群はコンパートメント上に作成され、リソースの集合をグルーピングすることができます。
コンパートメントはリージョンに関係なく存在することができるグローバルリソースでもあるため、複数のリージョンをサブスクライブしている場合は、リージョンを跨いでリソース配置することもできます。
また、コンパートメント機能の特徴として、以下の5つがあります。
リソースの分割
タグ機能等で詳細な設定を施すことなく、リソースをフォルダのように分割管理できます。
権限の分割
OCIにおける操作権限の適応範囲として、コンパートメントを利用することができます。
ユーザー管理の分割
OCI アイデンティティ・ドメインをコンパートメントごとに作成することで、OCI上のユーザー管理をコンパートメント単位で分割することができます。これにより、テナント管理者がすべてのユーザー管理をする必要がなくなり、管理性が向上します。
リソース割当て制限
コンパートメントごとに作成可能なインスタンス数、設定可能なストレージの合計値を設定することで過剰なOCIリソース消費、課金を制限することができます。
コスト管理
OCIコンソールメニューにおける[ガバナンスと管理]の[コスト管理]画面にて、コンパートメント単位で利用コストを確認することが可能です。併せてコンパートメント単位で予算作成することも可能です。
コンパートメントを利用する最大のメリットは、利用部署やプロジェクトごとにクラウドの契約を分けず、1つのテナント内でリソース・権限の管理が可能になることです。
上記にあげた5つの特徴について、以下で解説します。
コンパートメントの特徴
リソースの分割
リソースにコンパートメントという名のグループを割り当てることができます。例えば本番環境と開発環境でリソースを分ける際に、コンパートメントを分けるだけで簡単に実現することが可能です。
さらに、コンパートメントは最大6階層まで入れ子で構成することも可能です。例えば特定部署内の特定チームの特定プロジェクト用のコンパートメントといった分割をすることも可能です。
さらにコンパートメントは別のコンパートメントの配下に移動することも可能です。下記の図ではAチームのコンパートメント配下にあったaaaプロジェクト用のコンパートメントを、Bチームのコンパートメント配下に移動させています。
権限の分割とネスト
リソースを分割するだけでなく、特定のコンパートメントの範囲リソースの操作に対して権限を付与することが可能になっています。コンパートメントを指定して権限を付与することにより、特定のグループはあるコンパートメントAに対して管理権限を、別のコンパートメントBに対しては閲覧権限のみを付与するといったことが可能になります。
権限とコンパートメントについて解説するにあたり、併せてテナントの概念を解説します。
OCIのサブスクリプションを購入、またはFree Tierでアカウントを開設することで1つのテナントが開設されます。テナントはコンパートメントを包括した一つの大きなフォルダのようなものをイメージしてください。テナント1つにつきルートコンパートメントと呼ばれる最上位のコンパートメントが必ず紐づけされます。新規のコンパートメントは、ルートコンパートメントの下階層に位置付けされるようになっています。
OCIにおける操作権限のセット、ポリシーの適応範囲はテナント全体、または指定されたコンパートメント、あるいは指定コンパートメントから下の階層までを含めた範囲で指定することが可能です。
(例)Group_Adminグループに対し、テナント内全体の管理権限を付与するポリシー
Allow group Group_Admin to manage all-resources in tenancy ;
(例)Group_Adminグループに対し、Team-Aコンパートメントおよび
それ以下にネストされたコンパートメント内全体の管理権限を付与するポリシー
Allow group Group_Admin to manage all-resources in compartment Team-A;
(例)Group_Adminグループに対し、Teamコンパートメントの配下にある
Project-xxxコンパートメント内全体の管理権限を付与するポリシー
Allow group Group_Admin to manage all-resources in compartment Team-A: Project-xxx;
ユーザー管理の分割
OCIで利用するユーザーは、アイデンティティ・ドメイン内で管理されます。アイデンティティ・ドメインはコンパートメントに作成されるリソースのため、コンパートメント単位でユーザー管理することが可能となります。
例えば、以下のようなコンパートメントとアイデンティティ・ドメイン構成をしたテナントがあるとします。
テナント管理者はDefaultアイデンティティ・ドメインにおける管理者でもあります。
テナント管理者はテナント全体の管理権限が付与されているため、テナントに属する全てのコンパートメントおよびアイデンティティ・ドメインの管理権限を持ちます。
一方、コンパートメント内に新規作成したアイデンティティ・ドメインの管理者は初期状態で権限は付与されていません。
新規作成したアイデンティティ・ドメインの管理者にコンパートメント内の全リソースの管理権限を付与すると、自身が管理するコンパートメントと自身から連なる子コンパートメントに対して管理権限を所持することができます。アイデンティティ・ドメインに対する管理権限もコンパートメントと同様です。
下記の図では、Aチーム管理者は、テナント管理者にxxxプロジェクトの管理者権限を付与してもらうことで、xxxプロジェクト(コンパートメント)とアイデンティティ・ドメインを管理することができます。
このように、テナント全体を管理したい場合はDefalutアイデンティティ・ドメインにログインし、コンパートメント内を管理したい場合はコンパートメントに作成したアイデンティティ・ドメインにログインすることで、使用できるコンパートメントおよびアイデンティティ・ドメインの範囲を使い分けることができます。
リソース割当て制限
コンパートメント単位で、作成可能なリソース個数、ストレージサイズ等の割り当て制限を設けることが可能です。想定外の支出を抑えたいコンパートメントがある際に設定することで、予防することが可能となっています。
リソース割当て制限は、[制限、割当ておよび使用状況]画面で確認ができます。
画像の例では、東京リージョンにおけるTestEXEコンパートメントではAlways FreeのAutonomous Database インスタンスの個数が1個であり、上限2個に至るまであと1個余裕があることを示しています。
制限をかけるためには、割当て制限ポリシーを設定する必要があります。
[ガバナンスと管理]の[テナンシ管理]の[割当て制限ポリシー]画面にて、ポリシーを記述することで新たに制限を課すことができます。
詳細は以下Oracle提供ドキュメントをご確認ください。
Available Quotas by Service(制限対象にできるサービス一覧)
コスト管理
コスト分析や予算設定において、コンパートメントを利用することができます。
[請求とコスト管理]の[コスト管理]におけるコスト分析、予算でコンパートメントを指定することで、特定コンパートメント内のリソースに絞ったコスト管理が可能になります。
コスト分析
予算の作成
おわりに
コンパートメントは、他のクラウドにはないOCI特有の概念です。コンパートメントを利用することでテナント契約を分割することなく、リソースを柔軟に管理することができます。システムエグゼには、OCIの豊富な実績があり、多くのOCI技術者が在籍しています。OCIへの移行をご検討されている方は、お気軽にシステムエグゼまでお問い合わせください。
- カテゴリ:
- OCI基礎知識