Criar uma topologia de rede híbrida de hub e spoke no Azure usando o Terraform

O Terraform permite a definição, a visualização e a implantação da infraestrutura de nuvem. Usando o Terraform, você cria arquivos de configuração usando sintaxe de HCL. A sintaxe da HCL permite que você especifique o provedor de nuvem, como o Azure, e os elementos que compõem sua infraestrutura de nuvem. Depois de criar os arquivos de configuração, você cria um plano de execução que permite visualizar as alterações de infraestrutura antes de serem implantadas. Depois de verificar as alterações, aplique o plano de execução para implantar a infraestrutura.

Esta série de artigos mostra como usar o Terraform para implementar no Azure uma topologia de rede de hub e spoke.

Uma topologia de hub e spoke é uma maneira de isolar as cargas de trabalho enquanto se compartilham serviços comuns. Esses serviços incluem a identidade e segurança. O hub é uma rede virtual (VNet) no Azure que atua como ponto central de conectividade para sua rede local. Os spokes são VNets que se emparelham com o hub. Os serviços compartilhados são implantados no hub, enquanto as cargas de trabalho individuais são implantadas dentro das redes de spoke.

Neste artigo, você aprenderá como:

  • Dispor os recursos de arquitetura de referência de rede híbrida hub e spoke
  • Criar os recursos de dispositivo de rede hub
  • Criar uma rede hub no Azure para que ela funcione como um ponto comum para todos os recursos
  • Criar cargas de trabalho individuais como VNets spoke no Azure
  • Estabelecer gateways e conexões entre os locais e redes do Azure
  • Criar emparelhamentos de VNet para as redes spoke

1. Configurar seu ambiente

  • Assinatura do Azure: caso você não tenha uma assinatura do Azure, crie uma conta gratuita antes de começar.

2. Entender a arquitetura de topologia de hub e spoke

Na topologia de hub e spoke, o hub é uma rede virtual. As redes virtuais agem como um ponto central de conectividade para a sua rede local. Os raios são VNets que ponto a ponto com o hub e pode ser usado para isolar as cargas de trabalho. Fluxos de tráfego entre o datacenter local e o hub por meio de uma conexão de ExpressRoute ou gateway de VPN. A imagem a seguir demonstra os componenentes em uma topologia hub e spoke:

Hub and spoke topology architecture in Azure

Benefícios da topologia hub e spoke

A topologia de rede hub e spoke é uma forma de isolar as cargas de trabalho ao compartilhar serviços em comum. Esses serviços incluem a identidade e segurança. O hub é uma rede virtual no Azure que atua como ponto central de conectividade para sua rede local. Os spokes são VNets que se emparelham com o hub. Os serviços compartilhados são implantados no hub, enquanto as cargas de trabalho individuais são implantadas dentro das redes de spoke. Aqui estão alguns benefícios da topologia de rede de hub e spoke:

  • Economia de custos centralizando serviços em um único local que pode ser compartilhado por várias cargas de trabalho. Essas cargas de trabalho incluem dispositivos de rede virtual e servidores DNS.
  • Superar os limites de assinaturas emparelhando VNets de assinaturas diferentes com o hub central.
  • Separação de preocupações entre TI central (SecOps, InfraOps) e cargas de trabalho (DevOps).

Usos típicos para a arquitetura de hub e spoke

Alguns dos usos típicos para uma arquitetura de hub e spoke incluem:

  • Muitos clientes têm cargas de trabalho que são implantadas em ambientes diferentes. Esses ambientes incluem desenvolvimento, teste e produção. Muitas vezes, essas cargas de trabalho precisam compartilhar serviços como DNS, IDS, NTP ou AD DS. Esses serviços compartilhados podem ser colocados na rede virtual do hub. Dessa forma, cada ambiente é implantado em um spoke para manter o isolamento.
  • As cargas de trabalho que não exigem conectividade entre si, mas precisam de acesso aos serviços compartilhados.
  • Empresas que exigem controle centralizado sobre aspectos de segurança.
  • Empresas que exigem gerenciamento segregado para cargas de trabalho em cada spoke.

3. Visualizar os componentes de demonstração

Conforme você trabalha com cada artigo desta série, vários componentes são definidos em scripts distintos do Terraform. A arquitetura de demonstração criada e implantada consiste dos seguintes componentes:

  • Rede local. Uma rede de área local privada em execução com uma organização. Arquitetura de referência de hub e spoke, uma rede virtual no Azure é usada para simular uma rede local.

  • Dispositivo VPN. Um dispositivo ou serviço VPN que fornece conectividade externa com a rede local. O dispositivo VPN pode ser um dispositivo de hardware ou uma solução de software.

  • VNet do hub. O hub é um ponto central de conectividade para sua rede local e um local para hospedar serviços. Esses serviços podem ser consumidos por diferentes cargas de trabalho hospedadas nas redes virtuais do spoke.

  • Gateway de sub-rede. Os gateways de rede virtual são mantidos na mesma sub-rede.

  • VNets de spoke. Spokes podem ser usados para isolar as cargas de trabalho em suas próprias VNets, gerenciadas separadamente de outros spokes. Cada carga de trabalho pode incluir várias camadas, com várias sub-redes conectadas por meio de balanceadores de carga do Azure.

  • Emparelhamento VNet. Duas redes virtuais podem ser conectadas usando uma conexão de emparelhamento. Conexões de emparelhamento são conexões não transitivas de baixa latência entre VNets. Quando emparelhadas, as redes virtuais trocam tráfego usando o backbone do Azure sem precisar de um roteador. Em uma topologia de rede hub e spoke, é necessário usar o emparelhamento de rede virtual para conectar o hub a cada spoke. Você pode parear redes virtuais na mesma região ou em regiões diferentes.

4. Implementar o código do Terraform

  1. Crie um diretório para conter o código de exemplo de toda a série de vários artigos.

  2. Crie um arquivo chamado main.tf e insira o seguinte código:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>2.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Crie um arquivo chamado variables.tf para incluir as variáveis do projeto, depois insira o seguinte código:

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

    Pontos principais:

    • Este artigo usa uma senha que você insere quando chama terraform plan. Em um aplicativo real, talvez você prefira usar um par de chaves pública/privada SSH.
    • Para obter mais informações sobre chaves SSH e o Azure, confira Como usar chaves SSH com o Windows no Azure.

Solucionar problemas do Terraform no Azure

Solucionar problemas comuns ao usar o Terraform no Azure

Próximas etapas