4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Phase1 AI×AWS】Claude Code の skill 機能で AWS コスト確認を自動化してみた

4
Last updated at Posted at 2026-04-30

【Phase1 AI×AWS】Claude Code の skill 機能で AWS コスト確認を自動化してみた

目次

  1. はじめに
  2. 3行まとめ
  3. 完成デモ
  4. 前提・環境
  5. スキルの仕組み
  6. skill ファイル(GitHub)
  7. まとめ

はじめに

AWSを使っていると、こんな経験はありませんか?

  • 月末にコンソールを開いたら、知らないうちに想定外の請求額が来ていた
  • サービスごとのコストを確認したいが、GUI(コスト管理コンソール)の操作が面倒

そこで Claude Code の skill 機能 を使って、コスト確認を自動化する skill を自作しました。skill ファイルは記事末尾の GitHub リポジトリで公開していますので、ぜひ使ってみてください。


3行まとめ

  • 「AWSのコストを確認して」と入力するだけで、サービス別→Usage Type別の2段階でコストの詳細を把握できます。
  • コストが発生しているリソースが今も存在するか自動確認し、不要なものは削除候補として提示します。
  • 毎月GUIで確認していた作業が、会話1文で完結します。

完成デモ

「AWSのコストを確認して」と入力するだけで、以下のような結果が出力されます。

01_skill実行_コスト一覧.png

## 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 の削除候補が見つかったので削除します。

02_リソース確認_削除候補.png

## 削除候補リソース

### EBSスナップショット
| Snapshot ID            | サイズ | 状態      |
|------------------------|--------|-----------|
| snap-060e330d8e02a84ab | 10 GB  | completed |

削除コマンド:
  aws ec2 delete-snapshot --snapshot-id snap-060e330d8e02a84ab
  ※ Snapshot ID はご自身の環境のものに置き換えてください

→ 削除してよろしいですか?

03_削除完了.png


前提・環境

項目 内容
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 ファイルを取得して、ご自身の環境でも試してみてください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?