Xây dựng hạ tầng AWS phức tạp cho business bé - cú sốc về chi phí vận hành
Phong Nguyen
Tiếp nối câu chuyện xây dựng product, ở phần này mình muốn chia sẻ câu chuyện lựa chọn và xây dựng hạ tầng cho hệ thống Cloud Exam Pro. Một hạ tầng phức tạp, cồng kềnh chỉ cho một business bé, và kết quả là chi phí hạ tầng cao ngất ngưỡng, đến mức phải mất ngủ.
312 USD (tương đương khoảng 8.2 triệu VNĐ) là chi phí hạ tầng AWS mình đã trả vào tháng 9-10/2025.
Tại thời điểm mà hệ thống mình còn chưa public, chưa có một đồng doanh thu nào thì Bill AWS gửi đến khiến tinh thần mình gần như sụp đổ. 8,2 triệu không phải là con số lớn, nhưng nếu suy nghĩ rằng đó là khoản mình phải trả hàng tháng để nuôi hệ thống thi online đơn giản, rồi doanh thu khi public hệ thống - bán ra các bộ đề AWS liệu có thể đạt tới 8 triệu 1 tháng không?
Công sức 1 năm trời ròng rã của cả nhóm, bao đêm mất ngủ xử lý các vấn đề kỹ thuật phức tạp. Số tiền đã đầu tư để outsource cho anh em dev cũng không hề nhỏ. Mặc dù đã lường trước kết quả nhưng sự thật vẫn rất phũ phàng, mình đã gần như mất ngủ cả đêm để suy nghĩ - liệu hệ thống sẽ còn tồn tại đến khi nào!

Chào mọi người, mình là Phong - Founder hệ thống CloudExam.pro
Sau hơn 1 năm ròng rã xây dựng product, đến hiện tại đã có thể cho ra mắt cộng đồng, mình muốn ngồi lại để viết đôi chút về hành trình mình đã trải qua. Mình muốn ghi lại những khoảng khắc, cảm xúc đáng nhớ trong hành trình này.

Ở phần 1 mình đã chia sẻ quá trình hình thành ý tưởng cho product, ở phần này mình muốn đi sâu hơn chia sẻ về hạ tầng infra của hệ thống - thứ lấy đi của mình bao nhiêu công sức và tiền bạc.
Kinh nghiệm xây dựng hệ thống trên AWS
Mình từng tham gia các dự án như:
- Migration hệ thống xử lý báo cáo tài chính chứng khoán từ Onpremise -> AWS (Sử dụng các service Serverless)
- Migration Net Banking từ Onpremise -> AWS (Chủ yếu là EC2)
- Migration 1 trong những hệ thống dùng trong chính phủ Nhật AWS (EC2) -> AWS (áp dụng Government Cloud)
- Tham gia như SRE Engineer trong hệ thống Credit Card chạy trên môi trường AWS
- Và một số dự án khác
Khi làm việc với những dự án lớn, cùng đội ngũ có kinh nghiệm mình đã học hỏi rất nhiều nhưng cũng có một hạn chế là:
- Nhiều dự án xây dựng infra AWS rất hay nhưng mình đã vào ở giai đoạn gần như hoàn thành
- Dự án lớn thì chia việc, mỗi người phụ trách xây dựng service khác nhau
- Thiết kế tổng thể, basic design thường là phần mình ít khi đụng tới.
Vậy nên nếu không tự xây dựng cho mình 1 hệ thống từ đầu với những kinh nghiệm mình học được, rõ ràng vẫn còn lỗ hổng đâu đó.
Có nhiều cái học được rất hay, thiết kế rất tốt nhưng khi tự làm thì mới gặp vấn đề này vấn đề kia, việc troubleshooting giúp mình hiểu rõ hơn cho solution đó.
Chức năng hệ thống
User
- Đăng ký / đăng nhập
- Home - List all danh sách các bộ đề
- Course Introduction
- Order / Checkout
- Practice Test
- View Test History
- Rating / Feedback

Operator
- Đăng nhập
- Quản lý User / Instructor
- Quản lý Order
- Quản lý Course
- Quản lý Class (Nội bộ Cloud Mentor Pro)
- Tracking Transaction
- etc

Hình ảnh từ thiết kế
Ý tưởng cho hạ tầng cho dự án cá nhân
Cấu trúc AWS Accounts

Cloud Exam Pro được xây dựng trên nền tảng AWS Organizations với chiến lược multi-account, tách biệt môi trường và chức năng để tối ưu security, compliance và quản lý chi phí.
1. Organization Root - Quản lý tập trung
Sử dụng AWS Organizations để quản lý tất cả các accounts con với structure sau:
cmp-platform-dev (Development)
- Môi trường phát triển và thử nghiệm features mới
- Developers có quyền cao để thử nghiệm và debug
- Chi phí thấp với resources nhỏ hơn
cmp-platform-staging (Staging)
- Môi trường pre-production, mirror của production
- Testing end-to-end trước khi deploy lên production
- Validate performance, security và integration
cmp-platform-prod (Production)
- Môi trường chạy thực tế
- Security cao nhất, access control nghiêm ngặt
- High availability
2. IAM-GENERAL Account - Identity Management Hub
Account chuyên dụng để quản lý authentication và authorization:
IAM Identity Center (AWS SSO)
- Centralized identity management cho toàn bộ organization
- Single sign-on cho developers và operators
3. cmp-platform-deployment Account - CI/CD Hub
Account chuyên dụng cho deployment pipeline:
AWS CodePipeline
- Orchestrate toàn bộ workflow từ code → production
AWS CodeBuild
- Build Docker images
- Push đến ECR
AWS CodeDeploy
- Deploy lên dev → staging → prod theo stages
- Rolling update hoặc Blue/green deployment cho zero-downtime updates
4. cmp-platform-logs-archived Account - Centralized Logging
Account chuyên dụng để lưu trữ logs lâu dài:
Amazon S3 (Logs Bucket)
- Collect logs từ tất cả accounts (dev, staging, prod, deployment)
- Long-term retention cho compliance (6 tháng - 3 năm)
- Cost-optimized với S3 lifecycle policies:
- 30 ngày đầu: S3 Standard
- 30-90 ngày: S3 Infrequent Access
- 90+ ngày: S3 Glacier
Overview Architecture

Danh Sách AWS Services Sử Dụng cho Cloud Exam Pro
Analytics
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon Kinesis Data Firehose | Thu thập và chuyển logs từ VPC về S3 log-archived account để lưu trữ dài hạn | Log application, VPC Flow log, ClouTrail log |
Application Integration
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon SQS | Xử lý các tác vụ bất đồng bộ trong hệ thống. | Xử lý Order |
| AWS Lambda | Xử lý event-driven tasks và automation workflows | Start/stop Service. Xử lý Order, Đăng ký User v.v |
Container
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon ECS | Container orchestration cho Frontend API và Backend API microservices | 2 ECS Clusters: Frontend API và Backend API |
| AWS Fargate | Data plane cho ECS, chạy containers serverless | Không cần quản lý EC2 instances |
| Amazon ECR | Container registry lưu trữ Docker images | Nằm trong deployment account |
| AWS Batch | Chạy batch processing jobs định kỳ | Thông báo Couser sắp hết hạn. Xử lý khi Course hết thời gian access |
Database
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon RDS | Database chính cho application data | Có thể là MySQL hoặc PostgreSQL |
Developer Tools
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| AWS CodePipeline | CI/CD pipeline orchestration từ GitHub đến production | Nằm trong deployment account |
| AWS CodeBuild | Build Docker images và run automated tests, Push lên ECR | Nằm trong deployment account |
| AWS CodeDeploy | Deploy containers lên ECS clusters | Nằm trong deployment account |
Management & Governance
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| AWS Chatbot | Tích hợp Slack cho ChatOps, monitoring alerts và notifications | Phát hiện lỗi hệ thống, Alert khi metric vượt ngưỡng |
| AWS CloudTrail | Audit trail cho tất cả AWS API calls | Logs lưu tại log-archived account |
| Amazon CloudWatch | Monitoring, logging và alerting cho toàn bộ hệ thống | CloudWatch Logs thu thập logs từ ECS tasks, Lambda, Flow log v.v |
| AWS Config | Continuous monitoring và compliance tracking cho AWS resources | Tracking thay đổi resource theo thời gian. Cảnh báo khi có resource không tuân thủ rule |
| AWS Systems Manager | Parameter Store để quản lý application configurations | Quản lý biến môi trường |
Networking & Content Delivery
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon Route 53 | DNS management cho domain cloudexam.pro | |
| Amazon CloudFront | CDN cho static content và caching | |
| AWS WAF | Web Application Firewall bảo vệ khỏi attacks | |
| Amazon VPC | Private network cho ECS clusters và databases | Bao gồm subnets, route tables, NAT Gateway |
| VPC Endpoints | Private connectivity đến AWS services không qua Internet | Endpoints: Logs, ECS, Firehose, S3, Etc |
Security, Identity & Compliance
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon Cognito | User authentication và authorization cho users | |
| AWS Certificate Manager | Quản lý TLS/SSL certificates cho HTTPS | |
| AWS IAM | Identity and Access Management cho users, roles và permissions | Role cho ECS Task, Role cho Lambda, v.v |
| AWS Secrets Manager | Lưu trữ và rotate database credentials, API keys | DB username and password |
Storage
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| Amazon S3 | Lưu trữ logs, static assets và backup data |
Third-party Integration
| Tên Service | Mục Đích Sử Dụng | Ghi Chú |
|---|---|---|
| GitHub | Source code repository và trigger CI/CD pipeline | Tích hợp với CodePipeline |
| Slack | ChatOps interface cho operators | Tích hợp qua AWS Chatbot |
Ghi chú:
- Kiến trúc sử dụng multi-account strategy với deployment account riêng biệt
- ECS tasks chạy trong private subnets, truy cập AWS services qua VPC Endpoints
- Logs được centralized về log-archived account qua Kinesis Firehose
- Auto Scaling được cấu hình cho cả Frontend và Backend ECS services
Hạ tầng hiện tại
Do suy xét về mặt thời gian, chi phí, công sức, từ ý tưởng thiết kế ban đầu mình đã lược bỏ đi nhiều
Cấu trúc AWS Accounts
- Bỏ môi trường staging: giảm chi phí và công sức xây dựng
- Bỏ Account cho CICD thay vào đó sẽ dùng Github Action cho tiết kiệm chi phí
- Bỏ Account log-archived: giảm thiểu độ phức tạp của hệ thống

Overview Architecture
Kiến trúc sau khi loại bỏ đi sự phức tạp

Action tiếp theo
Với chi phí hiện tại hơn 300 USD mỗi tháng cho 2 môi trường dev và prod, mình chắc chắn sẽ tìm cách để tối ưu chi phí vận hành.
Các chiến lược mình đang nghĩ đến:
- Right Sizing
- Start / Stop môi trường dev
- Tối ưu chi phí cho từng service
- Vận dụng các Saving plan aws cung cấp
- Tích cực bán bộ đề để phần nào cover chi phí
- Chia sẻ hành trình xây dựng production đến nhiều người để nhiều người biết về hệ thống hơn (từ đó mua ủng hộ :)) )
Kết
Ngay từ khi bản thiết kế infra còn trên giấy, mình đã có thể hình dung được sự phức tạp và chi phí lớn. Mình đã tưởng tưởng rằng nếu xây dựng được hạ tầng này thì cũng được xem là có thứ để tự hào, mang đi chém gió khi phỏng vấn.
Thế nhưng sự thật nó đè bẹp mơ mộng chưa thành hiện thực đó, và điều cấp thiết bây giờ là tìm mọi cách để giảm chi phí nhưng vẫn giữ được sự ổn định của hệ thống, tính sẵn sàng cao và security.
Qua trải nghiệm xây dựng infra lần này cho mình nhiều bài học quý giá
- Cách lên chiến lược hạ tầng ngay thời điểm thiết kế
- Cách xây dựng hạ tầng hoàn chỉnh từ A đến Z
- Hiểu hơn về cách các service liên kết cùng nhau
- Hiểu hơn về chi phí hệ thống
Để xây dựng hệ thống này, mình rất cảm ơn các anh em Cloud Mentor Pro đã cùng nhau đóng góp ý tưởng, thiết kế và xây dựng nó.
Thời điểm hiện tại hệ thống đã trải qua gần 4 tháng hoạt động, 2 tháng đầu khi chưa public (chỉ sử dụng nội bộ) mình thử nghiệm và fix một số lỗi nhỏ, sau khi public đến nay trộm vía hệ thống đang chạy ổn định.
Hy vọng bài viết này hữu ích cho các anh chị em đang có dự định xây dựng production chạy trên môi trường aws, hoặc các bạn đang làm việc trên AWS có thể tham khảo và áp dụng cho công việc của mình.
🌐 Website: https://cloudexam.pro
