【Azure】- Azure Export for Terraformを試す
執筆日
2025/6/25
Azure Export for Terraform
2025年5月1日、Azure PortalにTerraformのExport機能がパブリックプレビューとして登場しました。他にもエクスポートできるツールがないか探していたところ、Azure Export for Terraformを見つけました。実際にどのようなものか検証してみました。
Azure Export for Terraformとは?
Azure Export for Terraformは、Azure上で既に作成されているリソースをTerraformコードとしてエクスポートするためのツールです。これにより、手動で作成したリソースをTerraformで管理するためのコードを簡単に生成できます。
Azure Export for Terraformの使い方
Azure Export for Terraformは、Azure CLIを利用して実行します。以下に基本的な手順を紹介します。
1. 必要なツールの準備
-
Azure CLI
Azure CLIがインストールされていることを確認してください。未インストールの場合は、公式ドキュメントを参考にインストールしてください。 -
aztfexport
以下のコマンドでインストールできます。
winget install aztfexport
2. Azure CLIでログイン
まず、Azure CLIを使ってAzureアカウントにログインします。
az login -t "テナント名"
3. リソースグループを指定してエクスポート
Azure Export for Terraformでは、特定のリソースグループ内のリソースをエクスポートできます。以下のコマンドを実行します。
aztfexport resource-group RESOURCE_GROUP_NAME
コマンドを実行すると、以下のような画面が表示されます。
エクスポート時に新しいフォルダを作成する場合は「N」、作成しない場合は「Y」を入力します。
情報が出力されたら、「w」を入力して処理を進めます。
エクスポート完了のメッセージが表示されるまで待ち、その後任意のキーを押してください。
エクスポート先のフォルダを確認します。
4. エクスポートされたコードの確認
エクスポートされたコードは、通常以下のような構成になっています。
- .terraform フォルダー
役割: Terraformプロバイダーや依存関係の情報が格納されるディレクトリ。 - .terraform.lock.hcl
役割: Terraformのプロバイダー依存関係のバージョンを固定するためのロックファイル。 - aztfexportResourceMapping
役割: JSON形式でリソースのマッピング情報を含むファイル。エクスポートされたリソースの詳細を確認可能。 - main.aztfexport
役割: Azureリソースの定義が記述されたTerraformコードファイル。 - provider
役割: Azureプロバイダー設定を記述したファイル。Azureリソースとの接続情報を含む。 - terraform
役割: Terraformのプロジェクト設定ファイル(主に基本設定やワークスペース関連)。 - terraform.tfstate
役割: Terraformが管理するリソースの状態情報を記録するファイル。
これらのファイルをTerraformプロジェクトとして利用できます。
注意点
-
完全なコード生成ではない場合がある
一部のリソースや設定がエクスポートされない場合があります。その場合は、手動でコードを補完する必要があります。 -
状態管理の移行に注意
既存リソースをTerraformで管理する場合、状態ファイル(terraform.tfstate
)の管理に注意が必要です。誤ってリソースを削除しないよう、慎重に操作しましょう。
まとめ
Azure Export for Terraformは、AzureリソースをTerraformコードに変換できる非常に便利なツールです。初心者でも簡単に利用でき、既存リソースを効率的にTerraformで管理できるようになります。特に、AzureポータルやCLIで作成したリソースをIaC(Infrastructure as Code)へ移行したい場合には、大きな助けとなるでしょう。
Discussion