Создание гибридной сети со звездообразной топологией с помощью Terraform в Azure

Terraform поддерживает определение, предварительный просмотр и развертывание облачной инфраструктуры. С помощью Terraform можно создавать файлы конфигурации с применением синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации создается план выполнения, который позволяет предварительно просматривать изменения инфраструктуры до их развертывания. После проверки изменений примените план выполнения для развертывания инфраструктуры.

В этой серии статей показано, как использовать Terraform для реализации в Azure звездообразной топологии сети.

Звездообразная топология — это способ изоляции рабочих нагрузок при совместном использовании общих служб. В число этих служб входят службы идентификации и обеспечения безопасности. Концентратор — это виртуальная сеть, которая выступает в качестве центральной точки подключения к локальной сети. Периферийные зоны — это виртуальные сети, которые устанавливают пиринг с концентратором. Общие службы развертываются в концентраторе, а отдельные рабочие нагрузки — в периферийных сетях.

Вы узнаете, как выполнять следующие задачи:

  • размещение ресурсов эталонной архитектуры звездообразной гибридной сети;
  • создание ресурсов устройства сети-концентратора;
  • создание сети-концентратора в Azure в качестве общей точки для всех ресурсов;
  • создание отдельных рабочих нагрузок в качестве периферийных виртуальных сетей в Azure;
  • установка шлюзов и подключений между локальными сетями и сетями Azure;
  • создание пирингов между виртуальной и периферийной сетями.

1. Настройка среды

2. Общие сведения об архитектуре звездообразной топологии

В звездообразной топологии концентратор является виртуальной сетью. Виртуальная сеть выступает в качестве центральной точки подключения к локальной сети. Периферийные зоны — это виртуальные сети, которые устанавливают пиринг с концентратором и могут использоваться для изоляции рабочих нагрузок. Трафик передается между локальным центром обработки данных и концентратором через подключение ExpressRoute или VPN-шлюз. На следующем изображении показаны компоненты в звездообразной топологии:

Hub and spoke topology architecture in Azure

Преимущества звездообразной топологии

Звездообразная топология сети — это способ изоляции рабочих нагрузок при совместном использовании общих служб. В число этих служб входят службы идентификации и обеспечения безопасности. Концентратор — это виртуальная сеть, которая выступает в качестве центральной точки подключения к локальной сети. Периферийные зоны — это виртуальные сети, которые устанавливают пиринг с концентратором. Общие службы развертываются в концентраторе, а отдельные рабочие нагрузки — в периферийных сетях. Ниже приведены некоторые преимущества звездообразной топологии сети.

  • Сокращение затрат путем централизации служб в одном расположении, которое можно использовать для нескольких рабочих нагрузок. К этим рабочим нагрузкам относятся виртуальные сетевые модули и DNS-серверы.
  • Превышение лимитов подписки путем пиринга виртуальных сетей из разных подписок к центральному концентратору.
  • Разделение областей ответственности между центральным ИТ-отделом (SecOps, InfraOps) и рабочими нагрузками (DevOps).

Стандартные варианты использования звездообразной архитектуры

Ниже перечислены некоторые стандартные варианты использования звездообразной архитектуры.

  • У многих клиентов есть рабочие нагрузки, развернутые в различных средах. Это могут быть среды для разработки, тестирования, а также рабочие среды. Во многих случаях в этих рабочих нагрузках должны совместно использоваться службы, такие как DNS, IDS, NTP или доменные службы Active Directory. Эти общие службы могут размещаться в виртуальной сети-концентраторе. Таким образом, каждая среда развертывается в периферийной зоне для обеспечения изоляции.
  • Рабочие нагрузки, которые не требуют подключения друг к другу, но требуют доступа к общим службам.
  • Предприятия, которым требуется централизованный контроль аспектов безопасности.
  • Предприятия, которым необходимо отдельно управлять рабочими нагрузками в каждой периферийной зоне.

3. Предварительный просмотр демонстрационных компонентов

При работе с каждой статье из этой серии вы будете определять различные компоненты в разных скриптах Terraform. Созданная и развернутая демонстрационная архитектура состоит из следующих компонентов.

  • Локальная сеть. Частная локальная сеть, работающая в пределах организации. Для эталонной звездообразной архитектуры виртуальная сеть в Azure используется для моделирования локальной сети.

  • VPN-устройство. VPN-устройство или служба предоставляет возможность внешнего подключения к локальной сети. В качестве VPN-устройства может использоваться аппаратное устройство или программное решение.

  • Виртуальная сеть концентратора. Концентратор представляет собой центральную точку подключения к локальной сети и место для размещения служб. Эти службы могут использоваться различными рабочими нагрузками, размещенными в периферийных виртуальных сетях.

  • Подсеть шлюза. Шлюзы виртуальных сетей хранятся в одной подсети.

  • Виртуальные сети периферийных зон. Периферийные зоны можно использовать для изоляции рабочих нагрузок в их виртуальных сетях, управляемых отдельно от других периферийных зон. Каждая рабочая нагрузка может содержать несколько уровней с несколькими подсетями, подключенными через подсистемы балансировки нагрузки Azure.

  • Пиринговая связь между виртуальными сетями. Две виртуальные сети можно подключить между собой с помощью пирингового подключения. Пиринговые подключения представляют собой нетранзитивные подключения между виртуальными подсетями с низкой задержкой. После установки пирингового подключения виртуальные сети обмениваются трафиком по магистрали Azure без необходимости использования маршрутизатора. В звездообразной топологии сети пиринг виртуальной сети используется для подключения концентратора к каждой периферийной зоне. Пиринг можно создать между виртуальными сетями в одном или в разных регионах.

4. Реализация кода Terraform

  1. Создайте каталог, содержащий пример кода для всей серии из нескольких статей.

  2. Создайте файл с именем main.tf и вставьте следующий код:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>2.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Создайте файл с именем variables.tf, содержащий переменные проекта, и вставьте следующий код:

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

    Основные моменты:

    • В этой статье используется пароль, введенный при вызове terraform plan. В реальных приложениях рекомендуется использовать пару открытого и закрытого SSH-ключей.
    • Дополнительные сведения см. в статье об использовании SSH-ключей с Windows в Azure.

Устранение неполадок с Terraform в Azure

Устранение распространенных проблем при использовании Terraform в Azure

Следующие шаги