はじめに
先週ついに日本語版のOCI資格試験も無料で受けられるようになりました。
これを機に資格取得を目指している方も多いのではないでしょうか
今回は資格勉強も兼ねてOCIの最新リリース情報ではなく、既存のリソースであるコンパートメントについて改めて触れたいと思います。
OCIをお使いの方にはいまさらですが、コンパートメントとは他のクラウドサービスにはないOCI特有の概念になります。
利用目的としては、主にリソースへのアクセス権限を制御したり、コスト管理などに用いることが考えられます。
まずOCIを契約した際にテナンシが払いだされ、そのテナンシ内にルート・コンパートメントが用意されています。
そのルート・コンパートメント配下に、システムや事業部毎、または開発環境・本番環境といったような形で分割することができます。
コンパートメント管理について公式のドキュメントはこちらになりますので、詳細に確認したい方はご覧ください。
主な特徴・機能
コスト管理
まずはコスト管理について確認します。
[ガバナンスと管理]の[コスト管理]をみると[コンパートメント別のコストの計算]があるのでそちらで確認できます。
ちなみに親コンパートメントに子コンパートメントのコストも含まれるのかとも思いましたが、別々に表示されました。
t-ynyコンパートメントの配下にcomputeコンパートメントがあるのですが、そちらの方がコストが高かったです。
コンパートメント割り当て(利用制限)
この機能はOCIに設定されるサービス制限に似ていますが、コンパートメント単位にユーザーが設定できるという点で異なります。
割り当て可能なリソース等の詳細は公式ページをご参照ください。
[ガバナンスと管理]の[制限、割当ておよび使用状況]を確認してみます。
何も設定していない状況で対象コンパートメントのE4シェイプでコンピュート使用可能数は15,000弱あります。
ネストされたコンパートメントを指定する場合はコロン(:)を使用して親:子で記載します。
ポリシー設定後に確認すると使用可能数が1に制限されています。
この状態で制限を超えるインスタンスを起動させようとするとエラーとなります。
異なるコンパートメントへリソースの移動
リソースを異なるコンパートメントに移動することも可能です。
移動したリソースは即時に移動先に適用されているポリシーが直ぐに適用されます。
移動はコンソールから即時可能で、リソース毎に分けられています。
たとえばコンパートメントAにあるVCNおよびサブネット上にコンパートメントBに指定したコンピュートを構築するといった柔軟性があります。
上記のように基本的にリソースは独立して操作できますが、一部依存関係をもったリソースもあるようなので、移動される際は対象のリソースに関するドキュメントをご確認のうえ実施してください。
手順は非常に簡単で、例えばコンピュートインスタンスの場合、下記のようにインスタンスの詳細画面から[リソースの移動]で移動先を指定するだけで移動可能です。
コンパートメントの移動
子コンパートメントを異なる親コンパートメントの下に移動することが可能です。
ただ移動については同じ名前が使用できないことやセキュリティゾーンの配下に通常のコンパートメントは移動できない等の制限がありますので、ご注意ください。
またコンパートメントを移動した際には、下記のように子コンパートメントも併せて移動されます。
IAMポリシーに関してはコンパートメントAに下記Policyを書いてある場合
1 |
Allow group testgroup to manage all-resources in compartment B:C |
自動的に下記のように更新されます。
1 |
Allow group testgroup to manage all-resources in compartment E:C |
しかしコンパートメントBに下記のように書いてある場合、自動で更新されないため、手動で書き換えが必要です。
1 |
Allow group testgroup to manage all-resources in compartment C |
まとめ
今回はコンパートメントに関して基本的な部分を簡単に再確認いたしました。
コンパートメントは6世代まで子コンパートメントが作成できたり、コンパートメント間の移動が容易な点など柔軟に利用可能です。
ただ、あまりコンパートメントを切りすぎてしまうと複雑になりすぎ扱いにくくなってしまう場合があります。
どういった単位でコンパートメントを作成していくか事前に詰めておくとよいと思います。