Este tema describe cómo usar un transit router Enterprise Edition para que las instancias de Elastic Compute Service (ECS) de una Virtual Private Cloud (VPC) accedan de forma privada a Object Storage Service (OSS) entre distintas regiones.
El código de ejemplo de este tutorial se ejecuta con un solo clic. Puede ejecutarlo directamente. Ejecución con un solo clic
Escenario de ejemplo
Este tema toma como ejemplo el escenario de la figura anterior. Una empresa cuenta con una VPC, denominada VPC1, en la región China (Shanghai), donde tiene aplicaciones desplegadas en instancias ECS. Además, despliega OSS en la región China (Hangzhou) y necesita que las instancias ECS de VPC1 accedan de forma privada al servicio OSS de China (Hangzhou) para obtener los recursos requeridos.
OSS es un servicio en la nube de nivel regional y no pertenece a ninguna VPC. Sin embargo, una VPC de la misma región puede acceder a OSS mediante el endpoint interno de OSS. Por lo tanto, la empresa debe crear una segunda VPC, VPC2, en la región China (Hangzhou) donde se despliega OSS, y utilizarla como red de tránsito. Después, conecta VPC1 y VPC2 a los transit routers Enterprise Edition de sus respectivas regiones y establece una conexión interregional entre ambos transit routers. Al mismo tiempo, agrega manualmente rutas hacia los bloques CIDR internos de OSS en VPC1 y en el transit router de la región China (Hangzhou). Una vez terminada la configuración, el tráfico de una instancia ECS de VPC1 hacia OSS sigue esta ruta: instancia ECS → transit router en China (Shanghai) → conexión interregional → transit router en China (Hangzhou) → VPC2 → endpoint interno de OSS.
En esta solución, VPC2 funciona únicamente como red de tránsito que proporciona una ruta para que el tráfico interregional llegue al endpoint interno de OSS. Si ya cuenta con una VPC en la región China (Hangzhou), puede conectarla directamente al transit router Enterprise Edition como red de tránsito, sin necesidad de crear VPC2.
Planificación de la red
Al planificar los bloques CIDR, compruebe que los bloques CIDR de las VPC que necesitan comunicarse entre sí no se superpongan.
Recurso | Región de la VPC | Bloque CIDR y dirección IP |
VPC1 | China (Shanghai) | Bloque CIDR principal: 192.168.0.0/16
|
VPC2 | China (Hangzhou) | Bloque CIDR principal: 172.16.0.0/16
|
Procedimiento
Este tema ofrece dos métodos de configuración: consola y Terraform. Seleccione el método que mejor se adapte a sus necesidades.
Consola
Preparativos
Antes de iniciar la configuración, compruebe que completó los siguientes preparativos. Para conocer los bloques CIDR de cada recurso, consulte la sección Planificación de la red anterior.
Región China (Shanghai): se creó VPC1 con el bloque CIDR principal 192.168.0.0/16. Dentro de VPC1, se crearon vSwitches en dos zonas, cada vSwitch tiene como mínimo una dirección IP disponible y se desplegó una instancia ECS en uno de ellos. Para más información, consulte Create a VPC with an IPv4 CIDR block.
Región China (Hangzhou): se desplegó OSS, lo que significa que se creó un bucket de OSS. Si aún no ha creado un bucket, consulte Quick start.
Las reglas del security group de VPC1 permiten el tráfico necesario. Para más información, consulte View security group rules y Add a security group rule.
Paso 1: Crear una VPC de tránsito
En la región China (Hangzhou), cree VPC2 con el bloque CIDR principal 172.16.0.0/16 y después cree vSwitches en dos zonas. Compruebe que cada vSwitch tenga como mínimo una dirección IP disponible. En esta solución, VPC2 funciona como la red de tránsito para acceder al servicio OSS. Si ya cuenta con una VPC en la región China (Hangzhou), omita este paso y seleccione esa VPC en el paso 2. Para más información, consulte Create and manage a VPC.
Una vez creada VPC2, verifique que sus reglas de security group permitan el tráfico necesario, de modo que no se bloquee el tráfico de acceso interregional proveniente de VPC1. Para más información, consulte View security group rules y Add a security group rule.
Paso 2: Establecer la conectividad de red mediante creación de redes basada en escenarios
Utilice la herramienta de creación de redes basada en escenarios de Cloud Enterprise Network (CEN) para crear por lotes una instancia CEN, transit routers Enterprise Edition, conexiones VPC y una conexión interregional, además de configurar automáticamente sus rutas.
Inicie sesión en la consola de CEN. En la página CEN Instance, haga clic en Create CEN Instance.
En el cuadro de diálogo Create CEN Instance, seleccione Create Scenario-specific CEN (Recommended), elija VPC Interconnection como escenario y luego haga clic en Start Scenario-Based Creation.
-
En la primera pestaña de región, agregue las configuraciones de red:
Region: seleccione China (Hangzhou).
Zone: seleccione Zone J y Zone K.
VPC: seleccione VPC2 y los dos vSwitches de VPC2.
-
Haga clic en + en el lado derecho de la pestaña para crear una nueva pestaña de región y agregue las configuraciones de red:
Region: seleccione China (Shanghai).
Zone: seleccione Zone M y Zone N.
VPC: seleccione VPC1 y los dos vSwitches de VPC1.
Haga clic en Next. El sistema tarda unos minutos en generar la descripción general de la configuración. En la página Confirm Networking Settings and Fees, revise los recursos que se crearán automáticamente y el detalle de costos. Cuando confirme que la información es correcta, haga clic en Start deployment.
-
El despliegue toma aproximadamente 10 minutos. Espere a que finalice. A continuación, el sistema crea automáticamente los siguientes recursos:
Una instancia CEN.
Un transit router Enterprise Edition en la región China (Hangzhou) y otro en la región China (Shanghai).
Conexiones VPC desde VPC1 y VPC2 hacia los transit routers de sus respectivas regiones.
Una conexión interregional entre los dos transit routers.
Cuando termina la creación de redes basada en escenarios, ya existe un emparejamiento de red privada entre VPC1 y VPC2. Sin embargo, las instancias ECS de VPC1 todavía no pueden acceder al servicio OSS. Debe continuar con los pasos siguientes para agregar manualmente las rutas hacia los bloques CIDR internos de OSS.
Paso 3: Configurar rutas hacia el servicio OSS en la VPC
Después de crear la conexión interregional, VPC1 y VPC2 pueden comunicarse entre sí por red privada mediante los transit routers Enterprise Edition. No obstante, las instancias ECS de VPC1 aún no logran acceder de forma privada al servicio OSS a través de los transit routers Enterprise Edition y VPC2. Es necesario agregar rutas hacia el servicio OSS en la tabla de rutas de VPC1 para dirigir el tráfico destinado a dicho servicio hacia el transit router Enterprise Edition.
Inicie sesión en la consola de VPC.
-
En la barra de menús superior, seleccione la región donde se despliega la instancia VPC1.
En este tema se selecciona la región China (Shanghai).
En el panel de navegación izquierdo, haga clic en Route Tables.
-
En la página Route Tables, busque la tabla de rutas de la instancia VPC1 y haga clic en su ID.
En este tema, VPC1 tiene solo una tabla de rutas del sistema. Si su VPC cuenta con varias tablas de rutas, seleccione la tabla asociada al vSwitch donde se despliega la instancia ECS.
En la pestaña Route Entry List, haga clic en la pestaña Custom Route y luego en Add Route Entry.
-
En el panel Add Route Entry, configure los siguientes parámetros y haga clic en OK.
Con base en la siguiente información, agregue las rutas de todos los bloques CIDR del servicio OSS en la región China (Hangzhou) a la tabla de rutas de VPC1.
Para consultar todos los bloques CIDR del servicio OSS en la región China (Hangzhou), vea Access OSS via endpoints and bucket domains.
Parámetro
Descripción
Entrada de ruta 1
Entrada de ruta 2
Entrada de ruta 3
Entrada de ruta 4
Name
Introduzca un nombre para la entrada de ruta personalizada.
OSS CIDR block 1
OSS CIDR block 2
OSS CIDR block 3
OSS CIDR block 4
Destination CIDR Block
Introduzca el bloque CIDR de destino.
100.118.28.0/24
100.114.102.0/24
100.98.170.0/24
100.118.31.0/24
Next Hop Type
Seleccione el tipo de siguiente salto de la entrada de ruta personalizada y luego elija el siguiente salto.
Seleccione Transit Router y luego la conexión de VPC1.
Seleccione Transit Router y luego la conexión de VPC1.
Seleccione Transit Router y luego la conexión de VPC1.
Seleccione Transit Router y luego la conexión de VPC1.
Paso 4: Configurar rutas hacia el servicio OSS en el transit router
También debe agregar rutas hacia el servicio OSS en la tabla de rutas del transit router Enterprise Edition de la región China (Hangzhou). Cuando el tráfico destinado al servicio OSS entra al transit router Enterprise Edition desde las instancias ECS de VPC1, el transit router lo dirige hacia VPC2 según dichas rutas. Así, las instancias ECS acceden de forma privada al servicio OSS a través de VPC2.
Inicie sesión en la consola de CEN.
En la página Cloud Enterprise Network, busque la instancia CEN correspondiente y haga clic en su ID.
En la pestaña , busque la instancia del transit router en la región China (Hangzhou) y haga clic en su ID.
-
En la página de detalles de la instancia del transit router, haga clic en la pestaña Route Table. En el lado izquierdo de la pestaña, seleccione la tabla de rutas del transit router correspondiente.
La conexión de VPC1 y la conexión de VPC2 utilizan las configuraciones avanzadas predeterminadas y ambas están asociadas a la tabla de rutas predeterminada del transit router. Por ello, en este tema se selecciona dicha tabla de rutas predeterminada, que corresponde a la tabla de rutas del sistema.
En la pestaña Route Entry, haga clic en Add Route Entry.
-
En el cuadro de diálogo Add Route Entry, configure los siguientes parámetros y haga clic en OK.
Con base en la siguiente información, agregue las rutas de todos los bloques CIDR del servicio OSS en la región China (Hangzhou) a la tabla de rutas del transit router.
Parámetro
Descripción
Entrada de ruta 1
Entrada de ruta 2
Entrada de ruta 3
Entrada de ruta 4
Name
Introduzca un nombre para la entrada de ruta.
OSS CIDR block 1
OSS CIDR block 2
OSS CIDR block 3
OSS CIDR block 4
Destination CIDR
Introduzca el bloque CIDR de destino de la entrada de ruta.
100.118.28.0/24
100.114.102.0/24
100.98.170.0/24
100.118.31.0/24
Blackhole Route
Indica si la entrada de ruta actual es una ruta blackhole.
Yes: la ruta es de tipo blackhole. Se descarta todo el tráfico destinado a esta ruta.
No: la ruta no es de tipo blackhole. Debe especificar la conexión de siguiente salto de la ruta.
Seleccione No.
Seleccione No.
Seleccione No.
Seleccione No.
Next Hop
Seleccione la conexión de siguiente salto de la entrada de ruta.
Seleccione la conexión de VPC2.
Seleccione la conexión de VPC2.
Seleccione la conexión de VPC2.
Seleccione la conexión de VPC2.
Paso 5: Comprobar la conectividad
Una vez aplicadas las configuraciones anteriores, las instancias ECS de VPC1 pueden acceder de forma privada al servicio OSS de otra región. Este tema utiliza como ejemplo una instancia ECS que descarga una imagen del servicio OSS para comprobar la conectividad entre la instancia ECS de VPC1 y dicho servicio.
Inicie sesión en la instancia ECS de VPC1. Para más información, consulte Remote connection methods for ECS instances.
-
Desde la instancia ECS, intente descargar una imagen llamada OSStest.jpg del servicio OSS.
NotaAntes de ejecutar la prueba, compruebe que los permisos de lectura y escritura del archivo de destino permiten el acceso desde la instancia ECS. Para más información, consulte Overview of permissions and access control.
wget https://zxtXXXXX.oss-cn-hangzhou-internal.aliyuncs.com/OSStest.jpg # zxtXXXXX.oss-cn-hangzhou-internal.aliyuncs.com is the access domain name of the OSS service. # OSStest.jpg is the name of the target file.Para más información sobre los nombres de dominio de acceso de OSS, consulte Use an endpoint that supports IPv6 to access OSS.
Si la instancia ECS recibe una respuesta similar a la que se muestra a continuación, significa que puede acceder de forma privada al servicio OSS entre regiones.
[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
Puede usar Terraform para construir el entorno de ejemplo de este tema. Para obtener información sobre cómo instalar y configurar Terraform, consulte Install Terraform.
En los pasos a continuación se utiliza como ejemplo un host Linux que ejecuta Terraform v1.9.8. Antes de comenzar, compruebe que completó Authentication.
Algunos recursos de este tutorial generan costos. Libere o cancele la suscripción de los recursos cuando ya no los necesite.
Paso 1: Crear los recursos
-
Cree un directorio para el escenario de este tema y acceda a él.
mkdir tf-cen-oss && cd tf-cen-oss -
Cree un archivo
main.tfpara definir la información de los recursos.touch main.tf -
Abra el archivo
main.tf, copie el código a continuación, péguelo en el archivo y guárdelo. Este archivo contiene los recursos y las configuraciones obligatorias para el escenario de este tema.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 security_group_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.alibabacloud.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}" } -
Inicialice el directorio para completar la inicialización de Terraform.
terraform init -
Cree los recursos. Después de ejecutar el comando, Terraform muestra una vista previa de los recursos por crear. Una vez que confirme que la información es correcta, introduzca
yespara iniciar oficialmente la creación.terraform apply
Paso 2: Comprobar el resultado
-
Inicie sesión en la instancia ECS llamada
tf-cen-oss-ecs.La dirección de inicio de sesión de la instancia ECS se encuentra en las salidas (Outputs) de Terraform. Cópiela y ábrala en un navegador. Al iniciar sesión, seleccione Temporary SSH Key-based como método de autenticación.
Outputs: ecs_login_address = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs®ionId=cn-shanghai&instanceId=i-uf6xxx" test_command = "curl xxx" -
En las salidas (Outputs), copie el comando que comienza con
curl:Outputs: ecs_login_address = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs®ionId=cn-shanghai" test_command = "curl tf-cen-oss-xxx.oss-cn-hangzhou-internal.aliyuncs.com/example.txt" -
En la instancia ECS, ejecute el comando
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 ~]#Como se observa arriba, si se devuelve el contenido de texto, el acceso fue exitoso.
Paso 3: Liberar los recursos
Una vez completada la comprobación, si ya no va a utilizar los recursos, ejecute el siguiente comando para liberarlos y evitar cargos adicionales.
terraform destroy --auto-approve
Enrutamiento
En este tema se utiliza la configuración de enrutamiento predeterminada cuando la herramienta de red basada en escenarios crea automáticamente las conexiones de VPC y la conexión entre regiones. Con esta configuración predeterminada, CEN anuncia y aprende rutas de forma automática para habilitar la comunicación entre VPC1 y VPC2. La configuración de enrutamiento predeterminada se describe a continuación:
VPC
Si utiliza la configuración de enrutamiento predeterminada al crear una conexión de VPC, lo que significa que todas las configuraciones avanzadas están habilitadas, el sistema aplica automáticamente las siguientes configuraciones de enrutamiento a la VPC:
-
Associate with Default Route Table of Transit Router
Cuando se habilita esta función, la conexión de VPC se asocia automáticamente con la tabla de enrutamiento predeterminada del transit router. El transit router reenvía el tráfico de la VPC al consultar dicha tabla predeterminada.
-
Propagate system routes to transit router route table
Al habilitarse esta función, la VPC propaga sus propias rutas de sistema a la tabla de enrutamiento predeterminada del transit router. Esto permite que las instancias de red se comuniquen entre sí.
-
Auto-add transit router routes to all VPC route tables
Con esta función habilitada, el sistema agrega automáticamente tres entradas de ruta (10.0.0.0/8, 172.16.0.0/12 y 192.168.0.0/16) a todas las tablas de enrutamiento de la instancia de VPC. El siguiente salto de estas tres entradas es la conexión de VPC.
Conexión entre regiones
Si utiliza la configuración de enrutamiento predeterminada al crear una conexión entre regiones, lo que implica tener habilitadas todas las configuraciones avanzadas, el sistema aplica automáticamente las siguientes configuraciones de enrutamiento a dicha conexión:
-
Associate with Default Route Table of Transit Router
Asocia la conexión entre regiones con las tablas de enrutamiento de sistema de los transit routers de ambas regiones. El tráfico entre regiones se reenvía con base en estas tablas de sistema.
-
Propagate system routes to transit router route table
Establece una relación de aprendizaje de rutas entre la conexión entre regiones y las tablas de enrutamiento de sistema de los transit routers de ambas regiones.
-
Automatically Advertise Routes to Peer Region
Anuncia las rutas de la tabla de enrutamiento del transit router local hacia la tabla de enrutamiento del transit router remoto. De este modo se habilita la conectividad entre regiones para las instancias de red.
Consultar las entradas de ruta
Consulte la información de las entradas de ruta de las instancias correspondientes en la consola de Alibaba Cloud:
Para consultar las entradas de ruta de una instancia de transit router, vea View route entries (Enterprise Edition).
Para consultar las entradas de ruta de una instancia de VPC, vea Create and manage a route table.