• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

launch-with-aws

プラグイン
aws-core
ソース
GitHub で見る ↗
説明

Vibe-code(直感的なコーディング手法)で作られたウェブアプリケーションをAWSに移行します。分析から移行、デプロイメント(本番環境への公開)まで全体のワークフローを処理し、AWSで実行可能なインフラストラクチャコードを生成します。 Vibe-codingプラットフォーム(Lovable、Bolt.new、Replitなど)で構築されたフルスタックアプリケーション、およびReact、Vue、Angular、Next.js、Nuxt、Astro、SvelteKit、Gatsby、Vite、Svelte、Solid、Docosaurus等のフレームワークで作られたフロントエンドウェブアプリケーションやウェブサイト(静的サイト、SPA(シングルページアプリケーション)、静的エクスポート機能を持つSSR(サーバーサイドレンダリング)フレームワーク)に対応しています。 **次のような場合に使用:** - 「AWSで起動」「AWSにデプロイ」「AWSでホスト」「AWSに移行」「AWSにアプリを移す」などのキーワードが含まれる場合 - ユーザーが「移行」という言葉を明確に使わなくても、Vibe-codeで作られたアプリやフロントエンドウェブアプリをAWSに移したいという意図が見られる場合に自動で起動します。

原文を表示

Migrates vibe-coded web applications to AWS. Handles the full workflow from analysis through migration to deployment, producing deployable AWS Blocks infrastructure code. Supports full-stack apps built with vibe-coding platforms (Lovable, Bolt.new, Replit) and frontend web applications and websites: React, Vue, Angular, Next.js, Nuxt, Astro, SvelteKit, Gatsby, Vite, Svelte, Solid, Docusaurus, and others (static sites, SPAs, and SSR frameworks with static export). Triggers on: launch with AWS, launch on AWS, deploy to AWS, migrate to AWS, host my app on AWS, move my app to AWS, transfer my app to AWS. Activates when the user wants to migrate a vibe-coded app or frontend web app to AWS, even if they don't say 'migrate' explicitly.

ユースケース
  • Vibe-codeアプリをAWSに移行したい
  • ウェブアプリケーションをAWSでデプロイしたい
  • フロントエンドアプリをAWSでホストしたい
  • インフラストラクチャコードを生成したい
本文(日本語訳)

AWS Launch(AWS 移行)

ウェブアプリケーションをAWSへ移行するスキルです。CLIスクリプト経由でユーザーのウェブアプリケーションを分析し、移行計画とコスト見積もりを生成したうえで、デプロイ可能なAWS Blocks(インフラストラクチャ定義コード)を提供します。

AWS MCP サーバーがあると便利ですが、なくても動作します。このスキルはCLIスクリプト経由で、どのエージェント環境でも単独で使用できます。

スクリプト実行方法

すべてのコマンドは以下で実行します:

python3 scripts/launch_with_aws.py <command> [args...]

scripts/ はこのスキルのディレクトリを基準とした相対パスです。エージェントはコマンド実行前に、作業ディレクトリをスキルのルートディレクトリに設定する必要があります。

必要なファイル: launch_with_aws.py、launch_config.py、auth.py、auth_callback_server.py、launch_api_client.py、archive.py、サービスモデル(launchwithaws-2026-06-15.json)。MCP経由で読み込む場合は、すべてを一時ディレクトリに保存してから実行します。

各コマンドは成功時に標準出力にJSONを出力し、エラー時は非ゼロのステータスで標準エラーに JSON形式のエラーを出力します。

必要な環境: Python 3.10 以上と boto3。スクリプトは起動時に両方をチェックし、不足していれば分かりやすいエラーメッセージを表示して終了します。

対応するアプリケーション種別

ノーコード開発プラットフォームで作られたフルスタックアプリケーション、およびフロントエンドウェブアプリケーション・ウェブサイト(静的サイト、SPA(シングルページアプリケーション)、静的出力対応のSSR(サーバーサイドレンダリング)フレームワーク)が対象です。

開発プラットフォーム 対応内容
Lovable Lovable生成のフルスタックアプリ(React + Supabase)
Bolt.new Bolt.new生成のフルスタックアプリ(React + Supabase)
Replit Replit上のフルスタックアプリ(React + Express.js + PostgreSQL)
フレームワーク 例
React エコシステム React、Create React App、Vite + React、Gatsby、Docusaurus
Vue エコシステム Vue、Nuxt(静的出力対応)、VitePress
Angular Angular
Svelte エコシステム Svelte、SvelteKit(静的出力対応)
SSR・静的出力対応 Next.js、Nuxt、Astro、SvelteKit
その他のモダンフレームワーク Astro、Solid、Preact、Lit、Eleventy
Vite(汎用) Viteベースのあらゆるアプリ

他のフレームワークも動作する可能性があります。ユーザーのアプリがこのリストに当てはまらない場合は、下記の「対応していないアプリケーションの扱い」を参照してください。

移行対象・対象外の区分

Lovable / Bolt.new アプリ(Supabaseベース):

コンポーネント 対応内容
フロントエンド・ホスティング AWS移行(S3 + CloudFront + Lambda)
エッジ関数・サーバー関数 AWS Lambdaへ移行
AI呼び出し(Lovable AI Gateway など) Amazon Bedrockへ移行
データベース(Supabase DB) Supabaseに留まる(移行しない)
認証(Supabase Auth) Supabaseに留まる(移行しない)
ストレージ・リアルタイム機能 Supabaseに留まる(移行しない)

AWSにホストされたアプリケーションは、データベース、認証、ストレージ、リアルタイム機能についてSupabaseを継続して呼び出します。

Replit アプリ(Express.js + PostgreSQL):

コンポーネント 対応内容
フロントエンド・ホスティング AWS移行(S3 + CloudFront + Lambda)
サーバーロジック(Express.js) AWS Lambda(API Gateway)へ移行
データベース(PostgreSQL) スキーマとコードはAWS移行(Aurora Serverless / DynamoDB)。既存データは移行されません。ユーザーが手動でエクスポート・インポートしてください。
認証(Replit Auth) コードはAWS移行(Cognito)。既存ユーザーアカウントは移行されません。Cognitoで新たに作成・招待してください。
リアルタイム通信(WebSocket) AWS移行(AppSync Events)
ファイルストレージ AWS移行(S3)。既存ファイルは移行されません。

Replit アプリのインフラとコードはAWSネイティブサービスに移行されますが、既存データ、ユーザーアカウント、ファイルはユーザーが別途移行する必要があります。

入力値の確認

ユーザーの入力をローカルディレクトリパスまたはGitHub URLに確認します:

  • ローカルパスが指定された場合: そのパスをそのまま渡します。
  • GitHub URLが指定された場合: そのURLをそのまま渡します(サービス側でクローン処理を行います)。
  • どちらも指定されない場合: 現在の作業ディレクトリを使用します。アプリケーションディレクトリのように見えない場合は、ユーザーにパスを指定するよう求めます。

実行フロー

スクリプトコマンドを順番に実行し、各ステップの結果をユーザーに伝えます。

1. 認証

python3 scripts/launch_with_aws.py auth-start

必ず最初に実行します。すぐに以下のJSONを返します:

  • 既に認証済み:{"authenticated": true, "reusedCachedSession": true, "baseUrl": "..."}
  • サイレント更新成功:{"authenticated": true, "reusedCachedSession": false, "baseUrl": "..."}
  • 対話的なサインインが必要:{"authenticated": false, "signInUrl": "https://...", "pid": 12345, "port": 54321, "baseUrl": "..."}

authenticated が false の場合、直ちに signInUrl をユーザーに表示(ブラウザで開くため)し、同時に auth-wait を呼び出します:

python3 scripts/launch_with_aws.py auth-wait <pid>

<pid> は auth-start レスポンスの pid 値です。ユーザーがブラウザでサインインを完了するまで、またはタイムアウト(600秒)まで待機します。成功時は {"authenticated": true, "baseUrl": "..."} を返します。

セッションは有効期限に関わらず90日で期限切れになります。その後は再び対話的フローが必要になります。

現在のセッション確認またはサインアウト:

python3 scripts/launch_with_aws.py session-status
python3 scripts/launch_with_aws.py sign-out

session-status はセッションの有無とトークン・セッション全体の残り有効期限を返します。sign-out はリフレッシュトークンを失効させ、ローカルの ~/.launch-with-aws/session.json を削除します(ベストエフォート)。共有・未信頼のワークステーション使用時は、作業終了時に sign-out を実行してください。

2. Launch 作成

ローカルディレクトリの場合、確認メッセージを表示してユーザーの明確な承認を待ちます:

ソースコードは「Launch with AWS」サービスにアップロードされ、アプリケーションを分析して移行計画を生成します。その後の実行承認時、AWSホスト環境のエージェントがソースコードのコピーを計画に従って修正し、移行済みスナップショットを生成します。ソースコードは転送中・保存時に暗号化され、7日後に自動削除され、AIモデル学習には使用されません。Git履歴・Gitで除外されたファイル・一般的な機密ファイルパターンに該当するファイルは除外対象です。機密ファイルフィルタリングはベストエフォートのため、プロジェクトの機密情報を確認してください。続行しますか?

ユーザーが明確に承認するまで、ローカルディレクトリに対して create-launch を呼び出さないでください。曖昧または無応答の場合は「承認なし」と判断します。

python3 scripts/launch_with_aws.py create-launch <source-path-or-github-url> [name]

ローカルディレクトリからLaunchを作成(ファイルをzip化、アップロード、作成)、またはGitHub URLから作成(直接送信)します。launch.launchId を含む完全な launch オブジェクトをJSON形式で返します。

Launchは analyzing ステータスで開始され、自動的に分析と計画を進めます。

3. Launch ステータスをポーリング

python3 scripts/launch_with_aws.py get-launch-status <launch-id>

ステータスが planned(実行準備完了)、awaiting_input(コンテキスト質問への回答が必要 — ステップ4参照)、または failed になるまでポーリングします。主なステータス遷移:

  • analyzing → アプリ種別と依存関係の検出
  • awaiting_input → コンテキスト質問への回答が必要(refine-plan を参照)
  • planning → 移行計画生成中
  • planned → 実行準備完了
  • executing → デプロイ実行中
  • completed → 完了
  • failed → failureReason を確認

ステータスが awaiting_input の場合、contextInputs で答えが必要な質問を確認します。required: true の入力は進行前に必ず回答が必要です。その他はオプション情報です。

4. 計画を修正(awaiting_input の場合)

python3 scripts/launch_with_aws.py refine-plan <launch-id> key1=value1 key2=value2

コンテキスト質問への回答を入力し、計画を修正します。再計画をトリガーします。

5. Launch 詳細情報取得・確認

python3 scripts/launch_with_aws.py get-launch <launch-id> plan,cost_estimate

Launch の詳細情報を取得します。オプションの2番目の引数は、カンマ区切りのインクルードリスト:analysis、plan、execution、cost_estimate、download_url。

コスト見積もりと計画をユーザーに提示します。レスポンスの costEstimate フィールドには estimatedMonthlyCost、region、サービスごとのコスト内訳(services)が含まれます。

確認ゲート — 提示してユーザーの明確な承認を待ちます:

移行概要

  • アプリ種別:[分析結果から検出された種別]
  • 対象アーキテクチャ:[計画から生成された対象アーキテクチャ]
  • 推定月額費用:$X.XX/月
  • リージョン:us-east-1

進めますか? これはAWS管理環境で移行を実行(ユーザー費用なし)し、移行済みスナップショットをダウンロード用に生成します。

ユーザーが明確に承認するまで start-launch-execution を呼び出さないでください。

6. 実行開始

python3 scripts/launch_with_aws.py start-launch-execution <launch-id>

デプロイを開始します。その後、ステータスが completed または failed になるまで get-launch-status でポーリングします。ポーリング間隔は最低30秒あけてください。

7. ダウンロード

python3 scripts/launch_with_aws.py get-launch-download-url <launch-id>

必ず完全なダウンロードURLをユーザーに提示してください。直接ダウンロードまたは参照用に必要になる場合があります。

8. Launch 一覧・削除

python3 scripts/launch_with_aws.py list-launches
python3 scripts/launch_with_aws.py delete-launch <launch-id>

9. 移行後:移行済みコードをローカルに適用

ダウンロードURLを取得した後(必要に応じてプラットフォーム別にコマンドを調整):

ステップA:ダウンロードと展開

curl -L -o /tmp/migration-snapshot.zip "<download_url>"
mkdir -p /tmp/
原文(English)を表示

Launch with AWS

Drives an AWS migration end-to-end using CLI scripts. Takes a user's web application, analyzes it, generates a migration plan with cost estimate, and delivers deployable AWS Blocks infrastructure code.

The AWS MCP server is recommended but is not required. This skill works standalone via its CLI scripts in any agent environment.

Script Invocation

All commands are run via:

python3 scripts/launch_with_aws.py <command> [args...]

where scripts/ is relative to this skill directory. The agent MUST set the working directory to the skill root before invoking commands.

Required files: launch_with_aws.py, launch_config.py, auth.py, auth_callback_server.py, launch_api_client.py, archive.py, service model. When loaded via MCP, fetch all and write to a temp directory preserving structure before invoking.

Each command outputs JSON to stdout on success, or exits non-zero with a JSON error on stderr.

Dependencies: Python 3.10+ and boto3. The script checks both on startup and exits with a clear error if either is missing.

Supported Application Types

Full-stack apps built with vibe-coding platforms, and frontend web applications and websites (static sites, SPAs, and SSR frameworks with static export).

Origin Platform What it covers
Lovable Lovable-generated full-stack apps (React + Supabase)
Bolt.new Bolt.new-generated full-stack apps (React + Supabase)
Replit Replit-hosted full-stack apps (React + Express.js + PostgreSQL)
Framework Examples
React ecosystem React, CRA, Vite + React, Gatsby, Docusaurus
Vue ecosystem Vue, Nuxt (static export), VitePress
Angular Angular
Svelte ecosystem Svelte, SvelteKit (static export)
SSR with static export Next.js, Nuxt, Astro, SvelteKit
Other modern frameworks Astro, Solid, Preact, Lit, Eleventy
Vite (generic) Any Vite-based app

Other frameworks may also work. If the user's app doesn't match these, see Unsupported Application Handling below.

What Gets Migrated vs. What Stays

Lovable / Bolt.new apps (Supabase-backed):

Component What happens
Frontend & hosting Migrated to AWS (S3 + CloudFront + Lambda)
Edge functions / server functions Migrated to AWS Lambda
AI calls (e.g. Lovable AI Gateway) Migrated to Amazon Bedrock
Database (Supabase DB) Stays on Supabase — not migrated
Auth (Supabase Auth) Stays on Supabase — not migrated
Storage & Realtime Stays on Supabase — not migrated

The app continues to call Supabase for database, auth, storage, and realtime from the AWS-hosted application.

Replit apps (Express.js + PostgreSQL):

Component What happens
Frontend & hosting Migrated to AWS (S3 + CloudFront + Lambda)
Server logic (Express.js) Migrated to AWS Lambda (API Gateway)
Database (PostgreSQL) Schema and code migrated to AWS (Aurora Serverless / DynamoDB). Existing data is NOT migrated — customers must export and import their data separately.
Auth (Replit Auth) Code migrated to AWS (Cognito). Existing user accounts are NOT migrated — customers must re-create or invite users in Cognito.
Realtime (WebSockets) Migrated to AWS (AppSync Events)
File storage Migrated to AWS (S3). Existing files are NOT migrated.

Replit app infrastructure and code are migrated to AWS-native services, but existing data, user accounts, and files must be migrated separately by the customer.

Input Resolution

Resolve the user's input to a local directory path or GitHub URL:

  • If the user provides a local path: pass that path directly.
  • If the user provides a GitHub URL: pass it directly (the service clones it server-side).
  • If neither is provided: use the current working directory. If it doesn't look like an app directory, ask the user for the path.

Flow

Run the script commands in order, surfacing results to the user at each step:

1. Authentication

python3 scripts/launch_with_aws.py auth-start

Always run first. Returns immediately with JSON:

  • If already authenticated: {"authenticated": true, "reusedCachedSession": true, "baseUrl": "..."}
  • If silent refresh succeeded: {"authenticated": true, "reusedCachedSession": false, "baseUrl": "..."}
  • If interactive sign-in is needed: {"authenticated": false, "signInUrl": "https://...", "pid": 12345, "port": 54321, "baseUrl": "..."}

When authenticated is false, immediately display the signInUrl to the user (so they can open it in their browser) and call auth-wait in the same response:

python3 scripts/launch_with_aws.py auth-wait <pid>

where <pid> is the pid value from the auth-start response. This blocks until the user completes browser sign-in (or times out after 600s). Returns {"authenticated": true, "baseUrl": "..."} on success.

Sessions are capped at 90 days even if the identity provider does not set an expiration; after that the interactive flow is required again.

To check the current session without authenticating, or to sign out:

python3 scripts/launch_with_aws.py session-status
python3 scripts/launch_with_aws.py sign-out

session-status reports whether a session exists and how long until the token and overall session expire. sign-out best-effort revokes the refresh token and deletes the local ~/.launch-with-aws/session.json. On shared or untrusted workstations, run sign-out when finished.

2. Create Launch

For a local directory, present this confirmation and wait for explicit approval:

Your source code will be uploaded to the Launch with AWS service to analyze your application and generate a migration plan. If you later approve execution, an AWS-hosted agent will modify a copy of your source code according to the plan and produce a migrated snapshot for you to download. Your source code is encrypted at rest, automatically deleted after 7 days, and never used to train AI models. We exclude Git history, Git-ignored files, and files matching common sensitive-file patterns. Sensitive-file filtering is best effort; review your project for secrets. Continue?

Do NOT call create-launch for a local directory until the user explicitly confirms. A missing or ambiguous response means no.

python3 scripts/launch_with_aws.py create-launch <source-path-or-github-url> [name]

Creates a launch from a local directory (zips, uploads, then creates) or a GitHub URL (passes directly). Returns JSON with the full launch object including launch.launchId.

The launch starts in analyzing status and automatically progresses through analysis and planning.

3. Poll Launch Status

python3 scripts/launch_with_aws.py get-launch-status <launch-id>

Poll until status is planned (ready for execution), awaiting_input (needs context answers — see step 4), or failed. Key status progression:

  • analyzing → detecting app type and dependencies
  • awaiting_input → needs context answers (see refine-plan)
  • planning → generating migration plan
  • planned → ready for execution
  • executing → deployment in progress
  • completed → done
  • failed → check failureReason

If status is awaiting_input, check contextInputs for the questions that need answering. Inputs with required: true must be answered before the launch can proceed; others are optional enrichment.

4. Refine Plan (if awaiting_input)

python3 scripts/launch_with_aws.py refine-plan <launch-id> key1=value1 key2=value2

Provide context answers to refine the plan. Triggers re-planning.

5. Get Full Launch Details & Confirm

python3 scripts/launch_with_aws.py get-launch <launch-id> plan,cost_estimate

Get full launch details. Optional second argument is a comma-separated include list: analysis, plan, execution, cost_estimate, download_url.

Present the cost estimate and plan to the user. The costEstimate field in the response contains estimatedMonthlyCost, region, and a services breakdown with per-service costs.

Confirmation Gate — present and wait for explicit approval:

Migration Summary

  • App type: [detected type from analysis]
  • Architecture: [target architecture from plan]
  • Estimated monthly cost: $X.XX/month
  • Region: us-east-1

Ready to proceed? This will execute the migration in an AWS-managed environment (no cost to you) and produce the migrated snapshot for you to download.

Do NOT call start-launch-execution until the user explicitly confirms.

6. Start Execution

python3 scripts/launch_with_aws.py start-launch-execution <launch-id>

Starts deployment. Then poll with get-launch-status until status is completed or failed. Sleep at least 30 seconds between polls.

7. Download

python3 scripts/launch_with_aws.py get-launch-download-url <launch-id>

Always present the full download URL to the user — they may need it to download the migrated snapshot directly or for reference.

8. List or Delete Launches

python3 scripts/launch_with_aws.py list-launches
python3 scripts/launch_with_aws.py delete-launch <launch-id>

9. Post-Migration: Apply Migrated Code Locally

After obtaining the download URL (adapt commands for the user's platform if not POSIX):

Step A: Download and unpack

curl -L -o /tmp/migration-snapshot.zip "<download_url>"
mkdir -p /tmp/migration-output
unzip -o /tmp/migration-snapshot.zip -d /tmp/migration-output

Step B: Prepare the local workspace

Ensure the user's working directory is clean:

cd <user-app-directory>
git status

If there are uncommitted changes, ask the user to commit or stash first. Do NOT proceed with a dirty working tree.

Step C: Apply migration (3-way merge)

Create a migration branch and overlay the migrated files:

cd <user-app-directory>
git checkout -b aws-migration
rsync -a /tmp/migration-output/ .
git status
git diff --stat

Review the changes with the user. Key additions to highlight:

  • aws-blocks/ — AWS Blocks infrastructure definition
  • DEPLOY.md — deployment instructions
  • Any modified config files

If there are conflicts with the user's existing files, present them and ask how to resolve.

Step D: Follow DEPLOY.md

Read the DEPLOY.md file in the project root and follow its instructions to deploy the app to the user's AWS account. Typical steps:

  1. AWS authentication (aws login --profile aws-migrate --region us-east-1)
  2. CDK bootstrap (first-time only): npm install && npx cdk bootstrap
  3. Deploy: npx cdk deploy --all --progress events
  4. Verify the CloudFront URL that CDK prints on completion.

Important: Always read DEPLOY.md from the migrated output — it is generated specifically for this app and architecture. Do not assume deployment steps from memory.

Unsupported Application Handling

If a launch fails during analysis with a failureReason indicating an unsupported app type (or the user's stack doesn't match the supported list):

  1. Tell the user: "This app type isn't directly supported by Launch with AWS yet. Let me search for other skills that can help deploy this kind of application."

  2. Search for relevant skills based on the app type (e.g. aws-serverless, aws-containers, databases-on-aws, deploy-on-aws, aws-cdk, sagemaker-ai).

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。