Terraform を使用して Azure でハブとスポーク ネットワークを検証する

Terraform を使用すると、クラウド インフラストラクチャの定義、プレビュー、およびデプロイを行うことができます。 Terraform を使用する際は、HCL 構文を使って構成ファイルを作成します。 HCL 構文では、Azure などのクラウド プロバイダーと、クラウド インフラストラクチャを構成する要素を指定できます。 構成ファイルを作成したら、"実行プラン" を作成します。これにより、インフラストラクチャの変更をデプロイ前にプレビューすることができます。 変更を確認したら、実行プランを適用してインフラストラクチャをデプロイします。

この記事では、このシリーズの前の記事で作成した terraform ファイルを実行します。 その結果は、デモ仮想ネットワーク間の接続の検証です。

この記事では、次のことについて説明します。

  • ハブ スポーク トポロジにハブ VNet を実装する
  • デプロイするリソースを確認する
  • Azure でリソースを作成する
  • 異なるネットワークの間の接続を確認する

1. 環境を構成する

  • Azure サブスクリプション:Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。

2. 構成を確認する

サンプル ディレクトリで、この記事シリーズで作成されたすべてのファイルが存在することを確認します。

ファイル名 ファイル作成の記事
main.tf Azure で Terraform を使用してハブ スポーク ハイブリッド ネットワーク トポロジを作成する
variables.tf Azure で Terraform を使用してハブ スポーク ハイブリッド ネットワーク トポロジを作成する
on-prem.tf Azure で Terraform を使用してオンプレミス仮想ネットワークを作成する
hub-vnet.tf Azure で Terraform を使用してハブ仮想ネットワークを作成する
hub-nva.tf Azure で Terraform を使用して、ハブ仮想ネットワーク アプライアンスを作成する
spoke1.tf Azure で Terraform を使用して、スポーク仮想ネットワークを作成する
spoke2.tf Azure で Terraform を使用して、スポーク仮想ネットワークを作成する

3. Terraform を初期化する

terraform init を実行して、Terraform のデプロイを初期化します。 このコマンドによって、Azure リソースを管理するために必要な Azure プロバイダーがダウンロードされます。

terraform init -upgrade

重要なポイント:

  • -upgrade パラメーターは、必要なプロバイダー プラグインを、構成のバージョン制約に準拠する最新バージョンにアップグレードします。

4. Terraform 実行プランを作成する

terraform plan を実行して、実行プランを作成します。

terraform plan -out main.tfplan

重要なポイント:

  • terraform plan コマンドは、実行プランを作成しますが、実行はしません。 代わりに、構成ファイルに指定された構成を作成するために必要なアクションを決定します。 このパターンを使用すると、実際のリソースに変更を加える前に、実行プランが自分の想定と一致しているかどうかを確認できます。
  • 省略可能な -out パラメーターを使用すると、プランの出力ファイルを指定できます。 -out パラメーターを使用すると、レビューしたプランが適用内容とまったく同じであることが確実になります。

5. Terraform 実行プランを適用する

terraform apply を実行して、クラウド インフラストラクチャに実行プランを適用します。

terraform apply main.tfplan

重要なポイント:

  • terraform apply コマンドの例は、以前に terraform plan -out main.tfplan が実行されたことを前提としています。
  • -out パラメーターに別のファイル名を指定した場合は、terraform apply の呼び出しで同じファイル名を使用します。
  • -out パラメーターを使用しなかった場合は、パラメーターを指定せずに terraform apply を呼び出します。

6. 結果を確認する

このセクションでは、シミュレートされたオンプレミスの環境からハブ VNet への接続のテスト方法を示します。

  1. Azure ポータルにアクセスします。

  2. Azure portal で、onprem-vnet-rg リソース グループを参照します。

  3. [onprem-vnet-rg] タブで、「onprem-vm」という名前の VM を選択します。

  4. パブリック IP アドレスの値をメモします。

  5. コマンドラインに戻り、ssh を実行して、シミュレートされたオンプレミス環境に接続します。

    ssh azureuser@<onprem_vm_ip_address>
    

    重要なポイント:

    • variables.tf ファイルでユーザー名を azureuser から変更した場合は、その値を ssh コマンドに挿入してください。
    • terraform plan を実行するときに指定したパスワードを使用します。
  6. onprem-vm 仮想マシンに接続したら、ping コマンドを実行してハブ VNet 内のジャンプボックス VM への接続をテストします。

    ping 10.0.0.68
    
  7. ping コマンドを実行して、各スポーク内のジャンプボックス VM への接続をテストします。

    ping 10.1.0.68
    ping 10.2.0.68
    
  8. onprem-vm 仮想マシンで ssh セッションを終了するには、「exit」と入力して、<Enter> キーを押します。

7.リソースをクリーンアップする

Terraform を使用して作成したリソースが不要になった場合は、次の手順を実行します。

  1. terraform plan を実行して、destroy フラグを指定します。

    terraform plan -destroy -out main.destroy.tfplan
    

    重要なポイント:

    • terraform plan コマンドは、実行プランを作成しますが、実行はしません。 代わりに、構成ファイルに指定された構成を作成するために必要なアクションを決定します。 このパターンを使用すると、実際のリソースに変更を加える前に、実行プランが自分の想定と一致しているかどうかを確認できます。
    • 省略可能な -out パラメーターを使用すると、プランの出力ファイルを指定できます。 -out パラメーターを使用すると、レビューしたプランが適用内容とまったく同じであることが確実になります。
  2. terraform apply を実行して、実行プランを適用します。

    terraform apply main.destroy.tfplan
    

Azure での Terraform のトラブルシューティング

Azure で Terraform を使用する場合の一般的な問題のトラブルシューティング

次のステップ