AWSのアカウントを解約しても、作ったリソースはすぐには消えません。幸いなことに料金は発生しないので(請求書は来ないので)問題はないかと思ったら他の問題があることが最近分かりました。
アカウントの解約とリソース残存問題
解約したアカウントのS3 Bucket名に特定の名称を使っていて、その名称を他のアカウントで作ろうとした時に問題が発生しました。ベストな対策は、アカウントを解約する前に、リソースを綺麗に削除することです。
今回はアカウント解約をしてしまって、webコンソルにログインも出来ず、そのBucketが残っているかどうかの確認すら出来ないので、s3apiを使ってBucketが残っていることを確認しました。
Bucketの残存確認コマンド
# aws s3api head-bucket --bucket [Bucket Name]
Bucketが存在しているため作れない : 403 Forbidden
# aws s3api head-bucket --bucket [Bucket Name]
An error occurred (403) when calling the HeadBucket operation: Forbidden
Bucketが(どこかに)存在しているので作れないという意味です。
今回、このエラーコードが返ってきました。
Bucketが存在していない: 404 Not Found
# aws s3api head-bucket --bucket [Bucket Name]
An error occurred (404) when calling the HeadBucket operation: Not Found
Bucketが存在していない時のエラーコードです。
すなわち、この名前のBucketは作ることが出来る、という意味にもなります。
じゃ、どうする?
解約したアカウントなので直接削除することも出来ないため、解決案としては以下の3つを上げられます。
- Bucketが消えるまで素直に待つ。(90日のアカウント復活可能期間が過ぎるまで?)
- 別のBucket名を使う。
- アカウント復活を申請して自分で削除する。
結論
アカウント解約する時は、必ず全リソースを削除してから解約しましょう。
追記 (2020.7.16)
SQSのキューとメッセージがある状態で、そのキューがリトライか何かで更新し続ける状況で解約した場合、リトライ中のキューに対しては料金が発生する可能性があります。
解約の前にSQSのキューも消しましょう。