Skip to content

Commit 347d51f

Browse files
author
shaobolin
committed
feat: 解决方案alb-cross-region-load-balance tf文件完成
1 parent 5ab7b50 commit 347d51f

File tree

10 files changed

+772
-0
lines changed

10 files changed

+772
-0
lines changed
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
## Introduction
2+
<!-- DOCS_DESCRIPTION_CN -->
3+
本示例用于实现解决方案[ALB 实现跨地域负载均衡](https://www.aliyun.com/solution/tech-solution/alb-acrlb), 涉及到涉及到专有网络(VPC)、交换机(VSwitch)、云服务器(ECS)、云企业网(CEN)、应用型负载均衡(ALB)等资源的创建。
4+
<!-- DOCS_DESCRIPTION_CN -->
5+
6+
<!-- DOCS_DESCRIPTION_EN -->
7+
This example demonstrates the implementation of the solution [Implementing Cross-Region Load Balancing with ALB](https://www.aliyun.com/solution/tech-solution/alb-acrlb). It involves the creation, configuration, and deployment of resources such as Virtual Private Cloud (VPC), VSwitch, Elastic Compute Service (ECS), Cloud Enterprise Network (CEN), Application Load Balancer (ALB).
8+
<!-- DOCS_DESCRIPTION_EN -->
9+
10+
<!-- BEGIN_TF_DOCS -->
11+
## Providers
12+
13+
| Name | Version |
14+
|------|---------|
15+
| <a name="provider_alicloud"></a> [alicloud](#provider\_alicloud) | n/a |
16+
| <a name="provider_alicloud.region1"></a> [alicloud.region1](#provider\_alicloud.region1) | n/a |
17+
| <a name="provider_alicloud.region2"></a> [alicloud.region2](#provider\_alicloud.region2) | n/a |
18+
| <a name="provider_alicloud.region3"></a> [alicloud.region3](#provider\_alicloud.region3) | n/a |
19+
20+
## Modules
21+
22+
| Name | Source | Version |
23+
|------|--------|---------|
24+
| <a name="module_alb"></a> [alb](#module\_alb) | ./alb | n/a |
25+
| <a name="module_ecs1"></a> [ecs1](#module\_ecs1) | ./ecs | n/a |
26+
| <a name="module_ecs2"></a> [ecs2](#module\_ecs2) | ./ecs | n/a |
27+
| <a name="module_ecs3"></a> [ecs3](#module\_ecs3) | ./ecs | n/a |
28+
| <a name="module_vpc1"></a> [vpc1](#module\_vpc1) | ./vpc | n/a |
29+
| <a name="module_vpc2"></a> [vpc2](#module\_vpc2) | ./vpc | n/a |
30+
| <a name="module_vpc3"></a> [vpc3](#module\_vpc3) | ./vpc | n/a |
31+
32+
## Resources
33+
34+
| Name | Type |
35+
|------|------|
36+
| [alicloud_cen_instance.cen](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_instance) | resource |
37+
| [alicloud_cen_transit_router.tr1](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router) | resource |
38+
| [alicloud_cen_transit_router.tr2](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router) | resource |
39+
| [alicloud_cen_transit_router.tr3](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router) | resource |
40+
| [alicloud_cen_transit_router_peer_attachment.peer12_attachment](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_peer_attachment) | resource |
41+
| [alicloud_cen_transit_router_peer_attachment.peer13_attachment](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_peer_attachment) | resource |
42+
| [alicloud_cen_transit_router_route_entry.tr1_route_entry](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_entry) | resource |
43+
| [alicloud_cen_transit_router_route_table.tr1_route_table](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table) | resource |
44+
| [alicloud_cen_transit_router_route_table.tr2_route_table](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table) | resource |
45+
| [alicloud_cen_transit_router_route_table.tr3_route_table](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table) | resource |
46+
| [alicloud_cen_transit_router_route_table_association.tr1_association12](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
47+
| [alicloud_cen_transit_router_route_table_association.tr1_association13](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
48+
| [alicloud_cen_transit_router_route_table_association.tr1_association21](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
49+
| [alicloud_cen_transit_router_route_table_association.tr1_association31](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
50+
| [alicloud_cen_transit_router_route_table_association.tr1_table_association](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
51+
| [alicloud_cen_transit_router_route_table_association.tr2_table_association](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
52+
| [alicloud_cen_transit_router_route_table_association.tr3_table_association](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_association) | resource |
53+
| [alicloud_cen_transit_router_route_table_propagation.tr1_propagation12](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
54+
| [alicloud_cen_transit_router_route_table_propagation.tr1_propagation13](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
55+
| [alicloud_cen_transit_router_route_table_propagation.tr1_propagation21](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
56+
| [alicloud_cen_transit_router_route_table_propagation.tr1_propagation31](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
57+
| [alicloud_cen_transit_router_route_table_propagation.tr1_table_propagation](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
58+
| [alicloud_cen_transit_router_route_table_propagation.tr2_table_propagation](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
59+
| [alicloud_cen_transit_router_route_table_propagation.tr3_table_propagation](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_route_table_propagation) | resource |
60+
| [alicloud_cen_transit_router_vpc_attachment.vpc_att1](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_vpc_attachment) | resource |
61+
| [alicloud_cen_transit_router_vpc_attachment.vpc_att2](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_vpc_attachment) | resource |
62+
| [alicloud_cen_transit_router_vpc_attachment.vpc_att3](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/cen_transit_router_vpc_attachment) | resource |
63+
| [alicloud_route_entry.vpc1_route_entry](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/route_entry) | resource |
64+
| [alicloud_route_entry.vpc2_route_entry](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/route_entry) | resource |
65+
| [alicloud_route_entry.vpc3_route_entry](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/resources/route_entry) | resource |
66+
| [alicloud_cen_transit_router_service.open](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/cen_transit_router_service) | data source |
67+
| [alicloud_instance_types.types1](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types) | data source |
68+
| [alicloud_instance_types.types2](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types) | data source |
69+
| [alicloud_instance_types.types3](https://registry.terraform.io/providers/aliyun/alicloud/latest/docs/data-sources/instance_types) | data source |
70+
71+
## Inputs
72+
73+
| Name | Description | Type | Default | Required |
74+
|------|-------------|------|---------|:--------:|
75+
| <a name="input_ecs_password"></a> [ecs\_password](#input\_ecs\_password) | ECS instance password | `string` | n/a | yes |
76+
| <a name="input_region1"></a> [region1](#input\_region1) | Region ID | `string` | `"cn-chengdu"` | no |
77+
| <a name="input_region2"></a> [region2](#input\_region2) | Region ID | `string` | `"cn-shanghai"` | no |
78+
| <a name="input_region3"></a> [region3](#input\_region3) | Region ID | `string` | `"cn-qingdao"` | no |
79+
| <a name="input_system_disk_category"></a> [system\_disk\_category](#input\_system\_disk\_category) | System disk category | `string` | `"cloud_essd_entry"` | no |
80+
| <a name="input_zone11_id"></a> [zone11\_id](#input\_zone11\_id) | zone11 ID | `string` | `"cn-chengdu-a"` | no |
81+
| <a name="input_zone12_id"></a> [zone12\_id](#input\_zone12\_id) | zone12 ID | `string` | `"cn-chengdu-b"` | no |
82+
| <a name="input_zone21_id"></a> [zone21\_id](#input\_zone21\_id) | zone21 ID | `string` | `"cn-shanghai-e"` | no |
83+
| <a name="input_zone22_id"></a> [zone22\_id](#input\_zone22\_id) | zone22 ID | `string` | `"cn-shanghai-f"` | no |
84+
| <a name="input_zone31_id"></a> [zone31\_id](#input\_zone31\_id) | zone31 ID | `string` | `"cn-qingdao-c"` | no |
85+
| <a name="input_zone32_id"></a> [zone32\_id](#input\_zone32\_id) | zone32 ID | `string` | `"cn-qingdao-b"` | no |
86+
<!-- END_TF_DOCS -->
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
variable "vpc_id" {}
2+
variable "vsw1_id" {}
3+
variable "zone11_id" {}
4+
variable "vsw2_id" {}
5+
variable "zone12_id" {}
6+
variable "ecs2_ip" {}
7+
variable "ecs3_ip" {}
8+
9+
resource "alicloud_alb_load_balancer" "alb" {
10+
vpc_id = var.vpc_id
11+
address_type = "Intranet"
12+
address_allocated_mode = "Fixed"
13+
load_balancer_name = "alb_name"
14+
load_balancer_edition = "Basic"
15+
load_balancer_billing_config {
16+
pay_type = "PayAsYouGo"
17+
}
18+
zone_mappings {
19+
vswitch_id = var.vsw1_id
20+
zone_id = var.zone11_id
21+
}
22+
zone_mappings {
23+
vswitch_id = var.vsw2_id
24+
zone_id = var.zone12_id
25+
}
26+
}
27+
28+
resource "alicloud_alb_server_group" "alb_rs" {
29+
protocol = "HTTP"
30+
vpc_id = var.vpc_id
31+
server_group_name = "rs_test"
32+
server_group_type = "Ip"
33+
health_check_config {
34+
health_check_enabled = false
35+
}
36+
sticky_session_config {
37+
sticky_session_enabled = false
38+
}
39+
servers {
40+
port = 80
41+
server_id = var.ecs2_ip
42+
server_ip = var.ecs2_ip
43+
server_type = "Ip"
44+
remote_ip_enabled = true
45+
weight = 100
46+
}
47+
servers {
48+
port = 80
49+
server_id = var.ecs3_ip
50+
server_ip = var.ecs3_ip
51+
server_type = "Ip"
52+
remote_ip_enabled = true
53+
weight = 100
54+
}
55+
}
56+
57+
resource "alicloud_alb_listener" "alb_listener" {
58+
load_balancer_id = alicloud_alb_load_balancer.alb.id
59+
listener_protocol = "HTTP"
60+
listener_port = 80
61+
default_actions {
62+
type = "ForwardGroup"
63+
forward_group_config {
64+
server_group_tuples {
65+
server_group_id = alicloud_alb_server_group.alb_rs.id
66+
}
67+
}
68+
}
69+
}
70+
71+
output "alb_dns_name" {
72+
value = alicloud_alb_load_balancer.alb.dns_name
73+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
variable "create_ecs" {}
2+
variable "vpc_id" {}
3+
variable "vsw_id" {}
4+
variable "zone_id" {}
5+
variable "instance_type" {}
6+
variable "system_disk_category" {}
7+
variable "ecs_password" {}
8+
variable "instance_name" {}
9+
variable "install_script" {}
10+
11+
resource "alicloud_security_group" "group" {
12+
count = var.create_ecs? 1:0
13+
vpc_id = var.vpc_id
14+
}
15+
16+
resource "alicloud_security_group_rule" "rule" {
17+
count = var.create_ecs? 1:0
18+
type = "ingress"
19+
ip_protocol = "all"
20+
nic_type = "intranet"
21+
policy = "accept"
22+
port_range = "-1/-1"
23+
priority = 1
24+
security_group_id = alicloud_security_group.group[0].id
25+
cidr_ip = "0.0.0.0/0"
26+
}
27+
28+
resource "alicloud_instance" "ecs" {
29+
count = var.create_ecs? 1:0
30+
availability_zone = var.zone_id
31+
security_groups = alicloud_security_group.group[0].*.id
32+
instance_type = var.instance_type
33+
system_disk_category = var.system_disk_category
34+
image_id = "aliyun_3_x64_20G_alibase_20230727.vhd"
35+
instance_name = var.instance_name
36+
vswitch_id = var.vsw_id
37+
password = var.ecs_password
38+
user_data = var.install_script
39+
}
40+
41+
output "ecs_ip" {
42+
value = var.create_ecs? alicloud_instance.ecs[0].private_ip:"No ecs created"
43+
}

0 commit comments

Comments
 (0)