AWS - CDK


CDK Cloud Development Kit

是 AWS 的「以程式碼建構基礎架構(IaC)」框架。用 Python、TypeScript、Java、C# 等語言寫程式,CDK 會自動轉換成 CloudFormation Template,再由 CloudFormation 幫你部署。


為什麼要用 CDK

傳統 IaC 問題CDK 解法
CloudFormation YAML 很冗長用程式語法組裝資源(OOP + 重用)
環境變數、邏輯不好寫可以用條件式、迴圈、函式
想封裝可重用架構CDK Construct 封裝一整組元件

架構概念

名稱說明
App整個 CDK 專案的 root(entrypoint)
Stack一組資源(對應 CloudFormation Stack)
Construct可重用的基礎元件(CDK 的最小單位)

一個 App 可包含多個 Stack,每個 Stack 內有多個 Construct。


CDK Workflow

1
2
3
4
5
6
cdk init      # 建立專案骨架
cdk synth # 轉換成 CloudFormation Template
cdk diff # 比對現有 Stack 變更
cdk deploy # 佈署 Stack 到 AWS
cdk destroy # 移除 Stack


CDK CLI 指令大全

指令功能備註
cdk init建立新專案--language typescript/python/java
cdk synth產生 CloudFormation 模板實際部署前可檢查
cdk diff比對本地與線上 Stack類似 Change Set
cdk deploy部署 Stack自動產生與套用 Template
cdk destroy刪除 Stack等同 CloudFormation delete-stack
cdk bootstrap初始化部署環境(S3、IAM Role)必做第一次
cdk list顯示 App 中所有 Stack
cdk doctor檢查 CLI 與環境設定偵錯用
cdk context管理 context cachee.g. 清除 cached lookup
cdk metadata檢查 Stack metadata進階排錯

常見組合

1
2
3
4
cdk bootstrap aws://ACCOUNT/REGION
cdk synth
cdk diff
cdk deploy
更新於