CI/CD บน AWS: ใช้ CodeCommit, CodeBuild, CodePipeline

Sharing is caring!

บทนำ

ในยุคที่ทีมพัฒนาซอฟต์แวร์ต้องปล่อยโค้ดบ่อยขึ้นเรื่อย ๆ 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

  1. สร้าง Repository ใน CodeCommit
  2. เชื่อมต่อ Repository กับ CodeBuild
  3. สร้าง Pipeline ใน CodePipeline
  4. ตั้งค่า 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

  1. ไปที่ CodePipeline → Create Pipeline
  2. เลือก Source เป็น CodeCommit (my-cicd-demo)
  3. เลือก Build เป็น CodeBuild ที่สร้างไว้
  4. เลือก 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

อ่านต่อ: การใช้งาน Infrastructure as Code ด้วย AWS CDK

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *