T
Trinh Digital
Giải pháp Công nghệ

Cloud Migration: Sàn TMĐT chịu 100x traffic trong Flash Sale nhờ auto-scaling

Trinh Digital · · 8 phút đọc

Case study cloud migration này kể câu chuyện một sàn thương mại điện tử Việt Nam — từ lúc server sập mỗi lần Flash Sale đến khi xử lý êm ái 100x traffic nhờ kiến trúc auto-scaling trên AWS. Chi phí, kiến trúc, bài học — tất cả được chia sẻ chi tiết.

Bối cảnh: “Mỗi Flash Sale = 1 cơn ác mộng”

Về doanh nghiệp

  • Ngành: Thương mại điện tử (thời trang + mỹ phẩm)
  • Quy mô: 80 nhân viên, 50,000 sản phẩm, 200,000 users/tháng
  • Doanh thu: 60 tỉ VND/năm, 40% đến từ các đợt Flash Sale
  • Hạ tầng cũ: 2 server Dell vật lý đặt tại data center Viettel IDC

Vấn đề

Mỗi tháng có 2-3 đợt Flash Sale, traffic tăng 50-100 lần so với ngày thường:

Chỉ sốNgày thườngFlash Sale
Concurrent users500-1,00050,000-100,000
Requests/giây10010,000+
Orders/phút5-10500-1,000
Bandwidth50 Mbps5 Gbps

Kết quả với server cũ:

  • Flash Sale tháng 1: Server sập sau 3 phút, downtime 45 phút → mất ước tính 800 triệu doanh thu
  • Flash Sale tháng 2: Upgrade server trước → sập sau 10 phút → mất 500 triệu
  • Flash Sale tháng 3: Thuê thêm 2 server tạm → chạy được nhưng checkout chậm 30 giây → 60% giỏ hàng bị bỏ

Tổng thiệt hại 3 tháng: ~2 tỉ VND doanh thu mất + uy tín brand bị ảnh hưởng.

Giải pháp tạm thời đã thử

Giải phápChi phíKết quả
Nâng cấp server (thêm RAM, CPU)80 triệuChịu được 10x, không đủ cho 100x
Thuê thêm server tạm30 triệu/lầnLoad balancing thủ công, vẫn chậm
Giới hạn user Flash Sale0Khách hàng phàn nàn, mất doanh thu

Quyết định: Chuyển lên cloud với auto-scaling.

Giải pháp: Kiến trúc Cloud-native trên AWS

Kiến trúc tổng quan

[Users] → [CloudFront CDN] → [ALB] → [ECS Auto-scaling]

                                    [ElastiCache Redis]

                                    [RDS Aurora MySQL]
                                    (Read Replicas)

                                    [S3 - Static files]

Chi tiết từng thành phần

Thành phầnDịch vụ AWSVai tròChi phí/tháng
CDNCloudFrontCache static content, giảm tải server$50-200
Load BalancerALBPhân tải giữa các server$20
App serversECS FargateChạy ứng dụng, auto-scale 2→50 containers$100-800
CacheElastiCache RedisCache database queries, sessions$70
DatabaseAurora MySQLAuto-scaling read replicas$200-400
StorageS3Hình ảnh sản phẩm, static files$30
MonitoringCloudWatchTheo dõi performance, alerts$20
QueueSQSXử lý order queue tránh overload$5

Auto-scaling strategy

Scaling chính sách:

MetricThresholdAction
CPU > 60%TriggerThêm 2 containers (30 giây)
CPU > 80%UrgentThêm 5 containers (30 giây)
Request count > 5000/phútTriggerThêm 3 containers
CPU < 30% trong 10 phútScale downGiảm 1 container
MinimumLuôn luôn2 containers
MaximumGiới hạn50 containers

Scheduled scaling cho Flash Sale:

  • 30 phút trước Flash Sale: Pre-warm lên 20 containers
  • Trong Flash Sale: Auto-scale dựa trên CPU/request
  • 1 giờ sau Flash Sale: Gradual scale down

Quá trình migration (6 tuần)

Tuần 1-2: Setup infrastructure

  • Tạo VPC, subnets, security groups
  • Setup ECS cluster, task definitions
  • Setup RDS Aurora + read replicas
  • Setup ElastiCache Redis

Tuần 3: Migrate application

  • Dockerize ứng dụng
  • Refactor session management (dùng Redis thay local session)
  • Refactor file upload (dùng S3 thay local disk)
  • Setup CI/CD pipeline (GitHub Actions → ECR → ECS)

Tuần 4: Data migration

  • Migrate database từ MySQL on-premise → Aurora
  • Migrate hình ảnh → S3
  • Validate data integrity

Tuần 5: Testing

  • Load testing với k6: simulate 100,000 concurrent users
  • Chaos testing: kill containers, test auto-recovery
  • Performance tuning: optimize queries, caching
  • Security audit

Tuần 6: Cutover

  • DNS switchover (zero-downtime)
  • Monitor 24/7 trong 3 ngày đầu
  • Rollback plan: DNS trỏ về server cũ trong 5 phút nếu cần

Kết quả

Flash Sale đầu tiên trên cloud

Chỉ sốServer cũAWS Cloud
Peak concurrent users5,000 (rồi sập)120,000 (chạy mượt)
Response time> 30 giây (overload)200ms trung bình
Uptime92% (sập 45 phút)100%
Orders processed2,000 (trước khi sập)25,000
Doanh thu Flash Sale800 triệu3.5 tỉ
Containers usedN/APeak 45, sau 2h giảm về 5

Chi phí so sánh

Chi phí hạ tầng cũ:

Hạng mụcChi phí/tháng
2 servers (khấu hao)5 triệu
Data center hosting8 triệu
Part-time sysadmin10 triệu
Thuê server tạm Flash Sale30 triệu (2-3 lần/tháng)
Tổng53 triệu/tháng
Doanh thu mất do downtime300-800 triệu/tháng

Chi phí AWS cloud:

Hạng mụcNgày thườngTháng có Flash Sale
ECS Fargate4 triệu12 triệu
Aurora MySQL7 triệu10 triệu
ElastiCache2 triệu2 triệu
CloudFront1.5 triệu5 triệu
S3 + Others1.5 triệu2 triệu
Tổng16 triệu31 triệu
Doanh thu mất do downtime00

ROI:

  • Chi phí tăng: 0 (thực tế giảm so với cũ)
  • Doanh thu tăng: +2.7 tỉ/Flash Sale (từ 800 triệu → 3.5 tỉ)
  • ROI sau 3 tháng: > 2,000%

Kết quả sau 6 tháng

Chỉ sốTrướcSau 6 tháng
Uptime95%99.99%
Flash Sale downtime45 phút/lần0
Doanh thu/Flash Sale800 triệu-1.5 tỉ3-5 tỉ
Chi phí hạ tầng/tháng53 triệu20-35 triệu
Deploy frequency1 lần/2 tuần5 lần/ngày
Time to market2 tuần2 ngày

Bài học rút ra

1. Cloud-native, không phải Lift & Shift

Nếu chỉ thuê EC2 chạy giống server cũ, sẽ đắt hơn. Phải dùng managed services (Aurora, ElastiCache, CloudFront) và containerization (ECS/EKS).

2. Pre-warm trước peak traffic

Auto-scaling cần 30-60 giây để thêm server mới. Nếu traffic tăng đột ngột từ 0→100x trong 10 giây, scale không kịp. Giải pháp: scheduled scaling trước sự kiện.

3. Cache là king

80% requests được serve từ CloudFront và Redis cache — không cần đến database. Giảm tải database 80%, giảm chi phí compute 60%.

4. Kiến trúc microservices

Tách riêng: catalog (xem sản phẩm), cart (giỏ hàng), checkout (thanh toán), payment (xử lý tiền). Flash Sale chỉ cần scale checkout + payment, không cần scale toàn bộ.

5. Đầu tư vào load testing

Trước mỗi Flash Sale, chạy load test simulate 150% dự kiến traffic. Phát hiện bottleneck trước khi khách hàng phát hiện.

Công nghệ và tools sử dụng

Mục đíchTool
ContainerizationDocker + ECS Fargate
CI/CDGitHub Actions
Infrastructure as CodeTerraform
MonitoringCloudWatch + Datadog
Load testingk6
Log managementCloudWatch Logs + Kibana
AlertingPagerDuty

FAQ — Câu hỏi thường gặp

1. SME nhỏ hơn có cần kiến trúc phức tạp như vậy?

Không. Kiến trúc này phù hợp cho e-commerce có Flash Sale / traffic biến động lớn. SME traffic ổn định chỉ cần 1-2 EC2 instances + RDS + CloudFront là đủ. Chi phí 5-15 triệu/tháng.

2. Chi phí migration 6 tuần là bao nhiêu?

Tổng chi phí migration: ~180 triệu VND (bao gồm tư vấn kiến trúc, implementation, testing, cutover). Hoàn vốn sau 1 Flash Sale đầu tiên.

3. Có cần đội DevOps full-time?

Trong case study này, đội DevOps 2 người (1 senior + 1 junior). SME có thể outsource DevOps cho managed service provider với chi phí 10-20 triệu/tháng.


Hệ thống của bạn không chịu được traffic cao điểm? Liên hệ Trinh Digital để được tư vấn kiến trúc cloud và auto-scaling phù hợp.

#e-commerce#case study#cloud#auto-scaling
Chia sẻ: Z

Sẵn sàng chuyển đổi số cùng Trinh Digital?

Liên hệ ngay để nhận tư vấn miễn phí. Đội ngũ chuyên gia sẽ phân tích nhu cầu và đề xuất giải pháp tối ưu.

Zalo