Infrastructure Manager(Infra Manager)は、Terraform を使用して Google Cloud インフラストラクチャ リソースのデプロイと管理を自動化します。
Infra Manager では、 Google Cloudへのデプロイをプログラムで実施できるため、 Google Cloudで Terraform を使用するために別のツールチェーンを保持する必要はありません。
Terraform 構成でインフラストラクチャを定義します。構成は Infra Manager によって Google Cloud にデプロイされるため、Infrastructure as Code(IaC)を使用してリソースを管理できます。
Infra Manager は、リソースへのアプリケーションのデプロイを管理しません。アプリケーションのデプロイを管理するには、Cloud Build や Cloud Deploy などの Google Cloudプロダクトを使用できます。サードパーティのツールや独自のツールチェーンを使用することもできます。
Infra Manager を使用するには、Terraform に精通している必要があります。Terraform の詳細については、HashiCorp の Terraform とはをご覧ください。
Google Cloudで Terraform を使用する方法については、 Google Cloudでの Terraform をご覧ください。
Infra Manager と Infrastructure as Code
Infra Manager を使用すると、IaC を使用してGoogle Cloud リソースのライフサイクルを管理できます。
- Terraform は、Terraform 構成で宣言的に定義されます。つまり、構成はインフラストラクチャの最終状態を記述します。
- Terraform 構成のバージョニングは、Git リポジトリまたは Cloud Storage バケットで行うことができます。オブジェクトのバージョニングを使用して、ストレージ バケット内の構成にバージョニングを適用します。
- Infra Manager を使用して、revisionsでインフラストラクチャのデプロイを更新します。Infra Manager は、リビジョンごとに以下を保存します。
- ログ
- リビジョンの実行に使用された構成
- リビジョンによって作成された Google Cloud リソースのリスト
- 各デプロイとリビジョンの一部として作成された状態ファイル
IaC の詳細については、 Google Cloudの Infrastructure as Code をご覧ください。
Infra Manager の仕組み
以下では、Infra Manager を使用してインフラストラクチャをデプロイする簡単なシナリオで何が起こるかについて説明します。
- Google Cloud にデプロイするインフラストラクチャ リソースは、Terraform 構成で定義されます。
- このファイルを自分で作成することも、 Google Cloud用にすでに作成されている構成を使用することもできます。詳細については、Terraform と Infrastructure Manager をご覧ください。
- Terraform 構成は、Cloud Storage バケット、Git リポジトリ、またはローカルマシンに保存できます。
- Infra Manager を使用して Terraform 構成からリソースをデプロイする場合は、デプロイメントを作成します。Infra Manager は、デプロイを作成するために次の処理を行います。
- リクエストを検証します。たとえば、コマンドで Terraform 構成のロケーションを指定します。
- コンテナ イメージを使用して Cloud Build ジョブを作成します。このイメージは、 Google Cloudによって所有および管理されています。Cloud Build 環境の詳細については、ランタイム環境をご覧ください。Cloud Build ジョブは、次のタスクを自動化します。
- ストレージ バケットまたは Git リポジトリから Terraform モジュールをダウンロードします。
- Terraform を初期化します(
terraform init
) - Terraform 構成を検証します(
terraform validate
) - 構成をアクティブにします(
terraform apply
、デプロイメントを削除する場合はterraform destroy
)。 - Infra Manager によって作成されたストレージ バケットに Cloud Build ログをストリーミングします。
- デプロイに失敗した場合、断続的なネットワーク停止で失敗した場合など、特定のシナリオでは、Infra Manager は
terraform init
またはterraform apply
オペレーションを自動的に再試行します。これらの再試行は、回数が制限されています。
- Cloud Storage バケットを作成し、デプロイに関するメタデータを保存します。デプロイとメタデータの詳細については、デプロイとリビジョンの概要をご覧ください。
デプロイが完了すると、 Google Cloud リソースが、構成で指定されたようにプロビジョニングされます。
Infra Manager デプロイに対して、次のクエリを実行できます。
- デプロイのステータス。
- Deployment の一部としてデプロイされるリソースのリスト。
- デプロイメントに含まれる個々のリソースの詳細。
ランタイム環境
Infra Manager のランタイム環境は、エフェメラル Cloud Build 環境です。Infra Manager は、この Cloud Build 環境で Terraform コマンドを実行し、環境を破棄します。
Cloud Build 環境の特定のオペレーティング システム、使用可能なソフトウェア、その他の構成の詳細は、Infra Manager の内部実装の詳細であり、いつでも変更される可能性があります。
デプロイごとに使用する サポートされているバージョンの Terraform を指定できます。
個人情報と機密情報の記入はお控えください
Terraform 構成値に個人情報や機密情報を含めないでください。
Terraform 構成と機密データの詳細については、Terraform 構成値と機密データをご覧ください。
次のステップ
- Google Cloudで Terraform を使用する方法の詳細を確認する。
- デプロイを作成する。
- デプロイメントを更新する。
- デプロイを自動化する。
- デプロイメントを削除する。