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ả:

  1. 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.

  2. 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.

  3. 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.

  4. 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).