Terraform を使用して Azure でハブとスポーク ネットワークを検証する
Terraform を使用すると、クラウド インフラストラクチャの定義、プレビュー、およびデプロイを行うことができます。 Terraform を使用する際は、HCL 構文を使って構成ファイルを作成します。 HCL 構文では、Azure などのクラウド プロバイダーと、クラウド インフラストラクチャを構成する要素を指定できます。 構成ファイルを作成したら、"実行プラン" を作成します。これにより、インフラストラクチャの変更をデプロイ前にプレビューすることができます。 変更を確認したら、実行プランを適用してインフラストラクチャをデプロイします。
この記事では、このシリーズの前の記事で作成した terraform ファイルを実行します。 その結果は、デモ仮想ネットワーク間の接続の検証です。
この記事では、次のことについて説明します。
- ハブ スポーク トポロジにハブ VNet を実装する
- デプロイするリソースを確認する
- Azure でリソースを作成する
- 異なるネットワークの間の接続を確認する
1. 環境を構成する
- Azure サブスクリプション:Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
Terraform の構成: まだ行っていない場合は、次のいずれかのオプションを使用して Terraform を構成します。
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 への接続のテスト方法を示します。
Azure ポータルにアクセスします。
Azure portal で、onprem-vnet-rg リソース グループを参照します。
[onprem-vnet-rg] タブで、「onprem-vm」という名前の VM を選択します。
パブリック IP アドレスの値をメモします。
コマンドラインに戻り、
ssh
を実行して、シミュレートされたオンプレミス環境に接続します。ssh azureuser@<onprem_vm_ip_address>
重要なポイント:
variables.tf
ファイルでユーザー名をazureuser
から変更した場合は、その値をssh
コマンドに挿入してください。terraform plan
を実行するときに指定したパスワードを使用します。
onprem-vm 仮想マシンに接続したら、
ping
コマンドを実行してハブ VNet 内のジャンプボックス VM への接続をテストします。ping 10.0.0.68
ping
コマンドを実行して、各スポーク内のジャンプボックス VM への接続をテストします。ping 10.1.0.68 ping 10.2.0.68
onprem-vm 仮想マシンで ssh セッションを終了するには、「
exit
」と入力して、<Enter> キーを押します。
7.リソースをクリーンアップする
Terraform を使用して作成したリソースが不要になった場合は、次の手順を実行します。
terraform plan を実行して、
destroy
フラグを指定します。terraform plan -destroy -out main.destroy.tfplan
重要なポイント:
terraform plan
コマンドは、実行プランを作成しますが、実行はしません。 代わりに、構成ファイルに指定された構成を作成するために必要なアクションを決定します。 このパターンを使用すると、実際のリソースに変更を加える前に、実行プランが自分の想定と一致しているかどうかを確認できます。- 省略可能な
-out
パラメーターを使用すると、プランの出力ファイルを指定できます。-out
パラメーターを使用すると、レビューしたプランが適用内容とまったく同じであることが確実になります。
terraform apply を実行して、実行プランを適用します。
terraform apply main.destroy.tfplan
Azure での Terraform のトラブルシューティング
Azure で Terraform を使用する場合の一般的な問題のトラブルシューティング
次のステップ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示