Hashicorp Terraform は、クラウド インフラストラクチャのプロビジョニングと管理に使用できる Infrastructure as Code(IaC)ツールです。Terraform には、クラウド プロバイダや他の API とやり取りできるプロバイダというプラグインが用意されています。Terraform provider for Google Cloud を使用して、 Google Cloud リソース(Artifact Registry など)をプロビジョニングして管理できます。
このページでは、Artifact Registry で Terraform を使用する方法について説明します。Terraform の仕組みの概要と、 Google Cloudで Terraform の使用を開始するためのリソースも紹介します。また、Artifact Registry の Terraform リファレンス ドキュメント、コード例、Terraform を使用して Artifact Registry リソースをプロビジョニングするガイドへのリンクも用意されています。
Google Cloudで Terraform を使用する方法については、Terraform のインストールと構成または Google Cloud の Terraform クイックスタートをご覧ください。
Terraform の仕組み
Terraform には宣言型で構成指向の構文があり、これを使用して、 Google Cloud プロジェクトにプロビジョニングするインフラストラクチャを記述できます。1 つまたは複数の Terraform 構成ファイルで構成を作成し、Terraform CLI を使用して、この構成を Artifact Registry リソースに適用できます。
以降のステップでは、Terraform の仕組みについて説明します。
- プロビジョニングするインフラストラクチャを Terraform 構成ファイルに記述します。インフラストラクチャのプロビジョニング方法を記述するコードは必要ありません。Terraform がインフラストラクチャをプロビジョニングします。
terraform plan
コマンドを実行します。これにより、構成が評価され、実行プランが生成されます。プランを確認し、必要に応じて変更します。-
次に、
terraform apply
コマンドを実行します。これにより、次のアクションが実行されます。- バックグラウンドで、対応する Artifact Registry API を呼び出し、実行プランに基づいてインフラストラクチャをプロビジョニングします。
- Terraform 状態ファイルを作成します。これは、構成ファイル内のリソースと実際のインフラストラクチャ内のリソースとのマッピングを行う JSON ファイルです。Terraform は、このファイルを使用してインフラストラクチャの最新状態を記録し、リソースを作成、更新、破棄するタイミングを決定します。
-
terraform apply
を実行すると、Terraform は状態ファイルのマッピングを使用して、既存のインフラストラクチャとコードと比較し、必要に応じて更新を行います。- 構成ファイルで定義されたリソース オブジェクトが状態ファイルに存在しない場合は、Terraform によってリソース オブジェクトが作成されます。
- リソース オブジェクトが状態ファイルに存在し、構成ファイルと構成が異なる場合、Terraform は構成ファイルと一致するようにリソースを更新します。
- 状態ファイル内のリソース オブジェクトが構成ファイルと一致する場合、Terraform はリソースを変更しません。
Artifact Registry の Terraform リソース
リソースは、Terraform 言語の基本要素です。各リソース ブロックは、仮想ネットワークやコンピューティング インスタンスなど、1 つ以上のインフラストラクチャ オブジェクトを記述します。
次の表に、Artifact Registry で使用可能な Terraform リソースを示します。
サービス | Terraform リソース | データソース |
---|---|---|
Artifact Registry |
|
Artifact Registry の Terraform ベースのガイド
次の表に、Artifact Registry の Terraform ベースのハウツー ガイドとチュートリアルを示します。
ガイド | 詳細 |
---|---|
Terraform を使用して標準リポジトリを作成する | このガイドでは、Terraform を使用して標準モード リポジトリを作成する方法について説明します。 |
Terraform を使用してリモート リポジトリを作成する | このガイドでは、Terraform を使用してリモートモード リポジトリを作成する方法について説明します。 |
Terraform を使用して仮想モード リポジトリを作成する | このガイドでは、Terraform を使用して仮想モード リポジトリを作成する方法について説明します。 |
Artifact Registry の Terraform モジュールとブループリント
モジュールとブループリントを使用すると、 Google Cloud リソースの大規模なプロビジョニングと管理を自動化できます。モジュールとは、Terraform リソースを論理的に抽象化する、再利用可能な一連の Terraform 構成ファイルのことです。ブループリントは、特定のソリューションを実装および文書化した、モジュールとポリシーのパッケージです。このパッケージはデプロイして再利用できます。
次の表に、Artifact Registry に関連するモジュールとブループリントを示します。
モジュールまたはブループリント | 詳細 |
---|---|
Artifact Registry | Artifact Registry リポジトリを作成して管理する |
secure-cicd | Google Cloudで安全な CI/CD パイプラインを構築する |
gcloud | Terraform 内で Google Cloud CLI コマンドを実行する |
次のステップ
- Artifact Registry の Terraform コードサンプル
- Google Cloud での Terraform のドキュメント
- Google Cloud プロバイダの HashiCorp のドキュメント
- Google Cloudの Infrastructure as Code