Infrastructure Manager(Infra Manager)は、 Google Cloud インフラストラクチャ リソースのデプロイと管理を簡素化して自動化するマネージド サービスです。Infra Manager は、Terraform 構成(ブループリントとも呼ばれます)を使用して、Infrastructure as Code(IaC)ワークフローを実装するためのマネージド Google Cloud ツールチェーンを提供します。
Infra Manager を使用すると、次のことができます。
- Terraform を使用してインフラストラクチャを宣言的に定義する。
- Cloud Storage バケット、Git リポジトリ、またはローカル ディレクトリに保存されている Terraform 構成をデプロイします。
- デプロイとリビジョンを通じてインフラストラクチャのライフサイクルを管理します。
- プレビュー デプロイを作成して、変更を適用する前にインフラストラクチャにどのような影響があるかを確認します。
- Cloud Build とのインテグレーションを使用して、ワークフローを自動化します。
Infra Manager は、リソースへのアプリケーションのデプロイを管理しません。アプリケーションのデプロイには、App Lifecycle Manager、Cloud Build、Cloud Deploy などの Google Cloudプロダクト、またはサードパーティ ツールを使用することを検討してください。
Infra Manager を使用するには、Terraform に精通している必要があります。 Google Cloudで Terraform を使用する方法については、Google Cloudの Terraform をご覧ください。
Terraform の概要とその仕組みについては、HashiCorp の Terraform とはをご覧ください。
Infra Manager と Infrastructure as Code
Infra Manager を使用すると、IaC を使用してGoogle Cloud リソースのライフサイクルを管理できます。
- Terraform は、Terraform 構成で宣言的に定義されます。つまり、構成にはインフラストラクチャの最終状態が記述されます。
- Terraform 構成のバージョン管理は、Git リポジトリまたは Cloud Storage バケットで行うことができます。オブジェクトのバージョニングを使用して、ストレージ バケット内の構成をバージョニングします。
- Infra Manager を使用して、リビジョンでインフラストラクチャのデプロイを更新します。リビジョンごとに、Infra Manager は次のものを保存します。
- ログ
- リビジョンの作成に使用される構成
- リビジョンによって作成された Google Cloud リソースのリスト
- 各デプロイとリビジョンの一部として作成された状態ファイル
IaC の詳細については、 Google Cloudの Infrastructure as Code をご覧ください。
入力値を使用してデプロイをカスタマイズする
Terraform 構成は、Terraform 入力変数を使用してパラメータ化できます。Infra Manager では、これを入力値と呼びます。入力値を使用すると、Terraform 構成のソースコードを変更することなく、複数の環境またはデプロイで同じ構成を再利用しながら、デプロイをカスタマイズできます。デフォルト値のない必須変数に値を指定したり、既存のデフォルト値をオーバーライドしたりできます。
入力値は、デプロイの作成、更新、プレビュー時に渡すことができます。Terraform で入力変数を定義して使用する方法については、HashiCorp の入力変数のドキュメントをご覧ください。
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)。 - Cloud Build ログを Infra Manager によって作成されたストレージ バケットにストリーミングします。
- デプロイが失敗した場合、Infra Manager は、断続的なネットワーク停止で失敗した場合など、特定のシナリオで
terraform initオペレーションまたはterraform applyオペレーションを自動的に再試行します。これらの再試行は、限られた回数だけ実行されます。
- Cloud Storage バケットを作成し、デプロイに関するメタデータを保存します。デプロイとメタデータの詳細については、デプロイとリビジョンの概要をご覧ください。
デプロイが完了すると、構成に記述されているとおりに Google Cloud リソースがプロビジョニングされます。
Infra Manager のデプロイに対して、次のクエリを実行できます。
- デプロイのステータス。
- デプロイの一部としてデプロイされるリソースのリスト。
- デプロイの一部である個々のリソースの詳細。
ランタイム環境
Infra Manager のランタイム環境は、エフェメラル Cloud Build ビルド環境です。Infra Manager は、この Cloud Build ビルド環境で Terraform コマンドを実行し、環境を破棄します。
Cloud Build 環境の特定のオペレーティング システム、利用可能なソフトウェア、その他の構成の詳細は、Infra Manager の内部実装の詳細であり、いつでも変更される可能性があります。
デプロイごとに使用するサポートされているバージョンの Terraform を指定できます。
個人情報や機密情報は入力しないでください
Terraform 構成値に個人情報や機密情報を含めないでください。
Terraform の構成と機密データの詳細については、Terraform の構成値と機密データをご覧ください。
次のステップ
- Google Cloudでの Terraform の詳細を確認する。
- デプロイを作成する。
- デプロイを更新する。
- デプロイを自動化する。
- デプロイメントを削除する。