Membuat topologi jaringan hibrid hub dan spoke di Azure menggunakan Terraform

Terraform memungkinkan definisi, pratinjau, dan penyebaran infrastruktur cloud. Menggunakan Terraform, Anda membuat file konfigurasi menggunakan sintaksis HCL. Sintaksis HCL memungkinkan Anda menentukan penyedia cloud - seperti Azure - dan elemen yang membentuk infrastruktur cloud Anda. Setelah membuat file konfigurasi, Anda membuat rencana eksekusi yang memungkinkan Anda untuk melihat pratinjau perubahan infrastruktur Anda sebelum disebarkan. Setelah memverifikasi perubahan, Anda menerapkan rencana eksekusi untuk menyebarkan infrastruktur.

Seri artikel ini menunjukkan cara menggunakan Terraform untuk menerapkan hub dan topologi jaringan spoke di Azure.

Topologi hub dan spoke adalah cara untuk mengisolasi beban kerja sambil berbagi layanan umum. Layanan ini mencakup identitas dan keamanan. Hub adalah jaringan virtual (VNet) di Azure yang bertindak sebagai titik pusat konektivitas ke jaringan lokal Anda. Spoke adalah VNet yang melakukan peering dengan hub. Layanan bersama disebarkan di hub, sementara beban kerja individu disebarkan dalam jaringan spoke.

Dalam artikel ini, Anda akan mempelajari cara:

  • Menata sumber daya arsitektur referensi jaringan hibrida hub dan spoke
  • Membuat sumber daya appliance jaringan hub
  • Membuat jaringan hub di Azure untuk berperan sebagai titik umum untuk semua sumber daya
  • Membuat beban kerja individual sebagai VNet spoke di Azure
  • Membuat gateway dan koneksi antara jaringan lokal dan Azure
  • Membuat perekanan VNet ke jaringan spoke

1. Mengonfigurasi lingkungan Anda

  • Langganan Azure: Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum memulai.

2. Memahami arsitektur topologi hub dan spoke

Dalam topologi hub dan spoke, hubnya adalah VNet. VNet bertindak sebagai titik pusat konektivitas ke jaringan lokal. Spoke adalah VNet yang di-peering dengan hub, dan dapat digunakan untuk mengisolasi beban kerja. Alur lalu lintas antara pusat data lokal dan hub melalui koneksi ExpressRoute atau koneksi gateway VPN. Gambar berikut menunjukkan komponen dalam topologi hub dan spoke:

Hub and spoke topology architecture in Azure

Manfaat topologi hub dan spoke

Topologi jaringan hub dan spoke merupakan cara mengisolasi beban kerja sambil berbagi layanan umum. Layanan ini mencakup identitas dan keamanan. Hub merupakan VNet yang bertindak sebagai titik pusat konektivitas ke jaringan lokal. Spoke adalah VNet yang melakukan peering dengan hub. Layanan bersama disebarkan di hub, sementara beban kerja individu disebarkan dalam jaringan spoke. Berikut adalah beberapa manfaat dari topologi jaringan hub dan spoke:

  • Penghematan biaya dengan memusatkan layanan pada satu lokasi yang dapat dibagi oleh beberapa beban kerja. Beban kerja ini termasuk appliance virtual jaringan dan server DNS.
  • Mengatasi batas langganan dengan memasangkan VNet dari langganan yang berbeda ke hub sentral.
  • Pemisahan fokus antara TI pusat (SecOps, InfraOps) dan beban kerja (DevOps).

Penggunaan khas arsitektur hub dan spoke

Beberapa kegunaan khas untuk arsitektur hub dan spoke meliputi:

  • Banyak pelanggan memiliki beban kerja yang digunakan di lingkungan yang berbeda. Lingkungan tersebut mungkin termasuk pengembangan, pengujian, dan produksi. Sering kali, beban kerja ini perlu berbagi layanan seperti DNS, IDS, NTP, atau AD DS. Layanan bersama ini dapat ditempatkan di VNet hub. Dengan cari ini, tiap lingkungan disebarkan ke satu spoke untuk menjaga isolasi.
  • Beban kerja yang tidak memerlukan konektivitas satu sama lain, tetapi memerlukan akses ke layanan bersama.
  • Perusahaan yang memerlukan kontrol pusat atas aspek keamanan.
  • Perusahaan yang membutuhkan manajemen terpisah untuk beban kerja di setiap spoke.

3. Pratinjau komponen demo

Saat Anda mengerjakan setiap artikel dalam seri ini, berbagai komponen didefinisikan dalam skrip Terraform yang berbeda. Arsitektur demo yang dibuat dan disebarkan terdiri dari komponen-komponen berikut:

  • Jaringan lokal. Jaringan area lokal privat yang berjalan dalam suatu organisasi. Untuk arsitektur referensi hub dan spoke, satu VNet di Azure digunakan untuk mensimulasikan jaringan lokal.

  • Perangkat VPN. Satu perangkat atau layanan VPN menyediakan konektivitas eksternal ke jaringan lokal. Perangkat VPN bisa berupa alat perangkat keras atau solusi perangkat lunak.

  • Hub VNet. Hub adalah titik pusat konektivitas ke jaringan lokal Anda dan tempat untuk hosting layanan. Layanan ini dapat dikonsumsi oleh berbagai beban kerja yang dihosting dalam VNet spoke.

  • Subnet gateway. Gateway VNet disimpan di subnet yang sama.

  • Spoke vNet. Spoke dapat digunakan untuk mengisolasi beban kerja di jaringan virtualnya sendiri, yang dikelola secara terpisah dari spoke lain. Setiap beban kerja mungkin mencakup beberapa tingkatan, dengan beberapa subnet yang terhubung melalui penyeimbang beban Azure.

  • Perekanan VNet. Dua VNet dapat dihubungkan dengan koneksi perekanan. Koneksi peering adalah koneksi latensi rendah non-transitif antar VNets. Setelah dilakukan peering, jaringan virtual bertukar lalu lintas dengan menggunakan Azure backbone tanpa memerlukan router. Dalam topologi jaringan hub dan spoke, peering VNet digunakan untuk menghubungkan hub ke setiap spoke. Anda dapat merekankan VNet di wilayah yang sama, atau wilayah yang berbeda.

4. Menerapkan kode Terraform

  1. Buat direktori untuk memuat kode contoh untuk seluruh seri multi-artikel ini.

  2. Buat file bernama main.tf dan masukkan kode berikut:

    terraform {
    
      required_version = ">=0.12"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "~>2.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
  3. Buat file bernama variables.tf untuk memuat variabel proyek dan masukkan kode berikut:

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

    Poin utama:

    • Artikel ini menggunakan kata sandi yang Anda masukkan saat memanggil terraform plan. Dalam aplikasi dunia nyata, Anda bisa mempertimbangkan untuk menggunakan pasangan kunci publik/pribadi SSH.
    • Informasi selengkapnya tentang kunci SSH, lihat Cara menggunakan kunci SSH dengan Windows di Azure.

Memecahkan masalah Terraform pada Azure

Memecahkan masalah umum saat menggunakan Terraform di Azure

Langkah berikutnya