Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Terraform consente di definire, visualizzare in anteprima e distribuire l'infrastruttura cloud. Con Terraform è possibile creare file di configurazione usando la sintassi HCL. La sintassi HCL consente di specificare il provider di servizi cloud, ad esempio Azure, e gli elementi che costituiscono l'infrastruttura cloud. Dopo aver creato i file di configurazione, si crea un piano di esecuzione che consente di visualizzare in anteprima le modifiche dell'infrastruttura prima della distribuzione. Dopo aver verificato le modifiche, è possibile applicare il piano di esecuzione per distribuire l'infrastruttura.
Questa serie di articoli illustra come usare Terraform per implementare in Azure una topologia di rete hub-spoke.
Una topologia hub-spoke è un modo per isolare i carichi di lavoro durante la condivisione di servizi comuni. Questi servizi includono identità e sicurezza. L'hub è una rete virtuale (VNet) che funge da punto di connessione centrale a una rete locale. Gli spoke sono reti virtuali che eseguono il peering con l'hub. I servizi condivisi vengono distribuiti nell'hub, mentre i singoli carichi di lavoro vengono distribuiti all'interno delle reti spoke.
In questo articolo vengono illustrate le operazioni seguenti:
- Progettare le risorse dell'architettura di riferimento della rete ibrida a hub e spoke
- Creare risorse delle appliance dell'hub di rete
- Creare una rete hub in Azure per fungere da punto comune per tutte le risorse
- Creare singoli carichi di lavoro come reti virtuali spoke in Azure
- Stabilire gateway e connessioni tra reti locali e di Azure
- Creare peering VNet verso le reti spoke
1. Configurare l'ambiente
- Sottoscrizione di Azure: se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
Configurare Terraform: se non è già stato fatto, configurare Terraform usando una delle opzioni seguenti:
2. Comprendere l'architettura della topologia hub-spoke
Nella topologia hub-spoke l'hub è una rete virtuale. La rete virtuale funge da punto centrale di connettività alla rete locale. I spoke sono reti virtuali che fanno peering con l'hub e possono essere usate per isolare i carichi di lavoro. Flussi di traffico tra il data center locale e l'hub attraverso una connessione di gateway VPN o ExpressRoute. L'immagine seguente illustra i componenti in una topologia hub-spoke:
Vantaggi della topologia hub-spoke
Una topologia di rete hub-spoke è un modo per isolare i carichi di lavoro durante la condivisione di servizi comuni. Questi servizi includono identità e sicurezza. L'hub è una rete virtuale che funge da punto di connessione centrale a una rete locale. Gli spoke sono reti virtuali che eseguono il peering con l'hub. I servizi condivisi vengono distribuiti nell'hub, mentre i singoli carichi di lavoro vengono distribuiti all'interno delle reti spoke. Ecco alcuni vantaggi della topologia di rete hub-spoke:
- Risparmio sui costi centralizzando i servizi in un'unica posizione che può essere condivisa da più carichi di lavoro. Questi carichi di lavoro includono appliance virtuali di rete e server DNS.
- Superare i limiti delle sottoscrizioni eseguendo il peering di VNets da sottoscrizioni diverse all'hub centrale.
- Separazione dei problemi tra it centrale (SecOps, InfraOps) e carichi di lavoro (DevOps).
Usi tipici per l'architettura hub-spoke
Alcuni degli usi tipici per un'architettura hub-spoke includono:
- Molti clienti hanno carichi di lavoro distribuiti in ambienti diversi. Questi ambienti includono sviluppo, test e produzione. Molte volte, questi carichi di lavoro devono condividere servizi come DNS, IDS, NTP o Servizi di dominio Active Directory. Questi servizi condivisi possono essere inseriti nella rete virtuale dell'hub. Così, ogni ambiente viene implementato in un spoke per mantenere l'isolamento.
- I carichi di lavoro che non richiedono la connettività tra loro, ma richiedono l'accesso ai servizi condivisi.
- Aziende che richiedono il controllo centrale sugli aspetti di sicurezza.
- Aziende che richiedono una gestione separata per i carichi di lavoro in ogni spoke.
3. Visualizzare in anteprima i componenti demo
Durante l'esecuzione di ogni articolo di questa serie, i vari componenti vengono definiti in script Terraform distinti. L'architettura demo creata e distribuita è costituita dai componenti seguenti:
Rete locale. Una rete locale privata operante all'interno di un'organizzazione. Per l'architettura di riferimento hub-spoke, viene usata una rete virtuale in Azure per simulare una rete locale.
Dispositivo VPN. Un dispositivo VPN o un servizio fornisce connettività esterna alla rete locale. Il dispositivo VPN può essere un'appliance hardware o una soluzione software.
Rete virtuale dell'hub. L'hub è il punto centrale di connettività alla rete locale e un luogo in cui ospitare i servizi. Questi servizi possono essere usati dai diversi carichi di lavoro ospitati nelle reti virtuali spoke.
Subnet del gateway. I gateway di rete virtuale vengono mantenuti nella stessa subnet.
Reti virtuali spoke. Gli spoke possono essere usati per isolare i carichi di lavoro nelle proprie reti virtuali, gestiti separatamente da altri spoke. Ogni carico di lavoro può includere più livelli, con più subnet connesse tramite i bilanciamenti del carico di Azure.
Peering reti virtuali. È possibile connettere due VNets utilizzando una connessione di peering. Le connessioni di peering sono connessioni non transitive e a bassa latenza tra reti virtuali. Dopo il peering, le reti virtuali scambiano il traffico usando il backbone di Azure, senza bisogno di un router. In una topologia di rete hub-spoke il peering reti virtuali viene usato per connettere l'hub a ogni spoke. È possibile eseguire il peering di reti virtuali nella stessa area o in aree diverse.
4. Implementare il codice Terraform
Creare una directory per contenere il codice di esempio per l'intera serie di più articoli.
Creare un file denominato
main.tf
e inserire il codice seguente:terraform { required_version = ">=0.12" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~> 3.0" } } } provider "azurerm" { features { resource_group { prevent_deletion_if_contains_resources = false } } } resource "random_password" "password" { count = var.password == null ? 1 : 0 length = 20 } locals { password = try(random_password.password[0].result, var.password) }
Creare un file denominato
variables.tf
per contenere le variabili di progetto e inserire il codice seguente: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" sensitive = true default = null } variable "vmsize" { description = "Size of the VMs" default = "Standard_DS1_v2" }
Punti principali:
- Questo articolo usa una password immessa quando si chiama
terraform plan
. In un'app reale è consigliabile usare una coppia di chiavi SSH pubblica/privata. - Per altre informazioni sulle chiavi SSH e Azure, vedere Come usare le chiavi SSH con Windows in Azure.
- Questo articolo usa una password immessa quando si chiama
Risolvere i problemi di Terraform in Azure
Risolvere i problemi comuni relativi all'uso di Terraform in Azure