Este tópico descreve como usar um transit router da Enterprise Edition para permitir que instâncias do Elastic Compute Service (ECS) em uma Virtual Private Cloud (vpc) acessem o object storage service (oss) entre regiões de forma privada.
O código de exemplo deste tutorial oferece suporte à execução com um clique. Execute o código diretamente. Execução com um clique
Caso de uso de exemplo
Este tópico usa o cenário da figura anterior como exemplo. Uma empresa possui uma vpc, denominada VPC1, na região China (Shanghai), onde as aplicações estão implantadas em instâncias ECS. A empresa implanta o oss na região China (Hangzhou) e deseja que as instâncias ECS na VPC1 acessem privadamente o service oss na região China (Hangzhou) para obter os recursos necessários.
O oss é um service de nuvem de nível regional e não pertence a nenhuma vpc, mas uma vpc na mesma região pode acessar o oss pelo endpoint interno do oss. Portanto, a empresa deve criar uma vpc, denominada VPC2, na região China (Hangzhou) onde o oss está implantado e usar a VPC2 como rede de trânsito. Em seguida, a empresa conecta a VPC1 e a VPC2 aos transit routers da Enterprise Edition em suas respectivas regiões e cria uma conexão inter-regional entre os dois transit routers. Simultaneamente, rotas para os blocos CIDR internos do oss são adicionadas manualmente na VPC1 e no transit router da região China (Hangzhou). Após a conclusão da configuração, o tráfego de uma instância ECS na VPC1 para o oss segue este fluxo: instância ECS → transit router em China (Shanghai) → conexão inter-regional → transit router em China (Hangzhou) → VPC2 → endpoint interno do oss.
Nesta solução, a VPC2 serve apenas como rede de trânsito que fornece um caminho para o tráfego entre regiões alcançar o endpoint interno do oss. Se você já possui uma vpc na região China (Hangzhou), conecte essa vpc diretamente ao transit router da Enterprise Edition como rede de trânsito, sem necessidade de criar a VPC2.
Planejamento de rede
Ao planejar blocos CIDR, certifique-se de que os blocos CIDR das VPCs que precisam se comunicar não se sobreponham.
Recurso | Região da vpc | Bloco CIDR e endereço IP |
VPC1 | China (Shanghai) | Bloco CIDR primário: 192.168.0.0/16
|
VPC2 | China (Hangzhou) | Bloco CIDR primário: 172.16.0.0/16
|
Procedimento
Este tópico apresenta dois métodos de configuração: console e Terraform. Selecione o método mais adequado às suas necessidades.
Console
Preparativos
Antes de iniciar a configuração, verifique se você concluiu os preparativos abaixo. Para informações sobre os blocos CIDR de cada recurso, consulte a seção Planejamento de rede acima.
Região China (Shanghai): A VPC1 foi criada com o bloco CIDR primário 192.168.0.0/16. Na VPC1, foram criados vSwitches em duas zonas, cada vSwitch possui pelo menos um endereço IP disponível e uma instância ECS está implantada em um dos vSwitches. Para mais informações, consulte Create a VPC with an IPv4 CIDR block.
Região China (Hangzhou): O oss está implantado, ou seja, um bucket do oss foi criado. Caso ainda não tenha criado um bucket, consulte Quick start.
As regras do grupo de segurança da VPC1 permitem o tráfego necessário. Para mais informações, consulte View security group rules e Add a security group rule.
Etapa 1: Criar uma vpc de trânsito
Na região China (Hangzhou), crie a VPC2 com o bloco CIDR primário 172.16.0.0/16 e, em seguida, crie vSwitches em duas zonas. Certifique-se de que cada vSwitch tenha pelo menos um endereço IP disponível. Nesta solução, a VPC2 atua como rede de trânsito para acessar o service oss. Se você já possui uma vpc na região China (Hangzhou), pule esta etapa e selecione essa vpc na Etapa 2. Para mais informações, consulte Create and manage a VPC.
Após criar a VPC2, garanta que suas regras de grupo de segurança permitam o tráfego necessário para evitar o bloqueio do tráfego de acesso entre regiões proveniente da VPC1. Para mais informações, consulte View security group rules e Add a security group rule.
Etapa 2: Estabelecer conectividade de rede usando rede baseada em cenários
Use a ferramenta de rede baseada em cenários da cloud Enterprise Network (CEN) para criar em lote uma instância CEN, transit routers da Enterprise Edition, conexões vpc e uma conexão inter-regional, além de configurar automaticamente as rotas correspondentes.
Faça login no console CEN. Na página CEN Instance, clique em Create CEN Instance.
Na caixa de diálogo Create CEN Instance, selecione Create Scenario-specific CEN (Recommended), escolha VPC Interconnection como cenário e clique em Start Scenario-Based Creation.
-
Na primeira aba de região, adicione as configurações de rede:
Region: Selecione China (Hangzhou).
Zone: Selecione Zone J e Zone K.
VPC: Selecione a VPC2 e os dois vSwitches da VPC2.
-
Clique em + no lado direito da aba para criar uma nova aba de região e adicione as configurações de rede:
Region: Selecione China (Shanghai).
Zone: Selecione Zone M e Zone N.
VPC: Selecione a VPC1 e os dois vSwitches da VPC1.
Clique em Next. O sistema leva alguns minutos para gerar a visão geral da configuração. Na página Confirm Networking Settings and Fees, revise os recursos que serão criados automaticamente e os detalhes de custos. Após confirmar que as informações estão corretas, clique em Start deployment.
-
A implantação leva cerca de 10 minutos. Aguarde a conclusão do processo. O sistema criará automaticamente os seguintes recursos:
Uma instância CEN.
Um transit router da Enterprise Edition na região China (Hangzhou) e outro na região China (Shanghai).
Conexões vpc da VPC1 e da VPC2 para os transit routers em suas respectivas regiões.
Uma conexão inter-regional entre os dois transit routers.
Após a conclusão da rede baseada em cenários, o peering de rede privada já estará estabelecido entre a VPC1 e a VPC2, mas as instâncias ECS na VPC1 ainda não conseguirão acessar o service oss. Prossiga com as etapas a seguir para adicionar manualmente as rotas referentes aos blocos CIDR internos do oss.
Etapa 3: Configurar rotas para o service oss na vpc
Depois que a conexão inter-regional for criada, a VPC1 e a VPC2 poderão se comunicar por uma rede privada através dos transit routers da Enterprise Edition. No entanto, as instâncias ECS na VPC1 ainda não conseguem acessar privadamente o service oss por meio dos transit routers da Enterprise Edition e da VPC2. Adicione rotas para o service oss na tabela de rotas da VPC1 para direcionar o tráfego destinado ao service oss para o transit router da Enterprise Edition.
Faça login no console vpc.
-
Na barra de menu superior, selecione a região onde a instância VPC1 está implantada.
Neste tópico, a região China (Shanghai) está selecionada.
No painel de navegação à esquerda, clique em Route Tables.
-
Na página Route Tables, localize a tabela de rotas da instância VPC1 e clique no ID da instância da tabela de rotas.
Neste tópico, a VPC1 possui apenas uma tabela de rotas do sistema. Se sua vpc tiver várias tabelas de rotas, selecione aquela associada ao vSwitch onde a instância ECS está implantada.
Na aba Route Entry List, clique na aba Custom Route e, em seguida, clique em Add Route Entry.
-
No painel Add Route Entry, configure os parâmetros a seguir e clique em OK.
Com base nas informações abaixo, adicione as rotas para todos os blocos CIDR do service oss na região China (Hangzhou) à tabela de rotas da VPC1.
Para obter informações sobre todos os blocos CIDR do service oss na região China (Hangzhou), consulte Access OSS via endpoints and bucket domains.
Parâmetro
Descrição
Entrada de rota 1
Entrada de rota 2
Entrada de rota 3
Entrada de rota 4
Name
Insira um nome para a entrada de rota personalizada.
Bloco CIDR do oss 1
Bloco CIDR do oss 2
Bloco CIDR do oss 3
Bloco CIDR do oss 4
Destination CIDR Block
Insira o bloco 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
Selecione o tipo de próximo salto da entrada de rota personalizada e, em seguida, selecione o próximo salto.
Selecione Transit Router e selecione a conexão da VPC1.
Selecione Transit Router e selecione a conexão da VPC1.
Selecione Transit Router e selecione a conexão da VPC1.
Selecione Transit Router e selecione a conexão da VPC1.
Etapa 4: Configurar rotas para o service oss no transit router
Também é necessário adicionar rotas para o service oss na tabela de rotas do transit router da Enterprise Edition na região China (Hangzhou). Quando o tráfego destinado ao service oss entra no transit router da Enterprise Edition vindo das instâncias ECS na VPC1, o transit router direciona esse tráfego para a VPC2 com base nas rotas configuradas. Assim, as instâncias ECS conseguem acessar privadamente o service oss através da VPC2.
Faça login no console CEN.
Na página Cloud Enterprise Network, localize a instância CEN desejada e clique no ID da instância CEN.
Na aba , localize a instância do transit router na região China (Hangzhou) e clique no ID da instância.
-
Na página de detalhes da instância do transit router, clique na aba Route Table. No lado esquerdo da aba, selecione a tabela de rotas do transit router desejada.
A conexão da VPC1 e a conexão da VPC2 utilizam as configurações avançadas padrão e ambas estão associadas à tabela de rotas padrão do transit router. Por isso, este tópico seleciona a tabela de rotas padrão do transit router, que corresponde à tabela de rotas do sistema.
Na aba Route Entry, clique em Add Route Entry.
-
Na caixa de diálogo Add Route Entry, configure os parâmetros a seguir e clique em OK.
Com base nas informações abaixo, adicione as rotas para todos os blocos CIDR do service oss na região China (Hangzhou) à tabela de rotas do transit router.
Parâmetro
Descrição
Entrada de rota 1
Entrada de rota 2
Entrada de rota 3
Entrada de rota 4
Name
Insira um nome para a entrada de rota.
OSS CIDR block 1
OSS CIDR block 2
OSS CIDR block 3
OSS CIDR block 4
Destination CIDR
Insira o bloco CIDR de destino da entrada de rota.
100.118.28.0/24
100.114.102.0/24
100.98.170.0/24
100.118.31.0/24
Blackhole Route
Especifica se a entrada de rota atual é uma rota blackhole.
Yes: A rota é uma rota blackhole. Todo o tráfego destinado a esta rota será descartado.
No: A rota não é uma rota blackhole. Especifique a conexão de próximo salto da rota.
Selecione No.
Selecione No.
Selecione No.
Selecione No.
Next Hop
Selecione a conexão de próximo salto da entrada de rota.
Selecione a conexão da VPC2.
Selecione a conexão da VPC2.
Selecione a conexão da VPC2.
Selecione a conexão da VPC2.
Etapa 5: Testar a conectividade
Após concluir as configurações anteriores, as instâncias ECS na VPC1 poderão acessar privadamente o service oss entre regiões. Este tópico usa como exemplo uma instância ECS baixando uma imagem do service oss para testar a conectividade entre a instância ECS na VPC1 e o service oss.
Faça login na instância ECS na VPC1. Para mais informações, consulte Remote connection methods for ECS instances.
-
Na instância ECS, tente baixar uma imagem chamada OSStest.jpg do service oss.
NotaAntes de executar o teste, verifique se as permissões de leitura e gravação do arquivo de destino permitem que a instância ECS acesse o arquivo. Para mais informações, 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 mais informações sobre nomes de domínio de acesso ao oss, consulte Use an endpoint that supports IPv6 to access OSS.
Se a instância ECS receber uma resposta semelhante à mostrada abaixo, significa que ela consegue acessar privadamente o service oss entre regiões.
[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
Use o Terraform para construir o ambiente de exemplo deste tópico. Para saber como instalar e configurar o Terraform, consulte Install Terraform.
Os passos a seguir usam como exemplo um host Linux executando o Terraform v1.9.8. Antes de começar, certifique-se de ter concluído a Authentication.
Alguns recursos neste tutorial geram custos. Libere ou cancele a assinatura dos recursos quando não precisar mais deles.
Etapa 1: Criar recursos
-
Crie um diretório para o cenário deste tópico e acesse o diretório.
mkdir tf-cen-oss && cd tf-cen-oss -
Crie um arquivo
main.tfpara definir as informações dos recursos.touch main.tf -
Abra o arquivo
main.tf, copie o código abaixo, cole-o no arquivo e salve. Este arquivo contém os recursos e configurações necessários para o cenário deste tópico.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}" } -
Inicialize o diretório para concluir a inicialização do Terraform.
terraform init -
Crie os recursos. Ao executar o comando, o Terraform exibirá uma prévia dos recursos a serem criados. Após confirmar que as informações estão corretas, insira
yespara iniciar oficialmente a criação.terraform apply
Etapa 2: Verificar o resultado
-
Faça login na instância ECS chamada
tf-cen-oss-ecs.Encontre o endereço de login da instância ECS nos Outputs do Terraform. Copie o endereço e abra-o em um navegador. Ao fazer login, selecione Temporary SSH Key-based como método de autenticação.
Outputs: ecs_login_address = "https://ecs-workbench.alibabacloud.com/?from=EcsConsole&instanceType=ecs®ionId=cn-shanghai&instanceId=i-uf6xxx" test_command = "curl xxx" -
Nos Outputs, copie o comando que começa com
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" -
Na instância ECS, execute o 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 ~]#Conforme mostrado acima, se o conteúdo de texto for retornado, o acesso foi bem-sucedido.
Etapa 3: Liberar recursos
Após concluir a verificação, caso não utilize mais os recursos, execute o comando abaixo para liberá-los e evitar cobranças adicionais.
terraform destroy --auto-approve
Roteamento
Neste tópico, a configuração de roteamento padrão é usada quando a ferramenta de rede baseada em cenários cria automaticamente as conexões vpc e a conexão inter-regional. Com a configuração de roteamento padrão, a CEN anuncia e aprende rotas automaticamente para habilitar a comunicação entre a VPC1 e a VPC2. A configuração de roteamento padrão é descrita a seguir:
vpc
Se você usar a configuração de roteamento padrão ao criar uma conexão vpc, o que significa que todas as configurações avançadas estão ativadas, o sistema aplica automaticamente as seguintes configurações de roteamento à vpc:
-
Associate with Default Route Table of Transit Router
Quando este recurso está ativado, a conexão vpc é associada automaticamente à tabela de rotas padrão do transit router. O transit router encaminha o tráfego da vpc consultando a tabela de rotas padrão.
-
Propagate system routes to transit router route table
Quando este recurso está ativado, a vpc propaga suas próprias rotas de sistema para a tabela de rotas padrão do transit router, permitindo a comunicação entre as instâncias de rede.
-
Auto-add transit router routes to all VPC route tables
Quando este recurso está ativado, o sistema adiciona automaticamente três entradas de rota — 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16 — a todas as tabelas de rotas da instância vpc. O próximo salto de todas as três entradas de rota é a conexão vpc.
Conexão inter-regional
Se você usar a configuração de roteamento padrão ao criar uma conexão inter-regional, o que significa que todas as configurações avançadas estão ativadas, o sistema aplica automaticamente as seguintes configurações de roteamento à conexão inter-regional:
-
Associate with Default Route Table of Transit Router
Associa a conexão inter-regional às tabelas de rotas do sistema dos transit routers em ambas as regiões. O tráfego inter-regional é encaminhado com base nessas tabelas de rotas do sistema.
-
Propagate system routes to transit router route table
Estabelece uma relação de aprendizado de rotas entre a conexão inter-regional e as tabelas de rotas do sistema dos transit routers em ambas as regiões.
-
Automatically Advertise Routes to Peer Region
Anuncia rotas da tabela de rotas do transit router local para a tabela de rotas do transit router remoto, habilitando a conectividade inter-regional para as instâncias de rede.
Visualizar entradas de rota
Visualize as informações das entradas de rota das instâncias correspondentes no console Alibaba cloud:
Para visualizar as entradas de rota de uma instância de transit router, consulte View route entries (Enterprise Edition).
Para visualizar as entradas de rota de uma instância vpc, consulte Create and manage a route table.