はじめに
あ…ありのまま 今 起こった事を話すぜ!
「おれは 起動設定でAMIを変更したと思ったら いつのまにかAWS利用料が倍になっていた」
な… 何を言っているのか わからねーと思うが
おれも 何をされたのか わからなかった…
頭がどうにかなりそうだった… 催眠術だとか超スピードだとか
そんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を 味わったぜ…
おふざけはさておき、タイトルのとおり起動設定でAMIを変更しただけだったはずが、AWS利用料が倍になってしまったため、自分への戒め及びAWSを利用している方へ共有するためにも記事として残します。
やったこと
新しくAMIを作成したため、既存の起動設定をコピーして新しい起動設定を作成した。
※この時、変更したのはタイトルとAMIのみ変更し、他の設定は変更していない。
起きた事象
毎日EBSボリュームを作成しており、1か月後にAWS利用料が倍になっていた。
※起動設定を入れ替える前はEBSボリュームを作成することはなかった
原因
この環境ではAutoScalingでEC2の台数を毎日増減しており、EC2を削除した際にEBSボリュームが自動で削除されなくなっていた。
ここでピンときて、EBSを自動削除する「終了時に削除」を確認する。
- 既存の起動設定では「終了時に削除」の設定は有効だった。
- 新しい起動設定では「終了時に削除」の設定は無効となっていた。
※「やったこと」にも記載しているとおり、筆者は既存の起動設定をコピーして新しい起動設定を作成していた。
「終了時に削除」は変更していなかったはずが、いつの間にか変更されている点に注意してほしい。
なぜ発生したか
新しい起動設定を作成する際にAMIを変更したが、このAMIに問題があった。
AMIを作成するときに「終了時に削除」が無効のまま作成していた。
その結果、新しい起動設定でAMIを変更したときにAMIの情報で起動設定が上書きされてしまい、元々有効だったはずの「終了時に削除」が無効になってしまっていた。
対策
起動設定を再作成し、「終了時に削除」を有効にすれば今後は発生しなくなる。
しかし、起動設定の「終了時に削除」はスクロールしないと見えない位置にあり、起動設定を頻繁に更新する場合は毎回目視でチェックするのは難しく、現実的ではない。
そのため、AMI作成元のEC2の「終了時に削除」設定を変更し、「終了時に削除」を有効にすることで今後作成するAMIの「終了時に削除」を有効にすることができる。
やり方は以下の記事を参照。
【AWS/EC2】EBS自動削除をオフ→オンに切り替える方法
また、EC2自体を新しく構築しなおした際に「終了時に削除」が無効になると同様の事象が発生してしまうため、lambdaとCloudWatchで定期的にチェックしても良い。
EC2(インスタンス)が削除されて残ってしまったボリュームの削除
後はCloudFormation等の構成管理ツールを使うのもありかと思いますので、状況に応じた対策をとっていただければと思います。
最後に
AMIの設定に応じて起動設定の内容が変わるなんて盲点でした。。。
また1つ勉強になりました。