AWS LBs trong 12 ngày
Ngày 1: Tổng quan Load Balancers
Sáng:
Ôn tập kiến thức cơ bản về Load Balancing: Các loại, lợi ích, so sánh Layer 4 và Layer 7.
Đi sâu vào kiến trúc và hoạt động của ALB, NLB, GWLB:
ALB: Cấu trúc chi tiết của Listener Rules, các loại điều kiện (path-based, host-based, header-based), ưu tiên rule, chuyển hướng (redirect), rewrite rule.
NLB: Các chế độ proxy (TCP, TLS, UDP), sticky sessions (source IP), preservation of client source IP.
GWLB: Giao thức GENEVE, cách GWLB tương tác với các thiết bị ảo.
Chiều:
Bài tập 1: Tạo một ALB với nhiều Listener Rules phức tạp (ví dụ: chuyển hướng dựa trên header, rewrite URL).
Bài tập 2: Thiết lập NLB với sticky sessions và preservation of client source IP.
Bài tập 3: Nghiên cứu và so sánh chi tiết các tính năng bảo mật của ALB, NLB, GWLB (ví dụ: Web Application Firewall (WAF) với ALB, TLS với NLB).
Ngày 2-3: Application Load Balancer (ALB) nâng cao
Ngày 2:
Sáng:
Xử lý nội dung động với ALB: Tích hợp ALB với AWS Lambda, sử dụng Lambda Target Groups.
Cân bằng tải cho các ứng dụng container: ALB và Amazon ECS/EKS.
Kiểm soát traffic chi tiết: Sử dụng các tính năng như weighted routing, content-based routing, cross-zone load balancing.
Chiều:
Bài tập 1: Tạo ALB chuyển hướng traffic đến Lambda function.
Bài tập 2: Thiết lập ALB để cân bằng tải cho ứng dụng chạy trên Amazon ECS.
Bài tập 3: Cấu hình ALB để phân phối traffic không đồng đều giữa các Target Groups (weighted routing).
Ngày 3:
Sáng:
Xác thực và ủy quyền với ALB: Tích hợp với Amazon Cognito, OIDC, SAML.
Bảo mật ứng dụng web: Tích hợp ALB với AWS WAF, AWS Shield.
Giám sát và xử lý sự cố chuyên sâu: Sử dụng CloudWatch Logs Insights, AWS X-Ray để phân tích và tối ưu hóa hiệu suất ALB.
Chiều:
Bài tập 1: Cấu hình ALB để yêu cầu xác thực người dùng qua Amazon Cognito.
Bài tập 2: Thiết lập AWS WAF để bảo vệ ứng dụng web phía sau ALB khỏi các cuộc tấn công phổ biến.
Bài tập 3: Sử dụng CloudWatch Logs Insights để phân tích các mẫu truy cập bất thường và tìm ra nguyên nhân gốc rễ của sự cố ALB.
Ngày 4-5: Network Load Balancer (NLB) nâng cao
Ngày 4:
Sáng:
NLB và các giao thức khác: TCP, UDP, TLS (mutual authentication).
Cân bằng tải cho các ứng dụng đòi hỏi hiệu năng cao: Sử dụng NLB với các giao thức UDP (ví dụ: VoIP, gaming), cân bằng tải cho cơ sở dữ liệu.
Tối ưu hóa hiệu suất NLB: Sử dụng các tính năng như Proxy Protocol, connection draining, cross-zone load balancing.
Chiều:
Bài tập 1: Thiết lập NLB để cân bằng tải cho ứng dụng VoIP sử dụng giao thức UDP.
Bài tập 2: Cấu hình NLB với mutual TLS authentication.
Bài tập 3: Tối ưu hóa hiệu suất NLB bằng cách sử dụng Proxy Protocol và connection draining.
Ngày 5:
Sáng:
NLB và microservices: Sử dụng NLB để cân bằng tải cho các dịch vụ trong kiến trúc microservices.
Bảo mật NLB: Sử dụng Security Groups, Network ACLs, AWS Shield Advanced.
Tích hợp NLB với các dịch vụ AWS khác: Amazon ECS, EKS, API Gateway.
Chiều:
Bài tập 1: Thiết kế và triển khai kiến trúc microservices sử dụng NLB.
Bài tập 2: Cấu hình Security Groups và Network ACLs để bảo vệ NLB khỏi các truy cập trái phép.
Bài tập 3: Tích hợp NLB với API Gateway để cung cấp một điểm truy cập duy nhất cho các dịch vụ microservices.
Ngày 6: Gateway Load Balancer (GWLB) nâng cao
Sáng:
GWLB và các trường hợp sử dụng nâng cao: Tích hợp với các thiết bị ảo của bên thứ ba (ví dụ: firewall, IDS/IPS), triển khai các giải pháp bảo mật mạng.
Tối ưu hóa GWLB: Sử dụng các tính năng như cross-zone load balancing, health checks.
Giám sát và xử lý sự cố GWLB: Sử dụng CloudWatch, AWS X-Ray.
Chiều:
Bài tập 1: Tích hợp GWLB với một thiết bị ảo firewall của bên thứ ba.
Bài tập 2: Cấu hình health checks cho GWLB để đảm bảo tính sẵn sàng của các thiết bị ảo.
Bài tập 3: Sử dụng AWS X-Ray để theo dõi và phân tích traffic đi qua GWLB.
Ngày 7-9: Ôn tập và làm dự án tổng hợp
Ngày 7-8: Ôn tập toàn bộ kiến thức đã học, làm thêm các bài tập thực hành nâng cao, nghiên cứu thêm về các chủ đề liên quan (ví dụ: Blue/Green Deployment với Load Balancer, Auto Scaling, AWS Global Accelerator).
Ngày 9: Dành toàn bộ thời gian cho dự án tổng hợp (xem chi tiết bên dưới).
Ngày 10-12: Dự án tổng hợp
Dự án: Xây dựng một hệ thống thương mại điện tử có khả năng mở rộng cao, sử dụng nhiều loại Load Balancer.
Mô tả:
Frontend:
Sử dụng ALB để cân bằng tải cho các máy chủ web (EC2 instances) chạy ứng dụng frontend (ví dụ: React, Angular).
Cấu hình HTTPS listener, tích hợp với AWS Certificate Manager để quản lý chứng chỉ SSL/TLS.
Tích hợp với AWS WAF để bảo vệ ứng dụng khỏi các cuộc tấn công.
Backend:
Sử dụng NLB để cân bằng tải cho các microservices (ví dụ: dịch vụ sản phẩm, dịch vụ giỏ hàng, dịch vụ thanh toán).
Các microservices có thể chạy trên EC2 instances hoặc Amazon ECS/EKS.
Cấu hình health checks để đảm bảo tính sẵn sàng của các microservices.
Sử dụng API Gateway làm điểm truy cập duy nhất cho các microservices.
Bảo mật:
Sử dụng Security Groups và Network ACLs để kiểm soát truy cập vào các Load Balancer và các tài nguyên khác.
Cân nhắc sử dụng AWS Shield để bảo vệ hệ thống khỏi các cuộc tấn công DDoS.
Giám sát và mở rộng:
Sử dụng CloudWatch để theo dõi các chỉ số quan trọng của hệ thống (ví dụ: request count, latency, error rate).
Thiết lập Auto Scaling để tự động mở rộng hoặc thu hẹp quy mô của các EC2 instances dựa trên nhu cầu.
Sử dụng AWS X-Ray để theo dõi và phân tích hiệu suất của ứng dụng.
Mục tiêu:
Hiểu rõ cách sử dụng các loại Load Balancer khác nhau trong một hệ thống thực tế.
Áp dụng các kiến thức đã học về cấu hình, bảo mật, giám sát và mở rộng Load Balancer.
Rèn luyện kỹ năng thiết kế và triển khai hệ thống có khả năng mở rộng cao trên AWS.
Bonus: 3 ngày học Geneve
Ngày 1: Khám phá Geneve Protocol và Thiết kế Cơ bản
Sáng:
Tổng quan về Geneve Protocol:
Giới thiệu mục đích và ứng dụng của Geneve protocol.
Vai trò của Geneve trong việc đóng gói và chuyển tiếp lưu lượng mạng.
So sánh Geneve với các giao thức encapsulation khác (VXLAN, GRE).
Yêu cầu thiết kế và thuật ngữ:
Các yêu cầu thiết kế cốt lõi của Geneve: Tính độc lập của Control Plane, khả năng mở rộng của Data Plane.
Thuật ngữ quan trọng trong Geneve: Tunnel, Tunnel Header, Tunnel Options, NVE (Network Virtualization Endpoint).
Chiều:
Bài tập 1: Đọc và tóm tắt các yêu cầu thiết kế của Geneve (Phần 2 trong tài liệu: https://datatracker.ietf.org/doc/html/rfc8926).
Bài tập 2: Tìm hiểu sự khác biệt giữa Control Plane và Data Plane trong kiến trúc mạng.
Bài tập 3: Nghiên cứu và so sánh Geneve với VXLAN và GRE.
Ngày 2: Chi tiết kỹ thuật của Geneve Encapsulation
Sáng:
Định dạng gói tin Geneve:
Phân tích chi tiết định dạng gói tin Geneve trên IPv4 và IPv6.
Vai trò của header UDP và các trường trong header Tunnel.
Các loại Tunnel Options và cách chúng được xử lý.
Các cân nhắc về triển khai:
Các tình huống áp dụng Geneve protocol.
Quản lý congestion control, tính toán checksum UDP.
Đóng gói Geneve trong IP: Phân mảnh, DSCP, ECN, TTL.
Xử lý VLAN bên trong gói tin Geneve.
Chiều:
Bài tập 1: Vẽ sơ đồ mô tả định dạng gói tin Geneve.
Bài tập 2: Tìm hiểu cách tính toán checksum UDP và cách nó được sử dụng trong Geneve.
Bài tập 3: Nghiên cứu về các kỹ thuật offload phần cứng (NIC offloads) liên quan đến Geneve.
Ngày 3: Ứng dụng Geneve trong GWLB và Cân nhắc An ninh
Sáng:
Geneve và GWLB:
Tìm hiểu cách GWLB sử dụng Geneve để chuyển tiếp traffic đến các thiết bị ảo.
Vai trò của GWLB trong việc mở rộng khả năng xử lý của các thiết bị mạng ảo.
Các trường hợp sử dụng phổ biến của GWLB (ví dụ: triển khai firewall, IDS/IPS).
Cân nhắc về bảo mật:
Các vấn đề bảo mật liên quan đến Geneve: Bảo mật dữ liệu, xác thực NVE, tấn công giả mạo,...
Các biện pháp bảo mật được khuyến nghị: Mã hóa, sử dụng IPsec, kiểm soát truy cập,...
Chiều:
Bài tập 1: Thiết lập một môi trường lab đơn giản để mô phỏng cách hoạt động của GWLB với Geneve (sử dụng các công cụ ảo hóa).
Bài tập 2: Tìm hiểu về các lỗ hổng bảo mật tiềm ẩn của Geneve và cách giảm thiểu chúng.
Bài tập 3: Đọc và tóm tắt các cân nhắc về bảo mật trong tài liệu (Phần 6; https://datatracker.ietf.org/doc/html/rfc8926).