본문 바로가기

Tech/[Cloud] AWS

AWS 한 번에 초기화 할 때 aws-nuke를 사용하자 (25.05.09 Update)

AWS-nuke 3.5.1 사용 방법

1. 개요

aws-nuke는 AWS 계정 내 모든 리소스를 삭제하는 오픈 소스 도구이다.

  • 목적: AWS 계정의 모든 자산을 완전히 삭제하여 초기화 상태로 만들기
  • 주요 특징:
    • 지정한 AWS 계정 내 모든 리소스 삭제
    • 필터를 사용하여 특정 리소스 제외 가능
    • YAML 형식의 설정 파일 사용
  • 주의: aws-nuke는 매우 강력하며, 삭제 작업은 되돌릴 수 없다.
  • 적용 사례:
    • 테스트용 계정 초기화
    • 실수로 생성된 리소스 정리
    • 계정 삭제 전에 모든 자원 제거

 

 

2. 사전 준비

필수 요구 사항:

  • AWS CLI 설치 및 설정 완료
  • 관리자 권한이 있는 AWS 계정

AWS CLI 설치 확인: aws --version

AWS CLI Access Key 연동: aws configure

AWS CLI Access Key 확인: cat ~/.aws/credentials

 

 

3. 설치 방법

Step 1: aws-nuke 다운로드
GitHub에서 소스 코드를 클론

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

cd aws-nuke

 

Step 2: 컴파일

make build

컴파일 후 ./bin/aws-nuke 파일이 생성된다.

 

Step 3: 설치 확인

./bin/aws-nuke --version

버전 정보가 출력되면 설치가 완료된 것이다.

 
혹은 그냥 brew install aws-nuke 해서 설치 가능
 
 

4. 사용 방법

4.1 기본 실행 명령어

aws-nuke를 실행하여 모든 리소스를 나열

./bin/aws-nuke run -c config.yml --no-dry-run
  • -c: 설정 파일 지정
  • --no-dry-run: 실제 삭제를 수행

4.2 설정 파일 작성 (config.yml)

aws-nuke의 설정 파일은 YAML 형식으로 작성된다.

설정 파일 설명:

  • regions: 삭제할 리소스가 있는 리전 목록
  • account-blacklist: 절대 삭제하지 않을 AWS 계정 ID
  • accounts: 계정 ID와 삭제 제외 대상 설정

아래는 내가 주로 사용하는 예시 파일이다.

regions:
- "global"
- us-east-1

blocklist:
- "999999999" 

resource-types:
  excludes:
  - IAMUser
  - IAMGroup
  - IAMGroupPolicy
  - IAMGroupPolicyAttachment
  - IAMInstanceProfile
  - IAMInstanceProfileRole
  - IAMLoginProfile
  - IAMOpenIDConnectProvider
  - IAMPolicy
  - IAMRole
  - IAMRolePolicy
  - IAMRolePolicyAttachment
  - IAMSAMLProvider
  - IAMServerCertificate
  - IAMServiceSpecificCredential
  - IAMSigningCertificate
  - IAMUser
  - IAMUserAccessKey
  - IAMUserGroupAttachment
  - IAMUserPolicy
  - IAMUserPolicyAttachment

accounts:
  000000000000: {}

 

4.3 Dry Run (테스트 실행)

삭제 전, 안전하게 dry run으로 테스트한다.

./bin/aws-nuke run -c config.yml

  • Dry Run: 삭제 명령을 실제로 실행하지 않고, 삭제될 리소스 목록만 출력

4.4 실제 삭제 실행

dry run에서 문제가 없으면 실제 삭제 수행.

./bin/aws-nuke run -c config.yml --no-dry-run

 

 

5. 오류 해결 방법

  • 에러: Access Denied
    • IAM 정책에 AdministratorAccess가 있는지 확인
    • aws-nuke를 실행하는 프로파일이 적절한 권한을 가지고 있는지 확인
  • 에러: Rate Limit Exceeded
    • AWS API 호출이 과도하여 발생
    • --max-concurrent-requests 옵션으로 요청 수 줄이기
      ./bin/aws-nuke -c config.yml --max-concurrent-requests 5

 

 

6. 실무 사용 시 주의 사항

  • aws-nuke는 모든 리소스를 삭제하므로, 프로덕션 계정에서는 사용 금지.
  • 백업 필수
  • Dry Run 권장
  • IAM 정책 확인

 

자세한 내용과 최신 버전 정보는 공식 GitHub 페이지를 참고하세요:

https://github.com/ekristen/aws-nuke

 

GitHub - ekristen/aws-nuke: Remove all the resources from an AWS account

Remove all the resources from an AWS account. Contribute to ekristen/aws-nuke development by creating an account on GitHub.

github.com