「No subnets found for the default VPC ‘VPC ID’. Please specify a subnet.」のエラー
AWSのCloudFrmationの自作テンプレートでのEC2起動が「No subnets found for the default VPC ‘VPC ID’. Please specify a subnet.」のエラーで失敗してしまいました。
「デフォルトVPCのサブネットが見つからないので、サブネットを指定してください」、だそうです。
原因はサブネットの未指定
NGの際のテンプレートであるymlファイルは下記の通り
AWSTemplateFormatVersion: "2010-09-09"
Description: Create EC2 Instance
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: [自身で作成したAMIのID]
InstanceType: t2.micro
最小限の記述でとりあえず、デフォルトVPCにEC2を起動しようとしました。
サブネットは指定していませんでした。ちゃんと指定しないとダメなようです。
サブネットの指定を追加しました。
AWSTemplateFormatVersion: "2010-09-09"
Description: Create EC2 Instance
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: [自身で作成したAMIのID]
InstanceType: t2.micro
SubnetId: [作成したデフォルトVPCのサブネットID]
サブネットを指定したテンプレートで再度スタック作成したところ、EC2が正常に起動できました。
東京リージョン特有の事象?
ちなみにサブネットを指定しなければならなかったのは東京リージョンでした。
バージニア北部のリージョンではサブネットを指定していないテンプレートでもエラーなく起動できるようです。
つまり下記テンプレートの内容でもOKでした。
AWSTemplateFormatVersion: "2010-09-09"
Description: Create EC2 Instance
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: ami-00ecaedbecc7f9d39
InstanceType: t2.micro
サブネットを指定する「SubnetId」は無いのですが、実行すると適当なサブネットを選択してくれているようです。
他のリージョンは試してないので、東京リージョン特有かは不明ですが、
ともかく東京リージョンでCloudFormationのテンプレートを使い、EC2を作成するときは「SubnetId」で特定のサブネットIDを指定する必要があるようです。
ちなみにデフォルトVPC以外に構築したいときは、SubnetIdを構築したいサブネットIDを指定するだけでOKです。
AWSTemplateFormatVersion: "2010-09-09"
Description: Create EC2 Instance
Resources:
MyEC2Instance:
Type: AWS::EC2::Instance
Properties:
ImageId: [自身で作成したAMIのID]
InstanceType: t2.micro
SubnetId: [自身で新規作成したVPC内のサブネットID]
コメント