일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dns
- 도메인
- Windows
- ALB
- AD
- NaCl
- EC2
- VPC
- Linux
- 윈도우
- Python
- security group
- AWS
- Jenkins
- terraform
- FSX
- 네이버 클라우드 플랫폼
- 테라폼
- route table
- CLI
- Athena
- RDS
- storage gateway
- Dedup
- CloudFront
- S3
- Storage
- Subnet
- lambda
- ncp
Archives
- Today
- Total
끄적이는 보송
[AWS] 모든 RDS의 FreeStorageSpace를 불러오는 쉘 스크립트 작성해보기 본문
반응형
모든 RDS의 FreeStorageSpace를 출력하는 방법을 찾다 쉘스크립트를 작성하게 돼, 여기에 남겨본다. 지금까지 확인해 본 결과 내 예상과는 달리 rds describe로 FreeStorageSpace를 출력할 수 없었다. 그래서 나의 경우, cloudwatch get-metric-statistics를 이용하였다.
모든 RDS의 FreeStorageSpace 불러오기 (byte 단위)
#!/bin/bash
#Get time
STARTTIME="$(date -u -d '5 minutes ago' '+%Y-%m-%dT%T')"
ENDTIME="$(date -u '+%Y-%m-%dT%T')"
# Get a list of all RDS instances
instances=$(aws rds describe-db-instances --query 'DBInstances[*].DBInstanceIdentifier' --output text)
# Loop through each instance and get the free storage space
for instance in $instances
do
free_storage=$(aws cloudwatch get-metric-statistics --namespace AWS/RDS \
--metric-name FreeStorageSpace \
--start-time $STARTTIME \
--end-time $ENDTIME --period 300 \
--statistics Average \
--dimensions="Name=DBInstanceIdentifier, Value=$instance" \
--query "Datapoints"[0].Average \
--output text)
echo "Instance: $instance, Free Storage: $free_storage byte"
done
반응형
모든 RDS의 FreeStorageSpace 불러오기 (GB 단위 및 소수점 3자리 올림)
#!/bin/bash
#Get time
STARTTIME="$(date -u -d '5 minutes ago' '+%Y-%m-%dT%T')"
ENDTIME="$(date -u '+%Y-%m-%dT%T')"
# Get a list of all RDS instances
instances=$(aws rds describe-db-instances --query 'DBInstances[*].DBInstanceIdentifier' --output text)
# Loop through each instance and get the free storage space
for instance in $instances
do
free_storage=$(aws cloudwatch get-metric-statistics --namespace AWS/RDS \
--metric-name FreeStorageSpace \
--start-time $STARTTIME \
--end-time $ENDTIME --period 300 \
--statistics Average \
--dimensions="Name=DBInstanceIdentifier, Value=$instance" \
--query "Datapoints"[0].Average \
--output text)
free_storage_GB=$(echo "scale=3; $free_storage / 1024 / 1024 / 1024" | bc)
echo "Instance: $instance, Free Storage: $free_storage_GB GB"
done
만약 문제가 발생한다면, 쉘 스크립트의 권한 및 사용자에는 문제는 없는지, AWS 자격증명 관련하여 IAM Policy에 부족한 것은 없는지 등을 확인해보자.
참고 자료
반응형
'STUDY > 스크립트&코드' 카테고리의 다른 글
[Python] Python을 이용해 AWS Security Group 생성하기 (0) | 2023.02.20 |
---|---|
[Python] EC2 Instance 리스트 조회하여 필요한 정보 CSV로 추출하기 (0) | 2023.02.15 |
VIM에 스크립트 복사 붙여넣기가 잘 안될 때 (1) | 2023.02.13 |
Comments