はじめに

弊社と契約をしていただいているお客様がAWSアカウントを解約する時には、お客様にて全てのAWSリソースを削除していただいています。
AWSリソースを1つ1つ削除するのは大変かと思いこの記事を書きました。

aws-nukeとは

AWSアカウント内のAWSリソースを削除できるツールです。
使い方によっては意図していないAWSリソースを削除する可能性もあるので、削除したくないものは除外する等使用には注意が必要です[1]。
また、全てのAWSリソースを削除できるわけではないので、料金が発生しているものがないか最後にはAWS マネジメントコンソールを確認することをお勧めします。
[1]https://github.com/rebuy-de/aws-nuke#specifying-resource-types-to-delete

事前準備

ローカルでnuke-config.ymlを作成してください。

miki1:Downloads miki$ ls
nuke-config.yml
miki1:Downloads miki$ cat nuke-config.yml
regions:
- global
- ap-northeast-1

account-blocklist:
- "999999999999"

resource-types:
  excludes:
  - IAMUser

accounts:
  "123456789123": {} # AWSリソースを消したいAWSアカウント
miki1:Downloads miki$

# AWSリソースを消したいAWSアカウントには、みなさんが利用しているAWSアカウントIDを記載してください。
IAMユーザーはAWSリソースの削除後もAWSアカウントへログインする可能性を考慮し、削除しないようにexcludeで削除対象から除外しています。
東京リージョン以外も利用している場合には、リージョン情報を追記してください。
追記するリージョン情報は以下を参考にしてください。

- us-east-2
- us-east-1
- us-west-1
- us-west-2
- af-south-1
- ap-east-1
- ap-southeast-3
- ap-south-1
- ap-northeast-3
- ap-northeast-2
- ap-southeast-1
- ap-southeast-2
- ap-northeast-1
- ca-central-1
- eu-central-1
- eu-west-1
- eu-west-2
- eu-south-1
- eu-west-3
- eu-north-1
- me-south-1
- sa-east-1

aws-nukeを実施

0.アカウントエイリアスの設定をする

IAMのダッシュボードに移動します。
一意となるものであれば何でも良いので設定をします。

1.CloudShellでコマンドを実行する

作業対象のAWSアカウントにログインし、CloudShellをクリックします(図の矢印の箇所)。

以下のようなコマンドライン プロンプトが表示されます。

以下コマンドを実行します。

wget https://github.com/rebuy-de/aws-nuke/releases/download/v2.19.0/aws-nuke-v2.19.0-linux-amd64.tar.gz

tar -zxvf aws-nuke-v2.19.0-linux-amd64.tar.gz

ここでは例としてv2.19.0のファイルを使用しています。最新バージョンの確認は以下からできるので、適宜差し替えの上で実行してください。
https://github.com/rebuy-de/aws-nuke/releases

2.nuke-config.ymlをuploadする

「Actions」から「Upload file」をクリックし、事前準備で作成した「nuke-config.yml」をアップロードします。

アップロードが正常にできたら以下文字列が表示されます。

3.nukeコマンドを実行する

以下コマンドを実施します。

./aws-nuke-v2.19.0-linux-amd64 -c ./nuke-config.yml --no-dry-run

0.アカウントエイリアスの設定をするで作成したアカウントエイリアスを入力します。

再度アカウントエイリアスを聞かれるので入力します。

コマンドの実行が完了すれば、以下の様に「Nuke complete」と表示されます。

まとめ

簡単にaws-nukeを利用することができました。
再三になりますが、aws-nukeは全てのAWSリソースを削除できるわけではないので、最後にはAWS マネジメントコンソールを確認することをお勧めします。

参考記事

https://github.com/rebuy-de/aws-nuke