全部产品
Search
文档中心

Cloud Enterprise Network:Mengaktifkan instance ECS untuk mengakses OSS di lintas wilayah melalui koneksi VPC

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Router transit edisi perusahaan untuk mengaktifkan instance Elastic Compute Service (ECS) dalam virtual private cloud (VPC) agar dapat mengakses Object Storage Service (OSS) di lintas wilayah melalui koneksi VPC.

Catatan

Anda dapat menjalankan kode contoh dalam contoh ini dengan satu klik.

Skenario

Seperti yang ditunjukkan pada gambar di atas, sebuah perusahaan telah menerapkan VPC1 di wilayah China (Shanghai) dengan layanan yang berjalan pada instance ECS. Perusahaan tersebut telah mengaktifkan OSS di wilayah China (Hangzhou) dan ingin mengaktifkan instance ECS di VPC1 untuk mengakses layanan OSS di wilayah China (Hangzhou).

Untuk menangani masalah ini, perusahaan dapat membuat VPC (VPC2) di wilayah China (Hangzhou), tempat OSS diterapkan, dan menghubungkan VPC1 dan VPC2 ke Router transit edisi perusahaan di wilayah China (Shanghai) dan China (Hangzhou). Router transit edisi perusahaan memungkinkan VPC1 dan VPC2 berkomunikasi satu sama lain melalui koneksi lintas wilayah. Dengan cara ini, instance ECS di VPC1 dapat mengakses OSS di VPC2.

Catatan

Untuk mengizinkan instance ECS di VPC mengakses OSS di wilayah yang berbeda menggunakan Router transit edisi perusahaan, setidaknya satu VPC harus diterapkan di wilayah tempat OSS diaktifkan. Dalam contoh ini, jika ada VPC yang sudah ada di wilayah China (Hangzhou), perusahaan tidak perlu membuat VPC2 dan dapat menghubungkan VPC yang sudah ada ke Router transit edisi perusahaan. Instance ECS di wilayah China (Shanghai) dapat mengakses OSS melalui VPC apa pun di wilayah China (Hangzhou).

Perencanaan Jaringan

Penting

Saat Anda menetapkan blok CIDR, pastikan bahwa blok CIDR dari VPC tidak tumpang tindih.

Sumber Daya

Wilayah VPC

Blok CIDR dan Alamat IP

VPC1

China (Shanghai)

Blok CIDR utama: 192.168.0.0/16

  • Blok CIDR vSwitch 1: 192.168.0.0/24. vSwitch 1 ditempatkan di Zona M.

  • Blok CIDR vSwitch 2: 192.168.20.0/24. vSwitch 1 ditempatkan di Zona N.

  • Alamat IP ECS: 192.168.0.1. Instance ECS ditempatkan di vSwitch 1.

VPC2

China (Hangzhou)

Blok CIDR utama: 172.16.0.0/16

  • Blok CIDR vSwitch 1: 172.16.1.0/24. vSwitch 1 ditempatkan di Zona J.

  • Blok CIDR vSwitch 2: 172.16.2.0/24. vSwitch 2 ditempatkan di Zona K.

Prosedur

Topik ini menyediakan dua metode konfigurasi: konsol dan Terraform. Pilih metode yang sesuai dengan kebutuhan Anda.

Konsol

Persiapan

Sebelum memulai, pastikan prasyarat berikut terpenuhi:

  • OSS telah diaktifkan di wilayah China (Hangzhou). Untuk informasi lebih lanjut, lihat Memulai dengan OSS.

  • VPC1 telah dibuat di wilayah China (Shanghai), dengan layanan yang ditempatkan pada instance ECS. Untuk informasi lebih lanjut, lihat Buat VPC IPv4.

  • VPC2 telah didirikan di wilayah China (Hangzhou). Untuk informasi lebih lanjut, lihat Buat dan kelola VPC.

    vSwitch yang cukup ditempatkan di setiap VPC di zona Router transit edisi perusahaan. Setiap vSwitch memiliki setidaknya satu alamat IP yang tidak digunakan.

    • Jika Router transit edisi perusahaan ditempatkan di wilayah yang hanya mendukung satu zona, misalnya, China (Nanjing - Local Region), VPC harus memiliki setidaknya satu vSwitch di zona tersebut.

    • Jika Router transit edisi perusahaan ditempatkan di wilayah yang mendukung beberapa zona, misalnya, China (Shanghai), VPC harus memiliki setidaknya dua vSwitch di zona tersebut. vSwitch harus berada di zona yang berbeda.

    Untuk informasi lebih lanjut, lihat Bagaimana koneksi VPC bekerja.

  • Anda memiliki pengetahuan tentang aturan grup keamanan untuk VPC1 dan VPC2. Aturan grup keamanan mengizinkan instance ECS di VPC1 untuk mengakses OSS melalui VPC2. Untuk informasi lebih lanjut, lihat Kueri aturan grup keamanan dan Tambah aturan grup keamanan.

  • Instance Cloud Enterprise Network (CEN) telah dibuat. Untuk informasi lebih lanjut, lihat Buat instance CEN.

  • Router transit edisi perusahaan telah ditempatkan di wilayah China (Shanghai) dan China (Hangzhou). Untuk informasi lebih lanjut, lihat Buat instance router transit.

    Saat Anda membuat Router transit edisi perusahaan, gunakan pengaturan default.

Langkah 1: Buat koneksi VPC

Hubungkan VPC1 ke Router transit edisi perusahaan di wilayah China (Shanghai), dan VPC2 ke Router transit edisi perusahaan di wilayah China (Hangzhou).

  1. Masuk ke Konsol CEN.

  2. Navigasikan ke halaman Instances, temukan instance CEN target, dan klik ID-nya.

    Dalam contoh ini, instance CEN yang disebutkan di bagian Preparations digunakan.

  3. Pada tab Basic Information > Transit Router, temukan instance router transit dan klik Create Connection di kolom Actions.

  4. Pada halaman Connect with Peer Network Instance, atur parameter berikut, dan klik OK.

    Konfigurasikan parameter untuk menghubungkan VPC1 ke Router transit edisi perusahaan di wilayah China (Shanghai) dan VPC2 ke yang di wilayah China (Hangzhou) dengan merujuk pada tabel berikut:

    Parameter

    Deskripsi

    VPC1

    VPC2

    Network Type

    Pilih jenis instance jaringan yang ingin Anda hubungkan.

    Virtual Private Cloud (VPC)

    Virtual Private Cloud (VPC)

    Region

    Pilih wilayah tempat instance jaringan ditempatkan.

    China (Shanghai)

    China (Hangzhou)

    Transit Router

    ID router transit di wilayah yang dipilih akan otomatis ditampilkan.

    Resource Owner ID

    Pilih akun Alibaba Cloud tempat instance tersebut dimiliki.

    Current Account

    Current Account

    Billing Method

    Nilai default adalah Pay-As-You-Go.

    Attachment Name

    Masukkan nama untuk koneksi jaringan.

    Koneksi VPC1

    Koneksi VPC2

    Network Instance

    Pilih ID instance jaringan.

    Pilih VPC1

    Pilih VPC2

    VSwitch

    Pilih vSwitch di zona router transit.

    Jika setiap zona router transit memiliki vSwitch, Anda dapat memilih beberapa zona dan memilih vSwitch di setiap zona untuk mengaktifkan pemulihan bencana zona.

    • Zona F Shanghai: Pilih vSwitch 1

    • Zona G Shanghai: Pilih vSwitch 2

    • Zona H Hangzhou: Pilih vSwitch 1

    • Zona I Hangzhou: Pilih vSwitch 2

    Advanced Settings

    Gunakan pengaturan default untuk VPC1 dan VPC2. Semua fitur lanjutan diaktifkan untuk VPC.

Langkah 2: Buat koneksi lintas wilayah

Router transit edisi perusahaan untuk VPC1 dan VPC2 berada di wilayah yang berbeda, sehingga secara default, VPC1 dan VPC2 tidak dapat berkomunikasi. Buat koneksi lintas wilayah antara wilayah China (Hangzhou) dan China (Shanghai) untuk mengaktifkan komunikasi lintas wilayah antara VPC1 dan VPC2.

  1. Masuk ke Konsol CEN.

  2. Pada halaman Instances, klik ID instance CEN yang ingin Anda kelola.

  3. Navigasikan ke tab Basic Information > Transit Router, pilih instance router transit, dan klik Create Connection di kolom Actions.

  4. Pada halaman Connection with Peer Network Instance, konfigurasikan parameter berikut, lalu klik OK.

    Tabel di bawah mencantumkan parameter yang erat kaitannya dengan contoh ini. Parameter lainnya tetap menggunakan nilai default. Untuk informasi lebih lanjut, lihat Buat koneksi lintas wilayah menggunakan Router transit edisi perusahaan.

    Parameter

    Deskripsi

    Instance Type

    Pilih Inter-region Connection.

    Region

    Pilih salah satu wilayah yang ingin dihubungkan.

    Dalam contoh ini, China (Shanghai) dipilih.

    Peer Region

    Pilih wilayah peer yang ingin dihubungkan.

    Dalam contoh ini, China (Hangzhou) dipilih.

    Bandwidth Allocation Mode

    Pilih metode yang digunakan untuk mengalokasikan bandwidth ke koneksi lintas wilayah.

    Dalam contoh ini, Pay-By-Data-Transfer dipilih. Sistem akan menagih Anda berdasarkan lalu lintas aktual dari koneksi lintas wilayah.

    Bandwidth

    Tentukan nilai bandwidth untuk koneksi lintas wilayah. Unit: Mbps.

    Dalam mode alokasi bandwidth Pay-By-Data-Transfer, parameter ini menentukan nilai bandwidth maksimum untuk koneksi lintas wilayah.

    Default Line Type

    Pilih tipe jalur untuk koneksi lintas wilayah.

    Dalam contoh ini, nilai default digunakan. Untuk informasi lebih lanjut, lihat Tipe Jalur.

    Advanced Settings

    Dalam contoh ini, pengaturan default dipertahankan dengan semua tiga fitur lanjutan diaktifkan.

Langkah 3: Tambahkan rute yang mengarah ke OSS di VPC

Dengan koneksi lintas wilayah yang telah dibuat, VPC1 dan VPC2 sekarang dapat berkomunikasi menggunakan Router transit edisi perusahaan. Namun, instance ECS di VPC1 masih tidak dapat mengakses OSS di VPC2. Anda harus menambahkan rute yang mengarah ke OSS di tabel rute VPC1 untuk mengarahkan lalu lintas dari VPC1 ke router transit.

  1. Masuk ke Konsol VPC.

  2. Di bilah navigasi atas, pilih wilayah tempat VPC1 ditempatkan.

    Untuk contoh ini, pilih China (Shanghai).

  3. Klik Route Tables di panel navigasi sisi kiri.

  4. Pada halaman Route Tables, temukan tabel rute untuk VPC1 dan klik ID-nya.

    Dalam contoh ini, VPC1 hanya memiliki satu tabel rute sistem. Jika VPC Anda memiliki beberapa tabel rute, pilih yang terkait dengan vSwitch tempat instance ECS ditempatkan.

  5. Navigasikan ke tab Route Entry List, pilih tab Custom Route, lalu klik Add Route Entry.

  6. Di panel Add Route Entry, konfigurasikan parameter berikut dan klik OK:

    Tambahkan rute yang mengarah ke semua blok CIDR OSS di wilayah China (Hangzhou) ke tabel rute VPC1. Tabel berikut menjelaskan parameter.

    Untuk informasi lebih lanjut tentang blok CIDR layanan OSS di wilayah China (Hangzhou), lihat Titik akhir internal OSS dan rentang VIP.

    Parameter

    Deskripsi

    Rute 1

    Rute 2

    Rute 3

    Rute 4

    Name

    Masukkan nama untuk rute kustom.

    Blok CIDR OSS 1

    Blok CIDR OSS 2

    Blok CIDR OSS 3

    Blok CIDR OSS 4

    Destination CIDR Block

    Masukkan blok CIDR tujuan.

    100.118.28.0/24

    100.114.102.0/24

    100.98.170.0/24

    100.118.31.0/24

    Next Hop Type

    Pilih jenis hop berikutnya dan pilih hop berikutnya untuk rute kustom.

    Pilih Transit Router lalu pilih koneksi VPC1.

    Pilih Transit Router lalu pilih koneksi VPC1.

    Pilih Transit Router lalu pilih koneksi VPC1.

    Pilih Transit Router lalu pilih koneksi VPC1.

Langkah 4: Tambahkan rute yang mengarah ke OSS di router transit

Anda perlu menambahkan rute yang mengarah ke OSS ke tabel rute Router transit edisi perusahaan di wilayah China (Hangzhou). Saat permintaan dari instance ECS di VPC1 mencapai Router transit edisi perusahaan, Router transit edisi perusahaan meneruskan permintaan tersebut ke VPC2 berdasarkan kebijakan rute OSS. Kemudian, instance ECS dapat mengakses OSS melalui VPC2.

  1. Masuk ke Konsol CEN.

  2. Pergi ke halaman CEN Instance, temukan instance CEN target, dan klik ID-nya.

  3. Pada tab Basic Information > Transit Router, temukan instance router transit di wilayah China (Hangzhou), dan klik ID-nya.

  4. Pada halaman detail instance router transit, klik tab Route Table. Di panel navigasi sisi kiri, pilih tabel rute target.

    Secara default, VPC1 dan VPC2 terkait dengan tabel default Router transit edisi perusahaan karena mereka memiliki pengaturan lanjutan yang diaktifkan. Oleh karena itu, tabel rute default (tabel rute sistem) router transit dipilih dalam contoh ini.

  5. Pada tab Route Entry, klik Add Route Entry.

  6. Di kotak dialog Add Route Entry, masukkan parameter berikut dan klik Confirm.

    Tambahkan rute yang mengarah ke blok CIDR OSS di wilayah China (Hangzhou) ke tabel rute router transit.

    Parameter

    Deskripsi

    Rute 1

    Rute 2

    Rute 3

    Rute 4

    Name

    Masukkan nama untuk rute.

    Blok CIDR OSS 1

    Blok CIDR OSS 2

    Blok CIDR OSS 3

    Blok CIDR OSS 4

    Destination CIDR Block

    Masukkan blok CIDR tujuan untuk rute.

    100.118.28.0/24

    100.114.102.0/24

    100.98.170.0/24

    100.118.31.0/24

    Blackhole Route

    Tentukan apakah rute tersebut adalah rute blackhole.

    • Yes: menentukan bahwa rute tersebut adalah rute blackhole. Semua lalu lintas yang ditujukan untuk rute ini akan dijatuhkan.

    • No: menentukan bahwa rute tersebut bukan rute blackhole. Dalam hal ini, Anda harus menentukan hop berikutnya untuk rute tersebut.

    Pilih No

    Pilih No

    Pilih No

    Pilih No.

    Next Hop

    Pilih hop berikutnya untuk rute.

    Pilih koneksi VPC2

    Pilih koneksi VPC2

    Pilih koneksi VPC2

    Pilih koneksi VPC2

Langkah 5: Uji konektivitas jaringan

Setelah Anda menyelesaikan langkah-langkah ini, instance ECS di VPC1 dapat mengakses OSS lintas wilayah melalui koneksi VPC. Dalam contoh ini, ECS1 digunakan untuk mengunduh gambar dari OSS untuk memeriksa apakah instance ECS di VPC1 dapat mengakses OSS.

  1. Masuk ke ECS1 di VPC1. Untuk informasi lebih lanjut, lihat Panduan koneksi jarak jauh ECS.

  2. Gunakan ECS1 untuk mengunduh gambar bernama OSStest.jpg dari OSS.

    Catatan

    Pastikan instance ECS memiliki izin baca/tulis untuk file gambar sebelum pengujian. Untuk informasi lebih lanjut, lihat Kontrol akses.

    wget https://zxtXXXXX.oss-cn-hangzhou-internal.aliyuncs.com/OSStest.jpg
    
    # "zxtXXXXX.oss-cn-hangzhou-internal.aliyuncs.com" adalah nama domain OSS.
    # "OSStest.jpg" adalah nama file gambar.

    Untuk informasi tentang nama domain OSS, lihat Aturan penggunaan nama domain OSS.

    Respon berikut menunjukkan bahwa ECS1 dapat mengakses OSS melalui koneksi VPC.ECS访问跨地域OSS-测试连通性

Terraform

Anda dapat menggunakan Terraform untuk menyiapkan lingkungan dalam topik ini. Untuk detail tentang instalasi dan konfigurasi Terraform, lihat Instal Terraform.

Langkah-langkah di bawah ini menunjukkan cara menjalankan Terraform v1.9.8 pada host Linux. Pastikan Anda telah menyelesaikan Otentikasi.

Catatan

Sumber daya tertentu dalam contoh ini mungkin mengakibatkan biaya. Lepas atau batalkan langganan sumber daya tersebut saat tidak lagi diperlukan.

Langkah 1: Buat sumber daya

  1. Buat direktori untuk skenario dan navigasikan ke dalamnya.

    mkdir tf-cen-oss && cd tf-cen-oss
  2. Buat file main.tf untuk mendefinisikan sumber daya yang diperlukan.

    touch main.tf
  3. Buka file main.tf, tempel kode berikut ke dalam file, dan simpan perubahan. File ini mencakup semua sumber daya dan konfigurasi yang diperlukan.

    variable "pname" {
      description = "Nama awalan untuk sumber daya"
      type        = string
      default     = "tf-cen-oss"
    }
    
    variable "region_id_hangzhou" {
      description = "ID wilayah Hangzhou"
      type        = string
      default     = "cn-hangzhou"
    }
    
    variable "region_id_shanghai" { #
      description = "ID wilayah Shanghai"
      type        = string
      default     = "cn-shanghai"
    }
    
    variable "az_hangzhou" {
      description = "Daftar zona ketersediaan yang akan digunakan"
      type        = list(string)
      default     = ["cn-hangzhou-j", "cn-hangzhou-k"]
    }
    
    variable "az_shanghai" {
      description = "Daftar zona ketersediaan yang akan digunakan"
      type        = list(string)
      default     = ["cn-shanghai-m", "cn-shanghai-n"]
    }
    
    variable "cidr_list" {
      description = "Daftar blok CIDR VPC"
      type        = list(string)
      default     = ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
    }
    
    # --- provider ---
    provider "alicloud" { # wilayah default hangzhou
      region = var.region_id_hangzhou
    }
    
    provider "alicloud" {
      alias  = "hangzhou"
      region = var.region_id_hangzhou
    }
    
    provider "alicloud" {
      alias  = "shanghai"
      region = var.region_id_shanghai
    }
    
    # --- oss ---
    resource "random_uuid" "default" {
    }
    resource "alicloud_oss_bucket" "bucket1" {
      provider = alicloud.hangzhou
      bucket   = substr("${var.pname}-${replace(random_uuid.default.result, "-", "")}", 0, 32)
    }
    
    resource "alicloud_oss_bucket_policy" "default" {
      provider = alicloud.hangzhou
      policy   = jsonencode({ "Version" : "1", "Statement" : [{ "Action" : ["oss:GetObject"], "Effect" : "Allow", "Resource" : ["acs:oss:*:*:${alicloud_oss_bucket.bucket1.bucket}"] }] })
      bucket   = alicloud_oss_bucket.bucket1.bucket
    }
    
    resource "alicloud_oss_bucket_object" "obj1" {
      provider = alicloud.hangzhou
      bucket   = alicloud_oss_bucket.bucket1.bucket
      key      = "example.txt"                     # Nama file di bucket
      content  = "this is example text content \n" # Isi file
      acl      = "public-read"
    }
    
    # --- vpc ---
    resource "alicloud_vpc" "vpc1" {
      provider   = alicloud.shanghai
      vpc_name   = "${var.pname}-1"
      cidr_block = "192.168.0.0/16"
    }
    
    resource "alicloud_vpc" "vpc2" {
      provider   = alicloud.hangzhou
      vpc_name   = "${var.pname}-2"
      cidr_block = "172.16.0.0/16"
    }
    
    resource "alicloud_vswitch" "vsw1-1" {
      provider     = alicloud.shanghai
      vpc_id       = alicloud_vpc.vpc1.id
      cidr_block   = "192.168.0.0/24"
      zone_id      = var.az_shanghai[0]
      vswitch_name = "${var.pname}-vsw1-1"
    }
    resource "alicloud_vswitch" "vsw1-2" {
      provider     = alicloud.shanghai
      vpc_id       = alicloud_vpc.vpc1.id
      cidr_block   = "192.168.1.0/24"
      zone_id      = var.az_shanghai[1]
      vswitch_name = "${var.pname}-vsw1-2"
    }
    resource "alicloud_vswitch" "vsw2-1" {
      provider     = alicloud.hangzhou
      vpc_id       = alicloud_vpc.vpc2.id
      cidr_block   = "172.16.0.0/24"
      zone_id      = var.az_hangzhou[0]
      vswitch_name = "${var.pname}-vsw2-1"
    }
    resource "alicloud_vswitch" "vsw2-2" {
      provider     = alicloud.hangzhou
      vpc_id       = alicloud_vpc.vpc2.id
      cidr_block   = "172.16.1.0/24"
      zone_id      = var.az_hangzhou[1]
      vswitch_name = "${var.pname}-vsw2-2"
    }
    
    # --- cen ---
    # cen
    resource "alicloud_cen_instance" "cen1" {
      cen_instance_name = "${var.pname}-cen1"
    }
    
    # tr
    resource "alicloud_cen_transit_router" "tr1" {
      provider            = alicloud.shanghai
      transit_router_name = "${var.pname}-tr1"
      cen_id              = alicloud_cen_instance.cen1.id
    }
    resource "alicloud_cen_transit_router" "tr2" {
      provider            = alicloud.hangzhou
      transit_router_name = "${var.pname}-tr2"
      cen_id              = alicloud_cen_instance.cen1.id
    }
    data "alicloud_cen_transit_router_route_tables" "tr1" { # dapatkan tabel rute sys tr
      transit_router_id               = alicloud_cen_transit_router.tr1.transit_router_id
      transit_router_route_table_type = "System"
    }
    data "alicloud_cen_transit_router_route_tables" "tr2" {
      transit_router_id               = alicloud_cen_transit_router.tr2.transit_router_id
      transit_router_route_table_type = "System"
    }
    
    # tr-peer
    resource "alicloud_cen_transit_router_peer_attachment" "peer" {
      provider                      = alicloud.shanghai
      cen_id                        = alicloud_cen_instance.cen1.id
      transit_router_id             = alicloud_cen_transit_router.tr1.transit_router_id
      peer_transit_router_region_id = var.region_id_hangzhou
      peer_transit_router_id        = alicloud_cen_transit_router.tr2.transit_router_id
      bandwidth_type                = "DataTransfer"
      bandwidth                     = 1
      auto_publish_route_enabled    = true # default adalah false
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass_peer1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa_peer1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass_peer2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa_peer2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_peer_attachment.peer.transit_router_attachment_id
    }
    
    # attach1  
    resource "alicloud_cen_transit_router_vpc_attachment" "attach1" {
      provider          = alicloud.shanghai
      cen_id            = alicloud_cen_instance.cen1.id
      transit_router_id = alicloud_cen_transit_router.tr1.transit_router_id
      vpc_id            = alicloud_vpc.vpc1.id
      zone_mappings {
        zone_id    = var.az_shanghai[0]
        vswitch_id = alicloud_vswitch.vsw1-1.id
      }
      zone_mappings {
        zone_id    = var.az_shanghai[1]
        vswitch_id = alicloud_vswitch.vsw1-2.id
      }
      transit_router_vpc_attachment_name = "attach1"
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa1" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr1.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    resource "alicloud_route_entry" "vpc1_to_tr1" {
      provider              = alicloud.shanghai
      count                 = 3
      route_table_id        = alicloud_vpc.vpc1.route_table_id
      destination_cidrblock = var.cidr_list[count.index]
      nexthop_type          = "Attachment"
      nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    
    # attach2
    resource "alicloud_cen_transit_router_vpc_attachment" "attach2" {
      provider          = alicloud.hangzhou
      cen_id            = alicloud_cen_instance.cen1.id
      transit_router_id = alicloud_cen_transit_router.tr2.transit_router_id
      vpc_id            = alicloud_vpc.vpc2.id
      zone_mappings {
        zone_id    = var.az_hangzhou[0]
        vswitch_id = alicloud_vswitch.vsw2-1.id
      }
      zone_mappings {
        zone_id    = var.az_hangzhou[1]
        vswitch_id = alicloud_vswitch.vsw2-2.id
      }
      transit_router_vpc_attachment_name = "attach2"
    }
    resource "alicloud_cen_transit_router_route_table_association" "ass2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    resource "alicloud_cen_transit_router_route_table_propagation" "propa2" {
      transit_router_route_table_id = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_attachment_id  = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    resource "alicloud_route_entry" "vpc2_to_tr2" {
      provider              = alicloud.hangzhou
      count                 = 3
      route_table_id        = alicloud_vpc.vpc2.route_table_id
      destination_cidrblock = var.cidr_list[count.index]
      nexthop_type          = "Attachment"
      nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    
    # oss_cidr
    variable "oss_cidr" {
      description = "Blok CIDR OSS"
      type        = list(string)
      default     = ["100.118.28.0/24", "100.114.102.0/24", "100.98.170.0/24", "100.118.31.0/24"]
    }
    
    # vpc entry
    resource "alicloud_route_entry" "entry" {
      provider              = alicloud.shanghai
      count                 = 4
      route_table_id        = alicloud_vpc.vpc1.route_table_id
      destination_cidrblock = var.oss_cidr[count.index]
      nexthop_type          = "Attachment"
      nexthop_id            = alicloud_cen_transit_router_vpc_attachment.attach1.transit_router_attachment_id
    }
    
    # tr entry 
    resource "alicloud_cen_transit_router_route_entry" "tr2_rt1_entry1" {
      count                                             = 4
      transit_router_route_table_id                     = data.alicloud_cen_transit_router_route_tables.tr2.tables[0].id
      transit_router_route_entry_destination_cidr_block = var.oss_cidr[count.index]
      transit_router_route_entry_next_hop_type          = "Attachment"
      transit_router_route_entry_next_hop_id            = alicloud_cen_transit_router_vpc_attachment.attach2.transit_router_attachment_id
    }
    
    # --- ecs ---
    resource "alicloud_instance" "main" {
      provider             = alicloud.shanghai
      depends_on           = [alicloud_cen_transit_router_route_entry.tr2_rt1_entry1]
      instance_name        = "${var.pname}-ecs"
      instance_type        = "ecs.e-c1m1.large"
      security_groups      = [alicloud_security_group.default.id]
      vswitch_id           = alicloud_vswitch.vsw1-1.id
      image_id             = "aliyun_3_x64_20G_qboot_alibase_20230727.vhd"
      system_disk_category = "cloud_essd"
      private_ip           = "192.168.0.1"
      instance_charge_type = "PostPaid"
      user_data = base64encode(<<-EOT
        #!/bin/bash
        curl  https://${alicloud_oss_bucket.bucket1.bucket}.${alicloud_oss_bucket.bucket1.intranet_endpoint}/${alicloud_oss_bucket_object.obj1.key}  > /root/curl.txt
      EOT
      )
    }
    
    # sg
    resource "alicloud_security_group" "default" {
      provider = alicloud.shanghai
      name     = var.pname
      vpc_id   = alicloud_vpc.vpc1.id
    }
    
    resource "alicloud_security_group_rule" "allow_inbound_ssh" {
      provider          = alicloud.shanghai
      type              = "ingress"
      ip_protocol       = "tcp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "22/22"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
    
    resource "alicloud_security_group_rule" "allow_inbound_icmp" {
      provider          = alicloud.shanghai
      type              = "ingress"
      ip_protocol       = "icmp"
      nic_type          = "intranet"
      policy            = "accept"
      port_range        = "-1/-1"
      priority          = 1
      security_group_id = alicloud_security_group.default.id
      cidr_ip           = "0.0.0.0/0"
    }
    
    # --- output ---
    output "ecs_login_address" {
      value = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=${var.region_id_shanghai}&instanceId=${alicloud_instance.main.id}"
    }
    
    output "test_command" {
      value = "curl ${alicloud_oss_bucket.bucket1.bucket}.${alicloud_oss_bucket.bucket1.intranet_endpoint}/${alicloud_oss_bucket_object.obj1.key}"
    }
  4. Inisialisasi direktori untuk menyelesaikan pengaturan Terraform.

    terraform init
  5. Buat sumber daya. Terraform akan menampilkan pratinjau sumber daya yang akan dibuat. Setelah verifikasi, masukkan yes untuk memulai proses pembuatan.

    terraform apply

Langkah 2: Uji konektivitas

  1. Masuk ke instance ECS bernama tf-cen-oss-ecs.

    Alamat masuk untuk instance ECS dapat ditemukan di Output Terraform. Salin alamat ini ke browser dan pilih Temporary SSH Key-based sebagai metode otentikasi.

    image

  2. Di bagian Output, salin perintah curl:

    image

  3. Jalankan perintah curl di instance ECS.

    curl tf-cen-oss-xxxxxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt

    image

    Jika konten teks dapat diambil seperti yang ditunjukkan pada gambar, itu menunjukkan akses berhasil.

Langkah 3: Lepaskan sumber daya

Saat verifikasi selesai dan Anda tidak lagi membutuhkan sumber daya tersebut, jalankan perintah berikut untuk melepaskannya dan menghentikan penagihan.

terraform destroy --auto-approve

Rute

Dalam topik ini, konfigurasi rute default digunakan untuk membuat VPC dan koneksi lintas wilayah. Saat konfigurasi rute default digunakan, CEN secara otomatis mempelajari dan mengiklankan rute untuk VPC1 dan VPC2 agar dapat berkomunikasi satu sama lain. Bagian berikut menjelaskan konfigurasi rute default:

Instance VPC

Jika Anda menggunakan konfigurasi rute default (dengan semua fitur lanjutan diaktifkan) saat membuat koneksi VPC, sistem secara otomatis menerapkan konfigurasi rute berikut ke VPC:

  • Associate with Default Route Table of Transit Router

    Setelah fitur ini diaktifkan, koneksi VPC secara otomatis diasosiasikan dengan tabel rute default router transit. Router transit meneruskan lalu lintas VPC berdasarkan tabel rute default.

  • Propagate System Routes to Default Route Table of Transit Router

    Setelah fitur ini diaktifkan, rute sistem VPC diiklankan ke tabel rute default router transit. Dengan cara ini, VPC dapat berkomunikasi dengan instance jaringan lain yang terhubung ke router transit.

  • Automatically Create Route That Points to Transit Router and Adds to All Route Tables of Current VPC

    Setelah fitur ini diaktifkan, sistem secara otomatis menambahkan rute berikut ke semua tabel rute VPC: 10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16. Rute-rute tersebut mengarah ke koneksi VPC.

Koneksi lintas wilayah

Jika Anda menggunakan konfigurasi rute default (dengan semua fitur lanjutan diaktifkan) saat membuat koneksi lintas wilayah, sistem secara otomatis menerapkan konfigurasi rute berikut ke koneksi lintas wilayah:

  • Associate with Default Route Table of Transit Router

    Setelah fitur ini diaktifkan, koneksi lintas wilayah secara otomatis diasosiasikan dengan tabel rute default router transit. Router transit menggunakan tabel rute default untuk meneruskan lalu lintas jaringan lintas wilayah.

  • Propagate System Routes to Default Route Table of Transit Router

    Setelah fitur ini diaktifkan, koneksi lintas wilayah diasosiasikan dengan tabel rute default router transit di wilayah yang terhubung.

  • Automatically Advertise Routes to Peer Region

    Setelah fitur ini diaktifkan, rute dalam tabel rute router transit di wilayah saat ini secara otomatis diiklankan ke tabel rute router transit peer untuk komunikasi lintas wilayah. Tabel rute router transit merujuk pada tabel rute yang diasosiasikan dengan koneksi lintas wilayah.

Lihat rute

Anda dapat memeriksa rute dalam Konsol Manajemen Alibaba Cloud: