このブログをご覧のみなさん、こんにちは。
クラウドにサーバーを構築する際、負荷分散や可用性を考慮し、複数台構成とする場合があります。
今回はまったく同じ構成の Azure Virtual Machines を Terraform で複数台構築する方法をご紹介します。
Environment
- Mac Book Pro
- OS X Yosemite 10.10.5
- Terraform 0.7.1
- 使用する Azure Virtual Machines の定義は Terraform で Azure Virtual Machines を構築する方法と同じ
Terraform で複数台の Azure Virtual Machines を構築する方法
Configuring Resources – Terraform by HashiCorp に記載の通り、Terraform では作成するリソース数を [count] で指定できます。
Azure Virtual Machines を二台構築したい場合は 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 として付与します。