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.
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.
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
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
|
|
VPC2 |
China (Hangzhou) |
Blok CIDR primer: 172.16.0.0/16
|
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.
-
Masuk ke Konsol CEN. Pada halaman CEN Instance, klik Create CEN Instance.
-
Pada dialog Create CEN Instance, pilih Create Scenario-specific CEN (Recommended). Untuk VPC Interconnection, pilih VPC Interconnection lalu klik Start scenario-based creation.
-
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.
-
-
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.
-
-
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.
-
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.
-
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.
Masuk ke Konsol VPC.
-
Di bilah navigasi atas, pilih wilayah tempat instans VPC1 diterapkan.
Dalam contoh ini, China (Shanghai) dipilih.
-
Di panel navigasi kiri, klik Route Tables.
-
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.
-
Pada tab Route Entry List, klik tab Custom Route, lalu klik Add Route Entry.
-
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.
Masuk ke Konsol CEN.
-
Pada halaman Cloud Enterprise Network, temukan instans CEN target lalu klik ID-nya.
-
Pada tab , temukan instans router transit di wilayah China (Hangzhou) lalu klik ID-nya.
-
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.
-
Pada tab Route Entry, klik Add Route Entry.
-
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.
-
Masuk ke instance ECS di VPC1. Untuk informasi lebih lanjut, lihat Panduan koneksi untuk instance ECS.
-
Dari instance ECS, coba unduh gambar bernama OSStest.jpg dari layanan OSS.
CatatanSebelum 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.
Beberapa resource dalam tutorial ini dapat menimbulkan biaya. Untuk mencegah biaya tambahan, hapus resource tersebut jika tidak lagi diperlukan.
Langkah 1: Buat resource
-
Buat direktori untuk skenario ini dan masuk ke dalamnya.
mkdir tf-cen-oss && cd tf-cen-oss -
Buat file
main.tfuntuk mendefinisikan informasi resource.touch main.tf -
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®ionId=${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}" } -
Inisialisasi konfigurasi Terraform Anda.
terraform init -
Buat resource tersebut. Terraform akan menampilkan pratinjau resource yang akan dibuat. Setelah Anda mengonfirmasi, masukkan
yesuntuk memulai proses pembuatan.terraform apply
Langkah 2: Uji konektivitas
-
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®ionId=cn-shanghai&instanceId=i-uf6xxx" test_command = "curl xxx" -
Di Output, salin perintah yang dimulai dengan
curl:Outputs: ecs_login_address = "https://ecs-workbench.aliyun.com/?from=EcsConsole&instanceType=ecs®ionId=cn-shanghai" test_command = "curl tf-cen-oss-xxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt" -
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:
-
Untuk melihat entri rute router transit Edisi Perusahaan, lihat Lihat entri rute router transit Edisi Perusahaan.
-
Untuk melihat entri rute instans VPC, lihat Buat dan kelola tabel rute.