Erstellen einer hybriden Hub-and-Spoke-Netzwerktopologie in Azure mit Terraform

Mit Terraform können Sie eine Cloudinfrastruktur definieren, eine Vorschau der Cloudinfrastruktur anzeigen und die Cloudinfrastruktur bereitstellen. Terraform ermöglicht das Erstellen von Konfigurationsdateien mit HCL-Syntax. Mit der HCL-Syntax können Sie den Cloudanbieter (beispielsweise Azure) und die Elemente angeben, aus denen sich Ihre Cloudinfrastruktur zusammensetzt. Nach der Erstellung Ihrer Konfigurationsdateien erstellen Sie einen Ausführungsplan, mit dem Sie eine Vorschau Ihrer Infrastrukturänderungen anzeigen können, bevor diese bereitgestellt werden. Nach der Überprüfung der Änderungen wenden Sie den Ausführungsplan an, um die Infrastruktur bereitzustellen.

Diese Artikelserie zeigt, wie Sie mit Terraform in Azure eine Hub-Spoke-Netzwerktopologie implementieren können.

Eine Hub-Spoke-Topologie ist eine Möglichkeit zur Isolierung von Workloads bei der gemeinsamen Nutzung von allgemeinen Diensten. Zu diesen Diensten gehören Identität und Sicherheit. Bei einem Hub handelt es sich um ein virtuelles Netzwerk (VNet), das als zentraler Verbindungspunkt für Ihr lokales Netzwerk fungiert. Bei den Spokes handelt es sich um VNETs, die eine Peeringverbindung mit dem Hub herstellen. Gemeinsame Dienste werden im Hub bereitgestellt, während einzelne Workloads in Spoke-Netzwerken bereitgestellt werden.

In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Implementieren von Ressourcen für die Referenzarchitektur für das Hub-Spoke-Hybridnetzwerk
  • Erstellen von Ressourcen für Hubnetzwerkappliances
  • Erstellen eines Hubnetzwerks in Azure als gemeinsamer Ausgangspunkt für alle Ressourcen
  • Erstellen einzelner Workloads als Spoke-VNets in Azure
  • Erstellen von Gateways und Verbindungen zwischen lokalen Netzwerken und Azure-Netzwerken
  • Erstellen von VNet-Peerings mit Spoke-Netzwerken

1. Konfigurieren Ihrer Umgebung

  • Azure-Abonnement: Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

2. Grundlegendes zur Architektur für die Hub-Spoke-Topologie

In der Hub-Spoke-Topologie dient der Hub als VNet. Das VNet fungiert als ein zentraler Verbindungspunkt für Ihr lokales Netzwerk. Bei Speichen handelt es sich um VNETs, die eine Peerverbindung mit dem Hub herstellen und zur Isolierung von Workloads verwendet werden können. Der Datenverkehr wird über eine ExpressRoute- oder VPN-Gatewayverbindung zwischen dem lokalen Rechenzentrum und dem Hub weitergeleitet. Die folgende Abbildung veranschaulicht die Komponenten in einer Hub-Spoke-Topologie:

Hub and spoke topology architecture in Azure

Vorteile einer Hub-Spoke-Topologie

Eine Hub-Spoke-Netzwerktopologie ist eine Möglichkeit zur Isolierung von Workloads bei der gemeinsamen Nutzung von allgemeinen Diensten. Zu diesen Diensten gehören Identität und Sicherheit. Bei einem Hub handelt es sich um ein VNet, das als zentraler Verbindungspunkt für Ihr lokales Netzwerk fungiert. Bei den Spokes handelt es sich um VNETs, die eine Peeringverbindung mit dem Hub herstellen. Gemeinsame Dienste werden im Hub bereitgestellt, während einzelne Workloads in Spoke-Netzwerken bereitgestellt werden. Hier sind einige Vorteile der Hub-Spoke-Netzwerktopologie:

  • Kosteneinsparungen durch die Zentralisierung von Diensten an einem einzigen Standort, der von mehreren Workloads gemeinsam genutzt werden kann. Diese Workloads enthalten virtuelle Netzwerkgeräte und den DNS-Server.
  • Umgehung von Abonnementbeschränkungen durch die Herstellung von Peeringverbindungen zwischen VNETs verschiedener Abonnements und dem zentralen Hub
  • Trennung der Belange zwischen zentralen IT-Vorgängen (SecOps, InfraOps) und Workloads (DevOps)

Typische Verwendungen für die Hub-Spoke-Architektur

Einige der typischen Verwendungen für eine Hub-Spoke-Architektur sind:

  • Viele Kunden verfügen über Workloads, die in verschiedenen Umgebungen bereitgestellt sind. Diese Umgebungen umfassen Entwicklung, Tests und Produktion. In vielen Fällen müssen diese Workloads Dienste wie DNS, IDS, NTP oder AD DS gemeinsam nutzen. Diese gemeinsamen Dienste können im Hub-VNet platziert werden. Auf diese Weise wird jede Umgebung für einen Spoke bereitgestellt, um die Isolierung aufrechtzuerhalten.
  • Workloads, bei denen keine Konnektivität untereinander bestehen muss, die jedoch Zugriff auf gemeinsame Dienste erfordern
  • Unternehmen, die eine zentrale Steuerung von Sicherheitsaspekten benötigen.
  • Unternehmen, die Workloads in jedem Spoke getrennt verwalten müssen.

3. Vorschau der Demokomponenten

Während Sie jeden Artikel in dieser Serie durcharbeiten, werden verschiedene Komponenten in verschiedenen Terraform-Skripten definiert. Die erstellte und bereitgestellte Demoarchitektur besteht aus den folgenden Komponenten:

  • Lokales Netzwerk. Ein in einer Organisation betriebenes privates lokales Netzwerk. Für die Hub-Spoke-Referenzarchitektur wird ein VNet in Azure verwendet, um ein lokales Netzwerk zu simulieren.

  • VPN-Gerät: Ein VPN-Gerät oder ein Dienst, das bzw. der externe Konnektivität mit dem lokalen Netzwerk bereitstellt. Das VPN-Gerät kann ein Hardwaregerät oder eine Softwarelösung sein.

  • Hub-VNET: Der Hub ist ein zentraler Verbindungspunkt für Ihr lokales Netzwerk und der Ort zum Hosten von Diensten. Diese Dienste können von den verschiedenen Workloads in den Spoke-VNets genutzt werden.

  • Gatewaysubnetz. Die VNet-Gateways befinden sich in demselben Subnetz.

  • Spoke-VNETs: Spokes können verwendet werden, um Workloads in ihren eigenen VNETs, die getrennt von anderen Spokes verwaltet werden, zu isolieren. Jede Workload kann mehrere Schichten umfassen, wobei mehrere Subnetze über Azure Load Balancer verbunden sind.

  • VNET-Peering: Zwei VNETs können über eine Peeringverbindung miteinander verbunden werden. Peeringverbindungen sind nicht-transitive Verbindungen zwischen VNETs mit niedrigen Latenzen. Sobald eine Peeringverbindung hergestellt wurde, tauschen die VNETs ohne Einsatz eines Routers Datenverkehr über den Azure-Backbone aus. In einer Hub-Spoke-Netzwerktopologie wird durch VNET-Peering eine Verbindung zwischen dem Hub und den einzelnen Spokes hergestellt. Sie können VNets in derselben Region oder in verschiedenen Regionen per Peering verknüpfen.

4. Implementieren des Terraform-Codes

  1. Erstellen Sie ein Verzeichnis, das den Beispielcode für die gesamte Artikelserie enthält.

  2. Erstellen Sie eine Datei namens main.tf, und fügen Sie den folgenden Code ein:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>2.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Erstellen Sie eine Datei namens variables.tf, die die Projektvariablen enthält, und fügen Sie den folgenden Code ein:

    variable "location" {
        description = "Location of the network"
        default     = "eastus"
    }
    
    variable "username" {
        description = "Username for Virtual Machines"
        default     = "azureuser"
    }
    
    variable "password" {
        description = "Password for Virtual Machines"
    }
    
    variable "vmsize" {
        description = "Size of the VMs"
        default     = "Standard_DS1_v2"
    }
    

    Die wichtigsten Punkte:

    • In diesem Artikel wird ein Kennwort verwendet, das Sie beim Aufrufen von terraform plan eingeben. Für eine reale App ist es eher ratsam, ein Paar mit einem öffentlichen und einem privaten SSH-Schlüssel zu verwenden.
    • Weitere Informationen zu SSH-Schlüsseln und Azure finden Sie unter Verwenden von SSH-Schlüsseln mit Windows in Azure.

Problembehandlung für Terraform in Azure

Behandeln allgemeiner Probleme bei der Verwendung von Terraform in Azure

Nächste Schritte