</>Học Dev
Bài học

Tuần 2 - Ngày 4: Reliability Pillar

Tuần 2 – Ngày 4

Tuần 2 - Ngày 4: Reliability Pillar

Mục tiêu học tập

  • Hiểu design principles của Reliability pillar
  • Nắm các concepts: RTO, RPO, fault tolerance
  • Biết các patterns cho high availability

1. Định nghĩa Reliability Pillar

Khả năng của workload thực hiện đúng chức năng như expected, và phục hồi nhanh chóng khi có failures.

4 Focus Areas

  1. Foundations
  2. Workload Architecture
  3. Change Management
  4. Failure Management

2. Design Principles

1. Automatically recover from failure

HealthCheckFailedHealthyUnhealthyInstanceInstanceAutoScaleReplace

2. Test recovery procedures

  • Chaos Engineering
  • Game Days
  • Disaster Recovery drills

3. Scale horizontally

VerticalScaling:HorizontalScaling:BigServervsSmallSmallSmallSinglepointDistributedoffailureNoSPOF

4. Stop guessing capacity

  • Auto Scaling
  • Serverless architectures
  • On-demand resources

5. Manage change through automation

  • Infrastructure as Code
  • CI/CD pipelines
  • Automated testing

3. Key Concepts: RTO và RPO

Recovery Time Objective (RTO)

Thời gian tối đa acceptable để phục hồi system sau disaster

Recovery Point Objective (RPO)

Lượng data loss tối đa acceptable (tính bằng thời gian)

DisasterRPORTODataLossDowntimeLastBackupDisasterServiceOccursRestored

RTO/RPO Trade-offs

StrategyRTORPOCost
Backup & RestoreHoursHours$
Pilot Light10s of minutesMinutes$$
Warm StandbyMinutesSeconds$$$
Multi-Site ActiveNear zeroNear zero$$$$

4. Disaster Recovery Strategies

1. Backup and Restore

PrimaryRegionEC2RDSS3BackupCross-regionreplicationDRRegionAMIs&SnapshotsS3BackupData[Nothingrunning-lowestcost]RTO:Hours|RPO:Hours|Cost:$

2. Pilot Light

PrimaryRegionWeb/AppDBS3(ON)(ON)ReplicationDRRegionWeb/AppDBS3(OFF)(ON-SyncedRead)[OnlyDBrunning-mediumcost]RTO:10sminutes|RPO:Minutes|Cost:$$

3. Warm Standby

PrimaryRegionWeb/AppDBS3(ON)(ON)FULLPrimaryReplicationDRRegionWeb/AppDBS3(ON)StandbySyncedMINIMAL(ON)[Scaled-downversionrunning]RTO:Minutes|RPO:Seconds|Cost:$$$

4. Multi-Site Active/Active

RegionAWeb/AppDBS3(ON)(ON)SyncedFULLPrimaryBi-directionalRoute53ReplicationRoute53WeightedWeightedRegionBWeb/AppDBS3(ON)(ON)SyncedFULLPrimaryRTO:Nearzero|RPO:Nearzero|Cost:$$$$

5. Fault Tolerance Patterns

Circuit Breaker Pattern

NormalFailuresDetectedRecoveryCLOSEDOPENHALFthresholdtimeoutOPENAllowexceededBlockTestcallscallscallsSuccessFailureCLOSEDOPEN

Retry with Exponential Backoff

Attempt 1: Wait 1 second
Attempt 2: Wait 2 seconds
Attempt 3: Wait 4 seconds
Attempt 4: Wait 8 seconds
Attempt 5: Wait 16 seconds (+ jitter)

6. AWS Services cho Reliability

High Availability

ServicePurpose
ELBDistribute traffic across AZs
Auto ScalingMaintain desired capacity
RDS Multi-AZDatabase failover
S311 9s durability
Route 53Health checks và failover

Disaster Recovery

ServicePurpose
AWS BackupCentralized backup management
S3 Cross-Region ReplicationData replication
Aurora Global DatabaseMulti-region database
DynamoDB Global TablesMulti-region NoSQL
CloudFormation StackSetsMulti-region deployment

7. Availability Calculations

SLA và Nines

AvailabilityDowntime/YearDowntime/Month
99% (2 nines)3.65 days7.3 hours
99.9% (3 nines)8.76 hours43.8 minutes
99.99% (4 nines)52.6 minutes4.38 minutes
99.999% (5 nines)5.26 minutes26.3 seconds

Calculating Composite Availability

Serial Components (both must work):
A1 = 99.9%, A2 = 99.9%
Total = A1 × A2 = 99.8%

Parallel Components (only one must work):
A1 = 99.9%, A2 = 99.9%
Total = 1 - (1-A1) × (1-A2) = 99.9999%

8. Câu hỏi ôn tập

  1. Sự khác biệt giữa RTO và RPO?

    Xem đáp án

    RTO (Recovery Time Objective): thời gian tối đa được phép từ khi disaster xảy ra đến khi service hoạt động trở lại — "maximum acceptable downtime". RPO (Recovery Point Objective): lượng data mất tối đa có thể chấp nhận — "maximum acceptable data loss". Ví dụ: RTO 1 giờ = phải back online trong 1 giờ; RPO 15 phút = backup mỗi 15 phút, chấp nhận mất tối đa 15 phút data. RTO thấp hơn = đắt hơn (Warm Standby/Active-Active); RPO thấp hơn = sync replication đắt hơn.

  2. 4 DR strategies là gì và xếp theo cost từ thấp đến cao?

    Xem đáp án

    Từ rẻ nhất → đắt nhất: (1) Backup & Restore — backup sang S3/Glacier, restore khi cần, RTO giờ-ngày, (2) Pilot Light — core DB running, compute off, RTO phút-giờ, (3) Warm Standby — scaled-down production running, RTO phút, (4) Multi-Site Active-Active — full production cả hai regions, RTO ~0. Tương quan: cost thấp hơn = RTO/RPO cao hơn.

  3. Pilot Light khác Warm Standby như thế nào?

    Xem đáp án

    Pilot Light: chỉ core components running ở DR region — thường chỉ database replication (RDS cross-region replica, DynamoDB Global Tables). Compute (EC2, ECS) tắt — cần launch/scale khi failover. Warm Standby: scaled-down production running — cả compute lẫn database, nhưng với ít capacity hơn (ví dụ 10% production scale). Warm Standby failover nhanh hơn (chỉ scale up), Pilot Light rẻ hơn (không pay for idle compute).

  4. Circuit Breaker pattern giải quyết vấn đề gì?

    Xem đáp án

    Ngăn cascading failures trong microservices. Khi service A liên tục fail khi gọi service B (đang chậm/down), Circuit Breaker "mở" — không gọi B nữa và trả fallback response ngay. Sau timeout, thử "half-open" — một số requests đến B. Nếu succeed → "đóng" lại bình thường; nếu vẫn fail → "mở" tiếp. AWS App Mesh, Resilience4j, AWS SDK retry mechanisms implement circuit breaker. Ngăn B's slowness làm A cũng chậm và exhaustion thread pool.

  5. Cách tính availability của 2 components chạy song song?

    Xem đáp án

    Parallel (redundant) components: Availability = 1 - (1-A1) × (1-A2). Ví dụ: 2 EC2 instances mỗi cái 99% available → 1 - (1-0.99)² = 1 - 0.0001 = 99.99%. Series components: A_total = A1 × A2 (mỗi component phải hoạt động). Đây là lý do Multi-AZ tăng availability: failure cả 2 AZs cùng lúc xác suất rất thấp. Thêm AZ → availability tăng gần đến 100%.

9. Bài tập thực hành

  • Setup RDS Multi-AZ
  • Configure S3 Cross-Region Replication
  • Tạo Auto Scaling Group với health checks
  • Test failover scenarios

Tài liệu tham khảo chính thức


Ngày tiếp theo: Performance Efficiency Pillar