
TerraformとInfrastructure as Code(IaC)でAzureクラウドリソースの正確な構築・運用について
こんにちは。クレスコ・デジタルテクノロジーズのパクです。
本記事では、Infrastructure as Code(IaC)の概要およびメリットをご紹介いたします。
■あわせて読まれている資料:
クラウドのコンサルティングから導入までをワンストップで支援!
→クラウドテクノロジーサービス
目次[非表示]
Infrastructure as Codeとは
近年、多くの企業がクラウド環境を活用して業務システムを運用しています。
多くの現場では、クラウド環境での構築作業や運用保守はGUI操作で行われていますが、ヒューマンエラーのリスクが高く、時間がかかるという問題があります。
Infrastructure as Code (IaC)は、システム構成をコード化し、構築作業や運用を自動化するためのものです。
コードに基づいてシステム構成が管理されるため、ヒューマンエラーの削減や作業時間の短縮につながります。
今回はTerraformというIaCツールを使用し、以下の簡単なAzure環境でリソース構築を行います。作業の流れは以下の図の通りになります。

Terraform、az、Visual Studio Codeのインストール
TerraformでAzure環境の構築や設定変更を行うには、TerraformとAzure CLI(az)のインストールが必要となります。また、コード編集にはVisual Studio Codeを使います。
公式サイトから「Visual Studio Code」をダウンロードし、インストールしてください。
PowerShellを起動し、以下のコマンドを実行します。重要なコマンドは、コピーしやすいように1行ずつ確認してください。
winget install Hashicorp.Terraform
winget install -e --id Microsoft.AzureCLI
※winget以外のインストール方法については、HashiCorpの公式サイトをご確認ください。
Azureへの認証
PowerShellを再起動し、以下のコマンドを実行するとAzureにログインできます。
az login
サブスクリプション一覧が表示されるので、利用するサブスクリプションの番号を入力して選択します。

作業環境の準備
エクスプローラーで作業フォルダを作成します。
次に、Visual Studio Codeの「ファイル」→「フォルダを開く」から、作成した作業フォルダを開きます。
今回は、「C:\DTBlog」というフォルダを作成しました。

Terraformでは、通常「main.tf」というファイルにコードを記述するため、「新しいファイル」を選択し、作業フォルダの中に「main.tf」ファイルを作成します。


Terraformでは、使用するクラウドプロバイダーをコード内で指定する必要があります。
Azureのプロバイダーを指定するコードをmain.tfに入力します。
#versionで最新バージョンを指定
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=5.0.1"
}
}
}
provider "azurerm" {
features {}
}
コード内にあるversionのパラメータで使用するプロバイダーバージョンを指定します。
最新バージョンはAzureプロバイダーのページで確認できます。
※本記事執筆時点でのバージョンは5.0.1です。

main.tfの内容を保存し、PowerShellにて下記コマンドを実行することで、Terraformの作業準備が完了となります。
cd '(作業フォルダのパス) '
terraform init
コードの作成
今回は、「DTBlog-RG」というリソースグループを作成し、その配下に仮想ネットワ/ークと2つのサブネットを構築します。

Azureプロバイダーのページから、作成したいリソース(今回はresource group)を検索し、リソースグループのページから「Arguments Reference」で定義するパラメータを確認します。


リソースグループの作成に必要なパラメータは、「location」と「name」のみであることが確認できます。
コードの使用例を参考に、Visual Studio Codeでmain.tfにコードを追加し、パラメータを設定します。
今回は、「name」を「DTBlog-RG」とし、「location」には東日本リージョンを指定する「japaneast」と記載します。


同様に、仮想ネットワーク(azure virtual network)の作成に必要なパラメータを「Arguments Reference」から確認します。



任意のパラメータもありますが、今回の構成に必要なパラメータは「name」、「resource_group_name」、「location」、「address_space」、「subnet」です。
さらに、「subnet」にもパラメータが必要となります。

使用例を参考に、main.tfへ必要なパラメータを追加し、不要なパラメータを削除します。


コードの作成が完了したら、最後にmain.tfファイルを保存します。
Terraformでデプロイ
PowerShellで以下のコマンドを実行すると、デプロイする内容の確認画面が表示されます。
terraform plan

terraform planの実行結果を確認した後、以下のコマンドを実行します。
terraform apply
確認プロンプトに「yes」を入力すると、Azure環境にデプロイが開始されます。

Azure Portalで確認すると、コードで定義したパラメータでリソースが作成されていることが確認できます。




設定変更
パラメータを変更したい場合、コード内のパラメータを変更し、再度terraform planとterraform applyコマンドを実行することで、変更できます。
以下の構成に変更してみたいと思います。

main.tfファイルを開き、コードのパラメータを変更します。

terraform planとterraform applyを実行し、Azure環境に変更内容を反映させます。



Azure Portalで確認すると、変更内容が反映されていることを確認できます。

まとめ
今回は、TerraformとIaCについてご紹介しました。
IaCを活用することで、クラウド環境におけるリソース作成や設定変更を、効率的かつ正確に進められます実施できます。
クラウド環境のネットワーク構築や運用時する際の参考ご参考になればしていただけますと幸いです。
ご覧いただきありがとうございました。
■サービス資料一覧はこちら↓
引用元
AWS|Infrastructure as Code(IaC)とは
HashiCorp Developer|Terraformのインストール
Visual Studio Code - The open source AI code editor
Docs overview | hashicorp/azurerm | Terraform | Terraform Registry






