Terraformで複数台のAzure Virtual Machineを構築する方法

このブログをご覧のみなさん、こんにちは。

クラウドにサーバーを構築する際、負荷分散や可用性を考慮し、複数台構成とする場合があります。
今回はTerraformで複数台のAzure Virtual Machineを構築する方法として、まったく同じ構成のAzure Virtual MachineをTerraformで複数台構築する方法をご紹介します。

Environment

Terraformで複数台のAzure Virtual Machineを構築する方法

Configuring Resources – Terraform by HashiCorpに記載の通り、Terraformでは作成するリソース数をcountで指定できます。

Azure Virtual Machineを2台構築したい場合は、count = 2と指定します。tfファイルをこちらに公開しています。

作成したAzure Virtual MachineにPublic IPを付与したい

作成したPublic IPのリストはazurerm_public_ip.test.*.idで参照できます。そこで、Azure Virtual Machineに関連付けるazurerm_network_interfaceのPublic IPの定義"${element(azurerm_public_ip.test.*.id, count.index)}"と書いて、IDを一つずつ取り出し、Public IPとして付与します。

同様に、Azure Virtual Machineに関連付けるNetwork Interfaceでも["${element(azurerm_network_interface.test.*.id, count.index)}"]と書いて、IDを一つずつ取り出し、Network Interfaceとして付与します。