AWS Cloud Development Kit
Hạ tầng dưới dạng code thật
Framework để định nghĩa hạ tầng AWS bằng ngôn ngữ lập trình quen thuộc (TypeScript, Python, Java, C#, Go); lệnh `cdk synth` dịch code thành template CloudFormation rồi `cdk deploy` triển khai.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Không
- Serverless
- Có trong đềDVA · SAA
Hình dungNhư viết công thức nấu ăn bằng ngôn ngữ của bạn, rồi có người dịch sang tiếng bếp trưởng (CloudFormation) để nấu.
Khi nào nên dùng
✓ Nên dùng khi
Team dev muốn viết hạ tầng bằng code có vòng lặp, hàm, kiểu dữ liệu và tái sử dụng construct.
✗ Không nên dùng khi
Cần công cụ đa cloud hoặc team đã quen khai báo thuần → Terraform / CloudFormation.
Ví dụ hay gặp
- Dựng stack serverless (API Gateway + Lambda + DynamoDB) vài chục dòng code
- Đóng gói construct nội bộ dùng chung cho nhiều team
- Tạo hạ tầng nhiều môi trường dev/staging/prod từ cùng một code
Tốn bao nhiêu tiền?
- Cách tính: Miễn phí; chỉ trả cho tài nguyên AWS mà stack tạo ra.
`cdk bootstrap` tạo bucket S3 và ECR repo chứa asset; asset cũ tích tụ dần vẫn tốn phí lưu trữ.
Đề hỏi “định nghĩa hạ tầng bằng ngôn ngữ lập trình như TypeScript/Python” thì chọn CDK; “template khai báo YAML/JSON” thì CloudFormation; “ứng dụng serverless với cú pháp rút gọn” thì SAM; CDK cuối cùng sinh ra CloudFormation.
Câu hỏi thường gặp
CDK khác gì CloudFormation?
CloudFormation dùng template khai báo YAML/JSON. CDK cho bạn viết hạ tầng bằng ngôn ngữ lập trình (TypeScript, Python, Java…) với vòng lặp, hàm, kiểu dữ liệu, rồi tổng hợp (synth) ra template CloudFormation để triển khai. Vì vậy CDK vẫn chạy trên CloudFormation: có stack, rollback, drift detection như thường.
Construct L1, L2, L3 là gì?
L1 là ánh xạ 1-1 với tài nguyên CloudFormation (tên bắt đầu bằng Cfn), phải tự điền mọi thuộc tính. L2 là lớp trừu tượng tiện dụng với giá trị mặc định hợp lý và hàm hỗ trợ (ví dụ cấp quyền). L3 (patterns) gộp nhiều tài nguyên thành một giải pháp hoàn chỉnh, như một service chạy sau load balancer.
Các lệnh CDK chính và cdk bootstrap để làm gì?
cdk synth tạo template CloudFormation, cdk diff so với bản đang chạy, cdk deploy triển khai. Trước lần deploy đầu tiên trong một tài khoản/Region cần chạy cdk bootstrap để tạo các tài nguyên hỗ trợ như bucket S3 chứa asset và các role cần thiết.