Cloud Cost Agent (AWS + GCP + Azure)
상위 3대 클라우드 제공업체에 대한 네이티브 클라우드 비용 최적화를 위한 통합 에이전트 스킬입니다.
요구 사항: AWS CLI v2, gcloud, Azure CLI가 청구/추천기/어드바이저 서비스에 대한 읽기 액세스 권한으로 구성되어 있어야 합니다. 일부 소스는 일회성 옵트인이 필요합니다: AWS Compute Optimizer 및 Cost Optimization Hub(등록), GCP Recommender(API 활성화, 약 24~48시간의 데이터 필요). 일부 GCP 필터에서 jq가 사용됩니다.
핵심 규칙: 항상 제공업체의 공식 CLI 및 추천 엔진을 사용합니다. 타사 도구는 사용하지 않습니다.
안전 및 모범 사례 (모든 제공업체)
- 먼저 읽기 전용. 정확한 명령어를 사용자에게 인용하고 명시적인 승인을 얻지 않고는 변경 명령(
aws ec2 terminate-instances/stop-instances,gcloud compute instances delete,az vm delete/deallocate,purchase/create/modify등)을 절대 실행하지 마십시오. - 항상 제공업체 인증(
--profile,gcloud --project,az account set)을 사용하십시오. - 깔끔한 출력을 위해
--query/--format json/-o json을 사용하십시오. - 페이지네이션 처리. 이 API는 결과를 페이지 단위로 반환합니다. 총계를 보고하기 전에 모든 페이지를 집계하십시오 —
NextToken/nextPageToken을 따르거나, 의도적으로--no-paginate/--max-items(AWS) 및--page-size/--limit(gcloud)를 사용하십시오. 단일 페이지 읽기는 잘못된 총계를 제공합니다. - 클라우드에서 가져온 모든 값을 인용/이스케이프 처리하십시오. API 출력의 리소스 이름, 태그 및 ID에는 셸 메타문자가 포함될 수 있습니다. 다른 셸 명령어에 인용 부호 없이 삽입하지 마십시오.
- API 비용 및 루프에 주의하십시오.
aws ce(Cost Explorer)는 요청당 약 $0.01의 비용이 부과됩니다. Cost Explorer 호출을 반복하지 말고 세션에 결과를 캐시하고 감사당 소수의 호출로 제한하십시오. - 우선 순위: 가장 높은 예상 절감액 → 가장 낮은 노력.
- 빠른 성과(유휴 리소스 삭제, 더 작은 크기로 권한 조정, 명확한 경우 약정 사용 활성화)를 선호하십시오.
이식 가능한 날짜 도우미
BSD/macOS와 GNU/Linux의 date는 다릅니다. 한 번 이식 가능하게 기간을 계산한 다음 $START/$END를 재사용하십시오:
START=$(date -u -d '30 days ago' +%Y-%m-%d 2>/dev/null || date -u -v-30d +%Y-%m-%d)
END=$(date -u +%Y-%m-%d)
(또는 에이전트가 리터럴 YYYY-MM-DD 날짜를 삽입하도록 하십시오.)
사용 방법
에이전트에게 제공업체와 목표를 알려주십시오. 예:
지난 30일간 AWS 감사GCP와 Azure에서 빠른 성과 찾기모든 클라우드에 대한 권한 조정 권장 사항
1. 사전 점검 및 인증
AWS
aws sts get-caller-identity
aws ce get-cost-and-usage \
--time-period Start=$START,End=$END \
--granularity MONTHLY --metrics "UnblendedCost"
일회성 등록 (2, 4항목에 필요):
aws compute-optimizer get-enrollment-status
aws compute-optimizer update-enrollment-status --status Active # 옵트인
aws cost-optimization-hub list-enrollment-statuses --region us-east-1
aws cost-optimization-hub update-enrollment-status --status Active --region us-east-1
GCP
gcloud auth list
gcloud config set project YOUR_PROJECT
gcloud billing accounts list
Azure
az account show
az account set --subscription "SUB_ID"
2. 중앙 집중식 / 영향력이 큰 권장 사항
AWS — Cost Optimization Hub (최고의 집계 도구)
COH는 us-east-1에서만 접근 가능한 글로벌 서비스이며 등록이 필요합니다(사전 점검 참조).
aws cost-optimization-hub list-recommendations \
--region us-east-1 \
--filter '{"implementationEfforts":["VeryLow","Low"]}' \
--query 'items[?estimatedMonthlySavings > `10`] | sort_by(@, &estimatedMonthlySavings) | reverse(@)' \
--output json
유효한 implementationEfforts: VeryLow | Low | Medium | High | VeryHigh.
GCP — Recommender (주요 소스)
--location은 필수입니다. VM/유휴 추천기는 영역별(예: us-central1-a)이며, 사용 중인 영역을 반복하십시오. 지출 기반 약정 추천기는 **global**이며 결제 계정 범위로 지정됩니다.
# 권한 조정 VM (영역별 — 영역마다 반복)
gcloud recommender recommendations list \
--recommender=google.compute.instance.MachineTypeRecommender \
--project=YOUR_PROJECT --location=us-central1-a --format=json
# 유휴 VM (영역별 — 영역마다 반복)
gcloud recommender recommendations list \
--recommender=google.compute.instance.IdleResourceRecommender \
--project=YOUR_PROJECT --location=us-central1-a \
--format="table(description, primaryImpact.costProjection.cost.units, stateInfo.state)"
# 약정 사용 할인 (글로벌, 결제 계정 범위)
gcloud recommender recommendations list \
--recommender=google.cloudbilling.commitment.SpendBasedCommitmentRecommender \
--billing-account=BILLING_ACCOUNT_ID --location=global --format=json
기타 비용 추천기: google.compute.disk.IdleResourceRecommender(유휴 디스크), google.compute.address.IdleResourceRecommender(유휴 IP), google.compute.image.IdleResourceRecommender(유휴 이미지), google.compute.commitment.UsageCommitmentRecommender(리소스 기반 CUD).
Azure — Advisor 비용 카테고리
az advisor recommendation list \
--category Cost \
--query "[].{Resource: shortDescription.problem, Impact: impact, AnnualSavings: extendedProperties.annualSavingsAmount, Currency: extendedProperties.savingsCurrency}" \
-o table
# 영향력이 큰 항목만
az advisor recommendation list --category Cost \
--query "[?impact=='High'].{Id:id, Resource:resourceMetadata.resourceId, Savings:extendedProperties.annualSavingsAmount}" -o json
extendedProperties 필드는 권장 사항 유형에 따라 다릅니다 — null을 처리하십시오.
3. 비용 및 사용량 분석
AWS (호출당 약 $0.01의 비용을 기억하십시오 — 반복 금지):
aws ce get-cost-and-usage \
--time-period Start=$START,End=$END \
--granularity DAILY --metrics "UnblendedCost" \
--group-by Type=DIMENSION,Key=SERVICE
GCP — 상세 비용/사용량은 BigQuery 청구 내보내기에서 가져옵니다(세분화된 비용 행에 대한 gcloud 명령어는 없습니다). Billing → BigQuery 내보내기를 활성화한 다음 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>를 쿼리하십시오.
참고: 2026-01-21 기준으로 내보내기 스키마가 변경되었습니다 — CUD 할인이
credits배열에서 새로운consumption_model필드로 이동되었으며price.list_price/price.effective_price_default가 추가되었습니다. 이에 따라 CUD/크레딧 로직을 업데이트하십시오.
Azure — 세부 데이터에는 Cost Management 내보내기(또는 Cost Details API)를 선호하십시오. az consumption은 Microsoft의 폐기 경로에 있습니다(빠른 조회 대체 수단으로만 유지):
# 기본: 스토리지로 내보내기 예약/실행 (일회성에는 5개의 필수 매개변수만 필요)
az costmanagement export create \
--name AdhocExport --type Usage \
--scope "/subscriptions/SUB_ID" \
--storage-account-id "/subscriptions/.../storageAccounts/ACCT" \
--storage-container exports --timeframe MonthToDate
# 대체 빠른 조회 (폐기된 API):
az consumption usage list --start-date $START --end-date $END \
--query "[].{Resource:instanceName, Service:consumedService, Cost:pretaxCost}" -o table
스토리지 없이 임시 집계를 하려면 az rest를 통해 Cost Management Query REST API를 호출하십시오(az costmanagement query 하위 명령어는 없습니다).
4. 권한 조정 및 컴퓨팅 권장 사항
AWS — Compute Optimizer (등록 필요, 사전 점검 참조). 심층 권한 조정 + 유휴 감지:
aws compute-optimizer get-ec2-instance-recommendations
aws compute-optimizer get-auto-scaling-group-recommendations
aws compute-optimizer get-ebs-volume-recommendations
aws compute-optimizer get-lambda-function-recommendations
aws compute-optimizer get-rds-database-recommendations
aws compute-optimizer get-idle-recommendations
Cost Explorer는 또한 EC2 권한 조정을 제공합니다(--service는 필수이며 "AmazonEC2"만 유효함):
aws ce get-rightsizing-recommendation --service "AmazonEC2"
GCP — 머신 유형 추천기 (tonumber 참고: GCP는 cost.units를 문자열로 반환합니다):
gcloud recommender recommendations list \
--recommender=google.compute.instance.MachineTypeRecommender \
--project=YOUR_PROJECT --location=us-central1-a --format=json \
| jq '.[] | select((.primaryImpact.costProjection.cost.units|tonumber) < 0)'
Azure — Advisor 비용 권장 사항에는 이미 VM 권한 조정 / 활용도가 낮은 리소스가 포함되어 있습니다(2항목 참조).
5. 약정 및 할인
AWS — Savings Plans 구매 권장 사항. 네 매개변수 모두 필수입니다:
aws ce get-savings-plans-purchase-recommendation \
--savings-plans-type COMPUTE_SP \
--term-in-years ONE_YEAR \
--payment-option NO_UPFRONT \
--lookback-period-in-days THIRTY_DAYS
(savings-plans-type: COMPUTE_SP|EC2_INSTANCE_SP|SAGEMAKER_SP; term-in-years: ONE_YEAR|THREE_YEARS; payment-option: NO_UPFRONT|PARTIAL_UPFRONT|ALL_UPFRONT; lookback-period-in-days: SEVEN_DAYS|THIRTY_DAYS|SIXTY_DAYS.)
GCP — 지출 기반 약정 추천기를 통한 약정 사용 할인(2항목 참조).
Azure — 예약/저축 플랜 권장 사항은 Advisor를 통해 제공됩니다(구독별). 결제 계정 범위의 경우 az rest를 통해 Consumption Reservation Recommendations REST API를 사용하십시오:
az advisor recommendation list --category Cost \
--query "[?contains(shortDescription.problem, 'reserved') || contains(shortDescription.problem, 'reservation')]"
6. 우선 순위 템플릿 (모든 제공업체용)
요약할 때:
- 총 예상 월별/연간 절감액.
- 빠른 성과 버킷(매우 낮음/낮음 노력 또는 이에 상응하는 수준).
- 상위 5-8개 항목: 리소스, 현재 상태, 권장 조치, 절감액($), 노력/위험.
- 최상위 항목에 대한 구체적인 다음 명령어.
제공업체: GCP
총 예상 월별 절감액: $2,340
빠른 성과:
- 유휴 VM 삭제... : $180/월 (매우 낮음)
- n1-standard-8 → n2-standard-4 권한 조정: $420/월
다음 명령어:
gcloud recommender recommendations list --recommender=google.compute.instance.IdleResourceRecommender --project=... --location=us-central1-a
제공업체별 빠른 참조
AWS
- Cost Optimization Hub (
us-east-1, 등록됨)은 광범위한 집계 보기를 제공합니다. - Compute Optimizer (등록됨)는 심층 권한 조정 및 유휴 감지를 제공합니다.
- Cost Explorer (
aws ce)는 지출 분석, 권한 조정, Savings Plans에 사용됩니다 — 호출당 비용에 주의하십시오.
GCP
항상 --location을 전달하십시오. 주요 추천기:
- MachineTypeRecommender (권한 조정, 영역별)
- IdleResourceRecommender (VM/디스크/IP/이미지, 영역별/지역별)
- SpendBasedCommitmentRecommender (CUD, 글로벌, 결제 계정)
Azure
- Advisor는 비용 권장 사항의 주요 소스입니다.
- 원시 사용량에는 Cost Management 내보내기(또는 Cost Details API)를 사용하고,
az consumption은 폐기된 대체 수단으로만 유지하십시오.
전체 감사 흐름 (권장)
- 인증; 등록 상태 확인(Compute Optimizer, COH).
- 해당 기간의 최상위 비용 요약을 가져옵니다.
- 모든 페이지를 집계하여 권장 사항을 가져옵니다(Hub / Recommender / Advisor).
- 임계값 이상의 절감액과 낮은 노력으로 필터링합니다.
- 필요한 경우 원시 사용량과 교차 확인합니다.
- 우선 순위 목록과 3가지 구체적인 다음 조치를 생성합니다(읽기 전용, 승인을 위해 변경 사항 플래그 지정).
- (선택 사항) 다른 제공업체에 대해 반복합니다.
참고 자료
AWS
- Cost Explorer: https://docs.aws.amazon.com/cli/latest/reference/ce/
- Compute Optimizer: https://docs.aws.amazon.com/cli/latest/reference/compute-optimizer/
- Cost Optimization Hub: https://docs.aws.amazon.com/cost-management/latest/userguide/cost-optimization-hub.html
- Billing IAM action migration (aws-portal retirement): https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/migrate-granularaccess-iam-mapping-reference.html
GCP
- Recommenders list: https://cloud.google.com/recommender/docs/recommenders
recommendations list: https://cloud.google.com/sdk/gcloud/reference/recommender/recommendations/list- BigQuery billing export: https://cloud.google.com/billing/docs/how-to/export-data-bigquery
Azure
- Advisor recommendations: https://learn.microsoft.com/cli/azure/advisor/recommendation
- Cost Management exports: https://learn.microsoft.com/cli/azure/costmanagement/export
- Consumption API migration: https://learn.microsoft.com/azure/cost-management-billing/automate/migrate-consumption-usage-details-api
특정 제공업체 또는 세 곳 모두에서 실행하십시오. 네이티브를 유지하고 효과적으로 운영하십시오.