web-dev-qa-db-ja.com

AWSアカウントのすべてのAWSリソースを変更する方法はありますか?

複数の所有者が複数のEC2インスタンス、ロードバランサー、ターゲットグループ、セキュリティグループなどをセットアップしているAWSアカウントがあります。これを設定するためにterraformを使用しますが、場合によっては破損が原因で、状態が不整合になります。現在の回復メカニズムは、特定の所有者が所有するそのアカウントのすべてのリソースを手動で破棄することです。特定の所有者に属するAWSアカウントのすべてのリソースを簡単に整理する方法はありますか?

10
Phelodas

特定のユーザーが所有するアカウントのすべてのリソースを削除する方法はありませんが、削除する方法がありますアカウント内のすべてのリソース

aws-nuke を使用できます。これは、説明した同じユースケースから多少作成されました。

  1. 最初に、アカウントに アカウントエイリアス を設定する必要があります。
  2. config file を作成する必要があります。
  3. 次に、次のコマンドを使用して、削除されるすべてのリソースを一覧表示できます。

    aws-nuke -c config/nuke-config.yml --profile aws-nuke-example

  4. --no-dry-runオプションを追加して、同じコマンド内のすべてのリソースを完全に削除します。

  5. targetresource typeexcludeなど、ニーズに合わせて活用できる複数のフィルターオプションもあります。

5

孤立したリソースを削除する簡単な方法はないという他の回答に同意します。

しかし、私は元の問題がテラフォームの状態が破損していることを確認します。 awsリソースから状態ファイルを生成できる terraform import 機能をチェックアウトできます。このようにして、構成をリソースに再度接続できます。

2

短い答え:いいえ。

より長い答え:実際には、それもまたありません。これには組み込みの機能はありません。

あなたが説明しているケースは、典型的なAWSの使用法の範囲内ではありません...アカウントのすべてを破棄する通常は-は簡単ではありません。

もちろん、あなたはcouldスクリプトをかなり簡単に、aws-cliへの呼び出しをカスタムコードにラップしてリソースを反復処理し、追加のリクエストを生成してそれらを破棄します...しかし、そうした場合は、それをロックしてくださいこのような機能は本質的に危険なので、コードを削除します。

1

作成したすべてのリソースを削除できます。自動化する必要があります。サンプルはこちらをご覧ください。

創作

https://github.com/jouellnyc/AWS/tree/master/create_aws_vpc2

削除

https://github.com/jouellnyc/AWS/blob/master/create_aws_vpc2/delete_lb_and_vpc.sh

その他の

私はクラウドヌークである程度の成功を収めました(数分間遊んだ。

https://github.com/gruntwork-io/cloud-nuke

0
jouell

問題がterraform状態の破損である場合、おそらくバージョンをS3バケットに保存すると、その影響を減らすのに役立ちます。

0
Gregory Kirk