チュートリアル:Terraform を使用して Azure でハブ スポーク ハイブリッド ネットワーク トポロジを作成するTutorial: Create a hub and spoke hybrid network topology in Azure using Terraform

このチュートリアル シリーズでは、Azure で Terraform を使用して、ハブ スポーク ネットワーク トポロジを実装する方法を示します。This tutorial series shows how to use Terraform to implement in Azure a hub and spoke network topology.

ハブ スポーク トポロジは、一般的なサービスを共有しながらワークロードを分離する方法です。A hub and spoke topology is a way to isolate workloads while sharing common services. これらのサービスには、ID とセキュリティが含まれます。These services include identity and security. ハブは、オンプレミス ネットワークへの中心となる接続ポイントとして機能する仮想ネットワーク (VNet) です。The hub is a virtual network (VNet) that acts as a central connection point to an on-premises network. スポークはハブとピア接続する Vnet です。The spokes are VNets that peer with the hub. 共有サービスはハブにデプロイされ、個々のワークロードはスポーク ネットワークにデプロイされます。Shared services are deployed in the hub, while individual workloads are deployed inside spoke networks.

このチュートリアルに含まれるタスクは次のとおりです。This tutorial covers the following tasks:

  • HCL (HashiCorp 言語) を使用して、ハブ スポーク ハイブリッド ネットワーク参照アーキテクチャ リソースをレイアウトするUse HCL (HashiCorp Language) to lay out hub and spoke hybrid network reference architecture resources
  • Terraform を使用して、ハブ ネットワーク アプライアンス リソースを作成するUse Terraform to create hub network appliance resources
  • Terraform を使用して、Azure 上にすべてのリソースの共通ポイントとして機能するハブ ネットワークを作成するUse Terraform to create hub network in Azure to act as common point for all resources
  • Terraform を使用して、Azure 上に個々のワークロードをスポーク VNet として作成するUse Terraform to create individual workloads as spoke VNets in Azure
  • Terraform を使用して、オンプレミス ネットワークと Azure ネットワーク間のゲートウェイと接続を確立するUse Terraform to establish gateways and connections between on premises and Azure networks
  • Terraform を使用して、スポーク ネットワークへの VNet ピアリングを作成するUse Terraform to create VNet peerings to spoke networks

前提条件Prerequisites

  • Azure サブスクリプション:Azure サブスクリプションをまだお持ちでない場合は、開始する前に無料の Azure アカウントを作成してください。Azure subscription: If you don't already have an Azure subscription, create a free Azure account before you begin.

  • Terraform のインストールと構成: Azure 上に VM とその他のインフラストラクチャをプロビジョニングするには、Terraform をインストールして構成します。Install and configure Terraform: To provision VMs and other infrastructure in Azure, install and configure Terraform

ハブ スポーク トポロジ アーキテクチャHub and spoke topology architecture

ハブ スポーク トポロジでは、ハブは VNet になります。In the hub and spoke topology, the hub is a VNet. VNet は、オンプレミス ネットワークの中心となる接続ポイントとして機能します。The VNet acts as a central point of connectivity to your on-premises network. スポークは、ハブに対して配置される VNet であり、ワークロードを分離するために使用されます。The spokes are VNets that peer with the hub, and can be used to isolate workloads. トラフィックは、ExpressRoute または VPN ゲートウェイ接続を経由してオンプレミスのデータセンターとハブの間を流れます。Traffic flows between the on-premises datacenter and the hub through an ExpressRoute or VPN gateway connection. 次の図は、ハブ スポーク トポロジのコンポーネントを示しています。The following image demonstrates the components in a hub and spoke topology:

Azure 上のハブ スポーク トポロジ アーキテクチャ

ハブ スポーク トポロジの利点Benefits of the hub and spoke topology

ハブ スポーク ネットワーク トポロジは、一般的なサービスを共有しながらワークロードを分離する方法です。A hub and spoke network topology is a way to isolate workloads while sharing common services. これらのサービスには、ID とセキュリティが含まれます。These services include identity and security. ハブは、オンプレミス ネットワークへの中心となる接続ポイントとして機能する VNet です。The hub is a VNet that acts as a central connection point to an on-premises network. スポークはハブとピア接続する Vnet です。The spokes are VNets that peer with the hub. 共有サービスはハブにデプロイされ、個々のワークロードはスポーク ネットワークにデプロイされます。Shared services are deployed in the hub, while individual workloads are deployed inside spoke networks. ハブ スポーク ネットワーク トポロジのいくつかの利点を次に示します。Here are some benefits of the hub and spoke network topology:

  • コストの削減: 複数のワークロードによって共有できる単一の場所にサービスを一元化します。Cost savings by centralizing services in a single location that can be shared by multiple workloads. これらのワークロードには、ネットワーク仮想アプライアンスと DNS サーバーが含まれます。These workloads include network virtual appliances and DNS servers.
  • サブスクリプション数の上限の解消: 中央のハブに別のサブスクリプションから VNet をピアリングします。Overcome subscriptions limits by peering VNets from different subscriptions to the central hub.
  • 問題の分離: 中央の IT (SecOps、InfraOps) とワークロード (DevOps) の間で実施します。Separation of concerns between central IT (SecOps, InfraOps) and workloads (DevOps).

ハブ スポーク アーキテクチャの一般的な用途Typical uses for the hub and spoke architecture

ハブ スポーク アーキテクチャの一般的な用途の一部を次に示します。Some of the typical uses for a hub and spoke architecture include:

  • 多くのお客様には、さまざまな環境にデプロイされているワークロードがあります。Many customers have workloads that are deployed in different environments. これらの環境には、開発、テスト、および運用環境が含まれます。These environments include development, testing, and production. 多くの場合、これらのワークロードでは、DNS、IDS、NTP、AD DS などのサービスを共有する必要があります。Many times, these workloads need to share services such as DNS, IDS, NTP, or AD DS. これらの共有サービスをハブ VNet に配置できます。These shared services can be placed in the hub VNet. この方法で、各環境をスポークにデプロイして、分離を維持します。That way, each environment is deployed to a spoke to maintain isolation.
  • 相互接続は必要ないが、共有サービスへのアクセスは必要なワークロード。Workloads that don't require connectivity to each other, but require access to shared services.
  • セキュリティ面の一元管理を必要とする企業。Enterprises that require central control over security aspects.
  • 各スポークでワークロードの分別管理を必要とする企業。Enterprises that require segregated management for the workloads in each spoke.

デモ コンポーネントのプレビューPreview the demo components

このシリーズのチュートリアルを進めていくときに、さまざまなコンポーネントを個別の Terraform スクリプトで定義します。As you work through each tutorial in this series, various components are defined in distinct Terraform scripts. 作成してデプロイするデモ アーキテクチャは、次のコンポーネントで構成されます。The demo architecture created and deployed consists of the following components:

  • オンプレミス ネットワークOn-premises network. 組織内で運用されているプライベート ローカル エリア ネットワーク。A private local-area network running with an organization. ハブ スポーク参照アーキテクチャでは、Azure 上の VNet を使用してオンプレミス ネットワークがシミュレートされます。For hub and spoke reference architecture, a VNet in Azure is used to simulate an on-premises network.

  • VPN デバイスVPN device. VPN デバイスまたはサービスによって、オンプレミス ネットワークへの外部接続が提供されます。A VPN device or service provides external connectivity to the on-premises network. VPN デバイスは、ハードウェア アプライアンスまたはソフトウェア ソリューションが可能です。The VPN device may be a hardware appliance or a software solution.

  • ハブ VNetHub VNet. ハブは、オンプレミス ネットワークの中心となる接続ポイントであり、サービスをホストする場所です。The hub is the central point of connectivity to your on-premises network and a place to host services. スポーク VNet でホストされているさまざまなワークロードで、これらのサービスを使用できます。These services can be consumed by the different workloads hosted in the spoke VNets.

  • ゲートウェイ サブネットGateway subnet. VNet ゲートウェイは、同じサブネット内に保持されます。The VNet gateways are held in the same subnet.

  • スポーク VNetSpoke VNets. スポークを使用すると、独自の VNet にワークロードを分離して、その他のスポークから個別に管理できます。Spokes can be used to isolate workloads in their own VNets, managed separately from other spokes. 各ワークロードには複数の階層が含まれる場合があります。これらの階層には、Azure ロード バランサーを使用して接続されている複数のサブネットがあります。Each workload might include multiple tiers, with multiple subnets connected through Azure load balancers.

  • VNet ピアリングVNet peering. ピアリング接続を使用して、2 つの VNet を接続できます。Two VNets can be connected using a peering connection. ピアリング接続は、VNet 間の待機時間の短い非推移的な接続です。Peering connections are non-transitive, low latency connections between VNets. ピアリングが完了すると、VNet では、ルーターがなくても Azure バックボーンを使用してトラフィックを交換します。Once peered, the VNets exchange traffic by using the Azure backbone, without needing a router. ハブ スポーク ネットワーク トポロジでは、VNet ピアリングを使用して、ハブを各スポークに接続します。In a hub and spoke network topology, VNet peering is used to connect the hub to each spoke. 同じリージョンまたは異なるリージョンの VNet をピアリングできます。You can peer VNets in the same region, or different regions.

ディレクトリ構造を作成するCreate the directory structure

デモ用の Terraform 構成ファイルを保持するディレクトリを作成します。Create the directory that holds your Terraform configuration files for the demo.

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

  2. Azure Cloud Shell を開きます。Open Azure Cloud Shell. 前に環境を選択しなかった場合、環境として Bash を選択します。If you didn't select an environment previously, select Bash as your environment.

    Cloud Shell のプロンプト

  3. ディレクトリを clouddrive ディレクトリに変更します。Change directories to the clouddrive directory.

    cd clouddrive
    
  4. hub-spoke という名前のディレクトリを作成します。Create a directory named hub-spoke.

    mkdir hub-spoke
    
  5. 新しいディレクトリに移動します。Change directories to the new directory:

    cd hub-spoke
    

Azure プロバイダーを宣言するDeclare the Azure provider

Azure プロバイダーを宣言する Terraform 構成ファイルを作成します。Create the Terraform configuration file that declares the Azure provider.

  1. Cloud Shell で、main.tf という名前の新しいファイルを開きます。In Cloud Shell, open a new file named main.tf.

    code main.tf
    
  2. 以下のコードをエディターに貼り付けます。Paste the following code into the editor:

    provider "azurerm" {
        version = "~>1.22"
    }
    
  3. ファイルを保存し、エディターを終了します。Save the file and exit the editor.

変数ファイルを作成するCreate the variables file

さまざまなスクリプトで使用される共通変数用の Terraform 構成ファイルを作成します。Create the Terraform configuration file for common variables that are used across different scripts.

  1. Cloud Shell で、variables.tf という名前の新しいファイルを開きます。In Cloud Shell, open a new file named variables.tf.

    code variables.tf
    
  2. 以下のコードをエディターに貼り付けます。Paste the following code into the editor:

    variable "location" {
      description = "Location of the network"
      default     = "centralus"
    }
    
    variable "username" {
      description = "Username for Virtual Machines"
      default     = "testadmin"
    }
    
    variable "password" {
      description = "Password for Virtual Machines"
      default     = "Password1234!"
    }
    
    variable "vmsize" {
      description = "Size of the VMs"
      default     = "Standard_DS1_v2"
    }
    
  3. ファイルを保存し、エディターを終了します。Save the file and exit the editor.

次のステップNext steps