CursorでリリースされたAWS Pluginを使ってみた

CursorでリリースされたAWS Pluginを使ってみた

2026.02.21

こんにちは、せーのです。今日は先日 Cursor からv2.5が発表され、新しく「Plugin」という機能が追加されました。そのPluginの中にAWS から発表された Agent Plugins for AWS がありましたので、お試しがてら使ってみたいと思います。

どんな機能か

Cursor Plugin とは(おさらい)

Plugin とは、ルール・スキル・エージェント・コマンド・MCP サーバー・フックを、配布可能なバンドルとしてまとめたものです。IDE・CLI・Cloud で共通に動き、Cursor v2.5 で Plugin Marketplace とともにローンチしました。

MCP サーバーを単体で使う場合との違いを整理すると、次のとおりです。

観点 Plugin MCP Server 単体
範囲 Skills / Subagents / Rules / Hooks も含む複合バンドル プロトコル接続のみ
配布 Marketplace でワンクリックインストール mcp.json に手動設定
知識 Skills が自動適用され判断品質が向上 コンテキスト注入は手動

つまり、Plugin は「MCP サーバー + それを賢く使うための知識・ルール・ワークフロー」をパッケージ化したもの、というイメージです。

AWS Plugin(deploy-on-aws)の構成

AWS 公式の deploy-on-aws プラグインには、次の 3 つの MCP サーバーが含まれています。

サーバー名 用途
awsknowledge AWS ドキュメント・アーキテクチャガイダンス・ベストプラクティス参照
awspricing リアルタイム AWS サービス料金見積もり
aws-iac-mcp CDK / CloudFormation 向け IaC ベストプラクティスと cdk-nag によるセキュリティチェック

「deploy to AWS」「host on AWS」「run this on AWS」「AWS architecture」「estimate AWS cost」「generate infrastructure」などのフレーズで、deploy スキルが起動します。

プラグインの流れは 5 段階です。

Step 名称 内容
1 Analyze コードベースをスキャンし、フレームワーク・DB・依存関係を特定
2 Recommend 最適な AWS サービスを選定し、根拠を提示
3 Estimate AWS Pricing MCP Server でリアルタイムのコスト見積もりを表示
4 Generate CDK または CloudFormation の IaC コードを生成
5 Deploy ユーザーの承認後にデプロイを実行

Plugin Marketplace は 2026年2月17日ローンチで、AWS のほか Linear、Figma、Stripe、Cloudflare、Vercel、Databricks、Snowflake、Amplitude、Hex、Neon などがローンチパートナーとして並んでいます。ラインナップは Cursor Marketplace から確認できます。

とりあえず動かしてみる

前提条件

次の環境を用意しました。

  • Cursor v2.5 以降
  • AWS CLI v2(aws sts get-caller-identity で認証済み)
  • Node.js v18 以上
  • AWS CDK v2

今回の検証では、AWS CLI 2.33、Node.js v22、CDK 2.1007 で、事前に aws sts get-caller-identity で認証を確認済みです。

サンプルアプリの準備

シンプルな Todo API(Express.js + SQLite + 静的 HTML)を用意します。

todo-app/
├── server.js          # Express API サーバー
├── public/
│   └── index.html     # フロントエンド
├── package.json
└── node_modules/

作成コマンドは以下のとおりです。

mkdir todo-app && cd todo-app
npm init -y
npm install express better-sqlite3

server.js は次の内容で、CRUD API と静的ファイル配信を担当します。

const express = require('express');
const Database = require('better-sqlite3');
const path = require('path');

const app = express();
const db = new Database(':memory:');

app.use(express.json());
app.use(express.static(path.join(__dirname, 'public')));

db.exec(`
  CREATE TABLE todos (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    completed INTEGER DEFAULT 0
  )
`);

app.get('/api/todos', (req, res) => {
  res.json(db.prepare('SELECT * FROM todos ORDER BY id DESC').all());
});

app.post('/api/todos', (req, res) => {
  const { title } = req.body;
  const result = db.prepare('INSERT INTO todos (title) VALUES (?)').run(title);
  res.json({ id: result.lastInsertRowid, title, completed: 0 });
});

app.patch('/api/todos/:id', (req, res) => {
  db.prepare('UPDATE todos SET completed = NOT completed WHERE id = ?').run(req.params.id);
  res.json(db.prepare('SELECT * FROM todos WHERE id = ?').get(req.params.id));
});

app.delete('/api/todos/:id', (req, res) => {
  db.prepare('DELETE FROM todos WHERE id = ?').run(req.params.id);
  res.json({ ok: true });
});

app.listen(3000, () => console.log('Server running on http://localhost:3000'));

public/index.html はフォームと一覧・チェック・削除ができるフロントです。ローカルで node server.js を実行し、ブラウザで http://localhost:3000 を開いてタスクの追加・完了・削除ができることを確認しました。API の動作も curl で確認できます。

$ curl -s http://localhost:3000/api/todos
[]
$ curl -s -X POST http://localhost:3000/api/todos -H "Content-Type: application/json" -d '{"title":"テストタスク"}'
{"id":1,"title":"テストタスク","completed":0}
$ curl -s http://localhost:3000/api/todos
[{"id":1,"title":"テストタスク","completed":0}]

AWS Plugin のインストール

Cursor の Settings(メニュー Cursor > Settings または Cmd + ,)を開き、Plugins で「aws」を検索します。Agent Plugins for AWS(deploy-on-aws)が表示されたら Add to Cursor をクリックし、スコープ(User / Project)を選びます。インストール後、Plugins > Installed に AWS Plugin が表示され、awsknowledge / awspricing / aws-iac-mcp の MCP サーバーが自動で設定されます。

plugin_aws1.png

「deploy to AWS」を実行

Agent パネル(Cmd + L)を開き、入力欄に「deploy to AWS」とだけ入力して送信します。

Analyze でプロジェクトがスキャンされ、Express.js(Node.js)、SQLite(better-sqlite3)、public/ の静的 HTML/JS などが自動検出されます。続く Recommend で、それに基づいた AWS サービス構成が提案されます。

todo-app-aws-architecture-pro.png

今回の実行では、プラグインが次の構成(dev サイジング)を提案しました。

レイヤー ローカル AWS(今回の提案)
コンピュート Express.js on localhost ECS Fargate(0.5 vCPU, 1 GB)で Express をコンテナ実行
トラフィック なし Application Load Balancer(HTTP 80)
データベース SQLite(インメモリ) DynamoDB(オンデマンド)。データ永続化のため SQLite を置き換え
インフラ管理 なし CDK(IaC)

App Runner や Lambda ではなく Fargate + ALB が選ばれる場合もあり、アプリの検出結果やプラグインの判断で構成は変わります。ローカルの SQLite が DynamoDB に置き換わる点は共通の見どころです。

Estimate では awspricing MCP サーバーにより、リアルタイムの料金データから月額概算が表示されます。デプロイ前にコストが確認できるのは安心ですし、これは便利です。今回の実行では、次のような見積もりが提示されました。

Monthly Cost Estimate (dev sizing, us-east-1, 24/7 稼働)

サービス 月額概算
ECS Fargate (0.5 vCPU, 1 GB) ~$14.40
Application Load Balancer ~$16.43
NAT Gateway (1 AZ) ~$32.85
DynamoDB (on-demand) ~$1〜5
合計目安 ~$65〜75/月

※ Pricing API がポリシーで制限されている環境では、スキル内の参照値で表示される場合があります。

続行を指示すると Generate で CDK とアプリ側の変更が自動生成されます。今回の実行では次のような追加・変更がありました。

  • server.js
    ストア抽象化を導入し、環境変数 TABLE_NAME が設定されていれば DynamoDB、なければ従来どおり SQLite(インメモリ)でローカル開発。
  • store-dynamodb.js / store-sqlite.js
    同じ API(list, create, toggle, remove)で両バックエンドを切り替え。
  • Dockerfile
    Node 20 のマルチステージビルドでアプリをコンテナ化。
  • package.json
    @aws-sdk/client-dynamodb@aws-sdk/lib-dynamodb を追加。
  • infra/
    CDK(TypeScript)スタック:VPC(1 AZ)、Fargate サービス、ALB、DynamoDB テーブル、タスク用 IAM(DynamoDB のみ)、セキュリティグループ(ALB → Fargate のみ、Fargate はプライベートサブネット)。
  • DEPLOY.md
    デプロイ手順とオプションのセキュリティチェック(checkov / cfn-nag)の案内。
todo-app/
├── server.js              # ストア抽象化対応
├── store-dynamodb.js
├── store-sqlite.js
├── public/
│   └── index.html
├── Dockerfile
├── package.json
├── DEPLOY.md
├── infra/                 ← 自動生成(CDK)
│   ├── bin/
│   ├── lib/
│   │   └── todo-app-stack.ts
│   ├── cdk.json
│   ├── package.json
│   └── ...
└── ...

Deploy では、Agent がデプロイ実行の確認を求めます。

I'm ready to deploy the Todo App to AWS. This will:

  • Bootstrap your AWS environment (first time only)
  • Build and push the Docker image to ECR
  • Deploy the CDK stack (VPC, ALB, ECS Fargate, DynamoDB)

Estimated deployment time: 10–15 minutes. Shall I proceed?

承認するとリポジトリルートで npm install のあと、cd infra && npm install && npx cdk bootstrap(初回のみ)と npx cdk deploy --require-approval never が実行されます。ターミナルに CDK のデプロイログが流れ、最終的にエンドポイント URL が出力されます。

  Synthesis time: 8.23s

TodoAppStack: deploying... [1/1]
TodoAppStack: creating CloudFormation changeset...

  TodoAppStack

  Deployment time: 312.45s

Outputs:
TodoAppStack.LoadBalancerDnsName = TodoA-Publi-xxxxxxxxxxxx.us-east-1.elb.amazonaws.com

Stack ARN:
arn:aws:cloudformation:us-east-1:xxxxxxxxxxxx:stack/TodoAppStack/xxxxxxxx

  Total time: 320.68s

Outputs に表示される LoadBalancerDnsName がアプリの URL です。ブラウザでアクセスすると Todo App が AWS 上で動いています。

結果の確認

アーキテクチャとコスト

今回の提案は、上記の ECS Fargate + ALB + DynamoDB の構成でした。Estimate ステップで提示されたコスト見積もり(dev 想定・us-east-1・24/7 稼働)は以下のとおりです。

サービス 月額概算
ECS Fargate (0.5 vCPU, 1 GB) ~$14.40
Application Load Balancer ~$16.43
NAT Gateway (1 AZ) ~$32.85
DynamoDB(オンデマンド) ~$1〜5
合計(目安) ~$65〜75/月

Fargate + ALB + NAT の組み合わせは、最小構成の App Runner 単体よりコストは高めですが、柔軟な構成や VPC 内配置が必要な場合に選ばれます。デプロイ前に月額の目安が把握できるのは安心です。

生成された CDK と動作確認

infra/lib/ のスタック定義に、Fargate、ALB、DynamoDB、VPC などが定義され、cdk-nag によるセキュリティチェックも適用されます。IaC がプロジェクトに残るため、以降は cd infra && npx cdk deploy で同じ構成を再現できます。

デプロイ完了後に出力される Load Balancer の DNS 名(LoadBalancerDnsName)にブラウザでアクセスすると、Todo App が AWS 上で動いていることを確認できます。タスクの追加・完了・削除もローカルと同様に動作します。今回の実験(2026年2月20日実施)では、エンドポイント URL を開くと Todo App の画面が表示され、タスクの追加・完了トグル・削除が問題なく動作しました。API も curl で確認し、GET /api/todosPOST /api/todosPATCH /api/todos/:idDELETE /api/todos/:id はいずれも期待どおりで、きちんと実行できました。

スクリーンショット 2026-02-20 17.27.54.png

ちょっとシンプルすぎましたね笑

ちょっとハマったところ
初回デプロイ時、ECS サービスが「Exceeded attempts to wait」(NotStabilized)でロールバックして困りました。色々調べたところ、Fargate サービスの healthCheckGracePeriod を 120 秒に設定して再デプロイすればよいとわかり、設定して無事動きました。また、Mac(ARM)でビルドした Docker イメージが Fargate(x86_64)で動かず、コンテナが「exec format error」で終了する事象があり、CDK の DockerImageAssetplatform: Platform.LINUX_AMD64 を指定して解消しました。再デプロイの所要時間は約 5 分でした。

注意(MFA 必須のアカウント)
ForceMFA が有効なアカウントでは、cdk synth 時に ec2:DescribeAvailabilityZones が拒否され、デプロイに失敗することがあります。その場合は、MFA 付きのセッション(aws sts get-session-token で MFA を渡す、または SSO ログイン)を取得してから再度 cdk deploy を実行してください。

まとめ

Cursor v2.5 の AWS Plugin(deploy-on-aws)を試した結果、次の 3 点が特に便利だと感じました。

  1. 「deploy to AWS」の一言でエンドツーエンド
    アーキテクチャ選定からデプロイまで、AWS の知識が少なくても進められる。
  2. コスト見積もりが事前に見える
    リアルタイム料金データに基づく見積もりで、デプロイ前に月額を把握できる。
  3. CDK が自動生成されて IaC が残る
    一回限りではなく、以降は cdk deploy で再現可能。

PoC やプロトタイプの素早い AWS デプロイ、IaC 初心者が生成コードを読んで CDK を学ぶ場面、既存アプリの AWS 移行検討(まずアーキテクチャとコストだけ確認)などで使えそうです。

注意点として、生成された CDK コードはデプロイ前に必ずレビューし、本番利用時は追加のセキュリティ設定を検討してください。AWS 認証情報は最小権限で設定することをおすすめします。

Plugin Marketplace と AWS 公式プラグインの組み合わせは、開発体験としてかなり良く、手元のアプリをすぐ AWS に載せて試したいときにもってこいでした。とりあえず動かしてみたい方には、ぜひ試してみてはいかがでしょうか。

参考リンク

この記事をシェアする

FacebookHatena blogX

関連記事