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

クラウドにサーバーを構築する際、負荷分散や可用性を考慮し、複数台構成とする場合があります。

今回はまったく同じ構成の Azure Virtual Machines を Terraform で複数台構築する方法をご紹介します。

Environment

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

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

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

作成した Azure Virtual Machines に Public IP を付与する

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

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