##はじめに
AWS CloudFormationを使ってとある仮想アプライアンスを起動させようとして2つのパターンのエラーが発生してデプロイに失敗したのでその時のメモ。
※CloudFormationで使ったテンプレートのjsonファイルの書き方に問題があった等、コードの中身に言及した記事ではないです
##その1(AWS MarketPlaceでの事前準備)
###エラー画面
CREATE_FAILEDとエラーメッセージが出力されている。エラー内容は以下
In order to use this AWS Marketplace product you need to accept and subscribe. To do so please visit https://aws.amazon.com/marketplace/xxxxxx
###原因
どうやらデプロイする前にAWS Marketplaceで使いたいプロダクトをSubscribeしておかないといけなかったようなので
エラーメッセージに出力されているmarketplaceのURL(デプロイ対象の仮想アプライアンスのURL)にアクセス。
以下の画面のContinue to Sbscribeと書いてあるオレンジの部分をクリック。
※今回CloudFormationで貯めそうとした製品は別製品。今回は例としてCiscoMerakiの仮想版(vMX)を選択
Subscribeをクリックしたら次に以下の画面のAccept Termsをクリック。
最終的には以下のようなSubscribe to this softwareというメッセージが出力されて完了。
ここまでの工程を済ませてCloudFormationを実行すると、表示されていたエラーは発生しないようになった。
##その2(ElasticIPを割り当てるタイミングでデプロイに失敗)
###エラー画面
エラー内容は以下
The maximum number of addresses has been reached. (Service: AmazonEC2; Status Code: 400; Error Code: AddressLimitExceeded Request ID:xxxxxx
###原因
ElasticIPアドレスの割り当て中にAddressLimitExceededのエラーメッセージが出力されデプロイに失敗したようで
この場合は未使用のElasticIPを開放してあげるか制限緩和を申請して解決をする。
自分は未使用のElasticIPを開放した後に、再度CloudFormationを実行してデプロイに成功しました。
参考URL
https://aws.amazon.com/jp/premiumsupport/knowledge-center/unlock-move-recover-troubleshoot-eip/
##最後に
今までハンズオントレーニング等でしっかり動くように作られてきたCloudFormationのテンプレートしか使ったことがなく、
自分の環境にテンプレートを合わせていくことを今回初めてやった結果、上記のエラーとどうやったら回避できるのかということを実体験することができた。
まだ大して触れているわけではないですが、ある試験項目をこなしたい場合にテンプレートを読みだして、終わったら削除するというサイクルが組めるので、CloudFormationは使いこなせるととても有意義だと実感しました。