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

Terraform permite a definição, visualização e implantação de infraestrutura em nuvem. Usando Terraform, você cria arquivos de configuração usando a sintaxe HCL. A sintaxe HCL permite especificar 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 na infraestrutura antes que elas sejam implantadas. Depois de verificar as alterações, você aplica 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 hub e spoke.

Uma topologia hub and spoke é uma maneira de isolar cargas de trabalho enquanto compartilha serviços comuns. Estes serviços incluem identidade e segurança. O hub é uma rede virtual (VNet) que atua como um ponto de conexão central para uma rede local. Os spokes são VNets que configuram o peering com o hub. Os serviços compartilhados são implantados no hub, enquanto cargas de trabalho individuais são implantadas dentro de redes faladas.

Neste artigo, vai aprender a:

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

1. Configure seu ambiente

  • Subscrição do Azure: se não tem uma subscrição do Azure, crie uma conta gratuita antes de começar.

2. Compreender a arquitetura de topologia hub e spoke

Na topologia hub and spoke, o hub é uma VNet. A rede virtual atua como um ponto central de conectividade com sua rede local. Os spokes são VNets que funcionam como elemento da rede do hub e podem ser utilizados para isolar cargas de trabalho. O tráfego flui entre o datacenter no local e o hub através de uma ligação de gateway ExpressRoute ou de VPN. A imagem a seguir demonstra os componentes em uma topologia de hub e spoke:

Hub and spoke topology architecture in Azure

Benefícios da topologia hub e spoke

Uma topologia de rede hub and spoke é uma maneira de isolar cargas de trabalho enquanto compartilha serviços comuns. Estes serviços incluem identidade e segurança. O hub é uma VNet que atua como um ponto de conexão central para uma rede local. Os spokes são VNets que configuram o peering com o hub. Os serviços compartilhados são implantados no hub, enquanto cargas de trabalho individuais são implantadas dentro de redes faladas. Aqui estão alguns benefícios da topologia de rede hub e spoke:

  • Economia de custos centralizando os serviços em um único local que pode ser compartilhado por várias cargas de trabalho. Essas cargas de trabalho incluem dispositivos virtuais de rede e servidores DNS.
  • Ultrapassar os limites de subscrição ao configurar o peering das VNets de subscrições diferentes para o hub central.
  • Separação das preocupações entre o TI central (SecOps, InfraOps) e as cargas de trabalho (DevOps).

Usos típicos para a arquitetura hub e spoke

Alguns dos usos típicos de uma arquitetura hub and 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 VNet do hub. Dessa forma, cada ambiente é implantado em um ambiente para manter o isolamento.
  • Cargas de trabalho que não exigem conectividade entre si, mas exigem acesso a serviços compartilhados.
  • Empresas que necessitam de controlo central sobre os aspetos de segurança.
  • Empresas que exigem gerenciamento segregado para as cargas de trabalho em cada palestra.

3. Visualize os componentes de demonstração

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

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

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

  • VNet do Hub. O hub é o ponto central de conectividade com sua rede local e um local para hospedar serviços. Esses serviços podem ser consumidos pelas diferentes cargas de trabalho hospedadas nas VNets faladas.

  • Sub-rede do gateway. Os gateways de rede virtual são mantidos na mesma sub-rede.

  • VNets Spoke. Os spokes podem ser utilizados para isolar cargas de trabalho nas suas próprias VNets, geridas separadamente dos outros spokes. Cada carga de trabalho pode incluir várias camadas com várias sub-redes ligadas através de balanceadores de carga do Azure.

  • VNet peering. Duas redes virtuais podem ser conectadas usando uma conexão de emparelhamento. As ligações de peering são ligações não transitivas de baixa latência entre as VNets. Uma vez emparelhadas, as VNets trocam tráfego usando o backbone do Azure, sem precisar de um roteador. Em uma topologia de rede hub and spoke, o emparelhamento VNet é usado para conectar o hub a cada raio. Você pode emparelhar redes virtuais na mesma região ou em regiões diferentes.

4. Implementar o código Terraform

  1. Crie um diretório para conter o código de exemplo para 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 nomeado variables.tf para conter as variáveis de projeto e 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 liga para terraform plano . Em um aplicativo do mundo real, você pode considerar o uso de um par de chaves públicas/privadas SSH.
    • Para obter mais informações sobre chaves SSH e Azure, consulte 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óximos passos