【terraform入門】Azureのリソースグループをterraformで作成する手順を解説

Azure

事前準備(今回の解説で使用するツール)

Azureのリソースを作成するために、Azureアカウントが必須です。アカウントの作成がまだの場合は、アカウントを作成し、サブスクリプションの作成まで完了させてください。

さらに、今回の解説を進めるにあたり、以下の3つのツールが必要になります。

  • Terraform

これらのツールがまだインストールされていない場合は、それぞれの公式サイトからインストールを完了させてください。

この3つのツールが準備できましたら、次のステップに進み、Azureアカウントとの連携作業に取りかかりましょう。

terraformを利用してAzureのリソースを構築する際の流れ

まずは、全体の流れを把握しましょう。Terraformを使ってAzureリソースを構築する際の基本的な流れは、以下の6つのステップで進行します。

  1. terarform用のAzureユーザーを作成
  2. ローカルPCとAzureアカウントの紐づけ
  3. backendファイル作成(terraformで一番重要なファイル)
  4. terraform init でワークスペースの初期化
  5. VScodeでコード執筆
  6. Azure上にリソースデプロイ

1,terarform用のAzureユーザーを作成

まず最初のステップでは、Azureポータルの画面上でのユーザー作成です。今回は「グローバル管理者」権限を持ったユーザーを作成して解説します。実環境で利用する場合は、最小権限の原則にのっとった権限を付与してください。

ユーザーは既存のユーザーでも問題ありませんが、Terraformに特化したユーザーを作成することで、権限管理の手間やセキュリティリスクを最小限に抑えられます。

2,ローカルPCとAzureアカウントの紐づけ

次に、ローカル環境でAzure CLIを使用して、Azureアカウントと接続します。

コマンドプロンプト(Macはターミナル)に、下記コマンドを入力することで接続可能です。

az login

上記コマンドを実行すると、自動的にWebブラウザが開き、Azureのログイン画面が表示されます。今回利用するアカウントでサインインを行いましょう。

ログイン後、以下の表示が出ていれば、ページを閉じてターミナルを確認します。

ターミナル上でもエラーが出ていなければ、ステップ2 アカウントの紐付け作業は完了です。

3,Azure認証情報の登録

backendファイルの作成

backendファイルの作成手順は以下のとおりです。

  1. backendファイルを格納するフォルダの作成
  2. backend.tfファイルを作成
  3. VSCodeでファイルにコードを記述

今回は、Terraformがデプロイしたインフラの「現在の状態」が保存されたtfstateファイルを、AzureのS3バケット内に配置します。

AzureポータルのS3のページからtfstateファイルを格納するためのバケットを「バケットを作成」から作成してください。

mkdir AIT-terraform

mkdir ”任意の名前” でフォルダを作成。

cd AIT-terraform

cd コマンドで作成したフォルダに移動。

touch backend.tf

このコマンドを入力しbackend.tf ファイルを作成します。そして、フォルダ内に、backend.tfファイルが作成されていることを確認し、backend.tfファイルをVSCodeで開きます。

手順2:Azureポータルでアプリケーション登録

  1. Azureポータルにログイン
  2. メニューから 「Microsoft Entra ID」→「アプリの登録」→「新規登録」 を選択


  3. アプリケーション名(例:AIT-terraform)を入力し登録

  4. 登録完了後、「アプリケーション (クライアント) ID」「ディレクトリ (テナント) ID」 を控えておく

手順3:クライアントシークレットの作成

  1. 左メニューの「証明書とシークレット」へ移動
  2. 「+新しいクライアントシークレット」をクリック


  3. 任意の説明(例:AIT-client-secret)と有効期限を入力

手順4:ロール割り当て(IAM設定)

TerraformがAzureリソースを操作できるように、ロールを割り当てます。

  1. サブスクリプション画面に移動
  2. 左メニューから「アクセス制御(IAM)」を選択


  3. 「ロールの割り当ての追加」→ 「特権管理者ロールまたは職務ロール」選択
  4. 適切なロール(例:共同作成者所有者)を選び、先ほど作成したアプリ(サービスプリンシパル)をメンバーとして割り当て
Screenshot

先ほど作成したアプリケーションを選択します。

レビューと割り当てでロールやスコープを確認し、割り当てを実行します。

手順5:Terraform用ファイルの記述

backend.tf または任意の .tf ファイルに以下のように記述します。

provider "azurerm" {
  subscription_id  = "<構築したい先のサブスクリプションID>"
  tenant_id        = "<Microsoft Entra ID>"
  client_id     = "<クライアントID>"
  client_secret = "<クライアントシークレット>"
}

コードの記述が終われば、3 backendファイル作成が完了です。

4,terraform init でワークスペースの初期化

次は、terraform init でワークスペースの初期化の手順です。

コマンドプロンプト上で、AIT-terraformフォルダに移動し、下記コマンドを入力します。

terraform init

init は「initialize(イニシャライズ)」の略で「初期化」を意味します。

ここまでの手順で正しく設定が行われていれば、下記画像のようにSuccessfullyと出力されます。

5,VScodeでコード執筆

ここまでの手順でローカル環境とterraformの連携は終了ですが、デモとしてterraformでリソースグループを作成する手順を解説します。

まずは、AIT-terraformフォルダ内に「resoucegroup.tf」ファイルを作成し、作成したファイルをVSCodeで開きます。作成したresouce-group.tfファイル内に下記のコードを入力しましょう。

# リソースグループの作成
resource "azurerm_resource_group" "ait-terraform-rg" {
name = "ait-terraform-rg"
location = "japaneast"
}

コードが書けたらターミナルで下記コマンドを入力します。

terraform plan

このコマンドを実行することで、どのリソースが追加・変更・削除されるかを確認できます。

Plan:1 to add          →今の環境にリソースが追加される

         0 to change    →Azure環境内にすでにあるリソースに変更が加わる

        0 to destroy   →Azure環境内のリソースが削除される

今回はリソースグループを1つ作成する予定なので「1 to add」と記載されていれば成功です。

6,Azure上にリソースデプロイ

コードを執筆し、terraform planで確認まで行ったら下記のコマンドを実行します。

terraform apply

このコマンドは、terraform plan で生成された計画(プラン)を基に、実際にインフラに対する変更を適用します。このコマンドが実行されると、指定されたリソースが Azure上に構築または更新されます。

terraform applyの実行後、改めてplan結果が出力されます。問題なければ「yes」と入力しましょう。実行結果として、「complete」 と表示されていれば構築完了です。

作業完了後、Azureポータルにログインして、リソースグループが作成されていることを確認してみましょう。

7,デモで作成したリソースをコマンドで削除する方法

今回デモで作成したリソースグループをterraformのコードで削除する手順を解説します。

リソースを削除するには下記のコマンドを実行します。

terraform destroy

このコマンドはTerraform で管理しているインフラリソースを全て削除する際に使用します。

plan結果が出力されるため、1 to destroy となっていることを確認し、「yes」と入力します。

Destroy complete!」と出力されていれば削除完了です。

まとめ

今回は、Terraform を使って Azure 上にリソースグループを構築する手順を解説しました。インフラ構成をコードとして管理できる「Infrastructure as Code(IaC)」の考え方は、再現性や保守性、チーム開発の効率化において非常に大きなメリットをもたらします。

Terraform によるリソース管理は初めは少し取っつきにくく感じるかもしれませんが、少しずつ使い慣れていくことで、より柔軟で信頼性の高いインフラ運用が実現できます。

今後は、仮想マシンやストレージアカウント、NSG など他のリソースとも組み合わせて、より実践的な構成管理に挑戦してみましょう。

プロフィール
TanaT

株式会社あいてぃ所属。
クラウドエンジニア(AWS・Azure)
取得資格:AWS SAP、AZ-104、AZ-305
フロントエンド、バックエンド開発もできるフルスタックエンジニアとして学習中。
「AIとクラウドについて学ぶ」サイトの編集長。

TanaTをフォローする
Azureその他
シェアする

コメント

タイトルとURLをコピーしました