mcpField
C
cost-optimization-review

cost-optimization-review

github.com/aws-samplesクラウド・DevOps276194 回インストール5 週間前に更新
リポジトリ

cost-optimization-review について

cost-optimization-review は、コードとインフラ設定を基に AWS ワークロードのコスト最適化を調べるスキルです。コンピューティング、ストレージ、データ転送、料金モデル、環境のライフサイクルを確認し、評価とレポート作成の前に確認を求めます。

主な機能

  1. 01コンピューティングのサイズ、容量、スケーリングの調査
  2. 02ストレージ、バックアップ、ログのコスト設定の確認
  3. 03ネットワークトラフィックとデータ転送の分析
  4. 04料金モデルと環境ライフサイクルの評価
  5. 05相対的な削減額、リスク、工数の見積もり

活用シーン

  1. 01AWS IaC のリソースサイズのレビュー
  2. 02常時稼働する非本番環境の削減機会の発見
  3. 03ストレージ保持とデータ転送設定の評価
  4. 04リスクと削減機会に基づく改善計画の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aws-samples/sample-well-architected-skills-and-steering --skill cost-optimization-review

インストール後、Claude Code で/cost-optimization-reviewを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

metadata.json
evals/
evals.json
triggering.json

詳細

コスト最適化レビュー

ステップ 1:コンテキストを収集する

ユーザーに次のように尋ねます。

コスト最適化のレビュー対象となるワークロードまたは AWS 環境を教えてください。以下の情報を共有してください。

  • ワークロード名と、分析対象のコードパッケージ/ディレクトリ
  • トラフィックパターン(一定、急増、予測可能な増加、季節性)
  • 月間支出の見積もり(任意。リスクの深刻度の判断に役立ちます)
  • 予算の制約または目標(任意)

すでにコンテキストが提供されている場合、または IaC を含むコードベースを扱っている場合は、そのまま次に進みます。

ステップ 2:コンピューティングコストを調査する

すべてのコンピューティングリソースの構成を分析します。

必ず以下を確認してください。

  • ASG/起動テンプレートの EC2 インスタンスタイプとサイズ
  • ECS タスク定義(CPU/メモリの割り当て)
  • Lambda のメモリとタイムアウトの構成
  • Fargate タスクのサイズ
  • EKS ノードグループの構成
  • Batch コンピューティング環境

各コンピューティングリソースについて、以下を記録してください。

  • ファイルパスと行番号
  • 構成されているインスタンスタイプ/サイズ
  • スケーリング構成(最小/最大/希望数)
  • Graviton の使用状況(または Graviton が利用可能な場合の x86 の使用)
  • 料金モデルへの影響(オンデマンドのみ、Spot の利用対象、または予約の利用対象)

必ず以下を高リスクとして指摘してください。

  • 可変ワークロードに対する固定サイズのコンピューティング(オートスケーリングなし)
  • 過剰にプロビジョニングされた Lambda(単純な処理で 1024MB 超)
  • Graviton 相当のインスタンスタイプが存在する場合の x86 インスタンスタイプの使用(コストと持続可能性の観点)
  • 水平スケーリングで小さいインスタンスを使用できるワークロードに対する大型インスタンスタイプの使用
  • 本番環境と同規模のリソースを使用する開発/テスト環境
  • 明確な営業時間外の時間帯がある環境でのスケジュールスケーリングの欠如

ステップ 3:ストレージとデータのコストを調査する

ストレージ構成を分析します。

必ず以下を確認してください。

  • S3 バケットの構成(ストレージクラス、ライフサイクルポリシー、バージョニング)
  • EBS ボリュームのタイプとサイズ
  • RDS ストレージの構成(タイプ、割り当てサイズ、オートスケーリング)
  • DynamoDB のキャパシティモードとプロビジョニング
  • ElastiCache のノードタイプとクラスターサイズ
  • EFS の構成(スループットモード、ライフサイクル)
  • バックアップの保持ポリシー(AWS Backup、RDS スナップショット)
  • ログの保持設定(CloudWatch ロググループ)

必ず以下を高リスクとして指摘してください。

  • ライフサイクルポリシーがなく、データが際限なく蓄積する S3 バケット
  • 保持期間が「無期限」の CloudWatch ロググループ
  • オンデマンドキャパシティを利用できる(またはパターンに応じてプロビジョニング済みキャパシティを利用できる)DynamoDB におけるプロビジョニング済みキャパシティの使用
  • EBS/RDS での過剰な IOPS プロビジョニング
  • gp3 を使用していない EBS ボリューム(同等のパフォーマンスでは gp2 のほうが高コストです)
  • ビジネス上の根拠がない、35 日を超えるバックアップ保持期間
  • 古いバージョンを期限切れにするライフサイクルルールがない状態での S3 バージョニングの有効化

ステップ 4:データ転送コストを調査する

ネットワークとデータ転送のパターンを分析します。

必ず以下を確認してください。

  • NAT Gateway の使用状況(VPC エンドポイントで置き換えられるか)
  • リージョン間のデータ転送パターン
  • VPC エンドポイントの構成(または S3/DynamoDB 用のエンドポイントの欠如)
  • CloudFront ディストリビューション(または静的コンテンツ用ディストリビューションの欠如)
  • AZ 間のトラフィックパターン(複数 AZ のサービス間で AZ をまたいで通信しているか)
  • API Gateway の構成(REST API と HTTP API の料金比較)

必ず以下を高リスクとして指摘してください。

  • NAT Gateway 経由の S3/DynamoDB アクセス(VPC エンドポイントを使用すれば無料です)
  • 静的コンテンツ配信に CloudFront がない
  • HTTP API で十分な場合に REST API Gateway を使用している(70%割高です)
  • ビジネス上の根拠がないリージョン間レプリケーション
  • CloudFront によって転送コストを削減できる場合に、インターネット経由で S3 にパブリックアクセスしている

ステップ 5:料金モデルを評価する

料金モデルが使用パターンに適合しているかを分析します。

必ず以下を評価してください。

  • 安定したコンピューティング負荷 → Savings Plans または Reserved Instances の利用機会
  • 変動する/バッチのコンピューティング負荷 → Spot Instance の利用機会
  • サーバーレスとプロビジョニングの適合性(急増する負荷には Lambda/Fargate、安定した負荷には EC2/ECS)
  • DynamoDB のオンデマンドとプロビジョニングの比較(予測不能な負荷にはオンデマンド、安定した負荷にはプロビジョニング)
  • Aurora Serverless v2 とプロビジョニング済みの比較(データベース負荷が変動する場合)
  • アクセスパターンが不明な場合の S3 Intelligent-Tiering

ステップ 6:環境とライフサイクルの管理

本番環境以外の環境設定を分析します。

以下を必ず調査してください。

  • 開発/テスト/ステージング環境の規模と本番環境との比較
  • 本番環境以外の環境でのスケーリングまたは停止のスケジュール設定
  • リソースのライフサイクルポリシー(テスト用リソースの TTL)
  • リソースのコスト配分タグ
  • 予算および異常検出の設定

以下を必ず「改善の機会」として指摘してください。

  • 本番環境以外の環境が本番環境と同じ規模で 24 時間 365 日稼働している
  • リソースにコスト配分タグがない
  • AWS Budget または Cost Anomaly Detection が設定されていない
  • テスト用/一時的なリソースにライフサイクルポリシーがない

---STOP--- チェックポイント:調査完了 — WA フレームワークに照らした評価の準備ができました

発見したコンピューティングリソース({X} 個のインスタンス/関数)、ストレージ設定({Y} 個のバケット/ボリューム/テーブル)、データ転送パターン、料金モデルとの整合性、および {packages analyzed} 全体の環境ライフサイクル設定。

これらの調査結果を WA コスト最適化の柱に関する質問に照らして評価し、節約額の見積もりを算出してもよろしいですか?

ユーザーが明示的に確認するまで、この地点を越えて先に進まないでください。

ステップ 7:WA フレームワークの質問に照らして評価する

各質問について、ステータス、証拠(ファイル:行)、不足事項、リスクを提示してください。

COST 1 — クラウド財務管理をどのように実施していますか?
  • 証拠:コスト配分タグ、予算設定、異常検出ルール
COST 2 — 使用状況をどのように管理していますか?
  • 証拠:インスタンスタイプを制限する SCP、クォータ、リソース制約
COST 3 — 使用状況とコストをどのように監視していますか?
  • 証拠:予算アラーム、Cost Anomaly Detection の設定、請求アラーム
COST 4 — リソースをどのように廃止していますか?
  • 証拠:ライフサイクルポリシー、TTL 設定、クリーンアップの自動化、保持ルール
COST 5 — サービスを選択する際、コストをどのように評価していますか?
  • 証拠:変動する負荷にはサーバーレス、安定した負荷にはプロビジョニング済み、バッチ処理には Spot
COST 6 — リソースのタイプ、サイズ、数を選択する際、コスト目標をどのように達成していますか?
  • 証拠:インスタンスタイプ、スケーリングの最小値/最大値、メモリ割り当て、適正サイジングの証拠
COST 7 — コスト削減のために料金モデルをどのように利用していますか?
  • 証拠:Savings Plan の設定、予約済みキャパシティ、Spot フリートの設定
COST 8 — データ転送料金にどのように備えていますか?
  • 証拠:VPC エンドポイント、CloudFront ディストリビューション、リージョンの配置

ステップ 8:節約額の見積もりを算出する

各調査結果について、以下を見積もってください。

  • 現在のコスト指標:コストを左右するリソース設定(インスタンスタイプ、プロビジョニング済みキャパシティ、保持期間)
  • 最適化後の設定:リソースに適した設定
  • 相対的な節約額:そのリソースカテゴリにおける削減率
  • 労力:実施に必要な労力(低/中/高)
  • リスク:信頼性またはパフォーマンスへの影響

ステップ 9:リスク評価

各所見について、影響度 × 発生可能性で評価します。

影響度:軽微(カテゴリ内のコスト削減率が 10% 未満) | 中程度(カテゴリ内のコスト削減率が 10~30%) | 深刻(カテゴリ内のコスト削減率が 30% 超、または料金モデルとの根本的な不整合)

発生可能性(無駄が続く可能性):低(最適化の計画がある) | 中(計画はないが、増加は緩やか) | 高(増加が抑制されず、可視性もない)

影響度発生可能性リスクレベル
深刻高重大
深刻中高
深刻低高
中程度高高
中程度中中
中程度低中
軽微高中
軽微中低
軽微低低

---STOP--- チェックポイント:リスク評価が完了しました — 最終レポートを作成できます

コンピューティング、ストレージ、データ転送、料金モデル、環境管理にわたる {N} 件の所見を評価しました。リスクの内訳:重大 {X} 件、高 {Y} 件、中 {Z} 件、低 {W} 件。削減効果の高い機会を、工数の見積もりとともに特定しました。

優先順位付けした改善計画を含む、コスト最適化の完全なレポートを作成しますか?

ユーザーが明示的に確認するまで、この時点より先に進まないでください。

ステップ 10:レポートを作成する

# Cost Optimization Review: {Workload Name}

## Executive Summary
- **Date**: {date}
- **Packages Analyzed**: {list}
- **Findings**: {X} Critical, {Y} High, {Z} Medium, {W} Low
- **Overall Cost Efficiency**: {1-5} — {one-line justification}
- **Top 3 Savings Opportunities**: {brief list}

## Cost Optimization Scorecard
| Domain | Score (1-5) | Key Strength | Key Gap |
|--------|-------------|--------------|---------|
| Compute Right-Sizing | {score} | {strength} | {gap} |
| Storage Lifecycle | {score} | {strength} | {gap} |
| Data Transfer | {score} | {strength} | {gap} |
| Pricing Models | {score} | {strength} | {gap} |
| Environment Management | {score} | {strength} | {gap} |
| Cost Visibility | {score} | {strength} | {gap} |

## Critical and High Risk Findings
{For each: ID, domain, title, description, evidence (file:line), cost impact, recommendation, effort, AWS services}

## Medium Risk Findings
{Same format, condensed}

## Low Risk Findings
{Summary table: ID | Domain | Title | Recommendation}

## Savings Summary
| Category | Finding | Current Config | Optimized Config | Relative Savings | Effort |
|----------|---------|---------------|-----------------|-----------------|--------|
| Compute | {title} | {current} | {recommended} | {%} | {effort} |
| Storage | {title} | {current} | {recommended} | {%} | {effort} |
| Transfer | {title} | {current} | {recommended} | {%} | {effort} |

## Prioritized Remediation Plan

### Quick Wins (< 1 week)
| Finding | Action | Savings Impact | Effort | Risk |
|---------|--------|---------------|--------|------|
{Switch gp2→gp3, add lifecycle policies, set log retention, add VPC endpoints}

### Foundation (1-4 weeks)
| Finding | Action | Savings Impact | Effort | Dependencies |
|---------|--------|---------------|--------|--------------|
{Right-size instances, implement auto-scaling, schedule non-prod, add Graviton}

### Strategic (1-3 months)
| Finding | Action | Savings Impact | Effort | Dependencies |
|---------|--------|---------------|--------|--------------|
{Savings Plans commitment, serverless migration, architecture optimization}

## Next Steps
{Top 5 concrete cost-saving actions the team should take this week}

ステップ 11:フォローアップを提案する

レポートを提示した後、次の内容を提案します。

次のいずれかをご希望ですか?

  • すぐに実施できる最適化のための IaC の変更を生成する
  • ご利用状況に応じて Savings Plans と Reserved Instances を比較する
  • 非本番環境向けのスケジュールされたスケーリングポリシーを設計する
  • コスト配賦タグを使った FinOps タグ付け戦略を作成する
  • アーキテクチャの代替案(サーバーレス、コンテナ)のコストを見積もる
  • 特定したバケットに S3 ライフサイクルポリシーを実装する

評価の指針

  • 自動スケーリング、ライフサイクルポリシー、VPC エンドポイント、コスト配賦タグを備えたワークロードは成熟しています — 高度な最適化(Savings Plans、Spot、アーキテクチャの代替案)に重点を置いてください
  • すべての所見にコード上の根拠が必要です — 実際の設定を確認せずに「過剰にプロビジョニングされている」と指摘しないでください
  • 絶対的な支出額が不明な場合、削減見積もりは相対値(削減率)で示してください
  • 必ずトレードオフを評価してください。コスト最適化によって、明示的な説明なしに信頼性リスクを招いてはなりません
  • コスト最適化によって信頼性やパフォーマンスの水準が低下する場合は、その点を指摘してください
  • IaC だけでは実際の利用状況を評価できない場合、「判断不能」は妥当な回答です(Compute Optimizer、Cost Explorer の利用を推奨してください)
  • 無駄を列挙する前に、優れたコスト管理の取り組みを認めてください

コメント