1. Giới thiệu
CI/CD (Continuous Integration / Continuous Deployment) là nền tảng của phát triển phần mềm hiện đại. Nó giúp tự động hoá việc build, test, và triển khai, giảm lỗi thủ công và tăng tốc độ phát hành.
Bài viết này hướng dẫn bạn từng bước triển khai hệ thống CI/CD trên AWS – từ con số 0, đến khi có pipeline hoạt động tự động.
2. Tổng quan kiến trúc CI/CD
Một pipeline cơ bản trên AWS sẽ bao gồm:
|
Thành phần |
Vai trò |
|---|---|
|
AWS CodeCommit |
Kho lưu trữ source code |
|
AWS CodeBuild |
Build và test mã nguồn |
|
AWS CodeDeploy |
Triển khai ứng dụng |
|
AWS CodePipeline |
Kết nối các giai đoạn lại thành một quy trình tự động |
|
Amazon EC2 / ECS / Lambda |
Môi trường đích để triển khai |
|
S3 / CloudWatch |
Lưu trữ và giám sát log build/deploy |
3. Bước 1 – Chuẩn bị môi trường
a. Cấu hình AWS CLI
aws configure
# nhập Access Key, Secret Key, Region (vd: ap-southeast-1)b. Tạo repository CodeCommit
aws codecommit create-repository --repository-name my-app-repo
git remote add origin https://git-codecommit.ap-southeast-1.amazonaws.com/v1/repos/my-app-repo4. Bước 2 – Thiết lập CodeBuild
Tạo file buildspec.yml trong root dự án:
version: 0.2
phases:
install:
commands:
- echo "Cài đặt dependencies..."
- npm install
build:
commands:
- echo "Build ứng dụng..."
- npm run build
artifacts:
files:
- '**/*'
discard-paths: yes5. Bước 3 – Tạo ứng dụng CodeDeploy
- Trên AWS Console, mở CodeDeploy > Applications > Create Application
- Chọn kiểu “EC2/On-premises” hoặc “ECS/Lambda”
- Upload file appspec.yml:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/myapp
hooks:
AfterInstall:
- location: scripts/restart.sh
timeout: 300
runas: root6. Bước 4 – Xây dựng CodePipeline

- Mở AWS CodePipeline > Create pipeline
- Source: chọn CodeCommit
- Build: chọn CodeBuild project
- Deploy: chọn CodeDeploy application
- Nhấn “Create Pipeline” để AWS tự động tạo pipeline CI/CD hoàn chỉnh
7. Bước 5 – Kiểm thử toàn bộ quy trình
- Commit code mới vào branch main
- Pipeline sẽ tự động:
- Build code qua CodeBuild
- Deploy lên EC2 hoặc ECS
- Ghi log vào CloudWatch
- Kiểm tra trạng thái từng giai đoạn trong CodePipeline Dashboard.
8. Mẹo tối ưu CI/CD
- Dùng IAM Role riêng cho CodeBuild và CodeDeploy (giảm rủi ro bảo mật)
- Bật CloudWatch Alarm để cảnh báo build/deploy thất bại
- Dùng AWS Parameter Store hoặc Secrets Manager để bảo mật biến môi trường
- Tích hợp với Slack để thông báo khi deploy thành công
9. Kết luận
Việc triển khai CI/CD trên AWS giúp đội ngũ dev rút ngắn thời gian release, tự động hóa kiểm thử và tăng độ tin cậy hệ thống.
Bắt đầu từ pipeline nhỏ – sau đó mở rộng dần sang staging, production hoặc multi-region.