31
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

「AWS MCP Server」というのが発表されたので使ってみました。
従来の「Knowledge Bases MCP Server」の上位互換のような位置で、ドキュメントを検索するだけでなく、実際にAWSの操作までやってくれるみたいです。
他にも「Agent SOP」という新しい概念が出てきたのでそちら紹介しようと思います。

何ができる?

AWS MCP Server を使うと、AWS に関する情報収集から実際の操作までを、エージェントを介して自然言語で扱えるようになります。

たとえば、VPC やサーバレスアプリの構築といった複数工程が絡む作業も、細かい手順を追わなくても、やりたい内容を伝えるだけで実行できます。AWS の最新ドキュメントやベストプラクティスもその場で参照できるため、「どのサービスが使えるのか」「どの設定が正しいのか」を逐一調べる手間が大きく減ります。

さらに、AWS が提供する幅広い API へ直接アクセスすることもでき、実際のリソース作成や変更を自動化できます。IAM の権限管理と連動しているため、既存のセキュリティ設計を崩すことなく、自然言語ベースで AWS を扱える点が特徴です。

Agent SOP とは

このMCP Server には「Agent SOP」という仕組みが用意されています。これは、よくある AWS の構成やタスクを、あらかじめ一連の手順書としてまとめたものです。実際の構築作業における流れを、SOP がそのまま再現してくれるイメージです。

たとえば「本番用の VPC を準備してほしい」と伝えると、ネットワーク設定やセキュリティ、ログ、タグなど、AWS が推奨する構成に沿って順番に組み立ててくれます。どの順番で何を設定するのかを自分で考える必要がなく、しかもベストプラクティスに沿った作り方になります。

単に API を叩くだけではなく、目的に対して適切な設計と手順をセットで提供してくれるところが、Agent SOP の一番のポイントです。

ちなみにドキュメントに以下のようにあったので、Agent SOPについて実際に聞いてみました。

AI アシスタントに問い合わせることで、利用可能なエージェント SOP を確認できます。What Agent SOPs do you have available?

回答は以下です。

ターミナル
Agent SOP一覧を取得します。
Tool #1: aws___retrieve_agent_sop
利用可能なAgent SOP(Standard Operating Procedures)の一覧です。以下は24個のSOPがあります:

## インフラストラクチャ構築

1. **ec2-instance-profile-setup** - EC2インスタンスのIAMロール設定
   - EC2からAWSサービスを安全に呼び出すためのIAMロールと インスタンスプロファイルを作成

2. **launch-ec2-instance-with-best-practices** - EC2インスタンスの起動
   - セキュアで効率的なEC2インスタンスをベストプラクティスに従って起動

3. **create_production_vpc_multi_az** - マルチAZ対応VPC作成
   - 複数のAvailability Zoneに分散されたプロダクション対応VPCを作成

4. **efs-ec2-mount** - EFS のマウント
   - 暗号化されたEFSを作成しEC2にマウント

5. **vpc-peering-connection** - VPCピアリング接続
   - VPC間のセキュアなプライベートネットワーク接続を確立

6. **configure_vpc_endpoints_for_private_aws_service_access** - VPCエンドポイント設定
   - インターネットゲートウェイなしでAWSサービスにアクセス

## データベース

7. **create_amazon_aurora_db_cluster_with_instances** - Aurora クラスター作成
   - AmazonAuroraデータベースクラスターと インスタンスの作成

8. **connect-ec2-to-rds** - EC2からRDSへの接続
   - EC2インスタンスとRDSの間にセキュアな接続を設定

9. **export-rds-to-s3** - RDS/Auroraから S3へのエクスポート
   - RDSスナップショットをParquet形式でS3にエクスポート

## Lambda とAPI

10. **lambda-gateway-api** - Lambda と API Gateway の接続
    - REST API GatewayをLambda関数に接続

11. **lambda-vpc-internet-access** - Lambda のインターネットアクセス設定
    - VPC内のLambda関数にNAT Gatewayを使用してインターネットアクセスを提供

12. **lambda-timeout-debugging** - Lambda タイムアウトのデバッグ
    - Lambda関数のタイムアウト失敗をデバッグ

13. **lambda-dynamodb-connection** - Lambda からDynamoDBへのアクセス
    - Lambda関数のDynamoDB 読み書き設定

14. **create_api_gateway_stage** - API Gateway ステージ作成
    - API Gatewayのステージ作成と設定

## ストレージとホスティング

15. **secure-s3-buckets** - S3バケットのセキュア設定
    - 最小権限の原則に基づいたS3バケット設定

16. **s3-static-website-hosting** - S3での静的ウェブサイトホスティング
    - CloudFront、S3、ACMを使用した静的ウェブサイトホスティング

## セキュリティと監視

17. **create-secrets-using-best-practices** - AWS Secrets Manager でのシークレット作成
    - ローテーション、KMS暗号化、アクセス制御、監査を含む

18. **cloudtral-mutli-region-setup** - CloudTrail マルチリージョン設定
    - 全リージョンでCloudTrailを有効化し、CloudWatch Logsで分析

19. **setup_cloudwatch_alarm_notifications** - CloudWatch アラーム通知設定
    - SNS、メール、SMSなどの通知チャネルを設定

20. **troubleshoot-permissions-with-cloudtrail-events** - CloudTrail でのパーミッション問題のトラブルシューティング
    - CloudTrailログを分析してアクセス拒否問題を解決

## Amplify フレームワーク

21. **amplify-backend-implementation** - Amplify バックエンド実装
    - TypeScriptコード優先アーキテクチャでAWS Amplify Gen2バックエンドを構築

22. **amplify-frontend-integration** - Amplify フロントエンド統合
    - 既存のReact、Vue、Angular、Flutter、Swiftプロジェクトに Amplifyを統合

23. **amplify-deployment-guide** - Amplify デプロイメント ガイド
    - Amplify Gen2の本番環境へのデプロイ、環境設定、トラブルシューティング

## 運用・管理

24. **application-failure-troubleshooting** - アプリケーション障害のトラブルシューティング
    - CloudWatch ログを分析してエラーパターンと根本原因を特定

25. **create-budget** - AWS Budgets の作成
    - セットアップエラーを防ぐためのスマート設定で AWS Budgetsを作成

26. **route53-cloudfront-routing** - Route53 + CloudFront のルーティング
    - カスタムドメインをCloudFrontにマップ

特定のSOPについて詳しく知りたい場合は、その名前をお知らせください!

主要な機能

次に、AWS MCPサーバーの主な機能を見ていきます。
主に3つの機能で構成されていると言えます。

Agent SOP ツール

Agent SOP ツールは、前述の SOP を実行するための仕組みです。自分で手順を調べたり、設定を一つひとつ書いたりせずに済むので、複雑な構成を作るときほど便利さを実感できます。

AI に指示すると、その内容をもとに適切な SOP が選ばれ、必要な AWS サービスを順番に構築していきます。途中の構成も AWS のベストプラクティスを踏まえて整備されるため、「作ったあとに設定漏れがあった」といったミスが起きにくいのも利点です。

AWS Knowledge ツール

AWS Knowledge ツールは、AWS の公式ドキュメントや API リファレンス、サービスの可用性など、最新の情報をその場で参照するためのものです。

特に便利なのは、AI が古い情報ではなく“常に最新の公式情報”を使って答えてくれる点です。手元で検索したり、英語の長いドキュメントを読む必要がなく、設計時に迷いが少なくなります。

AWS API ツール

AWS API ツールは、自然言語で伝えた内容を実際の AWS API 呼び出しに変換して実行するための機能です。

MCP Server 側で SigV4 署名やエラー処理などを行ってくれるため、普段 CLI や SDK を使って操作している場合と同じ結果を、自然言語ベースで得られます。15,000 以上の API を対象にしており、リソースの作成・更新・削除といった一通りの操作に対応しています。

やってみる

ポリシーの作成

実施する前に、ユーザーに以下のようなポリシーをアタッチする必要があります。

{
   "Version": "2012-10-17",		 	 	 
   "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aws-mcp:InvokeMCP",
                "aws-mcp:CallReadOnlyTool",
                "aws-mcp:CallReadWriteTool"
            ],
            "Resource": "*"
        }
    ]
}                 

エージェントの作成

以下のコードとコマンドで実装、実行しました。

aws_mcp.py
from mcp import stdio_client, StdioServerParameters
from strands import Agent
from strands.tools.mcp import MCPClient

# AWS MCP Server のエンドポイント
AWS_MCP_ENDPOINT = "https://aws-mcp.us-east-1.api.aws/mcp"

# デフォルトで操作したいリージョン
DEFAULT_REGION = "us-west-2"

# MCP Client を作成(stdio 経由で mcp-proxy-for-aws を起動)
mcp_client = MCPClient(
    lambda: stdio_client(
        StdioServerParameters(
            command="uvx",
            args=[
                "mcp-proxy-for-aws@latest",
                AWS_MCP_ENDPOINT,
                "--metadata", f"AWS_REGION={DEFAULT_REGION}",
            ],
        )
    )
)

# 手動ライフサイクル管理
with mcp_client:
    # MCP サーバーからツール一覧を取得
    tools = mcp_client.list_tools_sync()
    print(f"Loaded {len(tools)} tools from AWS MCP Server")

    # 取得したツールを持つエージェントを作成
    agent = Agent(
            model="global.anthropic.claude-haiku-4-5-20251001-v1:0",
            tools=tools
        )

    # 試しに聞いてみる
    res = agent("Agent SOPは何ができますか?")
    print(res)
terminal
uv run aws_mcp.py

利用例

EC2インスタンスの作成

試しに、SOPのうちの一つにあった、ベスプラに沿ったEC2インスタンスの作成をやってみました。

少し時間がかかりましたが、無事完了しました。
接続できることもマネコンから確認できています。

image.png

image.png

使ってみて

一度のリクエストに対してたくさんツールを呼び出して処理しますし、その分時間がかかっている(その分コストも)印象でした。
また、ツール呼び出しに失敗しているのか、処理中のパラメータが間違っているのか、実行中に何回か失敗しているのを確認できました。
LLMが再思考してうまくいっていましたが、みている側としては少し不安になります。

image.png

SOPに沿って作業してくれるのはありがたいですが、個人的にはその時間に人間がパパッとやってしまったり、CloudFormationのようなものを使ってもいいのではないかと感じました。
というか、AIが全部判断してリソースの操作まで行うので、本番環境での導入は少し難しいと思います。

操作を実行する直前に人間に確認を求める、human-in-the-loopのような構成だと好ましいですが、そこまでして使いたい機能か?と言われるとまだ疑問です。

まだ発表直後ということもあり、何らかの改善があればまた試してみようと思います。

さいごに

ラスベガスまで届け!!!

31
18
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
31
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?