AWS CodePipeline
Pipeline CI/CD tự động
Điều phối quy trình phát hành qua các stage (source, build, test, deploy, phê duyệt thủ công), tự chạy mỗi khi code thay đổi và gọi CodeBuild, CodeDeploy, CloudFormation hay dịch vụ khác ở từng bước.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Ít
- Serverless
- Có trong đềDVA · SOA · SAA
Hình dungNhư băng chuyền nhà máy: sản phẩm đi lần lượt qua từng trạm kiểm tra, lỗi ở trạm nào dừng ở đó.
Khi nào nên dùng
✓ Nên dùng khi
Muốn tự động hoá toàn bộ luồng từ commit tới production ngay trong AWS.
✗ Không nên dùng khi
Team đã chuẩn hoá CI/CD trên GitHub Actions/GitLab CI và không cần tích hợp sâu với AWS.
Ví dụ hay gặp
- Commit → build → test → deploy lên ECS
- Triển khai stack CloudFormation/CDK nhiều môi trường
- Thêm bước phê duyệt thủ công trước khi lên production
Tốn bao nhiêu tiền?
- Cách tính: Pipeline V1 tính theo số pipeline active mỗi tháng; pipeline V2 tính theo phút thực thi action.
Chưa kể chi phí của CodeBuild, S3 artifact store và dịch vụ được gọi trong từng stage.
Đề hỏi “tự động hoá CI/CD từ commit tới production, có bước phê duyệt thủ công” thì chọn CodePipeline; “biên dịch và test” thì CodeBuild; “triển khai lên EC2/Lambda/ECS (blue/green)” thì CodeDeploy; “hạ tầng dạng code” thì CloudFormation.
Câu hỏi thường gặp
CodePipeline khác gì CodeBuild và CodeDeploy?
CodePipeline là bộ điều phối cả quy trình, chia thành các stage và hành động. CodeBuild là bước biên dịch, chạy test và tạo artifact. CodeDeploy là bước triển khai ứng dụng lên EC2, on-prem, Lambda hoặc ECS. Thường CodePipeline gọi CodeBuild rồi CodeDeploy, hoặc CloudFormation, ECS, S3 ở bước deploy.
Pipeline chạy khi nào và dữ liệu giữa các stage truyền thế nào?
Pipeline tự chạy khi có thay đổi ở nguồn (kho code như GitHub qua connection, S3, ECR) hoặc qua EventBridge, lịch, hoặc chạy tay. Artifact giữa các stage được lưu trong một bucket S3 và có thể mã hoá bằng KMS. Có thể thêm bước phê duyệt thủ công (manual approval) trước khi lên production.
CodePipeline có triển khai chéo tài khoản hoặc Region được không?
Được. Một kịch bản phổ biến là pipeline nằm ở tài khoản công cụ rồi deploy sang các tài khoản dev, staging, prod bằng IAM role chéo tài khoản. Hành động cũng có thể chạy ở Region khác, khi đó cần artifact store ở mỗi Region.