[AWS] Chapter 8: AWS ELB, ASG Hands On
Trong bài blogs này, chúng ta sẽ thực hành với AWS Elastic Load Balancer (ELB) và Auto Scaling Group (ASG).
I. Thực hành với ALB - Application Load Balancer
Đầu tiên chúng ta cần phải tạo các EC2 Instance để có thể thực hành với ALB.
Chúng ta vẫn sẽ setup như những lần tạo EC2 Instance lần trước với script.
#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>K.Kloud Tarus $(hostname -f)</h1>" > /var/www/html/index.html
- *=Number of Instances: 2 - Chúng ta sẽ setup bằng 2, để có thể launch 2 instance.
- Lựa chọn Security Group đã tạo trước đó.
- Lựa chọn Key Pair đã tạo trước đó.
- Nhấn Launch Instance để tạo EC2 Instance.
Chúng ta đã có 2 Instance, sửa tên để có thể phân biệt được.
- Nhấn chọn Load Balancer từ menu bên trái.
Tại màn hình Load Balancer, chúng ta chọn Create Load Balancer.
- Nhấn chọn Application Load Balancer, nhấn Create.
Tại màn hình Create Load Balancer, chúng ta cần phải điền thông tin như sau:
- Name: Tên của Load Balancer.
- Ở mục Schema, ta có 2 options là Internet-facing và Internal.
- Internet-facing: Load Balancer sẽ được sử dụng để phân phối traffic từ Internet đến các EC2 Instance.
- Internal: Load Balancer sẽ được sử dụng để phân phối traffic giữa các EC2 Instance trong cùng một VPC.
- Ở mục Load Balancer IP Address Type, ta sẽ chọn IPv4.
- Chúng ta sẽ chọn VPC Default, trong mục Availability Zones, chúng ta sẽ chọn cả 3 AZ hiện có.
Chúng ta sẽ tạo 1 Target Group để có thể thêm các EC2 Instance vào và 1 Security Group dành riêng cho ALB.
- Nhấn chọn Create new security group
- Điền các thông tin cần thiết cho Security Group.
- Trong mục Inboud rules, chúng ta sẽ thêm 1 rule để có các request HTTP đi vào.
- Nhấn Create Security Group
Chúng ta sẽ tạo Target Group để có thể thêm các EC2 Instance vào.
- Chọn Instance Types chọn Instance.
- Chọn Protocol là HTTP và Port là 80.
- Chọn VPC là Default VPC.
- Chọn Health Check là HTTP và Path là /.
- Nhấn Next.
- Chọn 2 EC2 Instance đã tạo ở trước đó.
- Nhấn Include as pending below.
- Nhấn Create Target Group.
Quay lại màn hình tạo Load Balancer, chúng ta sẽ chọn Target Group và Security Group đã tạo ở trên.
- Nhấn Create Load Balancer.
Sau khi tạo xong, chúng ta sẽ thấy được thông tin của Load Balancer.
- Từ đây chúng ta có thể thấy được DNS Name của Load Balancer. Truy cập vào domain này có thể trỏ vào trong các EC2 Instances.
Bây giờ các EC2 Instance đã có thể được truy cập vào từ Load Balancer. Vậy giờ chúng ta sẽ tiến hành tắt Allow HTTP traffic từ Security Group của EC2 Instances để thử nghiệm xem Load Balancer có hoạt động không.
Chọn Security Group của EC2 Instances.
- Nhấn Edit inbound rules.
- Chọn Delete để xóa rule HTTP.
- Thêm 1 rule mới để cho phép HTTP traffic từ Load Balancer. Với Source là Security Group của Load Balancer.
- Nhấn Save rules.
Bây giờ khi chúng ta truy cập vào từ Public IPv4 sẽ không truy cập vào được Instance nữa, tuy nhiên nếu truy cập từ Load Balancer sẽ truy cập vào được.
Giờ chúng ta sẽ thử tính năng Rule của Load Balancer.
- Nhấn chọn vào Rules hiện có của ALB.
- Nhấn chọn Add Rule.
- Điền tên của Rule.
- Nhấn Next
- Tại màn hình chúng ta có thể thấy một số options như:
- Host Headers: Chúng ta có thể chọn host mà chúng ta muốn chuyển hướng.
- Path Patterns: Chúng ta có thể chọn path mà chúng ta muốn chuyển hướng.
- HTTP Request Methods: Chúng ta có thể chọn method mà chúng ta muốn chuyển hướng.
- Source IP: Chúng ta có thể chọn IP mà chúng ta muốn chuyển hướng.
- HTTP Headers: Chúng ta có thể chọn Header mà chúng ta muốn chuyển hướng.
- Query Strings: Chúng ta có thể chọn Query String mà chúng ta muốn chuyển hướng. Với bài blogs này, chúng ta sẽ chọn Query String. Với key là nhatnghia, value là tarus.
- Rule Limits: Chúng ta có thể chọn số lượng rule mà chúng ta muốn tạo.
- Nhấn Next
- Tại màn hình này, chúng ta sẽ thấy những routing actions.
- Forward to Target Group: Chúng ta có thể chọn Target Group mà chúng ta muốn chuyển hướng.
- Redirect to URL: Chúng ta có thể chọn URL mà chúng ta muốn chuyển hướng.
- Fixed Response: Chúng ta có thể chọn response mà chúng ta muốn trả về. Ở bài blogs này, chúng ta sẽ chọn Fixed Response. Và trả về 503 Service Unavailable.
- Nhấn Next.
- Nhấn Create. Sau khi đã tạo xong Rules thì chúng ta sẽ thử nghiệm bằng cách truy cập vào Load Balancer với Query String nhatnghia=tarus. Đây là kết quả postman khi gọi tới
II. Thực hành với NLB - Network Load Balancer
Tại màn hình Load Balancer, chúng ta chọn Create Load Balancer.
- Nhấn chọn Network Load Balancer, nhấn Create.
- Điền thông tin cần thiết cho Load Balancer.
- Về Network Mappings, chúng ta chọn giống như khi làm việc với ALB
Chúng ta cũng sẽ tạo Security Group và Target Group cho NLB.
Tại màn hình tạo Target Group, chúng ta cũng chọn như khi làm việc với ALB.
- Chúng ta chọn Instance.
- Chúng ta chọn Protocol là TCP và Port là 80.
- Nhấn Advanced health check settings. Ta sẽ có những thông số cần quan tâm là:
- Healthy threshold: Số lần kiểm tra mà EC2 Instance phải pass để được coi là healthy.
- Unhealthy threshold: Số lần kiểm tra mà EC2 Instance phải fail để được coi là unhealthy.
- Timeout: Thời gian mà EC2 Instance phải trả về response.
- Interval: Thời gian giữa các lần kiểm tra.
- Success codes: Các mã code mà EC2 Instance trả về để được coi là healthy.
- Nhấn Next.
- Tương tự với ALB, ta sẽ chọn những EC2 Instance vào Target Group.
- Nhấn Include as pending below.
- Nhấn Create Target Group.
Quay về màn hình tạo Load Balancer, chúng ta chọn Target Group và Security Group đã tạo ở trên.
- Nhấn Create Load Balancer. LƯU Ý: Chúng ta cần phải mở port 80 trên Security Group của EC2 Instance allow Security Group của NLB để có thể truy cập vào được.
Sau khi tạo xong thì chúng ta có thể truy cập vào được EC2 Instance thông qua NLB Domain.
III. Thực hành với ASG - Auto Scaling
Trước tiên, chúng ta sẽ tạo EC2 Template để có thể tạo Auto Scaling Group.
- Chúng ta chọn Launch Templates từ menu bên trái.
- Nhấn Create launch template.
- Điền thông tin cần thiết cho Launch Template.
Tại mục Application and OS Images, chúng ta chọn AMI mà chúng ta muốn sử dụng.
Tại mục Instance Type, chúng ta chọn Instance Type mà chúng ta muốn sử dụng.
- Chọn t2.micro.
- Chọn Key Pair.
- Chọn Security Group, chúng ta sẽ lựa chọn SG giống với 2 EC2 Instance đã tạo trước đó.
- Update User Data giống với 2 EC2 Instance đã tạo đầu bài.
- Nhấn Create launch template.
Tiếp theo, chúng ta sẽ tạo Auto Scaling Group.
- Chúng ta chọn Auto Scaling Groups từ menu bên trái.
- Nhấn Create Auto Scaling Group.
- Điền thông tin cần thiết cho Auto Scaling Group.
- Chúng ta chọn Launch Template mà chúng ta đã tạo ở trên.
- Chúng ta chọn VPC mà chúng ta muốn sử dụng.
- Chúng ta chọn AZ mà chúng ta muốn sử dụng.
- Chúng ta sẽ Attach vào 2 ELB mà chúng ta đã tạo ở trên.
Ở Health Check Type, chúng ta chọn EC2, ELB.
- Ở màn hình này chúng ta sẽ thấy được 3 tham số:
- Desired Capacity: Số lượng EC2 Instance mà chúng ta muốn có.
- Minimum Capacity: Số lượng EC2 Instance tối thiểu.
- Maximum Capacity: Số lượng EC2 Instance tối đa.
- Nhấn Next
- Nhấn Create Auto Scaling Group.
Sau khi tạo xong, chúng ta sẽ thấy được thông tin của Auto Scaling Group. Và chúng ta có thể thấy được các EC2 Instance đã được tạo ra.
- Các Instance này đã được Mappings vào trong ALB và NLB mà chúng ta đã tạo ở trên.
IV. Dọn dẹp tài nguyên
- Chúng ta sẽ xóa tất cả các tài nguyên đã tạo ở trên để tránh tốn phí.
- Đầu tiên chúng ta sẽ xoá Auto Scaling Group.
- Sau đó chúng ta sẽ xoá Template.
- Tiếp theo, chúng ta sẽ xoá Load Balancer.
- Tiếp theo ta sẽ xoá Target Group.
- Cuối cùng chúng ta sẽ xoá EC2 Instance.
Vậy là buổi hands on tới đây là hết. Hơi dài, mong các bạn có thể đọc từ từ và nghiền ngẫm chúng. Cảm ơn các bạn đã đọc bài viết của mình. Mong gặp các bạn lại ở bài viết sắp tới.
Bài Viết Liên Quan
[AWS] Chapter 7: AWS ELB - Elastic Load Balancing & Auto Scaling Groups
Xin chào các bạn, hôm nay mình sẽ tiếp tục với series bài viết về AWS. Trong bài viết này, mình sẽ giới thiệu với các bạn về AWS ELB - Elastic Load Balancing.
Đọc Thêm[AWS] Chapter 6: AWS EC2 Storage Hands On
Xin chào các bạn, lại là mình đây. Trong chương này, chúng ta sẽ thực hành với các loại lưu trữ khác nhau trên EC2.
Đọc Thêm[AWS] Chapter 5: AWS EC2 Storages
Xin chào các bạn, chúng ta đã tìm hiểu về EC2, cách tạo EC2, cách kết nối vào EC2 và cách sử dụng EC2.
Đọc Thêm