본문 바로가기

Linux 명령어/AWS CLI

AWS CLI - 샘플

이전글에서 query에 대해 이해를 했다면 매우 쉬우나

 

막상 작성하려면 귀찮으니 가져다 바로 쓸 예시를 업로드합니다.

(사실 제가 쓰려고 대충 메모해놓는 용도입니다)

** 20201210 GP2 -> GP3 변환 쉘 추가 **

** 20201218 S3 각 버킷 사이즈 구하는 쉘 추가 **

 

1. 모든 인스턴스에 키 값이 TEST이고, Value가 Y인 태그 넣기 / 지우기

 

instances=$(aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId")
aws ec2 create-tags --resources $instances --tags Key=TEST,Value=Y
aws ec2 delete-tags --resources $instances --tags Key=TEST,Value=Y

 

2. AutoBackup: Y인 태그를 가지고 있는 인스턴스에 키 값이 TEST이고, Value가 Y인 태그 넣기 / 지우기

 

instances=$(aws ec2 describe-instances --query "Reservations[?(Instances[?(Tags[?Key == 'AutoBackup' && Value == 'Y'])])].Instances[].InstanceId")
aws ec2 create-tags --resources $instances --tags Key=TEST,Value=Y
aws ec2 delete-tags --resources $instances --tags Key=TEST,Value=Y

 

3. (이전글) EC2 Name, Env, Private IP만 가져와서 파일로 저장하기

 

aws ec2 describe-instances --query "Reservations[].Instances[].{"Ip" : PrivateIpAddress, "Type" : InstanceType, "Name" : Tags[?Key == 'Name'].Value, "Env" : Tags[?Key == 'Env'].Value}" --region ap-northeast-2 --profile profile1 --output json > records.json

 

4. Env Tag가 PRD인 인스턴스의 Private IP만 가져오기

 

aws ec2 describe-instances --query "Reservations[?(Instances[?(Tags[?Key == 'Env' && Value == 'PRD'])])].Instances[].PrivateIpAddress" --region ap-northeast-2 --profile profile1

 

5. gp2 Type Volume을 gp3로 전환하는 쉘 스크립트

#!/bin/bash
id_list=($(aws ec2 describe-volumes --query "Volumes[?(VolumeType == 'gp2')].VolumeId" | jq  -r '.[]'))
for id in ${id_list[@]}
do
	aws ec2 modify-volume --volume-id $id --volume-type gp3
done

 

6. S3 모든 Bucket 사이즈 구하는 쉘 스크립트

 

#!/bin/bash
s3_list=($(aws s3 ls | awk '{print $3}'))

for bucket in ${s3_list[@]}
do
	echo $(aws s3 ls $bucket --recursive | grep -v -E "(Bucket: |Prefix: |LastWriteTime|^$|--)" | awk 'BEGIN {total=0}{total+=$3}END{print total/1024/1024/1024" GiB"}')
done

 

위와 같이 쉘 스크립트를 작성하면 나중에 자동화된 시스템 구성에도 편하게 사용할 수 있습니다.

 

EC2 관련하여 CLI를 더 작성하게 된다면 계속해서 추가하도록 하겠습니다.

'Linux 명령어 > AWS CLI' 카테고리의 다른 글

AWS CLI - Query 옵션 활용하기  (0) 2020.10.19