Tiếp tục với chủ đề Guildline Settings các module function cơ bản trên Amazon Web Service, sau bài viết hướng dẫn setting Management Tools (CloudWatch & CloudTrail) trên AWS thì tiếp đến mình sẽ giới thiệu Auto Scaling trên AWS
1. Auto Scaling
Auto Scaling là gì?
Trước tiên chúng ta sẽ cùng tìm hiểu Auto Scaling là gì:
- Khái niệm cơ bản: Auto Scaling là quy trình tự động add mới (scaling out) hoặc remove (scaling out) EC2 instance dựa trên yêu cầu traffic của application hoặc của hệ thống.
- AWS định nghĩa về Auto Scaling như sau: Auto Scaling cho phép người dùng có một con số chính xác về số lượng EC2 instance khả dụng để xử lý tải của application. Chúng ta có thể tạo ra một tập collections của các EC2 instance, được gọi là Auto Scaling Group. Người dùng cũng có thể chỉ định được số lượng EC2 instance min của từng Auto Scaling Group, và Auto Scaling sẽ điều chỉnh nhằm đảm bảo số lượng EC2 instace cung cấp cho hệ thống không bao giờ dưới con số này. Ngược lại, người dùng cũng có thể chỉ định số lượng EC2 instance max của từng Auto Scaling Group để đảm bảo số lượng EC2 instance cung cấp cho hệ thống không bao giờ vượt quá con số max. Nếu người dùng muốn chỉ định sức chứa mong muốn, người dùng có thể tạo group ngay tại thời điểm đó hoặc bất kì thời điểm nào sau này, Auto Scale sẽ luôn đảm bảo người dùng có đủ số lượng EC2 instance như mong muốn. Và nếu chúng ta chỉ định các scaling policy, Auto Scale có thể thực hiện launch hoặc terminate các instance dựa trên nhu cầu tăng hay giảm của Application.
2. Auto Scaling Basics:
2.1 Mô hình cơ bản của Auto Scaling
-
Dựa vào traffic demand, ELB sẽ thực hiện cân bằng tải cho hệ thống, nếu tải traffic vượt quá khả năng xử lý của số lượng EC2 instace hiện có, Auto Scaling sẽ thực hiện launch thêm EC2 instance mới. VD: Nếu hệ thống có số lượng EC2 Instance min là 2. Mỗi EC2 instance có thể chịu tải tối đa khi có lượng truy cập là 3 user. Khi hệ thống có 6 user muốn truy cập cùng lúc vào hệ thống, ELB sẽ tự động cân bằng tải bằng cách cho group 3 user truy cập vào 2 EC2 Instane khác nhau Note: Với trường hợp số lượng user truy cập đồng thời là 4 user. ELB cũng sẽ tự động cân bằng tải bằng cách cho group 2 user truy cập vào 2 EC2 Instance cùng lúc. Điều này nhằm đảm bảo server không bị overload và bị crash.
-
Đồng thời cùng sẽ phát sinh case số lượng user muốn truy cập vào hệ thống vượt quá tải EC2 instance có thể chịu được. Khi ấy nếu ELB tiếp tục cho phép các user hiện tại truy cập vào các EC2 Instance hiện có thì sẽ dẫn tới việc bị overload, ảnh hưởng tới performance của toàn bộ hệ thống và nếu tiếp diễn trong một khoảng thời gian nhất định thì toàn bộ hệ thống sẽ bị crash. Impact range sẽ ảnh hưởng tới toàn bộ người dùng truy cập tại thời điểm đó.
- Khi ấy, Auto Scale sẽ tự động launch thêm một EC2 mới để chịu tải cho các lượt truy cập tăng bất thường.
- Sau đó, nếu lượng người dùng truy cập vào hệ thống giảm. Auto Scale sẽ tự động terminate các EC2 instance đang không sử dụng để tránh phát sinh chi phí
2.2 Pricing/Cost overview Auto Scale có thể sử dụng FREE, tuy nhiên người dùng sẽ bị charge phí cho Auto Scale Provision (VD bất kì EC2 Instance nào vượt quá Free Tier thì sẽ tính phí Auto Scale Provision)
3. Setting Auto Scale
Basic steps setting Auto Scale:
- Chọn AMIs
- Chọn một Instance Type
- Tiến hành setting cho Launch template và khởi tạo launch template
Optional: bash script để install Apache web server software
#!bin/bash
yum update -y
yum install -y httpd
service httpd start