[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.
Màn hình Launch Instance. Màn hình Launch Instance. Màn hình Launch 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.
Màn hình EC2.
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.
Màn hình Load Balancer
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ó.
Màn hình tạo Load Balancer.
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
Màn hình tạo Load Balancer. - Điền các thông tin cần thiết cho Security Group.
Màn hình tạo 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
Màn hình tạo 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.
Màn hình Target Group. Màn hình Target Group. - Chọn Health Check là HTTP và Path là /.
- Nhấn Next.
Màn hình Target Group. - Chọn 2 EC2 Instance đã tạo ở trước đó.
- Nhấn Include as pending below.
- Nhấn Create Target Group.
Màn hình 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.
Màn hình 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.
Màn hình Load Balancer.
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.
Màn hình Launch Instance. Màn hình Launch Instance. - 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.
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.
Màn hình tạo Rule. - Nhấn chọn Add Rule.
Màn hình tạo Rule. - Điền tên của Rule.
- Nhấn Next
Màn hình tạo Rule. - 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.
Màn hình tạo Rule. - Path Patterns: Chúng ta có thể chọn path mà chúng ta muốn chuyển hướng.
Màn hình tạo Rule. - HTTP Request Methods: Chúng ta có thể chọn method mà chúng ta muốn chuyển hướng.
Màn hình tạo Rule. - Source IP: Chúng ta có thể chọn IP mà chúng ta muốn chuyển hướng.
Màn hình tạo Rule. - HTTP Headers: Chúng ta có thể chọn Header mà chúng ta muốn chuyển hướng.
Màn hình tạo Rule. - 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.
Màn hình tạo Rule. - Rule Limits: Chúng ta có thể chọn số lượng rule mà chúng ta muốn tạo.
- Nhấn Next
Màn hình tạo Rule.
- Host Headers: Chúng ta có thể chọn host mà chúng ta muốn chuyển hướng.
- 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.
Màn hình tạo Rule. - Redirect to URL: Chúng ta có thể chọn URL mà chúng ta muốn chuyển hướng.
Màn hình tạo Rule. - 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.
Màn hình tạo Rule. - Nhấn Next.
- Nhấn Create.
Màn hình Launch Instance. Kết quả Postman.
- Forward to Target Group: Chúng ta có thể chọn Target Group mà chúng ta muốn chuyển hướng.
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.
Màn hình tạo Load Balancer. - Điền thông tin cần thiết cho Load Balancer.
Màn hình tạo Load Balancer. - Về Network Mappings, chúng ta chọn giống như khi làm việc với ALB
Màn hình tạo Load Balancer.
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.
Target Group. - 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.
Target Group. - 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.
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.
Màn hình tạo Load Balancer. Màn hình tạo Load Balancer.
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.
Màn hình tạo EC2 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 đó.
Màn hình tạo EC2 Template. - Update User Data giống với 2 EC2 Instance đã tạo đầu bài.
- Nhấn Create launch template.
Màn hình tạo EC2 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.
Màn hình tạo ASG. - Đ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.
Màn hình tạo ASG. - 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.
Màn hình tạo ASG. - Chúng ta sẽ Attach vào 2 ELB mà chúng ta đã tạo ở trên.
Màn hình tạo ASG.
Ở 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.
Màn hình tạo ASG. - Nhấn Next
Màn hình tạo ASG. - Nhấn Create Auto Scaling Group.
Màn hình tạo ASG.
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.
Màn hình Resource Map của ALB. Màn hình Resource Map của NLB. Màn hình tạo EC2 Instance.
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