Binding a Virtual IP Address
Application Scenario
Virtual IP addresses are used for high availability (HA) as they make active/standby ECS switchover possible. If the active ECS becomes faulty and cannot provide services, the virtual IP address is dynamically re-assigned to the standby ECS so services can continue uninterrupted.
Related Resources
Procedure
- Configure the network.
Create the main.tf file, enter the following information, and save the file:
resource "huaweicloud_vpc" "vpc_1" { name = var.vpc_name cidr = var.vpc_cidr } resource "huaweicloud_vpc_subnet" "subnet_1" { vpc_id = huaweicloud_vpc.vpc_1.id name = var.subnet_name cidr = var.subnet_cidr gateway_ip = var.subnet_gateway primary_dns = var.primary_dns }
- Create two ECSs.
Add the following information to the main.tf file:
data "huaweicloud_availability_zones" "myaz" {} data "huaweicloud_compute_flavors" "myflavor" { availability_zone = data.huaweicloud_availability_zones.myaz.names[0] performance_type = "normal" cpu_core_count = 2 memory_size = 4 } data "huaweicloud_images_image" "myimage" { name = "Ubuntu 18.04 server 64bit" most_recent = true } data "huaweicloud_networking_secgroup" "mysecgroup" { name = "default" } resource "huaweicloud_compute_instance" "mycompute" { name = "mycompute_${count.index}" image_id = data.huaweicloud_images_image.myimage.id flavor_id = data.huaweicloud_compute_flavors.myflavor.ids[0] availability_zone = data.huaweicloud_availability_zones.myaz.names[0] security_group_ids = [data.huaweicloud_networking_secgroup.mysecgroup.id] network { uuid = huaweicloud_vpc_subnet.subnet_1.id } count = 2 }
- Apply for a virtual IP address and bind it to the ECS ports.
Add the following information to the main.tf file:
resource "huaweicloud_networking_vip" "vip_1" { network_id = huaweicloud_vpc_subnet.subnet_1.id } # associate ports to the vip resource "huaweicloud_networking_vip_associate" "vip_associated" { vip_id = huaweicloud_networking_vip.vip_1.id port_ids = [ huaweicloud_compute_instance.mycompute[0].network.0.port, huaweicloud_compute_instance.mycompute[1].network.0.port ] }
- Configure variables.
Create the variables.tf file, enter the following information, and save the file. You can change the variable values based on your needs.
variable "vpc_name" { default = "vpc-basic" } variable "vpc_cidr" { default = "172.16.0.0/16" } variable "subnet_name" { default = "subent-basic" } variable "subnet_cidr" { default = "172.16.10.0/24" } variable "subnet_gateway" { default = "172.16.10.1" } variable "primary_dns" { default = "100.125.1.250" }
- Create resources.
- Run terraform init to initialize the environment.
- Run terraform plan to view resources.
- After you confirm that the resource information is correct, run terraform apply to start resource creation.
- Run terraform show to view the created resources.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.