All Products
Search
Document Center

Cloud Enterprise Network:Akses OSS cross-region dari ECS melalui Transit Router

Last Updated:Jun 22, 2026

Topik ini menjelaskan cara menggunakan router transit Edisi Perusahaan untuk mengaktifkan instance ECS di Virtual Private Cloud (VPC) agar dapat mengakses OSS secara privat lintas wilayah.

Catatan

Kode contoh dalam tutorial ini dapat dijalankan dengan satu klik: one-click run.

Skenario

Dalam skenario ini, sebuah perusahaan telah menerapkan aplikasi pada instance ECS di VPC1, yaitu VPC di wilayah China (Shanghai). Perusahaan tersebut juga menggunakan layanan OSS di wilayah China (Hangzhou). Tujuannya adalah memungkinkan instance ECS tersebut mengakses layanan OSS secara privat dan mengambil resource.

OSS adalah layanan regional dan tidak berada di dalam VPC mana pun. Namun, VPC di wilayah yang sama dapat mengakses layanan OSS melalui titik akhir internalnya. Oleh karena itu, Anda harus membuat VPC, yaitu VPC2, di wilayah China (Hangzhou)—tempat layanan OSS tersedia—sebagai jaringan transit. Selanjutnya, sambungkan VPC1 dan VPC2 ke router transit Edisi Perusahaan di wilayah masing-masing, lalu buat koneksi antar-wilayah antara kedua router transit tersebut. Anda juga harus menambahkan rute secara manual ke blok CIDR internal OSS di VPC1 dan pada router transit di wilayah China (Hangzhou). Setelah konfigurasi selesai, alur data dari instance ECS di VPC1 menuju OSS adalah sebagai berikut: instance ECS → router transit di China (Shanghai) → koneksi antar-wilayah → router transit di China (Hangzhou) → VPC2 → titik akhir internal OSS.

Catatan

Dalam solusi ini, VPC2 hanya berfungsi sebagai jaringan transit, menyediakan jalur bagi traffic antar-wilayah menuju titik akhir internal OSS. Jika Anda sudah memiliki VPC di wilayah China (Hangzhou), Anda dapat langsung menghubungkannya ke router transit Edisi Perusahaan sebagai jaringan transit tanpa perlu membuat VPC2.

Perencanaan jaringan

Penting

Pastikan blok CIDR dari VPC yang saling terhubung tidak tumpang tindih.

Resource

VPC region

CIDR and IP

VPC1

China (Shanghai)

Blok CIDR primer: 192.168.0.0/16

  • Blok CIDR untuk VSwitch 1: 192.168.0.0/24 (di zona ketersediaan M).

  • Blok CIDR untuk VSwitch 2: 192.168.20.0/24 (di zona ketersediaan N).

  • Alamat IP ECS: 192.168.0.1 (untuk instance di VSwitch 1).

VPC2

China (Hangzhou)

Blok CIDR primer: 172.16.0.0/16

  • Blok CIDR untuk VSwitch 1: 172.16.1.0/24 (di zona ketersediaan J).

  • Blok CIDR untuk VSwitch 2: 172.16.2.0/24 (di zona ketersediaan K).

Langkah-langkah

Topik ini menjelaskan dua metode konfigurasi: konsol dan Terraform.

Konsol

Sebelum memulai

Sebelum memulai, pastikan Anda telah menyelesaikan persiapan berikut. Untuk informasi tentang blok CIDR setiap resource, lihat bagian Perencanaan jaringan di atas.

  • Di wilayah China (Shanghai): Buat VPC bernama VPC1 dengan blok CIDR primer 192.168.0.0/16. Di VPC1, buat vSwitch di dua zona ketersediaan terpisah. Setiap vSwitch memiliki setidaknya satu alamat IP yang tersedia, dan satu instance ECS diterapkan di salah satu vSwitch tersebut. Untuk informasi lebih lanjut, lihat Buat VPC IPv4.

  • Di wilayah China (Hangzhou): Terapkan layanan OSS dengan membuat bucket OSS. Untuk petunjuknya, lihat Quick start.

  • Konfigurasikan aturan security group untuk VPC1 agar mengizinkan traffic yang diperlukan. Untuk informasi lebih lanjut, lihat Kueri aturan security group dan Tambahkan aturan security group.

Langkah 1: Buat VPC transit

Di wilayah China (Hangzhou), buat VPC bernama VPC2 dengan blok CIDR primer 172.16.0.0/16. Lalu, buat vSwitch di dua zona ketersediaan terpisah, pastikan setiap vSwitch memiliki setidaknya satu alamat IP yang tersedia. Dalam solusi ini, VPC2 berfungsi sebagai jaringan transit untuk mengakses layanan OSS. Jika Anda sudah memiliki instans VPC di wilayah China (Hangzhou), Anda dapat melewati langkah ini dan memilih VPC yang ada pada Langkah 2. Untuk informasi lebih lanjut, lihat Buat dan kelola VPC.

Setelah membuat VPC2, pastikan aturan security group-nya mengizinkan traffic yang diperlukan dan tidak memblokir traffic cross-region dari VPC1. Untuk informasi lebih lanjut, lihat Kueri aturan security group dan Tambahkan aturan security group.

Langkah 2: Gunakan tool jaringan berbasis skenario

Gunakan tool jaringan berbasis skenario CEN untuk secara otomatis membuat instans CEN, router transit Edisi Perusahaan, koneksi VPC, dan koneksi antar-wilayah, serta mengonfigurasi rutenya.

  1. Masuk ke Konsol CEN. Pada halaman CEN Instance, klik Create CEN Instance.

  2. Pada dialog Create CEN Instance, pilih Create Scenario-specific CEN (Recommended). Untuk VPC Interconnection, pilih VPC Interconnection lalu klik Start scenario-based creation.

  3. Pada tab wilayah pertama, tambahkan konfigurasi jaringan:

    • Region: Pilih China (Hangzhou).

    • Zone: Pilih Zona Ketersediaan J dan Zona Ketersediaan K.

    • VPC: Pilih VPC2 dan dua vSwitch-nya yang sesuai.

  4. Klik + di sisi kanan tab untuk menambahkan tab wilayah baru, lalu tambahkan konfigurasi jaringan:

    • Region: Pilih China (Shanghai).

    • Zone: Pilih Zona Ketersediaan M dan Zona Ketersediaan N.

    • VPC: Pilih VPC1 dan dua vSwitch-nya yang sesuai.

  5. Klik Next. Pembuatan ikhtisar konfigurasi memerlukan beberapa menit. Pada halaman Confirm Networking Settings and Fees, tinjau resource yang akan dibuat secara otomatis beserta biayanya. Setelah mengonfirmasi informasi tersebut, klik Start deployment.

  6. Penerapan memerlukan waktu sekitar 10 menit. Setelah penerapan selesai, resource berikut dibuat secara otomatis:

    • Sebuah instans CEN.

    • Satu router transit Edisi Perusahaan di wilayah China (Hangzhou) dan satu di wilayah China (Shanghai).

    • Koneksi VPC dari VPC1 dan VPC2 ke router transit di wilayah masing-masing.

    • Koneksi antar-wilayah antara kedua router transit.

Catatan

Meskipun VPC1 dan VPC2 dapat berkomunikasi melalui koneksi privat setelah jaringan berbasis skenario selesai dikonfigurasi, instance ECS di VPC1 belum dapat mengakses layanan OSS.

Langkah 3: Konfigurasikan rute VPC ke OSS

Setelah koneksi antar-wilayah dibuat, VPC1 dan VPC2 dapat saling berkomunikasi melalui router transit Edisi Perusahaan. Namun, instance ECS di VPC1 masih belum dapat mengakses layanan OSS secara privat melalui router transit Edisi Perusahaan dan VPC2. Anda harus menambahkan rute ke layanan OSS di tabel rute VPC1 untuk mengarahkan traffic yang ditujukan ke layanan OSS ke router transit Edisi Perusahaan.

  1. Masuk ke Konsol VPC.

  2. Di bilah navigasi atas, pilih wilayah tempat instans VPC1 diterapkan.

    Dalam contoh ini, China (Shanghai) dipilih.

  3. Di panel navigasi kiri, klik Route Tables.

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

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

  5. Pada tab Route Entry List, klik tab Custom Route, lalu klik Add Route Entry.

  6. Pada panel Add Route Entry, konfigurasikan parameter berikut lalu klik OK.

    Tambahkan rute ke semua blok CIDR layanan OSS di wilayah China (Hangzhou) ke tabel rute VPC1.

    Untuk daftar lengkap blok CIDR layanan OSS di wilayah China (Hangzhou), lihat Akses OSS menggunakan endpoint dan nama domain bucket.

    Parameter

    Description

    Route entry 1

    Route entry 2

    Route entry 3

    Route entry 4

    Name

    Masukkan nama untuk entri rute kustom.

    OSS CIDR block 1

    OSS CIDR block 2

    OSS CIDR block 3

    OSS CIDR block 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 lompatan berikutnya untuk entri rute kustom, lalu pilih lompatan berikutnya.

    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: Konfigurasikan rute router transit ke OSS

Anda juga harus menambahkan rute ke layanan OSS di tabel rute router transit Edisi Perusahaan di wilayah China (Hangzhou). Rute-rute ini mengarahkan traffic dari instance ECS di VPC1 ke VPC2, sehingga memungkinkan akses privat ke layanan OSS.

  1. Masuk ke Konsol CEN.

  2. Pada halaman Cloud Enterprise Network, temukan instans CEN target lalu klik ID-nya.

  3. Pada tab Basic Settings > Transit Router, temukan instans router transit di wilayah China (Hangzhou) lalu klik ID-nya.

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

    Secara default, pengaturan lanjutan untuk koneksi VPC1 dan VPC2 mengasosiasikannya dengan tabel rute default router transit. Oleh karena itu, dalam contoh ini dipilih tabel rute default (tabel rute sistem) router transit.

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

  6. Pada dialog Add Route Entry, konfigurasikan parameter berikut lalu klik OK.

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

    Parameter

    Description

    Route entry 1

    Route entry 2

    Route entry 3

    Route entry 4

    Name

    Masukkan nama untuk entri rute.

    OSS CIDR block 1

    OSS CIDR block 2

    OSS CIDR block 3

    OSS CIDR block 4

    Destination CIDR

    Masukkan blok CIDR tujuan untuk entri rute.

    100.118.28.0/24

    100.114.102.0/24

    100.98.170.0/24

    100.118.31.0/24

    Blackhole Route

    Menunjukkan apakah rute tersebut merupakan rute blackhole.

    • Yes: Rute tersebut adalah rute blackhole. Semua traffic yang ditujukan ke rute ini akan dibuang.

    • No: Rute tersebut bukan rute blackhole. Anda harus menentukan lompatan berikutnya untuk rute ini.

    Pilih No.

    Pilih No.

    Pilih No.

    Pilih No.

    Next Hop

    Pilih lompatan berikutnya untuk entri rute.

    Pilih koneksi VPC2.

    Pilih koneksi VPC2.

    Pilih koneksi VPC2.

    Pilih koneksi VPC2.

Langkah 5: Uji konektivitas

Setelah menyelesaikan langkah-langkah sebelumnya, instance ECS di VPC1 dapat mengakses layanan OSS lintas wilayah secara privat. Contoh ini menguji konektivitas dengan mengunduh gambar dari layanan OSS ke instance ECS di VPC1.

  1. Masuk ke instance ECS di VPC1. Untuk informasi lebih lanjut, lihat Panduan koneksi untuk instance ECS.

  2. Dari instance ECS, coba unduh gambar bernama OSStest.jpg dari layanan OSS.

    Catatan

    Sebelum menjalankan pengujian, pastikan izin pada file tujuan mengizinkan akses dari instance ECS. Untuk informasi lebih lanjut, lihat Ikhtisar izin dan kontrol akses.

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

    Untuk informasi lebih lanjut tentang nama domain akses OSS, lihat Akses OSS melalui IPv6.

    Jika respons yang mirip dengan contoh berikut dikembalikan, berarti instance ECS dapat mengakses layanan OSS lintas wilayah secara privat.

    [root@iZuf6bxxx hblZ ~]# wget https://zxxx2.oss-cn-hangzhou-internal.aliyuncs.com/OSStest.jpg
    --2023-01-29 16:54:46--  https://zxtxxx2.oss-cn-hangzhou-internal.aliyuncs.com/OSStest.jpg
    Resolving zxtxxx2.oss-cn-hangzhou-internal.aliyuncs.com (zxtxxx2.oss-cn-hangzhou-internal.aliyuncs.com)... 100.xxx.50, 100.xxx.49, 100.
    45, ...
    Connecting to zxtxxx2.oss-cn-hangzhou-internal.aliyuncs.com (zxxxx s2.oss-cn-hangzhou-internal.aliyuncs.com)|100.xxx.50|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 611894 (598K) [image/jpeg]
    Saving to: 'OSStest.jpg.5'
    OSStest.jpg.5                 100%[=================================================>] 597.55K     132KB/s    in 4.5s
    2023-01-29 16:54:51 (132 KB/s) - 'OSStest.jpg.5' saved [611894/611894]

Terraform

Anda dapat menggunakan Terraform untuk membangun lingkungan untuk contoh ini. Untuk informasi tentang cara menginstal dan mengonfigurasi Terraform, lihat Install Terraform.

Langkah-langkah berikut menjelaskan cara menjalankan Terraform v1.9.8 pada host Linux. Sebelum memulai, pastikan Anda telah mengonfigurasi Authentication.

Catatan

Beberapa resource dalam tutorial ini dapat menimbulkan biaya. Untuk mencegah biaya tambahan, hapus resource tersebut jika tidak lagi diperlukan.

Langkah 1: Buat resource

  1. Buat direktori untuk skenario ini dan masuk ke dalamnya.

    mkdir tf-cen-oss && cd tf-cen-oss
  2. Buat file main.tf untuk mendefinisikan informasi resource.

    touch main.tf
  3. Buka file main.tf, lalu salin dan tempel kode berikut ke dalam file tersebut. File ini berisi resource dan konfigurasi yang diperlukan untuk skenario ini.

    variable "pname" {
      description = "The prefix name for resources"
      type        = string
      default     = "tf-cen-oss"
    }
    variable "region_id_hangzhou" {
      description = "The region id of hangzhou"
      type        = string
      default     = "cn-hangzhou"
    }
    variable "region_id_shanghai" { #
      description = "The region id of shanghai"
      type        = string
      default     = "cn-shanghai"
    }
    variable "az_hangzhou" {
      description = "List of availability zones to use"
      type        = list(string)
      default     = ["cn-hangzhou-j", "cn-hangzhou-k"]
    }
    variable "az_shanghai" {
      description = "List of availability zones to use"
      type        = list(string)
      default     = ["cn-shanghai-m", "cn-shanghai-n"]
    }
    variable "cidr_list" {
      description = "List of VPC CIDR block"
      type        = list(string)
      default     = ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"]
    }
    # --- provider ---
    provider "alicloud" { # default region 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"                     # Name of the file in the bucket
      content  = "this is example text content \n" # Content of the 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" { # get tr sys table
      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 is 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 = "The OSS CIDR block"
      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 konfigurasi Terraform Anda.

    terraform init
  5. Buat resource tersebut. Terraform akan menampilkan pratinjau resource yang akan dibuat. Setelah Anda mengonfirmasi, masukkan yes untuk memulai proses pembuatan.

    terraform apply

Langkah 2: Uji konektivitas

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

    Di Output Terraform, temukan alamat login untuk instance ECS tersebut. Buka alamat tersebut di browser. Saat login, pilih Temporary SSH Key-based sebagai metode autentikasi.

    Outputs:
    ecs_login_address = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=cn-shanghai&instanceId=i-uf6xxx"
    test_command = "curl xxx"
  2. Di Output, salin perintah yang dimulai dengan curl:

    Outputs:
    ecs_login_address = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs&regionId=cn-shanghai"
    test_command = "curl tf-cen-oss-xxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt"
  3. Pada instance ECS, jalankan perintah curl:

    curl tf-cen-oss-xxxxxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt
    [root@iZuf6xxx          ~]# curl tf-cen-oss-2821xxx xxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt
    this is example text content
    [root@iZuf6xxx          ~]#

    Jika perintah tersebut mengembalikan konten teks yang diharapkan, koneksi berhasil.

Langkah 3: Melepaskan sumber daya

Setelah selesai, jalankan perintah berikut untuk menghapus resource dan mencegah biaya tambahan.

terraform destroy --auto-approve

Rute

Dalam topik ini, koneksi VPC dan koneksi antar-wilayah dibuat secara otomatis menggunakan tool jaringan berbasis skenario, yang menerapkan konfigurasi routing default. Dengan konfigurasi ini, CEN secara otomatis mengiklankan dan mempelajari rute untuk mengaktifkan komunikasi antara VPC1 dan VPC2. Konfigurasi routing default adalah sebagai berikut:

VPC

Saat Anda membuat koneksi VPC menggunakan konfigurasi routing default (dengan semua pengaturan lanjutan diaktifkan), sistem secara otomatis menerapkan konfigurasi routing berikut ke VPC:

  • Associate with Default Route Table of Transit Router

    Saat fitur ini diaktifkan, sistem secara otomatis mengasosiasikan koneksi VPC dengan tabel rute default router transit. Router transit kemudian meneruskan traffic dari VPC berdasarkan tabel rute ini.

  • Propagate system routes to transit router route table

    Saat fitur ini diaktifkan, VPC menyebarkan rute sistemnya ke tabel rute default router transit, sehingga memungkinkan komunikasi antar instans jaringan.

  • Auto-add transit router routes to all VPC route tables

    Saat fitur ini diaktifkan, sistem secara otomatis menambahkan tiga entri rute ke semua tabel rute instans VPC: 10.0.0.0/8, 172.16.0.0/12, dan 192.168.0.0/16. Lompatan berikutnya dari entri rute ini adalah koneksi VPC.

Koneksi antar-wilayah

Saat Anda membuat koneksi antar-wilayah menggunakan konfigurasi routing default (dengan semua pengaturan lanjutan diaktifkan), sistem secara otomatis menerapkan konfigurasi routing berikut:

  • Associate with Default Route Table of Transit Router

    Mengasosiasikan koneksi antar-wilayah dengan tabel rute default router transit di kedua wilayah. Traffic antar-wilayah diteruskan berdasarkan tabel rute default ini.

  • Propagate system routes to transit router route table

    Menetapkan hubungan pembelajaran rute antara koneksi antar-wilayah dan tabel rute default router transit di kedua wilayah.

  • Automatically Advertise Routes to Peer Region

    Mengiklankan rute dari tabel rute router transit lokal ke tabel rute router transit peer, sehingga memungkinkan konektivitas antar-wilayah untuk instans jaringan.

Lihat entri rute

Anda dapat melihat entri rute untuk setiap instans di Konsol Manajemen Alibaba Cloud: