Oracle Cloud Infrastructureドキュメント

Resource Managerの概要

Resource Managerは、Oracle Cloud Infrastructureリソースのプロビジョニング処理を自動化できるOracle Cloud Infrastructureサービスです。 "infrastructure-as-code"モデルを使用して、リソースをインストール、構成および管理するのに役立ちます。

Resource ManagerOracle Cloud Infrastructureサービスとして実行され、Terraformを使用して宣言的な構成ファイル内でインフラストラクチャを拡張します。これにより、これらをレビュー、編集、バージョン、保持、再利用およびチーム間で共有できます。 その後、Resource Managerを使用してTerraform構成を使用してOracle Cloud Infrastructureリソースをプロビジョニングできます。

ノート

Oracle Cloud Infrastructure Terraformプロバイダの詳細は、「Terraformプロバイダ」を参照してください。
Terraformおよび"infrastructure-as-code"モデルの一般的な導入の詳細は、「Terraform: Infrastructure as Codeを書込み、計画および作成」を参照してください。

Terraformをローカルにインストールして実行し、Oracle Terraformモジュールを使用して特定のタスクを実行することもできますが、Resource Managerを使用すると、複数のチームおよびプラットフォーム間でインフラストラクチャ構成および状態ファイルを共有および管理できます。

Resource Managerは、コマンド行インタフェース(CLI)またはOracle Cloud Infrastructureコンソールを使用して実行できます。 コンソールには使いやすいインタフェースが用意されていますが、CLIでは、Resource Managerとプログラムで対話できます。 「ソフトウェア開発キットとコマンドライン・インタフェース」を使用するか、Resource Manager REST APIを使用して、直接プログラムすることもできます。 Oracleは、Resource Manager APIリファレンス」のAPIリファレンス・ドキュメントを提供しています。

Resource Managerは、「アイデンティティ」およびアクセス管理(IAM)と統合され、ポリシーを使用してよりきめ細かい権限を定義できます。 また、Oracle Cloud Infrastructure Auditサービスとシームレスに統合して、インフラストラクチャ・プロビジョニングに対する監査を有効にすることもできます。

認証と認可

Resource Managerを使用するには、必要なIdentity and Access Management (IAM)アクセス権を構成する必要があります。

警告

Oracle Cloud Infrastructureコンソール、APIまたはCLIを使用してクラウド・リソースに説明、タグまたはわかりやすい名前を割り当てるときは、機密情報を入力しないでください。

Resource Managerの多くのタスクには、アクションを実行するユーザーに特定の権限が必要です。 詳細および例は、次を参照してください:

権限はコンパートメントにスコープ指定されます。 テナンシが最初にプロビジョニングされると、ルート・コンパートメントが自動的に作成されます。 管理者は、より多くのコンパートメントを作成し、IAMポリシーを作成することで、各コンパートメントとそのリソースへのアクセスを制御できます。 これらのポリシーは、各コンパートメント内のリソースに対して各グループが実行できるアクションを指定します。 IAMアクセス権については、「Oracle Cloud Infrastructure Identity and Access Managementの概要」を参照してください。 「ポリシーの仕組み」も参照してください。

リソースのタギング

リソースにタグを適用して、ビジネス・ニーズに合わせてタグを整理するのに役立てることができます。 リソースを作成するときにタグを適用することも、後でそのタグを使用してリソースを更新することもできます。 タグの適用に関する一般的な情報は、「リソース・タグ」を参照してください。

主要な概念

次に、Resource Managerの主要概念と主なコンポーネントの簡単な説明を示します。

スタック

スタックは、グループとして操作できるOracle Cloud Infrastructureリソースのグループの定義を表します。 各スタックには、1つ以上の宣言的な構成ファイルで構成される構成があります。 スタックは特定のリージョンに添付されます。 ただし、必要に応じて、特定のスタックのリソースを複数のリージョンにデプロイできます。

スタックは、Oracle Cloud Infrastructureテナンシ内部で選択したコンパートメントに存在します。 ジョブは、関連付けられているスタックによって占有されているコンパートメント内にあります。 Resource Managerは、スタックとジョブの両方に一意のOracle Cloud ID (OCID)を割り当てます。

ジョブ

ジョブは、構成に定義されているアクションを実行します。 特定のスタック上で一度に実行できるジョブは1つのみで、特定のスタック上にOracle Cloud Infrastructureリソースのセットは1つのみです。 異なるリソース・セットをプロビジョニングするためにジョブを実行する必要がある場合、個別のスタックを作成して別の構成を使用する必要があります。

Resource Managerには、次の3つのジョブ・タイプがあります:

  • 「計画ジョブ」 計画ジョブは、Terraform構成の取得、解析および実行計画の作成を行います。 実行計画には、Oracle Cloud Infrastructureリソースをプロビジョニングするために実行される一連の特定の処理がリストされます。 実行計画は適用ジョブに渡され、適用ジョブは指示を実行します。
  • 「ジョブの適用」 適用ジョブは、実行計画を取得し、関連付けられたスタックに適用してから、構成手順を実行します。 このようにすることで、スタック・リソースが作成(または変更)されます。 指定したリソースの数とタイプに応じて、ジョブの適用で長時間実行される操作が発生する場合があります。 コンソールとCLIのどちらを使用しても、ジョブが実行されたときのステータスを確認できます。
  • 「ジョブの破棄」 スタックによって制御されるインフラストラクチャをクリーンアップするには、破棄ジョブを実行します。 破棄ジョブではスタックとそのリソースは削除されませんが、代わりにリソースが解放されます(たとえば、Computeインスタンスを終了します)。 ただし、スタック・ジョブの履歴および状態は残ります。 スタック・ログ・ファイルを調べて、ステータスをモニターし、破棄ジョブの結果を確認できます。

ある意味で、ジョブはスタック履歴のレコードを表し、次のものを確認することで確認できます:

  • 指定された適用ジョブの構成(スナップショット)。
  • 計画ジョブによって導出される実行計画。
  • 指定された適用ジョブの状態ファイルです。

テナンシ

テナンシとは、クラウド・リソースを作成、編成および管理できる、Oracle Cloud Infrastructure ecosystem内のセキュアで独立したパーティションです。 通常、テナンシの範囲は組織全体です。 ビジネスに合ったコンパートメントを作成することで、組織リソースを分割できます。

コンパートメント

コンパートメントに分割することにより、クラウド・リソースへのアクセスを編成および制御します。 コンパートメントは、インスタンス、仮想クラウド・ネットワーク、ブロック・ボリュームなどの関連リソースの集合です。 コンパートメントは、ロールベースのアクセス制御を使用してクラウド・リソースへのアクセスを制御するセキュリティ・バリアーも形成します。

コンパートメントは、ビジネスに適合させることができるリソースの論理グループを作成します。 たとえば、人事部門コンパートメント、金融コンパートメント、操作コンパートメントなどがあるとします。

Region

リージョンは、Oracle Cloud Infrastructureホスティング・リソースが物理的にロケーションする地理的なロケーションを表します。 各リージョンには、個々のデータ・センターである可用性ドメインが含まれます。 リージョンおよび可用性ドメインの詳細は、「リージョンと可用性ドメイン」を参照してください。

構成

構成は、リソース・メタデータや、データ・ソース定義、変数宣言などのその他の重要な情報を含む、特定のスタック内のOracle Cloud Infrastructureリソースを指定する、1つ以上のTerraform configuration (.tf)ファイルのセットです。

構成は、宣言言語(HashiCorp Configuration LanguageまたはHCL)を使用してインフラストラクチャを記述する単純なテキスト・ファイルです。 構成がマシンを読取り可能にする必要がある場合は、JSON形式を使用して構成を指定することもできます。 HCL形式を使用する構成ファイルは、.tfファイル拡張子で終了します。JSON形式を使用するものは.tf.jsonファイル拡張子で終わります。 「The HCL」形式は人間が読める形式ですが、JSON形式は機械で読み取り可能です。

構成ファイルの例を表示するには、既存の「Terraformプロバイダの例」を確認します。 詳細は、「Terraform構成の作成」を参照してください。「ハッシュ・アイコン: 構成」も参照してください。

状態(状態ファイル)

リソース構成の状態に関する基本的な情報は、JSON形式を使用する状態(.tfstate)ファイルで維持されます。 状態ファイルはスタック・リソースを構成にマップし、リソース依存関係などの基本的な構成メタデータも維持します。 Resource Managerは、状態ファイルを自動的に生成および更新します。 ファイルを手動で編集することはできません。

Resource Managerでは、特定のスタックで一度に1つのジョブのみを実行できるため、状態ロックがサポートされています。 状態ファイルの詳細は、「ハッシュ・アイコン: 州」を参照してください。

モジュール

Terraformでは、モジュールを使用した関連リソースのグループ化をサポートしています。 モジュールを使用すると、軽量で再利用可能な抽象化を作成できるため、アーキテクチャに関してインフラストラクチャを記述できます。 詳細は、「モジュールの作成」を参照してください。

Resource Managerスタックで使用されるすべてのモジュールは、ローカルに構成に組み込まれ、ローカル・パスを使用して参照されることをお薦めします。 Oracle Cloud Infrastructureのモジュールを「TerraformモジュールRegistry」から使用するには、GitHubからソースをダウンロードして、zipファイルのサブディレクトリに関連する部分を含め、ローカル・パスを使用してモジュールを参照します。 詳細は、「ローカル・パス」を参照してください。

一般化ワークフロー

次の図は、Resource Managerワークフローの一般的なビューを示しています。

ワークフロー

一般化ワークフローの各ステップの詳細は、トピック「CLIを使用したResource Managerの使用」および「コンソールでのResource Managerの使用」を参照してください。

  1. Terraform構成を作成します。
  2. スタックを作成します。
  3. 実行計画を作成する計画ジョブを作成します。
  4. 実行計画を確認します。
  5. 実行計画で変更が必要な場合は、構成を更新して計画ジョブを再作成します。
  6. リソースをプロビジョニングするための適用ジョブを作成して実行します。
  7. 必要に応じて、状態ファイルとログ・ファイルを確認します。
  8. 必要に応じて、構成を変更したりせずに再適用することもできます。
  9. オプションで、スタック上で実行しているリソースを解放するには、破棄ジョブを実行します。