クイックスタートガイド
このガイドでは、@aws/nx-plugin をインストールして使用し、AWS 上でプロジェクトを迅速に構築するための基本を説明します。
続行する前に、以下のグローバル依存関係が必要です:
- Git
- Node >= 22 (NVM のようなツールを使用してノードバージョンを管理することをお勧めします)
node --versionを実行して確認してください
- UV >= 0.5.29
uv python install 3.14を実行して Python 3.14 をインストールしますuv python list --only-installedで確認してください
- PNPM >= 11(お好みで Yarn >= 4、Bun >= 1、または NPM >= 11 も使用できます)
pnpm --version、yarn --version、bun --version、またはnpm --versionを実行して確認してください
- アプリケーションをデプロイするには(および一部のローカル開発ワークフローにも)、ターゲットの AWS アカウントに設定された AWS Credentials が必要です。
- 一部のジェネレーターには Docker または Finch >= 1.6.0 が必要です。Docker の場合、マルチプラットフォームビルドを設定する必要があります。Finch はマルチプラットフォームビルドを標準でサポートしています。
- CDK の代わりに Infrastructure as Code としてこれを使用する場合は、Terraform >= 1.12 が必要です
terraform --versionを実行して確認してください
- VSCode を使用している場合は、Nx Console VSCode Plugin のインストールをお勧めします。
ステップ 1: ワークスペースを作成する
Section titled “ステップ 1: ワークスペースを作成する”お好みのパッケージマネージャーで Nx ワークスペースを作成し、作成されたディレクトリを開きます:
ワークスペースを作成@aws/nx-workspace
pnpm create @aws/nx-workspace my-project yarn create @aws/nx-workspace my-project npm create @aws/nx-workspace -- my-project bun create @aws/nx-workspace my-projectコマンドを組み立てる3
必須
cd my-projectInfrastructure as Code プロバイダーとして CDK または Terraform のいずれかを選択するよう求められます。
ステップ 2: アプリケーションを構築する
Section titled “ステップ 2: アプリケーションを構築する”フルスタックアプリケーションを構築します:tRPC API、React ウェブサイト、Cognito 認証、および CDK または Terraform インフラストラクチャです。AI アシスタントにスキャフォールドを依頼するか、ジェネレーターを自分で実行してください。どちらのルートでも同じワークスペースに到達します。
AI を使用する
Section titled “AI を使用する”-
AI コーディングアシスタントでワークスペースを開きます。
新しいワークスペースには、プラグインの MCP サーバーが Kiro、Claude Code、Cursor、Gemini CLI、GitHub Copilot、OpenAI Codex 用にすでに設定されているため、アシスタントはセットアップなしでプラグインのジェネレーターを検索して実行できます。
-
アプリケーションを依頼します:
Prompt Create a tRPC API called demo-api, and a React website called demo-website. Add Cognito authentication to the website, connect the website to the API, and add an infrastructure project called infra. Then instantiate the generated infrastructure components so the website and API deploy, granting authenticated users access to the API.
アシスタントは MCP サーバーを通じてジェネレーターを発見し、依存関係が必要とする順序で実行します。変更内容を確認してから、ステップ 3 に進んでください。
CLI を使用する
Section titled “CLI を使用する”アプリケーションをスキャフォールドするジェネレーターを実行します。以下のボタンを使用してすべてをコピーするか、図の下に説明されているように各ジェネレーターを自分で実行してください。
構築するプロジェクトのタイプに応じて、ジェネレーターの任意の組み合わせを選択して、プロジェクトを迅速にブートストラップできます。オプションの完全なリストについては、左側のナビゲーションバーの Generators を確認するか、グラフビルダーを試して、ワークスペースを視覚的に構築してください。
tRPC API を追加する
Section titled “tRPC API を追加する”このジェネレーターを実行@aws/nx-plugin:ts#api
pnpm nx g @aws/nx-plugin:ts#api --no-interactive yarn nx g @aws/nx-plugin:ts#api --no-interactive npx nx g @aws/nx-plugin:ts#api --no-interactive bunx nx g @aws/nx-plugin:ts#api --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#api - 必須パラメータを入力
- クリック
Generate
このステップのオプション2
必須
これにより、packages/demo-api フォルダー内に API が作成されます。
React ウェブサイトを追加する
Section titled “React ウェブサイトを追加する”このジェネレーターを実行@aws/nx-plugin:ts#website
pnpm nx g @aws/nx-plugin:ts#website --no-interactive yarn nx g @aws/nx-plugin:ts#website --no-interactive npx nx g @aws/nx-plugin:ts#website --no-interactive bunx nx g @aws/nx-plugin:ts#website --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#website - 必須パラメータを入力
- クリック
Generate
このステップのオプション1
必須
これにより、packages/demo-website に新しい React ウェブサイトがスキャフォールドされます。
Cognito 認証を追加する
Section titled “Cognito 認証を追加する”このジェネレーターを実行@aws/nx-plugin:ts#website#auth
pnpm nx g @aws/nx-plugin:ts#website#auth --no-interactive yarn nx g @aws/nx-plugin:ts#website#auth --no-interactive npx nx g @aws/nx-plugin:ts#website#auth --no-interactive bunx nx g @aws/nx-plugin:ts#website#auth --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#website#auth - 必須パラメータを入力
- クリック
Generate
このステップのオプション1
必須
これにより、ウェブサイトに Cognito 認証を追加するために必要なインフラストラクチャと React コードが設定されます。
フロントエンドとバックエンドを接続する
Section titled “フロントエンドとバックエンドを接続する”このジェネレーターを実行@aws/nx-plugin:connection
pnpm nx g @aws/nx-plugin:connection --no-interactive yarn nx g @aws/nx-plugin:connection --no-interactive npx nx g @aws/nx-plugin:connection --no-interactive bunx nx g @aws/nx-plugin:connection --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - connection - 必須パラメータを入力
- クリック
Generate
このステップのオプション2
必須
必須
これにより、ウェブサイトが tRPC API を呼び出せるようにするために必要なプロバイダーが設定されます。
インフラストラクチャを追加する
Section titled “インフラストラクチャを追加する”選択した IAC プロバイダーに基づいてインフラストラクチャプロジェクトを追加します。
このジェネレーターを実行@aws/nx-plugin:ts#infra
pnpm nx g @aws/nx-plugin:ts#infra --no-interactive yarn nx g @aws/nx-plugin:ts#infra --no-interactive npx nx g @aws/nx-plugin:ts#infra --no-interactive bunx nx g @aws/nx-plugin:ts#infra --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - ts#infra - 必須パラメータを入力
- クリック
Generate
このステップのオプション1
必須
これにより、AWS にインフラストラクチャをデプロイするために使用できる CDK アプリが設定されます。
このジェネレーターを実行@aws/nx-plugin:terraform#project
pnpm nx g @aws/nx-plugin:terraform#project --no-interactive yarn nx g @aws/nx-plugin:terraform#project --no-interactive npx nx g @aws/nx-plugin:terraform#project --no-interactive bunx nx g @aws/nx-plugin:terraform#project --no-interactive- インストール Nx Console VSCode Plugin まだインストールしていない場合
- VSCodeでNxコンソールを開く
- クリック
Generate (UI)"Common Nx Commands"セクションで - 検索
@aws/nx-plugin - terraform#project - 必須パラメータを入力
- クリック
Generate
このステップのオプション1
必須
これにより、AWS にインフラストラクチャをデプロイするために使用できる Terraform プロジェクトが設定されます。
ステップ 3: ウェブサイトと API をローカルで実行する
Section titled “ステップ 3: ウェブサイトと API をローカルで実行する”以下のコマンドを使用して、ウェブサイトと接続された API のローカル開発サーバーを起動します:
pnpm devyarn devnpm run devbun devウェブサイトは http://localhost:4200 で利用できます。
ローカルウェブサイトと API サーバーの両方がホットリロードされるため、ウェブサイトと API の両方への変更がリアルタイムで反映されます。
ウェブサイトから API を呼び出す
ウェブサイトを API に接続すると、useDemoApi フックが追加されます。これは tRPC options proxy を返します:API 上のすべてのプロシージャは、TanStack Query に渡すための queryOptions と mutationOptions を提供します。
packages/demo-website/src/routes/index.tsx を更新して、API の echo プロシージャを呼び出し、リクエストの実行中にスピナーを表示します:
import { useQuery } from '@tanstack/react-query';import { createFileRoute } from '@tanstack/react-router';import { Spinner } from '../components/spinner';import { useDemoApi } from '../hooks/useDemoApi';
export const Route = createFileRoute('/')({ component: RouteComponent,});
function RouteComponent() { const trpc = useDemoApi(); const echo = useQuery( trpc.echo.queryOptions({ message: 'Hello from the API!' }), );
return ( <div className="text-center"> <header> <h1>Welcome</h1> <p>Welcome to your new React website!</p> </header> {echo.isLoading ? ( <Spinner /> ) : echo.error ? ( <p>Error: {echo.error.message}</p> ) : ( <p>{echo.data?.message}</p> )} </div> );}ファイルを保存すると、API がエコーバックしたメッセージでページがリロードされます。呼び出しはエンドツーエンドで型安全です — packages/demo-api/src/schema/echo.ts の message の名前を変更すると、変更を追跡するまでウェブサイトのコンパイルが停止します。
ミューテーション、サブスクリプション、エラー処理、楽観的更新については、React から tRPC への接続ガイドを参照してください。
ステップ 4: クラウドリソースを定義して AWS にデプロイする
Section titled “ステップ 4: クラウドリソースを定義して AWS にデプロイする”packages/infra/src/stacks/application-stack.ts を開き、以下のコードを追加します:
import { DemoApi, DemoWebsite, UserIdentity,} from '@my-project/common-constructs';import { Stack, StackProps } from 'aws-cdk-lib';import { Construct } from 'constructs';
export class ApplicationStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props);
const identity = new UserIdentity(this, 'identity'); const api = new DemoApi(this, 'api', { integrations: DemoApi.defaultIntegrations(this).build(), }); api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website'); }}これが、フルスタックアプリケーションをデプロイするために記述する必要のあるすべての CDK です。
packages/infra/src/main.tf を開き、以下のコードを追加します:
# Deploy user identitymodule "user_identity" { source = "../../common/terraform/src/core/user-identity"}
# Shared asset bucket — stages Lambda deployment zips for every lambda / API modulemodule "asset_bucket" { source = "../../common/terraform/src/core/asset-bucket"}
# Deploy APImodule "demo_api" { source = "../../common/terraform/src/app/apis/demo-api"
asset_bucket_name = module.asset_bucket.bucket_name}
# Grant authenticated users access to invoke the APIresource "aws_iam_policy" "api_invoke_policy" { name = "DemoApiInvokePolicy" description = "Policy to allow authenticated users to invoke the API"
policy = jsonencode({ Version = "2012-10-17" Statement = [ { Effect = "Allow" Action = "execute-api:Invoke" Resource = "${module.demo_api.api_execution_arn}/*/*" } ] })}
resource "aws_iam_role_policy_attachment" "authenticated_api_access" { role = module.user_identity.authenticated_role_name policy_arn = aws_iam_policy.api_invoke_policy.arn}
# Deploy websiteprovider "aws" { alias = "us_east_1" region = "us-east-1"}
module "demo_website" { source = "../../common/terraform/src/app/static-websites/demo-website"
providers = { aws.us_east_1 = aws.us_east_1 }
depends_on = [module.user_identity, module.demo_api]}
# Print the website URL and user pool id when the deployment finishesoutput "website_url" { value = module.demo_website.website_url}
output "user_pool_id" { value = module.user_identity.user_pool_id}これが、フルスタックアプリケーションをデプロイするために記述する必要のあるすべての Terraform です。
インフラストラクチャをビルドしてデプロイする
Section titled “インフラストラクチャをビルドしてデプロイする”次に、以下のコマンドを実行してプロジェクトをビルドします:
pnpm buildyarn buildnpm run buildbun buildインフラストラクチャをブートストラップします:
pnpm nx bootstrap infrayarn nx bootstrap infranpx nx bootstrap infrabunx nx bootstrap infrapnpm nx bootstrap infrayarn nx bootstrap infranpx nx bootstrap infrabunx nx bootstrap infraプロジェクトをデプロイします:
pnpm nx deploy-sandbox infrayarn nx deploy-sandbox infranpx nx deploy-sandbox infrabunx nx deploy-sandbox infrapnpm nx apply infrayarn nx apply infranpx nx apply infrabunx nx apply infraステップ 5: デプロイされたクラウドリソースでウェブサイトをテストする
Section titled “ステップ 5: デプロイされたクラウドリソースでウェブサイトをテストする”-
runtime-config.jsonファイルを取得します:Terminal window pnpm nx load-runtime-config demo-websiteTerminal window yarn nx load-runtime-config demo-websiteTerminal window npx nx load-runtime-config demo-websiteTerminal window bunx nx load-runtime-config demo-website -
ローカルウェブサイトサーバーを起動します
Terminal window pnpm nx serve demo-websiteTerminal window yarn nx serve demo-websiteTerminal window npx nx serve demo-websiteTerminal window bunx nx serve demo-website
ウェブサイトは http://localhost:4200 で利用でき、API と認証用にデプロイしたリソースを指します。
サインインするには、Cognito ユーザープールでユーザーを作成する必要があります。
AWS CLI でユーザーを作成する
以下のコマンドは、ユーザープールにユーザーを作成します。ユーザープール ID は、デプロイメント出力または Amazon Cognito コンソールで確認できます。ユーザー名、メール、名、姓、および一時パスワードの値を置き換えてください。
aws cognito-idp admin-create-user \ --user-pool-id <user pool id> \ --username <username> \ --user-attributes Name=email,Value=<email> Name=email_verified,Value=true Name=given_name,Value=<first name> Name=family_name,Value=<last name> \ --temporary-password '<temporary password>' \ --message-action SUPPRESSこのユーザーとして初めてサインインすると、新しいパスワードを選択するよう求められ、次に SMS で送信されるコードまたは認証アプリからの時間ベースのワンタイムパスワードを使用して多要素認証を設定するよう求められます。
ウェブサイトは CloudFront からも提供されます。デプロイ後にターミナルに表示されるディストリビューションドメイン名を開いて、完全に AWS 上で実行されているバージョンを使用してください。
おめでとうございます!🎉 @aws/nx-plugin を使用してフルスタックアプリケーションを正常に構築およびデプロイしました!
ステップ 6: クリーンアップ
Section titled “ステップ 6: クリーンアップ”完了したら、継続的なコストを避けるためにデプロイしたリソースを削除します:
pnpm nx destroy-sandbox infrayarn nx destroy-sandbox infranpx nx destroy-sandbox infrabunx nx destroy-sandbox infrapnpm nx destroy infrayarn nx destroy infranpx nx destroy infrabunx nx destroy infraブートストラップリソースを削除するには、以下に従ってください:
us-east-1 を含む、ブートストラップしたすべてのリージョンでブートストラップスタックを削除します。これにより、ブートストラップロールとコンテナイメージリポジトリが削除されます:
aws cloudformation delete-stack --stack-name CDKToolkit --region <region>pnpm nx bootstrap-destroy infrayarn nx bootstrap-destroy infranpx nx bootstrap-destroy infrabunx nx bootstrap-destroy infra次のステップ
Section titled “次のステップ”- Dungeon Adventure チュートリアル — このガイドよりも詳細なウォークスルーとして、フルスタック AI ダンジョンアドベンチャーゲームを構築します。
- ワークスペース — ワークスペースのレイアウトと、ジェネレーターが共有する設定について説明します。
- 既存のプロジェクトに追加する — 既存のコードベースでプラグインを採用します。