Write-Host "🚨 [위험] AWS 확장 리소스(S3 포함) 자동 삭제 스크립트" -ForegroundColor Red Write-Host "S3 버킷 내 모든 데이터와 추가 리소스가 삭제됩니다." -ForegroundColor Yellow $confirm = Read-Host "정말 실행하려면 'YES'를 입력하세요" if ($confirm -ne "YES") { Write-Host "❌ 취소되었습니다." [cite_start]-ForegroundColor Green [cite: 7] exit } # 1. S3 버킷 삭제 (전체 리전 공통) Write-Host "`n🗑️ S3 Buckets 삭제 시작..." -ForegroundColor Magenta $buckets = (aws s3api list-buckets --query "Buckets[].Name" --output text).Split("`t") foreach ($bucket in $buckets) { if ($bucket) { Write-Host " - Bucket: $bucket 비우기 및 삭제 중..." -ForegroundColor Cyan # 버킷 내 모든 객체 및 버전 삭제 (강제) aws s3 rb "s3://$bucket" --force } } # 모든 리전 가져오기 [cite_start]$regions = (aws ec2 describe-regions --query "Regions[].RegionName" --output text).Split("`t") [cite: 1] foreach ($region in $region) { Write-Host "`n🔥 Region: $region 추가 리소스 삭제 작업..." -ForegroundColor Magenta Write-Host "-------------------------------------------" # 2. CloudFormation Stack 삭제 $stacks = aws cloudformation list-stacks --region $region --stack-status-filter CREATE_COMPLETE ROLLBACK_COMPLETE UPDATE_COMPLETE --query "StackSummaries[].StackName" --output text foreach ($stack in $stacks.Split("`t")) { if ($stack) { Write-Host "Deleting CloudFormation Stack: $stack" aws cloudformation delete-stack --region $region --stack-name $stack } } # 3. ECR (컨테이너 이미지 저장소) 삭제 $repos = aws ecr describe-repositories --region $region --query "repositories[].repositoryName" --output text foreach ($repo in $repos.Split("`t")) { if ($repo) { Write-Host "Deleting ECR Repository: $repo" aws ecr delete-repository --region $region --repository-name $repo --force } } # 4. EBS Volume (사용 중이지 않은 것) 삭제 [cite_start]$vols = aws ec2 describe-volumes --region $region --query "Volumes[?State=='available'].VolumeId" --output text [cite: 2] foreach ($vol in $vols.Split("`t")) { if ($vol) { Write-Host "Deleting Available EBS Volume: $vol" aws ec2 delete-volume --region $region --volume-id $vol } } # 5. SNS Topic 삭제 $topics = aws sns list-topics --region $region --query "Topics[].TopicArn" --output text foreach ($topic in $topics.Split("`t")) { if ($topic) { Write-Host "Deleting SNS Topic: $topic" aws sns delete-topic --region $region --topic-arn $topic } } } Write-Host "`n=================================" [cite_start]Write-Host "✅ S3 및 추가 리소스 삭제 명령 전송 완료" -ForegroundColor Green [cite: 14]