Default Subnetが無くてAWS CDKでDeployに失敗した

cdk deploy をしたときに、Template errorとやらで落ちた。

$ cdk deploy HogeStack
HogeStack: deploying...
HogeStack: creating CloudFormation changeset...
  0/28 | 01:13:45 | CREATE_IN_PROGRESS   | AWS::EC2::VPC                         | ExampleVpc (ExampleVpc7799291B) 
~中略~ 
  6/28 | 01:14:04 | CREATE_FAILED        | AWS::EC2::Subnet                      | ExampleVpc/PrivateSubnet2/Subnet (ExampleVpcPrivateSubnet2Subnet...) Template error: Fn::Select  cannot select nonexistent value at index 1
        new Subnet (/Users/szk416/hoge_project/node_modules/@aws-cdk/aws-ec2/lib/vpc.ts:1311:20)

最初はTemplate errorなのでコードのミスかと思ったが、エラーメッセージを見て、ふと思ってマネジメントコンソールを見たら ap-northeast-1a 以外のdefault subnetが存在していなかった。 昔よくわからず、リソースを掃除しようと消してしまったのかもしれない。

ユーザガイドを見たらCUIでしか作れないようだったが、特に難しいことはなかった。 デフォルト VPC とデフォルトサブネット - Amazon Virtual Private Cloud

aws ec2 create-default-subnet --availability-zone ap-northeast-1c aws ec2 create-default-subnet --availability-zone ap-northeast-1d

default subnetが復活して、無事deployできた。