
บทนำ
ในยุคที่ทีมพัฒนาซอฟต์แวร์ต้องปล่อยโค้ดบ่อยขึ้นเรื่อย ๆ CI/CD (Continuous Integration / Continuous Deployment) กลายเป็นเครื่องมือหลักในการเพิ่มประสิทธิภาพการทำงานและลดข้อผิดพลาดระหว่างการ deploy
บน AWS มีเครื่องมือครบชุดที่ช่วยให้นักพัฒนาสามารถสร้าง pipeline ได้ง่าย โดยใช้ CodeCommit, CodeBuild และ CodePipeline บทความนี้จะพาคุณเข้าใจการทำงานทั้งหมดแบบละเอียด พร้อมตัวอย่างใช้งานจริง

CI/CD คืออะไร?
CI/CD คือแนวคิดในการทำให้กระบวนการพัฒนาและ deploy ซอฟต์แวร์เป็นอัตโนมัติ CI (Continuous Integration) คือการรวมโค้ดใหม่เข้ากับระบบอย่างต่อเนื่อง ส่วน CD (Continuous Deployment/Delivery) คือการปล่อยโค้ดขึ้นระบบจริงอัตโนมัติ
- CI: ทดสอบโค้ดทุกครั้งที่มีการ commit
- CD: Deploy โค้ดที่ผ่านการทดสอบขึ้น production

เครื่องมือ CI/CD บน AWS
- 🧩 CodeCommit — ระบบ Git repository บน AWS
- ⚙️ CodeBuild — ระบบ Build และ Test อัตโนมัติ
- 🚀 CodePipeline — ตัวจัดการกระบวนการ Deploy อัตโนมัติ

ขั้นตอนการสร้าง CI/CD Pipeline บน AWS
- สร้าง Repository ใน CodeCommit
- เชื่อมต่อ Repository กับ CodeBuild
- สร้าง Pipeline ใน CodePipeline
- ตั้งค่า Trigger และ Deploy อัตโนมัติ

ขั้นตอนที่ 1: สร้าง Repository ใน CodeCommit
1. เข้าไปที่ AWS Console → CodeCommit → Create Repository
2. ตั้งชื่อ repository เช่น my-cicd-demo
3. Clone repository ลงเครื่องของคุณ:
git clone https://git-codecommit.ap-southeast-1.amazonaws.com/v1/repos/my-cicd-demo
cd my-cicd-demo
touch buildspec.yml
ขั้นตอนที่ 2: ตั้งค่า CodeBuild
CodeBuild คือบริการที่ใช้ในการ Build และ Test โค้ดอัตโนมัติ โดยใช้ไฟล์ buildspec.yml เพื่อกำหนดขั้นตอนการ Build
ตัวอย่างไฟล์ buildspec.yml
version: 0.2
phases:
install:
runtime-versions:
nodejs: 18
build:
commands:
- echo "Starting build..."
- npm install
- npm run build
artifacts:
files:
- '**/*'
ขั้นตอนที่ 3: สร้าง Pipeline ด้วย CodePipeline
- ไปที่ CodePipeline → Create Pipeline
- เลือก Source เป็น CodeCommit (my-cicd-demo)
- เลือก Build เป็น CodeBuild ที่สร้างไว้
- เลือก Deploy Target (เช่น S3, ECS, หรือ Lambda)
ขั้นตอนที่ 4: การ Deploy โค้ดอัตโนมัติ
เมื่อผู้พัฒนา Push โค้ดใหม่ไปยัง CodeCommit → Pipeline จะเริ่มทำงานอัตโนมัติ โดยจะ Build ด้วย CodeBuild และ Deploy ผ่าน Target ที่ตั้งไว้ใน CodePipeline
# ตัวอย่าง push โค้ดขึ้น CodeCommit
git add .
git commit -m "add CI/CD example"
git push origin main
การเชื่อมต่อกับ Lambda (Serverless Deployment)
คุณสามารถตั้งค่าให้ CodePipeline deploy โค้ดขึ้น Lambda ได้โดยตรง เพียงเพิ่มขั้นตอน Deploy Type: AWS Lambda
{
"Deploy": {
"Type": "AWS::Lambda::Function",
"Name": "MyServerlessApp",
"InputArtifacts": ["BuildOutput"]
}
}
Pipeline Diagram
ภาพแสดงการไหลของข้อมูลใน Pipeline ตั้งแต่ CodeCommit → CodeBuild → CodePipeline → Deploy

Best Practices สำหรับ CI/CD บน AWS
- ใช้ IAM Role แยกกันระหว่าง CodeBuild และ CodePipeline
- เก็บ Artifact บน S3 เพื่อความปลอดภัย
- เพิ่มขั้นตอนการทดสอบอัตโนมัติ (Unit Test / Integration Test)
- เปิดใช้ Notifications ผ่าน SNS เพื่อแจ้งเตือนผลการ Deploy
- ใช้ Parameter Store หรือ Secrets Manager จัดการข้อมูลลับ
สรุป
การสร้าง CI/CD บน AWS ด้วย CodeCommit, CodeBuild และ CodePipeline เป็นโซลูชันที่ครบวงจรสำหรับทีมพัฒนาในยุค Cloud-native คุณสามารถเชื่อมต่อกับบริการอื่น ๆ เช่น Lambda, ECS, หรือ S3 ได้อย่างยืดหยุ่น และทำให้การปล่อยโค้ดของคุณรวดเร็ว ปลอดภัย และอัตโนมัติ 100%
📘 บทความโดย King Pool
ภาพประกอบ: AWS CI/CD Architecture, CodeCommit, CodeBuild, CodePipeline, Lambda Integration