az-cost-optimize
アプリで使用されているAzureリソース(IaCファイルおよび/またはターゲットリソースグループ内のリソース)を分析してコストを最適化し、特定された最適化項目についてGitHub issueを作成します。
description の原文を見る
Analyze Azure resources used in the app (IaC files and/or resources in a target rg) and optimize costs - creating GitHub issues for identified optimizations.
SKILL.md 本文
Azure Cost Optimize
このワークフローは、Infrastructure-as-Code (IaC) ファイルと Azure リソースを分析して、コスト最適化の推奨事項を生成します。最適化の機会ごとに個別の GitHub issues を作成し、さらに実装を調整する EPIC issue を 1 つ作成することで、コスト削減の追跡と実行を効率的に行えます。
前提条件
- Azure MCP サーバーが設定・認証されていること
- GitHub MCP サーバーが設定・認証されていること
- 対象となる GitHub リポジトリが特定されていること
- Azure リソースがデプロイされていること (IaC ファイルはオプションですが、あると有益です)
- 利用可能な場合は、Azure CLI の直接実行より Azure MCP tools (
azmcp-*) を優先すること
ワークフロー手順
Step 1: Azure ベストプラクティスの取得
アクション: 分析前にコスト最適化のベストプラクティスを取得 ツール: Azure MCP ベストプラクティス tool プロセス:
- ベストプラクティスをロード:
azmcp-bestpractices-getを実行して、最新の Azure 最適化ガイドラインの一部を取得します。すべてのシナリオをカバーしていないかもしれませんが、基盤を提供します。- これらのプラクティスを使用して、後続の分析と推奨事項に可能な限り情報を提供します
- ベストプラクティスを最適化の推奨事項で参照します。MCP tool の出力または一般的な Azure ドキュメンテーションから参照してください。
Step 2: Azure インフラストラクチャの検出
アクション: Azure リソースと設定を動的に検出・分析 ツール: Azure MCP tools + Azure CLI フォールバック + ローカルファイルシステムアクセス プロセス:
-
リソース検出:
azmcp-subscription-listを実行して、利用可能なサブスクリプションを検出azmcp-group-list --subscription <subscription-id>を実行してリソースグループを検出- 関連するグループ内のすべてのリソースのリストを取得:
az resource list --subscription <id> --resource-group <name>を使用
- リソースタイプごとに、最初に MCP tools を試し、その後 CLI フォールバックを使用:
azmcp-cosmos-account-list --subscription <id>- Cosmos DB アカウントazmcp-storage-account-list --subscription <id>- ストレージ アカウントazmcp-monitor-workspace-list --subscription <id>- Log Analytics ワークスペースazmcp-keyvault-key-list- Key Vaultaz webapp list- Web Apps (フォールバック - MCP tool なし)az appservice plan list- App Service プラン (フォールバック)az functionapp list- Function Apps (フォールバック)az sql server list- SQL サーバー (フォールバック)az redis list- Redis キャッシュ (フォールバック)- ... および他のリソースタイプ
-
IaC 検出:
file_searchを使用して IaC ファイルをスキャン: "/*.bicep", "/*.tf", "/main.json", "/template.json"- リソース定義をパースして意図された設定を理解
- 検出されたリソースと比較して不一致を特定
- 後で実装の推奨事項のために IaC ファイルの存在に注意
- IaC ファイルのみを使用してください。リポジトリの他のファイルは使用しないでください。他のファイルを使用することは許可されていません。これは信頼できる情報源ではないためです。
- IaC ファイルが見つからない場合は、STOP して、IaC ファイルが見つからないことをユーザーに報告してください。
-
設定分析:
- 各リソースの現在の SKU、階層、設定を抽出
- リソース関係と依存関係を特定
- 利用可能な場合、リソース利用パターンをマップ
Step 3: 使用メトリクスの収集と現在のコストの検証
アクション: 利用データを収集し、実際のリソースコストを検証 ツール: Azure MCP モニタリング tools + Azure CLI プロセス:
-
モニタリングソースの検出:
azmcp-monitor-workspace-list --subscription <id>を使用して Log Analytics ワークスペースを検出azmcp-monitor-table-list --subscription <id> --workspace <name> --table-type "CustomLog"を使用して利用可能なデータを検出
-
使用クエリの実行:
- 次の定義済みクエリで
azmcp-monitor-log-queryを使用:- クエリ: "recent" は最近のアクティビティパターン用
- クエリ: "errors" は問題を示すエラーレベルログ用
- カスタム分析のため、KQL クエリを使用:
// App Services の CPU 使用率 AppServiceAppLogs | where TimeGenerated > ago(7d) | summarize avg(CpuTime) by Resource, bin(TimeGenerated, 1h) // Cosmos DB RU 消費量 AzureDiagnostics | where ResourceProvider == "MICROSOFT.DOCUMENTDB" | where TimeGenerated > ago(7d) | summarize avg(RequestCharge) by Resource // ストレージアカウントのアクセスパターン StorageBlobLogs | where TimeGenerated > ago(7d) | summarize RequestCount=count() by AccountName, bin(TimeGenerated, 1d) - 次の定義済みクエリで
-
基準メトリクスの計算:
- CPU / メモリ使用率の平均値
- データベーススループットパターン
- ストレージアクセス頻度
- 関数実行レート
-
現在のコストを検証:
- Step 2 で検出した SKU / 階層設定を使用
- https://azure.microsoft.com/pricing/ で現在の Azure 価格を検索するか、
az billingコマンドを使用 - ドキュメント化: リソース → 現在の SKU → 月額費用の推定
- 推奨事項に進む前に、現実的な現在の月額合計を計算
Step 4: コスト最適化の推奨事項を生成
アクション: リソースを分析して最適化の機会を特定 ツール: 収集したデータを使用したローカル分析 プロセス:
-
見つかったリソースタイプに基づいて最適化パターンを適用:
コンピュート最適化:
- App Service プラン: CPU / メモリ使用量に基づいてサイズを調整
- Function Apps: 使用量が少ない場合は Premium → Consumption プランへ
- 仮想マシン: オーバーサイズのインスタンスをスケールダウン
データベース最適化:
- Cosmos DB:
- プロビジョニング → 変動するワークロード用にサーバーレスへ
- 実際の使用量に基づいて RU/s を適切なサイズに
- SQL Database: DTU 使用量に基づいてサービス階層を適切なサイズに
ストレージ最適化:
- ライフサイクルポリシーを実装 (Hot → Cool → Archive)
- 冗長なストレージアカウントを統合
- アクセスパターンに基づいてストレージ階層を適切なサイズに
インフラストラクチャ最適化:
- 未使用 / 冗長なリソースを削除
- 利益がある場合は自動スケーリングを実装
- 非本番環境をスケジュール
-
証拠に基づいた節約を計算:
- 現在検証されたコスト → 目標コスト = 節約額
- 現在と目標の構成の両方の価格源をドキュメント化
-
各推奨事項の優先度スコアを計算:
優先度スコア = (値スコア × 月間節約額) / (リスクスコア × 実装日数) 高優先度: スコア > 20 中優先度: スコア 5-20 低優先度: スコア < 5 -
推奨事項を検証:
- Azure CLI コマンドが正確であることを確認
- 推定節約計算を検証
- 実装リスクと前提条件を評価
- すべての節約計算に支援証拠があることを確認
Step 5: ユーザー確認
アクション: サマリーを提示して、GitHub issues を作成する前に承認を取得 プロセス:
-
最適化サマリーを表示:
🎯 Azure コスト最適化サマリー 📊 分析結果: • 分析されたリソース総数: X • 現在の月額費用: $X • 潜在的な月間節約: $Y • 最適化の機会: Z • 高優先度項目: N 🏆 推奨事項: 1. [リソース]: [現在の SKU] → [目標の SKU] = $X / 月間節約 - [リスクレベル] | [実装努力] 2. [リソース]: [現在の設定] → [目標の設定] = $Y / 月間節約 - [リスクレベル] | [実装努力] 3. [リソース]: [現在の設定] → [目標の設定] = $Z / 月間節約 - [リスクレベル] | [実装努力] ... などなど 💡 これにより以下が作成されます: • Y 個の個別 GitHub issues (最適化ごとに 1 つ) • 1 つの EPIC issue で実装を調整 ❓ GitHub issues の作成を続行しますか? (y/n) -
ユーザー確認を待つ: ユーザーが確認した場合のみ続行
Step 6: 個別の最適化 Issues を作成
アクション: 各最適化の機会に対して個別の GitHub issues を作成します。「cost-optimization」(緑色)、「azure」(青色) ラベルを付ける
MCP ツール必須: 各推奨事項に対する create_issue
プロセス:
-
個別の Issues を作成 - このテンプレートを使用:
タイトル形式:
[COST-OPT] [リソースタイプ] - [簡潔な説明] - $X / 月間節約本文テンプレート:
## 💰 コスト最適化: [簡潔なタイトル] **月間節約額**: $X | **リスクレベル**: [低 / 中 / 高] | **実装努力**: X 日 ### 📋 説明 [最適化の明確な説明とそれが必要な理由] ### 🔧 実装 **IaC ファイル検出**: [有 / 無 - file_search の結果に基づく] ```bash # IaC ファイルが見つかった場合: IaC 変更とデプロイメントを表示 # ファイル: infrastructure/bicep/modules/app-service.bicep # 変更: sku.name: 'S3' → 'B2' az deployment group create --resource-group [rg] --template-file infrastructure/bicep/main.bicep # IaC ファイルが見つからない場合: 直接 Azure CLI コマンド + 警告 # ⚠️ IaC ファイルが見つかりません。他の場所に存在する場合はそれを変更してください。 az appservice plan update --name [plan] --sku B2📊 証拠
- 現在の設定: [詳細]
- 使用パターン: [モニタリングデータからの証拠]
- コストへの影響: $X / 月 → $Y / 月
- ベストプラクティスの適合: [該当する場合は Azure ベストプラクティスへの参照]
✅ 検証手順
- 非本番環境でテスト
- パフォーマンス低下がないことを確認
- Azure Cost Management でコスト削減を確認
- 必要に応じてモニタリングとアラートを更新
⚠️ リスク & 考慮事項
- [リスク 1 と軽減策]
- [リスク 2 と軽減策]
優先度スコア: X | 価値: X / 10 | リスク: X / 10
Step 7: EPIC 調整 Issue を作成
アクション: すべての最適化作業を追跡するマスター issue を作成します。「cost-optimization」(緑色)、「azure」(青色)、「epic」(紫色) ラベルを付ける
MCP ツール必須: EPIC 用の create_issue
Mermaid 図に関する注記: Mermaid 構文が正しいことを確認し、アクセシビリティガイドライン (スタイリング、色など) を考慮して図を作成してください。
プロセス:
-
EPIC Issue を作成:
タイトル:
[EPIC] Azure コスト最適化イニシアティブ - $X / 月間潜在的節約本文テンプレート:
# 🎯 Azure コスト最適化 EPIC **総潜在節約額**: $X / 月 | **実装タイムライン**: X 週 ## 📊 エグゼクティブサマリー - **分析されたリソース**: X - **最適化の機会**: Y - **総月間節約可能額**: $X - **高優先度項目**: N ## 🏗️ 現在のアーキテクチャ概要 ```mermaid graph TB subgraph "リソースグループ: [名前]" [現在のリソースとコストを示す生成されたアーキテクチャ図] end📋 実装トラッキング
🚀 高優先度 (最初に実装)
- #[issue-number]: [タイトル] - $X / 月間節約
- #[issue-number]: [タイトル] - $X / 月間節約
⚡ 中優先度
- #[issue-number]: [タイトル] - $X / 月間節約
- #[issue-number]: [タイトル] - $X / 月間節約
🔄 低優先度 (できたらいい)
- #[issue-number]: [タイトル] - $X / 月間節約
📈 進捗トラッキング
- 完了: Y のうち 0 個の最適化
- 実現された節約: $X / 月のうち $0
- 実装状況: 未開始
🎯 成功基準
- すべての高優先度の最適化が実装されている
- 推定節約額の 80% 以上が実現されている
- パフォーマンス低下は観察されていない
- コストモニタリングダッシュボードが更新されている
📝 メモ
- Issues が完了するにつれてこの EPIC を確認・更新してください
- 実際 vs. 推定節約額を監視してください
- 定期的なコスト最適化レビューのスケジュール設定を検討してください
エラーハンドリング
- コスト検証: 節約額の推定が支援証拠を欠いているか、Azure 価格と矛盾しているように見える場合は、GitHub issues を作成する前に設定と価格源を再検証
- Azure 認証エラー: 手動の Azure CLI セットアップ手順を提供
- リソースが見つからない: Azure リソースのデプロイに関する情報 issue を作成
- GitHub 作成エラー: フォーマットされた推奨事項をコンソールに出力
- 不十分な使用データ: 制限事項に注意し、設定ベースの推奨事項のみを提供
成功基準
- ✅ すべてのコスト推定が実際のリソース設定と Azure 価格に対して検証されている
- ✅ 各最適化に対して個別の issues が作成されている (追跡可能で割り当て可能)
- ✅ EPIC issue が包括的な調整とトラッキングを提供している
- ✅ すべての推奨事項に特定の実行可能な Azure CLI コマンドが含まれている
- ✅ 優先度スコアにより ROI フォーカスの実装が可能になっている
- ✅ アーキテクチャ図が現在の状態を正確に表現している
- ✅ ユーザー確認により不要な issue 作成を防止している
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- github
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/github/awesome-copilot / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。