Een hub- en spoke hybride netwerktopologie maken in Azure met behulp van Terraform

Terraform maakt de definitie, preview en implementatie van de cloudinfrastructuur mogelijk. Met Behulp van Terraform maakt u configuratiebestanden met behulp van de HCL-syntaxis. Met de HCL-syntaxis kunt u de cloudprovider opgeven, zoals Azure, en de elementen waaruit uw cloudinfrastructuur bestaat. Nadat u uw configuratiebestanden hebt gemaakt, maakt u een uitvoeringsplan waarmee u een voorbeeld van uw infrastructuurwijzigingen kunt bekijken voordat ze worden geïmplementeerd. Zodra u de wijzigingen hebt gecontroleerd, past u het uitvoeringsplan toe om de infrastructuur te implementeren.

In deze artikelen wordt beschreven hoe u Terraform kunt gebruiken om te implementeren in een sternetwerktopologie in Azure.

Een hub- en spoke-topologie is een manier om workloads te isoleren tijdens het delen van algemene services. Deze services omvatten identiteit en beveiliging. De hub is een virtueel netwerk (VNet) dat fungeert als een centraal verbindingspunt naar een on-premises netwerk. De punten zijn VNets die zijn gekoppeld aan de hub. Gedeelde services worden geïmplementeerd in de hub, terwijl afzonderlijke workloads worden geïmplementeerd in spoke-netwerken.

In dit artikel leert u het volgende:

  • Resources voor hub- en spoke-referentiearchitectuur voor hybride netwerken in delen
  • Resources voor hubnetwerkapparaten maken
  • Een hubnetwerk maken in Azure om te fungeren als een gemeenschappelijk punt voor alle resources
  • Afzonderlijke workloads maken als spoke-VNets in Azure
  • Gateways en verbindingen tussen on-premises en Azure-netwerken tot stand brengen
  • VNet-peerings maken voor spoke-netwerken

1. Uw omgeving configureren

  • Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.

2. Inzicht in de stertopologiearchitectuur

In de stertopologie is de hub een VNet. Het VNet fungeert als een centraal punt van connectiviteit met uw on-premises netwerk. De knooppunten zijn VNets die via peering zijn verbonden met de hub en die kunnen worden gebruikt om workloads te isoleren. Verkeer stroomt tussen het on-premises datacentrum en de hub via een ExpressRoute- of VPN-gateway-verbinding. In de volgende afbeelding ziet u de onderdelen in een hub- en spoke-topologie:

Hub and spoke topology architecture in Azure

Voordelen van de stertopologie

Een hub- en spoke-netwerktopologie is een manier om workloads te isoleren tijdens het delen van algemene services. Deze services omvatten identiteit en beveiliging. De hub is een VNet dat fungeert als een centraal verbindingspunt naar een on-premises netwerk. De punten zijn VNets die zijn gekoppeld aan de hub. Gedeelde services worden geïmplementeerd in de hub, terwijl afzonderlijke workloads worden geïmplementeerd in spoke-netwerken. Hier volgen enkele voordelen van de sternetwerktopologie:

  • Kostenbesparingen door services op één locatie te centraliseren die kunnen worden gedeeld door meerdere workloads. Deze workloads omvatten virtuele netwerkapparaten en DNS-servers.
  • Limieten in abonnementen overwinnen door peering van VNets uit verschillende abonnementen naar de centrale hub.
  • Scheiding van problemen tussen centrale IT (SecOps, InfraOps) en workloads (DevOps).

Typische toepassingen voor de hub- en spoke-architectuur

Enkele van de typische toepassingen voor een hub- en spoke-architectuur zijn:

  • Veel klanten hebben workloads die in verschillende omgevingen worden geïmplementeerd. Deze omgevingen omvatten ontwikkeling, testen en productie. Vaak moeten deze workloads services delen, zoals DNS, IDS, NTP of AD DS. Deze gedeelde services kunnen in het hub-VNet worden geplaatst. Op die manier wordt elke omgeving geïmplementeerd in een spoke om isolatie te behouden.
  • Werkbelastingen waarvoor geen verbinding met elkaar is vereist, maar die wel toegang tot gedeelde services vereisen.
  • Ondernemingen die centrale controle over beveiligingsaspecten vereisen.
  • Ondernemingen die gescheiden beheer vereisen voor de workloads in elke spoke.

3. Bekijk een voorbeeld van de demoonderdelen

Tijdens het doorlopen van elk artikel in deze reeks worden verschillende onderdelen gedefinieerd in afzonderlijke Terraform-scripts. De demoarchitectuur die is gemaakt en geïmplementeerd, bestaat uit de volgende onderdelen:

  • On-premises netwerk. Een particulier lokaal netwerk dat wordt uitgevoerd met een organisatie. Voor hub- en spoke-referentiearchitectuur wordt een VNet in Azure gebruikt om een on-premises netwerk te simuleren.

  • VPN-apparaat. Een VPN-apparaat of -service biedt externe connectiviteit met het on-premises netwerk. Het VPN-apparaat kan een hardwareapparaat of een softwareoplossing zijn.

  • Hub VNet. De hub is het centrale punt van connectiviteit met uw on-premises netwerk en een locatie voor het hosten van services. Deze services kunnen worden gebruikt door de verschillende workloads die worden gehost in de spoke-VNets.

  • Gatewaysubnet. De VNet-gateways worden in hetzelfde subnet bewaard.

  • Knooppunt VNets. Knooppunten kunnen worden gebruikt om werkbelastingen te isoleren in hun eigen VNets, afzonderlijk beheerd vanaf andere knooppunten. Elke workload kan meerdere lagen bevatten, met meerdere subnetten die zijn verbonden via Azure-load balancers.

  • VNet-peering. Er kunnen twee VNets worden verbonden met behulp van een peeringverbinding. Peeringverbindingen zijn niet-transitieve verbindingen met lage latentie tussen VNets. Zodra de VNets zijn gekoppeld, wisselen de VNets verkeer uit met behulp van de Azure-backbone, zonder dat er een router nodig is. In een sternetwerktopologie wordt VNet-peering gebruikt om de hub te verbinden met elke spoke. U kunt VNets in dezelfde regio of verschillende regio's koppelen.

4. De Terraform-code implementeren

  1. Maak een map die de voorbeeldcode voor de volledige reeks met meerdere artikelen bevat.

  2. Maak een bestand met de naam main.tf en voeg de volgende code in:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>2.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Maak een bestand met de naam variables.tf dat de projectvariabelen bevat en voeg de volgende code in:

    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"
    }
    

    Belangrijkste punten:

    • In dit artikel wordt een wachtwoord gebruikt dat u invoert wanneer u belt terraform plan. In een echte app kunt u overwegen om een openbaar/persoonlijk SSH-sleutelpaar te gebruiken.
    • Zie SSH-sleutels gebruiken met Windows in Azure voor meer informatie over SSH-sleutels en Azure.

Problemen met Terraform in Azure oplossen

Veelvoorkomende problemen oplossen bij het gebruik van Terraform in Azure

Volgende stappen