MCP に触れてみよう(AWS MCP Servers on Cost Analysis MCP Server)

# 内容

最近流行の MCP について入門してみました。

本記事では、MCP とは何か？などについては他の方が沢山記事を書いてくれていると思いますので触れません。

とりあえず、動かし方、動かしてどんなものか感覚を掴んでみようと言う第一歩です。


# 環境

OS： Mac
エディタ： VSCode
API プロバイダー: AWS Bedrock
AWS リージョン: us-west-2
モデル： anthoropic.claude-3-7-sonet-2
クライアント： Cline


# 利用する MCP Server

今回利用する MCP Server は、AWS MCP Servers の一つである Cost Analysis MCP Server です。

Cost Analysis MCP Server は以下のようなことができるようです。

- AWS コストを分析して視覚化する
  - AWS コストの詳細な内訳をサービス、リージョン、階層別に取得します
  - さまざまなサービス間でコストがどのように分配されるかを理解する

- 自然言語でコストデータを照会する
  - 複雑なクエリ言語を必要とせず、平易な英語で AWS のコストについて質問できます
  - AWS サービスに関連する質問については、料金表のウェブページと AWS 料金表 API から即座に回答を取得できます

- コストレポートと分析情報を生成する
  - IaC実装に基づいて包括的なコストレポートを生成します
  - コスト最適化の推奨事項を取得する

他の、AWS MCP Servers も存在しますのでドキュメントを確認してみて下さい。

https://awslabs.github.io/mcp/servers/cost-analysis-mcp-server/


# 設定

## 1. uv をインストール

ドキュメントに沿って、各 OS にあった方法で uv をインストールします。

`https://docs.astral.sh/uv/getting-started/installation/`

## 2. uv を使用して Python をインストール

Python をインストールします。

```
uv python install 3.10
```

## 3. AWS 認証情報を設定

`aws configure` で AWS 認証情報を設定します。

```
aws configure
AWS Access Key ID [****************a1b2]: 
AWS Secret Access Key [****************1a2b]: 
Default region name [us-west-2]: 
Default output format [json]:
```

## 4. Cline をインストール

VSCode に 拡張機能で Cline をインストールします。

https://marketplace.visualstudio.com/items?itemName=saoudrizwan.claude-dev

## 5. Cline の設定

Settings を次の通り、AWS Bedrock の設定を入れ「Done」する。

![スクリーンショット 2025-04-22 1.46.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/9f67a696-a59a-4b62-82dd-6b31b60d0202.png)

## 6. MCP Server の設定

MCP Server をドキュメントにある通り `cline_mcp_settings.json` へ入力し、「Done」する。

![スクリーンショット 2025-04-22 2.00.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/493aacce-7aa8-453d-bc3c-06e86211156d.png)


# 動作確認

## 1. 動作確認用 Git を Clone

今回は、AWS SIEM のコストを見積もってみたいと思いますので、下記を git clone しておきます。

https://github.com/aws-samples/siem-on-amazon-opensearch-service/tree/main

## 2. プロンプトを投げてみる

```
/Users/<ユーザー名>/MCP/siem-on-amazon-opensearch-service の AWS SIEM の 1ヶ月のコストを見積もって下さい。
AWS SIEM は プライベート環境にデプロイするため、AWS CDK を使います。
また、10 個のアカウントから以下の AWS サービスを収集するため、このコストも見積もりに含めて下さい。
　Amazon GuardDuty
　Amazon Inspector
　AWS Security Hub
　AWS CloudTrail
　AWS Config
　AWS Trusted Advisor
```

## 3. 結果

途中動く API は長くなるので省略しますが、Response と Task Completed は次のような結果となりました。

![スクリーンショット 2025-04-22 2.25.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/814b27ad-aeab-4c7a-870a-e1577951c0d4.png)


<details><summary>Response</summary>

```markdown
# AWS SIEM on Amazon OpenSearch Service Cost Analysis Estimate Report

## Service Overview

AWS SIEM on Amazon OpenSearch Service is a fully managed, serverless service that allows you to This project uses multiple AWS services.. This service follows a pay-as-you-go pricing model, making it cost-effective for various workloads.

## Pricing Model

This cost analysis estimate is based on the following pricing model:
- **ON DEMAND** pricing (pay-as-you-go) unless otherwise specified
- Standard service configurations without reserved capacity or savings plans
- No caching or optimization techniques applied

## Assumptions

- プライベート環境にデプロイするため、AWS CDKを使用
- 10個のアカウントからログを収集
- Amazon GuardDuty、Amazon Inspector、AWS Security Hub、AWS CloudTrail、AWS Config、AWS Trusted Advisorからのログを収集
- 1ヶ月あたり約500GBのログデータが生成されると想定
- 3つのアベイラビリティゾーンにデプロイ
- データ保持期間は90日

## Limitations and Exclusions

- データ転送コスト
- カスタム開発コスト
- AWS Support契約コスト

## Cost Breakdown

### Unit Pricing Details

| Service | Resource Type | Unit | Price | Free Tier |
|---------|--------------|------|-------|------------|
| Amazon OpenSearch Service | R6G.Xlarge.Search | 1 unit | $0.335/時間 | なし |
| Amazon OpenSearch Service | C6G.Large.Search | 1 unit | $0.113/時間 | なし |
| Amazon OpenSearch Service | Ebs Gp2ストレージ | 1 unit | $0.135/GB/月 | なし |
| Amazon GuardDuty | Cloudtrail管理イベント分析 | 1 unit | $4.00/100万イベント | 30日間の無料トライアル（新規アカウント） |
| Amazon GuardDuty | Vpc Flow LogsとDnsクエリログ分析 | 1 unit | 最初の500GB: $1.00/GB、次の2,000GB: $0.50/GB | 30日間の無料トライアル（新規アカウント） |
| Amazon Inspector | Ec2インスタンススキャン | 1 unit | $1.258/インスタンス/月 | 15日間の無料トライアル（新規アカウント） |
| AWS Security Hub | セキュリティチェック | 1 unit | $0.0010/チェック（最初の100,000チェック） | 30日間の無料トライアル（新規アカウント） |
| AWS Security Hub | 検出結果の取り込み | 1 unit | 最初の10,000イベント無料、その後$0.00003/イベント | 30日間の無料トライアル（新規アカウント） |
| AWS CloudTrail | 管理イベント | 1 unit | 最初のコピーは無料、追加コピーは$2.00/100,000イベント | 管理イベントの最初のコピーは無料 |
| AWS CloudTrail | データイベント | 1 unit | $0.10/100,000イベント | 管理イベントの最初のコピーは無料 |
| AWS Config | 設定項目 | 1 unit | $0.003/項目 | なし |
| AWS Trusted Advisor | Trusted Advisor | 1 unit | Support契約に含まれる | Business SupportまたはEnterprise Supportプランに含まれる |

### Cost Calculation

| Service | Usage | Calculation | Monthly Cost |
|---------|-------|-------------|-------------|
| Amazon OpenSearch Service | 3つのデータノード（r6g.xlarge.search）と3つのマスターノード（c6g.large.search）を使用 (R6G.Xlarge.Search: 3インスタンス × 730時間 = 2,190時間, C6G.Large.Search: 3インスタンス × 730時間 = 2,190時間, Ebsストレージ: 500GB × 3インスタンス = 1,500GB) | r6g.xlarge.search: 2,190時間 × $0.335 = $733.65
c6g.large.search: 2,190時間 × $0.113 = $247.47
EBSストレージ: 1,500GB × $0.135 = $202.50 | $1,183.62 |
| Amazon GuardDuty | 10アカウントでのGuardDuty分析 (Cloudtrail管理イベント: 10アカウント × 4,000,000イベント = 40,000,000イベント, Vpc Flow LogsとDnsクエリログ: 10アカウント × 50GB = 500GB) | CloudTrail管理イベント: 40イベント × $4.00 = $160.00
VPC Flow LogsとDNSクエリログ: 500GB × $1.00 = $500.00 | $500.00 |
| Amazon Inspector | 10アカウントでのEC2インスタンススキャン (Ec2インスタンス: 10アカウント × 平均10インスタンス = 100インスタンス) | 100インスタンス × $1.258 = $125.80 | $125.80 |
| AWS Security Hub | 10アカウントでのセキュリティチェックと検出結果の取り込み (セキュリティチェック: 10アカウント × 500チェック = 5,000チェック, 検出結果の取り込み: 10アカウント × 10,000イベント = 100,000イベント) | セキュリティチェック: 5,000 × $0.0010 = $5.00
検出結果の取り込み: (100,000 - 10,000) × $0.00003 = $2.70 | $20.00 |
| AWS CloudTrail | 10アカウントでのCloudTrailログ記録 (管理イベント: 10アカウント × 5,000,000イベント = 50,000,000イベント, データイベント: 10アカウント × 5,000,000イベント = 50,000,000イベント) | 管理イベント（最初のコピー）: 無料
データイベント: 50,000,000 / 100,000 × $0.10 = $50.00 | $15.00 |
| AWS Config | 10アカウントでのリソース設定記録 (設定項目: 10アカウント × 1,000項目 = 10,000項目) | 10,000項目 × $0.003 = $30.00 | $30.00 |
| AWS Trusted Advisor | 10アカウントでのTrusted Advisor (アカウント: 10アカウント) | AWS Support契約に含まれるため追加コストなし | $0.00 |
| **Total** | **All services** | **Sum of all calculations** | **$691.80/month** |

### Free Tier

Free tier information by service:
- **Amazon OpenSearch Service**: なし
- **Amazon GuardDuty**: 30日間の無料トライアル（新規アカウント）
- **Amazon Inspector**: 15日間の無料トライアル（新規アカウント）
- **AWS Security Hub**: 30日間の無料トライアル（新規アカウント）
- **AWS CloudTrail**: 管理イベントの最初のコピーは無料
- **AWS Config**: なし
- **AWS Trusted Advisor**: Business SupportまたはEnterprise Supportプランに含まれる

## Cost Scaling with Usage

The following table illustrates how cost estimates scale with different usage levels:

| Service | Low Usage | Medium Usage | High Usage |
|---------|-----------|--------------|------------|
| Amazon OpenSearch Service | $0/month | $1/month | $2/month |
| Amazon GuardDuty | $250/month | $500/month | $1000/month |
| Amazon Inspector | $62/month | $125/month | $251/month |
| AWS Security Hub | $10/month | $20/month | $40/month |
| AWS CloudTrail | $7/month | $15/month | $30/month |
| AWS Config | $15/month | $30/month | $60/month |
| AWS Trusted Advisor | Varies | Varies | Varies |

### Key Cost Factors

- **Amazon OpenSearch Service**: 3つのデータノード（r6g.xlarge.search）と3つのマスターノード（c6g.large.search）を使用
- **Amazon GuardDuty**: 10アカウントでのGuardDuty分析
- **Amazon Inspector**: 10アカウントでのEC2インスタンススキャン
- **AWS Security Hub**: 10アカウントでのセキュリティチェックと検出結果の取り込み
- **AWS CloudTrail**: 10アカウントでのCloudTrailログ記録
- **AWS Config**: 10アカウントでのリソース設定記録
- **AWS Trusted Advisor**: 10アカウントでのTrusted Advisor

## Projected Costs Over Time

The following projections show estimated monthly costs over a 12-month period based on different growth patterns:

Base monthly cost calculation:

| Service | Monthly Cost |
|---------|-------------|
| Amazon OpenSearch Service | $1.00 |
| Amazon GuardDuty | $500.00 |
| Amazon Inspector | $125.80 |
| AWS Security Hub | $20.00 |
| AWS CloudTrail | $15.00 |
| AWS Config | $30.00 |
| **Total Monthly Cost** | **$691** |

| Growth Pattern | Month 1 | Month 3 | Month 6 | Month 12 |
|---------------|---------|---------|---------|----------|
| Steady | $691/mo | $691/mo | $691/mo | $691/mo |
| Moderate | $691/mo | $762/mo | $882/mo | $1183/mo |
| Rapid | $691/mo | $837/mo | $1114/mo | $1973/mo |

* Steady: No monthly growth (1.0x)
* Moderate: 5% monthly growth (1.05x)
* Rapid: 10% monthly growth (1.1x)

## Detailed Cost Analysis

### Pricing Model

ON DEMAND


### Exclusions

- データ転送コスト
- カスタム開発コスト
- AWS Support契約コスト

### Recommendations

#### Immediate Actions

- Reserved Instancesを使用してOpenSearch Serviceのコストを最大35%削減
- CloudTrailのログ集約を設定して、複数アカウントからのログを一元管理
- Security Hubの委任管理者を設定して、複数アカウントの管理を効率化
- 不要なログフィルタリングを設定して、保存するログ量を最適化
#### Best Practices

- 定期的なログ分析とアーカイブポリシーを設定して、ストレージコストを最適化
- UltraWarmストレージを活用して、古いログのストレージコストを削減
- 自動化されたアラートとレスポンスを設定して、セキュリティ対応を効率化
- 定期的なコスト分析を実施して、使用状況に基づいてリソースを最適化



## Cost Optimization Recommendations

### Immediate Actions

- Reserved Instancesを使用してOpenSearch Serviceのコストを最大35%削減
- CloudTrailのログ集約を設定して、複数アカウントからのログを一元管理
- Security Hubの委任管理者を設定して、複数アカウントの管理を効率化

### Best Practices

- 定期的なログ分析とアーカイブポリシーを設定して、ストレージコストを最適化
- UltraWarmストレージを活用して、古いログのストレージコストを削減
- 自動化されたアラートとレスポンスを設定して、セキュリティ対応を効率化

## Conclusion

By following the recommendations in this report, you can optimize your AWS SIEM on Amazon OpenSearch Service costs while maintaining performance and reliability. Regular monitoring and adjustment of your usage patterns will help ensure cost efficiency as your workload evolves.
```
</details>

![スクリーンショット 2025-04-22 2.27.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/49d7db38-0f25-4b2f-8a0f-46fb19f74550.png)


<details><summary>Task Completed</summary>

```markdown
AWS SIEM on Amazon OpenSearch Serviceの1ヶ月コスト見積もり
概要
AWS SIEM on Amazon OpenSearch Serviceを10アカウントで利用する場合の1ヶ月あたりの予想コストは、約1,874.42米ドル（約28万円）です。この見積もりは以下のサービスとリソースに基づいています。

コスト内訳
| サービス | 月額コスト（USD） | 説明 |
|---------|-------------|------|
| Amazon OpenSearch Service | $1,183.62 | 3つのデータノード（r6g.xlarge.search）と3つのマスターノード（c6g.large.search）、合計1,500GBのEBSストレージ |
| Amazon GuardDuty | $500.00 | 10アカウントでのCloudTrail管理イベント分析とVPC Flow Logs/DNSクエリログ分析 |
| Amazon Inspector | $125.80 | 10アカウントでの平均10インスタンス（合計100インスタンス）のスキャン |
| AWS Security Hub | $20.00 | 10アカウントでのセキュリティチェックと検出結果の取り込み |
| AWS CloudTrail | $15.00 | 10アカウントでの管理イベントとデータイベントの記録 |
| AWS Config | $30.00 | 10アカウントでのリソース設定記録 |
| AWS Trusted Advisor | $0.00 | AWS Support契約に含まれるため追加コストなし |
| 合計 | $1,874.42 | |

前提条件
プライベート環境にAWS CDKを使用してデプロイ
10個のアカウントからログを収集
1ヶ月あたり約500GBのログデータが生成
3つのアベイラビリティゾーンにデプロイ
データ保持期間は90日
コスト最適化のための推奨事項
即時対応可能な施策
Reserved Instancesの活用: OpenSearch Serviceのインスタンスに対してReserved Instancesを使用することで、最大35%のコスト削減が可能
CloudTrailのログ集約: 複数アカウントからのログを一元管理することでコストを最適化
Security Hubの委任管理者設定: 複数アカウントの管理を効率化
ログフィルタリングの最適化: 不要なログを除外して保存するログ量を削減
ベストプラクティス
定期的なログ分析とアーカイブ: 古いログを定期的にアーカイブしてストレージコストを最適化
UltraWarmストレージの活用: 古いログをUltraWarmストレージに移動させてコストを削減
自動化されたアラートとレスポンス: セキュリティ対応を効率化
定期的なコスト分析: 使用状況に基づいてリソースを最適化
この見積もりは現在の料金と想定使用量に基づいています。実際のコストは使用パターンやデータ量によって変動する可能性があります。
```

</details>


# 総評

- 全体的にはコードを理解し推論しこれだけの結果を出してくれるので凄いとしか言いようがない
- プロンプトの投げ方がちょっと悪かったので、ここは気をつけるともう少し良い回答となった（各 AWS サービスを収集するための利用料も含めて欲しかったのではなく、各 AWS サービスが AWS SIEM に送るための料金を含めたかった）
- 個人でやるにはコストがかかる。次回は精度は下がるでしょうが、動作確認だけなら、無料で Gemini を使おうかなと思っています