Terraform で Azure ネットワーク基盤を構築

Cloud Shell から Terraform でデジタル コミック サイト向けのネットワーク基盤(VNet + Subnet + Public IP + Standard Load Balancer)を構築します。

上級60Azure 実環境

ラボ概要

このラボでは、デジタル コミック サイトのインフラ エンジニアの想定で、アプリ サーバ クラスタが乗る前段のネットワーク基盤を Terraform で立ち上げます。事前に作成済みの Resource Group を Terraform 管理に取り込み、ネットワーク リソースを HCL で宣言してデプロイします。

学習目標:

  • Cloud Shell に File Share をマウントし、Terraform 作業ディレクトリを準備する
  • 既存の Resource Group を terraform import で State に取り込む
  • 4 つのファイル(providers.tf / networking.tf / lb.tf / output.tf)に役割を分離して HCL を記述する
  • VNet(vnet、10.0.0.0/16)+ Subnet(subnet、10.0.2.0/24)+ Public IP(publicIPForLB、Static)+ Standard Load Balancer(loadBalancer + バックエンド プール BackendAddressPool)をデプロイする
  • terraform fmt / validate / plan / apply のサイクルを通じて HCL の品質を保つ
  • 出力定義(outputs)で構築したリソースの主要属性を表示する
前提知識:
  • Terraform の providers / resources / variables / outputs の概念
  • Azure ネットワーク(VNet / Subnet / Public IP / LB)の理解
  • bash と Cloud Shell の基本コマンド
完了条件:
  • VNet vnet(10.0.0.0/16)が japaneast にデプロイされていること
  • Subnet subnet(10.0.2.0/24)が vnet 内に存在すること
  • Public IP publicIPForLB(Static、Standard SKU)が作成されていること
  • Standard Load Balancer loadBalancer がフロントエンド publicIPAddress + バックエンド プール BackendAddressPool で構成されていること
  • terraform output で 5 つの値(resource_group_name / vnet_address_space / subnet_prefixes / public_ip_address / location)が表示されること

ラボの構成

  1. 1Cloud Shell を準備して File Share をマウントする
  2. 2providers.tf を作成する(雛型はヒアドキュメントで)
  3. 3プレースホルダを実値に置換する
  4. 4Terraform を初期化して既存 RG をインポートする
  5. 5networking.tf を作成する
  6. 6lb.tf を作成する
  7. 7output.tf を作成する
  8. 8Terraform で構文チェックして適用する
  9. 9リソースが Azure 側に作成されたか確認する
  10. 10State 一覧を確認する
  11. 11結果を考察する

詳細な手順は、ラボ開始後に画面内のガイドとして表示されます。

構成図

構成図

参考リソース