AMI 選択時のマーケットプレイスのサブスクリプションに失敗しましたエラーの対処法
困っていた内容
マネジメントコンソールから EC2 インスタンスを起動する際、AWS Marketplace で公開されている AMI を選択すると、エラーが表示されました。
エラーは 2 件表示されていますが、どちらも「このAMIへのサブスクライブ中にエラーが発生しました。」という内容です。どうしたらいいですか?

An error occurred while attempting to subscribe to this AMI. When you launch we will attempt to resubscribe to this AMI.
原因
デフォルト VPC が存在しない環境で本エラーは発生します。
CloudTrail で AMI 選択時の状況を確認すると、エラーコードに「Client.VPCIdNotSpecified」が記録されています。

EC2 はデフォルト VPC 内のサブネットで起動を試みようとするため、デフォルト VPC が存在しない場合は、「VPCIdNotSpecified」 エラーが発生します。[1]
そのため、AMI 選択時にデフォルト VPC が参照できない場合、「AMIへのサブスクライブ中にエラーが発生した」という形でマネジメントコンソール上でエラー表示がされるようです。[2]
どう対応すればいいの?
方法1:デフォルト VPC を作成する
根本的な解決策として、デフォルト VPC を作成します。
作成することで AMI 選択時にデフォルト VPC が参照されるため、エラーを回避できます。
デフォルト VPC はコンソール上から簡単に作成ができます。
過去ブログ記事でもデフォルト VPC の作成方法をご紹介しています。
方法2:そのまま利用したい VPC を選択して EC2 を起動させる
エラーを回避せず、そのまま EC2 の起動を行います。
マネジメントコンソール上では後続で利用する VPC を明示的に選択できるため、エラーが発生しても EC2 インスタンスの起動に支障はありません。
また、デフォルト VPC には自身が把握していないルートテーブルやセキュリティグループが含まれる可能性があるため、セキュリティの観点からデフォルト VPC の削除を検討する環境もあるかと思います。
その場合は、こちらを選択します。
参考資料
[1] Error codes for the Amazon EC2 API - Amazon Elastic Compute Cloud
VPCIdNotSpecified
You have no default VPC in which to carry out the request. Specify a VPC or subnet ID or, in the case of security groups, specify the ID and not the security group name. If you deleted your default VPC, you can create a new one.
[2] Troubleshooting launch errors - Application Migration Service
VPCIdNotSpecified error
The EC2 launch template does not automatically set a specific Subnet. As such, EC2 will attempt to launch in a Subnet within the default VPC. If you have removed your default VPC, EC2 will fail to launch any instance for which there is no valid Subnet specified. Ensure that you specify a subnet if that is the case, or AWS Application Migration Service instance launch will fail. You may see the VPCIdNotSpecified error if:






