Table of Contents
현재 EC2 인스턴스의 전월 트래픽 조회
vi traffic.sh
-----------------
#!/bin/bash
# IMDSv2 토큰 발급 후 인스턴스 ID / 리전 조회
TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" \
-H "X-aws-ec2-metadata-token-ttl-seconds: 60")
INSTANCE_ID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/instance-id)
REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/placement/region)
# 전월 1일 00:00 ~ 이번 달 1일 00:00 (UTC)
START=$(date -u -d "$(date -u +%Y-%m-01) -1 month" +%Y-%m-01T00:00:00Z)
END=$(date -u +%Y-%m-01T00:00:00Z)
BYTES=$(aws cloudwatch get-metric-statistics \
--region "$REGION" \
--namespace AWS/EC2 --metric-name NetworkOut \
--dimensions Name=InstanceId,Value="$INSTANCE_ID" \
--start-time "$START" --end-time "$END" \
--period 86400 --statistics Sum \
--query 'sum(Datapoints[].Sum)' --output text)
echo "인스턴스: $INSTANCE_ID ($REGION)"
echo "기간: $START ~ $END"
awk -v b="$BYTES" 'BEGIN { printf "NetworkOut: %.0f bytes (%.2f GiB)\n", b, b/1024/1024/1024 }'
chmod 700 traffic.sh
./traffic.sh