CDK - Commands & Bootstrapping
ในบทเรียนนี้ เราจะเรียนรู้ คำสั่งสำคัญของ AWS Cloud Development Kit (CDK) ซึ่งช่วยให้คุณจัดการ CDK applications ได้อย่างมีประสิทธิภาพ
คำสั่งหลักของ CDK
-
ติดตั้ง CDK CLI และไลบรารี
- ช่วยให้คุณเริ่มเขียน CDK stack ได้
-
cdk init- ใช้เริ่มต้นแอปจาก template ที่ระบุ
- เลือกภาษาได้ เช่น Python, JavaScript เป็นต้น
-
cdk synth- สังเคราะห์และพิมพ์ CloudFormation template
- แปลง CDK stack ที่เขียนด้วยโค้ดให้เป็น CloudFormation template
-
cdk bootstrap- จะอธิบายรายละเอียดในส่วนต่อไป
-
cdk deploy- ใช้ deploy stack หลังจากได้ CloudFormation template
-
cdk diff- ดูความแตกต่างระหว่าง โค้ด CDK ในเครื่อง กับ สิ่งที่ deploy อยู่บน CloudFormation
-
cdk destroy- ใช้ลบหรือทำลาย stack ที่ deploy ไปแล้ว
การเข้าใจ CDK Bootstrapping
Bootstrapping คืออะไร?
- Bootstrapping ใน CDK คือ กระบวนการสร้าง resource ที่จำเป็น ก่อน deploy CDK applications ไปยัง environment ของ AWS
AWS Environment ใน CDK คืออะไร?
- Environment = AWS account + Region
- ก่อน deploy ไปยัง environment ใด ๆ ต้องทำ bootstrapping สำหรับ environment นั้นก่อน
เกิดอะไรขึ้นระหว่าง Bootstrapping?
-
รันคำสั่ง:
cdk bootstrap aws://aws_account/aws_region -
CDK จะทำการสร้าง CloudFormation stack ชื่อ CDKToolkit
-
Stack นี้จะสร้าง:
- S3 bucket
- IAM role
-
Resource เหล่านี้เป็น prerequisite สำหรับ deploy CDK stack ใด ๆ
ความสำคัญของ Bootstrapping
-
หาก deploy stack โดยไม่ bootstrap จะเกิด error
- ข้อความ error เช่น policy contains a statement with one or more invalid principals
- สาเหตุ: IAM role ที่จำเป็นยังไม่มี
-
ดังนั้น Bootstrapping จึง จำเป็นเพื่อให้การ deploy มีสิทธิ์และ resource ครบถ้วน
สรุป
-
CDK CLI มีคำสั่งสำคัญ เช่น:
cdk init,cdk synth,cdk deploy,cdk diff,cdk destroy,cdk bootstrap
-
cdk init→ เริ่มแอป CDK ใหม่จาก template ที่ระบุ -
cdk synth→ แปลง CDK stack เป็น CloudFormation template -
cdk bootstrap→ สร้าง resource สำคัญ เช่น S3 bucket และ IAM role ใน AWS environment ก่อน deploy -
การ deploy โดยไม่ bootstrap → จะเกิด error เนื่องจาก IAM role ขาด
-
Bootstrapping เป็นขั้นตอนสำคัญก่อน deploy เพื่อป้องกันปัญหาในการ deploy