Overview
- High Availability: đảm bảo tính sẵn sàng. Nếu một máy chủ ngừng hoạt động thì máy còn lại sẽ thay thế để hệ thống hoạt động bình thường, 1 ứng dụng ở nhiều AZ
- Scalability: tính mở rộng. có thể tăng giảm kích thước khi cần
- Có 2 loại mở rộng:
- Vertical scalability => increase instance size
- Horizontal Scalability (= elastic) => increase number of instance
- Thành phần
- Redundancy(dự phòng)
- Monitoring(giám sát)
- Failover(chuyển đổi dự phòng)
- Failback(dự phòng)
Elastic Load Balancer ELB
- là một server dùng để forward traffic đến nhiều server
- Sử dụng health check cho instance: gửi 1 request định kỳ đến instance
Security group
- Load Balancer tạo 1 Security Group nhận request mà user từ các cổng 80(http) 443(https) và chuyển request đến EC2 qua cổng 80
- EC2 tạo 1 Security group chỉ nhận request từ cổng 80
AWS Target Group
- Có thể là EC2 instances, ECS tasks, Lambda functions, IP addresses
- ALB có thể định tuyến tới nhiều target group
- Mỗi target group dùng để định tuyến request tới 1 hay nhiều target khác nhau
- Target type:
- instance: EC2 instance được xác định bởi instance ID
- ip: 1 địa chỉ IP (phải là private IP)
- lambda: lambda function (chúng ta sẽ học ở phần serverless)
- Health check được thực hiện ở level target group
Các loại load Balancer(126)
- Classic load balancer (NOT USED)
- Application load balancer
- Network load balancer
- Gateway load balancer
Application Load Balancer
- Hoạt động ở tầng ứng dụng. Phù hợp để cân bằng lưu lượng HTTP, HTTPS. Phù hợp với ứng dụng micro service & container based application (Docker & Amazon ECS)
Network Load Balancer
- Hoạt động ở layer 4(transport). Sử dụng cho hiệu suất cực kì cao. Có 1 Ip tĩnh cho mỗi AZ, hỗ trợ Elastic IP
- Health Checks hỗ trợ TCP, HTTP & HTTPS Protocols
Gateway Load Balancer
- Hoạt động ở layer 3(Network). Cho phép triển khai, mở rộng, quản lý nhóm mạng bên thứ 3
Sticky session
- Chỉ hoạt động với Application Load Balancer
- Client phải hỗ trợ cookies
- Đảm bảo người dùng không bị mất session data
- Active sticky có thể gây mất cân bằng tải
Cross Zone Load Balancing
- Cross zone load balancing dùng để phân phối lưu lượng truy cập đến nhiều máy chủ trong các khu vực khác nhau trong một vùng cụ thể.
- Application Load Balancer
- Luôn bật (không thể tắt option này đi)
- Không bị tính phí inter AZ
- Network Load Balancer & Gateway Load balancer
- Mặc định sẽ disabled
- Nếu enable lên AWS sẽ tính phí inter AZ của bạn
- Classic Load Balancer
- Mặc định sẽ disabled
- Nếu enable, không bị tính phí inter AZ
SSL/TLS Basic
- Secure Sockets Layer : cổng bảo mật
- Transport Layer Security : bảo mật tầng vận chuyển
- SSL certificate cho phép lượng truy cập giữa máy khách và bộ cân bằng tải được mã hóa trong khi truyền (in-flight encryption)
- SSL dùng để mã hóa các kết nối, đề cập đến lớp cổng bảo mật
- TLS mới hơn của SSL, đề cập đến bảo mật tầng vận chuyển
- Bộ cân bằng tải sử dụng X.509 certificate (TLS)
- Bạn có thể quản lý chứng chỉ bằng ACM (AWS Certificate Manager)
- Có thể tải lên Certificates của riêng mình
- HTTPS listener:
- Phải chỉ định một default certificate
- Có thể thêm một optional list of certs để hỗ trợ domains
- Clients có thể sử dụng SNI(Server Name Indication) để chỉ định tên máy chủ mà họ tiếp cận
- Chỉ định chính sách bảo mật để hỗ trợ các phiên bản SSL/TLS SSL – Server Name Indication (SNI)
- SNI giải quyết vấn đề tải nhiều chứng chỉ SSL lên một máy chủ web (để phục vụ nhiều trang web)
- Application Load Balancer & Network Load Balancer • Supports multiple listeners with multiple SSL certificates • Uses Server Name Indication (SNI) to make it work
Connection Draining
- Gọi đến một Instance khác nếu thời gian đợi dài
Auto Scaling Group
- Tự động tạo, tăng kích cỡ cho EC2 Instance
- Có thể thay đổi quy mô ASG dựa trên cảnh báo của CloudWatch
- Scaling policies (đặt ra các policies để mở rộng, ví dụ: tỉ lệ CPU, Network...)
- Scheduled actions (Lịch trình để sử dụng scaling, ví dụ: cứ 5 phút 1 lần...)
- Predictive scaling (liên tục dự báo tải và lên lịch mở rộng quy mô trước)
Attributes
- Launch Template:
- AMI + Instance type
- EC2 User Data
- EBS Volumes
- Security Groups
- SSH Key Pair
- IAM Roles for your EC2 Instances
- Network + Subnets Information
- Load Balancer Information
- Min size / Max size / Initial Capacity
CloudWatch Alarms & Scaling
- Có thể thay đổi quy mô ASG dựa trên cảnh báo của CloudWatch
- scale-out policies (tăng số lượng instances)
- scale-in policies (giảm số lượng instances)
Dynamic Scaling Policies
- Target Tracking Scaling
- Simple / Step Scaling: • Khi cảnh báo CloudWatch được kích hoạt (ví dụ CPU > 70%), thêm 2 instance • Khi cảnh báo CloudWatch được kích hoạt (ví dụ CPU < 30%), xóa 1 instance
- Scheduled Actions: dự đoán quy mô dựa trên các mẫu sử dụng đã biết