最近看到不少CDK教學就想說來試試看是不是真的這麼好用
然後順便踩了一點基本設定上的雷就順便記錄一下
AWS Cli
首先要先設定aws cli
然後run aws configure設定
1 | aws sts get-caller-identity |
看一下當前configure設定是否正確可以執行cli/連線取得權限
參考了此範例aws-cdk-qcon-workshop
…
我不知道為什麼我的config檔編輯了幾次格式突然爆炸Cli根本無法執行
所以卡關卡了很久,最後直接全清重新用Cli問答重新產生
實作使用的是這個範例aws-fargate-fast-autoscaler
預設值是isDefault : true
會吃到預設VPC
碰到了一下狀況紀錄如下
Q1.
而預設VPC通常會出現
1 | There are no 'Private' subnets in this VPC. Use a different VPC subnet selection. |
是因為subnet沒有設定Private
Q2.
如果出現這個訊息
1 | cdk bootstrap |
可以修改lib/cdk-stack.js
中的true
為false
1 | const vpc = ec2.Vpc.fromLookup(this, 'VPC', { |
代表你的VPC不是DefaultVPC
,是自建的
反之如果是DefaultVPC
請使用true
Q3.
沒開docker的話..
記得開XD
因為要build docker image然後推到ecr上面去
1 | CdkStack: deploying... |
Q4.
在deploy到一半的時候跳出ELB部署失敗
1 | AWS::ElasticLoadBalancingV2::LoadBalancer | external (external068F12D1) At least two subnets in two different Availability Zones must be specified (Service: AmazonElasticLoadBalancingV2; Status Code: 400; Error Code: ValidationError; Request ID: c04e5311-6ae4-4b8c-8b7c-ef94cfe1c497) |
這邊我誤解了
At least two subnets in two different Availability Zone
這句,這邊要確認VPC是否有兩個以上的Public/Private subnet
我自建的時候只各建了一個不符合ALB部署需求所以失敗…
弄超久orz….
Q5.
如何看設定到底有沒有抓對,可以看cdk.context.json
執行
cdk synth
看跑出來的東西是不是有抓對
例如
1 | { |
結論
CDK算是一個滿方便的東西
至少不會像CloudFormation難閱讀(?)
雖然它的原理也是自動產生一個CloudFormation stack去deploy和rollback就是了XD