【Phase1 AI×AWS】Claude Code の skill 機能で AWS コスト確認を自動化してみた
目次
はじめに
AWSを使っていると、こんな経験はありませんか?
- 月末にコンソールを開いたら、知らないうちに想定外の請求額が来ていた
- サービスごとのコストを確認したいが、GUI(コスト管理コンソール)の操作が面倒
そこで Claude Code の skill 機能 を使って、コスト確認を自動化する skill を自作しました。skill ファイルは記事末尾の GitHub リポジトリで公開していますので、ぜひ使ってみてください。
3行まとめ
- 「AWSのコストを確認して」と入力するだけで、サービス別→Usage Type別の2段階でコストの詳細を把握できます。
- コストが発生しているリソースが今も存在するか自動確認し、不要なものは削除候補として提示します。
- 毎月GUIで確認していた作業が、会話1文で完結します。
完成デモ
「AWSのコストを確認して」と入力するだけで、以下のような結果が出力されます。
## AWSコスト一覧(2026-04)
| # | サービス名 | コスト (USD) | 割合 |
|---|--------------------|------------|--------|
| 1 | Amazon Route 53 | $1.0045 | 64.4% |
| 2 | EC2 - Other | $0.4167 | 26.7% |
| 3 | Tax | $0.1400 | 9.0% |
| 4 | Amazon S3 | $0.0000147 | 0.0% |
| - | **合計** | **$1.5612**| 100% |
GitHub で公開している skill は汎用版のため、すべてのサービスがリソース確認の対象になります。
💡 確認不要なサービスがある場合は、SKILL.md を編集してスキップできます。私は Route 53 をカスタムで除外しています。
今回の確認結果:
| サービス | 判定 | 内容 |
|---|---|---|
| Amazon Route 53 | ✅ 想定内コスト | ドメイン運用中のため月額費用あり |
| EC2 - Other | ⚠️ 削除候補 | 以前作成した EC2 の EBS スナップショットが放置されていた |
EC2 - Other の削除候補が見つかったので削除します。
## 削除候補リソース
### EBSスナップショット
| Snapshot ID | サイズ | 状態 |
|------------------------|--------|-----------|
| snap-060e330d8e02a84ab | 10 GB | completed |
削除コマンド:
aws ec2 delete-snapshot --snapshot-id snap-060e330d8e02a84ab
※ Snapshot ID はご自身の環境のものに置き換えてください
→ 削除してよろしいですか?
前提・環境
| 項目 | 内容 |
|---|---|
| OS | macOS |
| Claude Code | インストール済み |
| AWS CLI | インストール済み・認証設定済み |
| AWS Cost Explorer | 有効化済み |
AWS CLI の認証について
AWS CLI でコマンドを実行するには認証が必要です。IAMユーザーのアクセスキーを使う場合は以下で設定できます。
aws configure
# AWS Access Key ID, Secret Access Key, Region, Output format を入力
AWS Cost Explorer の有効化
Cost Explorer は初回のみ AWS コンソールから有効化が必要です。
AWSコンソール → 「コスト管理」→「Cost Explorer」→「Cost Explorerを有効にする」
※ Cost Explorer のリクエストは 1回 $0.01 の課金が発生します。
スキルの仕組み
skill は SKILL.md という Markdown ファイルに手順を記述するだけで作成できます。実行フローは以下の 7 ステップです。
STEP 0:認証確認
aws sts get-caller-identity
認証が通らない場合は aws configure の実行を案内して終了します。
STEP 1:対象期間を設定
START=$(date +%Y-%m-01)
END=$(date +%Y-%m-%d)
期間の指定がなければ「今月」をデフォルトで使用します。
STEP 2:サービス別コストを取得
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "UnblendedCost" "UsageQuantity" \
--group-by Type=DIMENSION,Key=SERVICE \
--output json
コストが $0 のサービスは除外し、金額の降順で並べます。
STEP 3:サービス別コスト一覧を表形式で出力
取得した JSON を Markdown の表に整形して出力します。
出力例:
## AWSコスト一覧(2026-04)
| # | サービス名 | コスト (USD) | 割合 |
|---|------------------------|------------|--------|
| 1 | Amazon Route 53 | $1.0045 | 64.4% |
| 2 | EC2 - Other | $0.4167 | 26.7% |
| 3 | Tax | $0.1400 | 9.0% |
| 4 | Amazon S3 | $0.0000147 | 0.0% |
| - | **合計** | **$1.5612**| 100% |
※ AWS Glue・AWS KMS はコスト $0 のため除外
STEP 4:Usage Type 別に詳細を掘り下げ
コストが発生している各サービスに対して、さらに細かい Usage Type レベルで内訳を取得します。
aws ce get-cost-and-usage \
--time-period Start=${START},End=${END} \
--granularity MONTHLY \
--metrics "UnblendedCost" "UsageQuantity" \
--group-by Type=DIMENSION,Key=SERVICE \
Type=DIMENSION,Key=USAGE_TYPE \
--filter '{"Dimensions": {"Key": "SERVICE", "Values": ["EC2 - Other"]}}' \
--output json
STEP 5:リソースの存在確認(動的実行)
コストが発生しているサービスに応じて、対応するリソース確認コマンドを実行します。
| サービス | 確認コマンド |
|---|---|
| EC2 - Other | aws ec2 describe-snapshots --owner-ids self |
| Amazon S3 | aws s3 ls |
| AWS Secrets Manager | aws secretsmanager list-secrets |
| Amazon VPC | aws ec2 describe-nat-gateways |
コストが発生しているサービスのみコマンドを実行し、「存在する/しない」を整理します。
出力例(EC2 - Other のスナップショット確認):
$ aws ec2 describe-snapshots --owner-ids self \
--query 'Snapshots[*].{ID:SnapshotId,Size:VolumeSize,State:State}' \
--output table
------------------------------------------------------
| DescribeSnapshots |
+------------------------+-------+------------------+
| ID | Size | State |
+------------------------+-------+------------------+
| snap-060e330d8e02a84ab| 10 | completed |
+------------------------+-------+------------------+
確認結果まとめ:
| サービス | 確認結果 |
|-------------------------------------|------------|
| EC2 - Other(EBSスナップショット) | 存在する ⚠️ |
| Amazon S3 | 存在しない |
| AWS Secrets Manager | 存在しない |
STEP 6:削除候補の提示とユーザー確認
存在が確認されたリソースについて、削除コマンドを提示してユーザーに確認を取ります。「はい」と回答があった場合のみ削除を実行します。
STEP 7:結果を Markdown ファイルに保存
実行結果が aws-cost-YYYY-MM.md として自動保存されます。実際に保存されたファイル(aws-cost-2026-04.md)は GitHub リポジトリに格納しています。
よければ、拝見してみてください。
skill ファイル(GitHub)
skill ファイルは以下の GitHub リポジトリで公開しています。
インストール手順は以下の通りです。
# ディレクトリを作成して SKILL.md を配置
mkdir -p ~/.claude/skills/aws-cost-explorer
cp SKILL.md ~/.claude/skills/aws-cost-explorer/
配置後は Claude Code で「AWSのコストを確認して」と入力するだけで動作します。
まとめ
Claude Code の skill 機能を使うことで、AWS コスト確認という定期作業を大幅に効率化できました。
- GUIコンソールでサービスをひとつひとつ確認する必要がなくなる
- サービス別 → Usage Type 別の2段階で詳細を把握できる
- リソースの存在確認まで自動で行われるため、無駄なコストを見逃さない
「AWSのコストを確認して」と一言入力するだけで全部やってくれるのは、思った以上に便利です。
ぜひ GitHub リポジトリから skill ファイルを取得して、ご自身の環境でも試してみてください。


