High Availability & Scalability

2 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

New words

  • passive/ˈpæs.ɪv/: Bị động

Scalability

  • Scalability (Khả năng mở rộng) có nghĩa là một ứng dụng/hệ thống có thể xử lý tải lớn hơn bằng cách thích nghi.
  • Có hai loại scalability:
    • Vertical Scalability (mở rộng theo chiều dọc – scale-up)
    • Horizontal Scalability (mở rộng theo chiều ngang – scale-out, hay còn gọi là elasticity)
  • Scalability có liên quan nhưng khác với High Availability (tính sẵn sàng cao)

Vertical Scalability (Mở rộng theo chiều dọc)

  • Vertical scalability nghĩa là tăng kích thước của instance (nâng cấp cấu hình máy).
  • Ví dụ: Ứng dụng của bạn đang chạy trên instance t2.micro.
  • Scale theo chiều dọc tức là chạy ứng dụng đó trên một instance lớn hơn, ví dụ: t2.large.
  • Vertical scalability rất phổ biến với hệ thống không phân tán (non-distributed systems), ví dụ như cơ sở dữ liệu (database).
  • Các dịch vụ như RDS, ElastiCache hỗ trợ scale theo chiều dọc.
  • Tuy nhiên, có giới hạn phần cứng cho việc scale theo chiều dọc – bạn không thể nâng mãi CPU/RAM (gọi là hardware limit).

Horizontal Scalability (Mở rộng theo chiều ngang)

  • Horizontal Scalability nghĩa là tăng số lượng instance / hệ thống để phục vụ cho ứng dụng của bạn.
  • Scale theo chiều ngang ngụ ý hệ thống phân tán (distributed systems).
  • Cách scale này rất phổ biến với các ứng dụng web hoặc các hệ thống hiện đại (modern apps).
  • Nhờ có cloud (như Amazon EC2), việc scale theo chiều ngang trở nên dễ dàng.

High Availability (Độ sẵn sàng cao)

  • High Availability (HA) thường đi đôi với Horizontal Scaling.
  • HA nghĩa là chạy hệ thống/ứng dụng của bạn trên ít nhất 2 Data Centers (hay gọi là Availability Zones trong cloud như AWS).
  • Mục tiêu của HA là đảm bảo hệ thống vẫn hoạt động khi một Data Center bị mất.
  • Hai dạng High Availability:
    • Passive HA:
      • Ví dụ như RDS Multi-AZ.
      • Có 1 instance chính (primary) và 1 bản sao (standby), standby không xử lý request cho đến khi failover xảy ra.
    • Active HA:
      • Áp dụng khi scale theo chiều ngang.
      • Tất cả các instance đều hoạt động và xử lý request đồng thời (load balancing).

High Availability & Scalability cho EC2

Vertical Scaling (Scale up/down)

  • Tăng kích thước của EC2 instance:
  • Ví dụ scale up:
    • Từ t2.nano: 0.5GB RAM, 1 vCPU
    • Lên u-12tb1.metal: 12.3TB RAM, 448 vCPUs

👉 Thường dùng cho workload không phân tán như DB đơn, legacy system...

Horizontal Scaling (Scale out/in)

  • Tăng số lượng EC2 instance để xử lý tải cao hơn:
  • Sử dụng Auto Scaling Group (ASG)
  • Sử dụng Load Balancer để phân phối request

⛳ Phù hợp với ứng dụng hiện đại, microservices, stateless app

High Availability (HA)

  • Chạy cùng một ứng dụng trên nhiều Availability Zones (AZs) để đảm bảo uptime khi AZ bị sự cố:
    • Auto Scaling Group Multi AZ: tự động phân phối instance qua nhiều AZ
    • Load Balancer Multi AZ: chuyển hướng request đến instance còn hoạt động
Bạn thấy bài này thế nào?