「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] 
  
  
  
  

コメント