Cập nhật lần cuối: 2024/08/30 08:48:36
Dưới đây là hướng dẫn khởi tạo dịch vụ Elastic Load Balancer với Terraform
Bước 1 : Tạo file elb.tf với các thông tin sau
data "cmccloudv2_flavor_elb" "elb_flavor1" { name = "small-lb" //chọn flavor cho ELB }
resource "cmccloudv2_elb" "elb_terraform" { // tạo ELB billing_mode = "monthly" # chọn chế độ thanh toán , monthly hoặc hourly zone = "AZ2" # chọn giữa AZ1, AZ2 hoặc AZ3 flavor_id = "${data.cmccloudv2_flavor_elb.elb_flavor1.id}" name = "elb_terraform2" // đặt tên cho elb network_type = "public" // chọn loại elb, public hoặc private //bandwidth_mbps = 500 # network_type = "private" # subnet_id = "d32fa7ba-2a02-4327-80d3-9e17274b9fdd" tags = ["tag1", "tag2"] description = "elb create from terraform" }
data "cmccloudv2_elb" "elb1" { name = "elb_terraform2" } // chọn thông tin ELB đã tạo từ bước trước
resource "cmccloudv2_elb_pool" "pool1"{ // tạo pool cho ELB đã tạo từ bước trước elb_id = "${data.cmccloudv2_elb.elb1.id}" name = "pool1" // description = "create from terraform" protocol = "HTTP" // chọn protocol algorithm = "ROUND_ROBIN"// chọn port theo protocol session_persistence = "APP_COOKIE" // chọn giữa "NONE" ,"SOURCE_IP". "HTTP_COOKIE" hoặc "APP_COOKIE" cookie_name = "cookie1" #tls_enabled = true // chọn true nếu muốn sử enable tls #tls_ciphers = "ciphers text" #tls_versions = [ "TLSv1.2", "TLSv1.3" ] // chọn 1 hoặc nhiều trong các lựa chọn :"SSLv3" "TLSv1" "TLSv1.1" "TLSv1.2" "TLSv1.3" }
resource "cmccloudv2_elb_healthmonitor" "healthmonitor1"{ // enable healtcheckcho pool đã tạo từ bước trước name = "healthmonitor1" pool_id = cmccloudv2_elb_pool.pool1.id max_retries_down = 5 delay = 5 max_retries = 5 timeout = 5 type = "HTTP" // "HTTP", "HTTPS", "PING", "TCP", "TLS-HELLO", "UDP-CONNECT", "SCTP" http_method = "GET" //sử dụng khi healthcheck type là HTPP hoặc HTPPS, chọn giữa "GET", "HEAD", "POST", "PUT", "DELETE", "TRACE", "OPTIONS", "PATCH", "CONNECT" expected_codes = "200-209"//sử dụng khi healthcheck type là HTPP hoặc HTPPS url_path = "/"//sử dụng khi healthcheck type là HTPP hoặc HTPPS # domain_name = "" }
resource "cmccloudv2_elb_pool_member" "member1"{ // add VM vào pool đã tạo từ bước trước pool_id = cmccloudv2_elb_pool.pool1.id name = "ecs-u6gq" // tên VM address = "192.169.1.27" // ip của VM protocol_port = 80 // chọn port weight = 1 // chọn từ 1-256 # subnet_id = "" # monitor_address = "" # monitor_port = 80 depends_on = [ cmccloudv2_elb_healthmonitor.healthmonitor1 ] }
resource "cmccloudv2_elb_listener" "listener"{ // tạo listener và trỏ tới pool đã tạo tại bước trước elb_id = "${data.cmccloudv2_elb.elb1.id}" name = "listener1" // tên listener description = "listener create from terraform" protocol = "HTTP" // chọn protocol protocol_port = "80" // chọn port cho protocol default_pool_id = cmccloudv2_elb_pool.pool1.id sni_container_refs = [] default_tls_container_ref = "" timeout_member_connect = 5000 timeout_member_data = 50000 connection_limit = -1 allowed_cidrs = [] # comment 2 truong sau khi protocol = UDP/SCTP # timeout_client_data = 50000 # timeout_tcp_inspect = 0
# cac truong sau chi set khi protocol = HTTP or TERMINATED_HTTPS # x_forwarded_for = false # x_forwarded_port = true # x_forwarded_proto = true # depends_on = [ cmccloudv2_elb_healthmonitor.healthmonitor1 ] } |
Bước 2 : Kiểm tra lại thông tin file elb.tf và terraform plan ( để kiểm tra lại resource muốn tạo ) . Khởi chạy terraform apply để khởi tạo tài nguyên.
Bước 3 : Kiểm tra tài nguyên đã tạo
Sử dụng câu lệnh terraform state show “ tên resource” để hiển thị chi tiết thông tin về ELB đã tạo
ex: terraform state show cmccloudv2_elb.elb_terraform
Truy cập Portalv2 , trên thanh công cụ , chọn dịch vụ Elastic Load Balancer. Tại đây sẽ hiển thị danh sách các ELB của bạn. Click vào ELB đã tạo để hiển thị thông tin chi tiết
Health Check là một tính năng quan trọng của Elastic Load Balancer , được sử dụng để đảm bảo tính khả dụng và hiệu suất của các máy chủ hoặc các đối tượng trong cụm máy chủ. Health Check cho phép ELB tự động phát hiện máy chủ hoặc dịch vụ nào đang hoạt động cùng với việc tự động loại bỏ các máy chủ hoặc dịch vụ không khả dụng khỏi Load Balancer.
Cách hoạt động
Ví dụ : Server 1 và Server 2 là backend của ELB, thuật toán Round_Robin và được bật Health Check. Trong trường hợp Server 1 được Health Check xác định là Unhealth, traffic sẽ được chuyển sang Server 2
Điều khoản & Chính sách