Skip to content

クイックスタートガイド

このガイドでは、@aws/nx-plugin をインストールしてAWS上でプロジェクトを迅速に構築する基本手順を説明します。

始める前に以下のグローバル依存関係が必要です:

  • Git
  • Node >= 22(バージョン管理にはNVMの使用を推奨)
    • 確認コマンド: node --version
  • PNPM >= 10(代替としてYarn >= 4Bun >= 1NPM >= 10も使用可能)
    • 確認コマンド: pnpm --versionyarn --versionbun --version または npm --version
  • UV >= 0.5.29
    1. Python 3.12のインストール: uv python install 3.12.0
    2. 確認コマンド: uv python list --only-installed
  • ターゲットAWSアカウントに設定されたAWS認証情報(アプリケーションのデプロイ先)

ステップ1: 新しいNxワークスペースの初期化

Section titled “ステップ1: 新しいNxワークスペースの初期化”

次のコマンドを実行して、任意のパッケージマネージャーでNxワークスペースを作成します:

Terminal window
npx create-nx-workspace@~21.4.1 my-project --pm=pnpm --preset=@aws/nx-plugin --ci=skip

完了したら、プロジェクトディレクトリに移動します:

Terminal window
cd my-project

ステップ2: ジェネレータでプロジェクトをスキャフォールド

Section titled “ステップ2: ジェネレータでプロジェクトをスキャフォールド”

このクイックスタートでは、tRPC API・Reactウェブサイト・Cognito認証・CDKインフラを追加します。プロジェクトタイプに応じて、任意のジェネレータの組み合わせで迅速にプロジェクトを立ち上げられます。左のナビゲーションバーにある__ガイド__から全オプションリストを確認できます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#trpc-api
  5. 必須パラメータを入力
    • name: demo-api
    • auth: IAM
  6. クリック Generate

これによりpackages/demo-apiフォルダ内にAPIが作成されます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#react-website
  5. 必須パラメータを入力
    • name: demo-website
  6. クリック Generate

packages/demo-websiteに新しいReactウェブサイトがスキャフォールドされます。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#react-website#auth
  5. 必須パラメータを入力
    • project: @my-project/demo-website
    • cognitoDomain: my-demo
  6. クリック Generate

ウェブサイトにCognito認証を追加するためのインフラとReactコードを設定します。

フロントエンドとバックエンドの接続

Section titled “フロントエンドとバックエンドの接続”
  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - api-connection
  5. 必須パラメータを入力
    • sourceProject: @my-project/demo-website
    • targetProject: @my-project/demo-api
  6. クリック Generate

ウェブサイトがtRPC APIを呼び出せるように必要なプロバイダを設定します。

  1. インストール Nx Console VSCode Plugin まだインストールしていない場合
  2. VSCodeでNxコンソールを開く
  3. クリック Generate (UI) "Common Nx Commands"セクションで
  4. 検索 @aws/nx-plugin - ts#infra
  5. 必須パラメータを入力
    • name: infra
  6. クリック Generate

AWSにインフラをデプロイするためのCDKアプリを設定します。

ステップ3: ローカルでのウェブサイトとAPIの実行

Section titled “ステップ3: ローカルでのウェブサイトとAPIの実行”

次のコマンドで、ウェブサイトと接続されたAPIのローカル開発サーバーを起動します:

Terminal window
pnpm nx run demo-website:serve-local

ウェブサイトはhttp://localhost:4200で利用可能になります。

ウェブサイトとAPIへの変更は、両方のサーバーがホットリロードされるためリアルタイムで反映されます。

ステップ4: クラウドリソースの定義とAWSへのデプロイ

Section titled “ステップ4: クラウドリソースの定義とAWSへのデプロイ”

packages/infra/src/stacks/application-stack.tsを開き、次のコードを追加します:

import * as cdk from 'aws-cdk-lib';
import { DemoApi, DemoWebsite, UserIdentity } from ':my-project/common-constructs';
import { Construct } from 'constructs';
export class ApplicationStack extends cdk.Stack {
constructor(scope: Construct, id: string, props?: cdk.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コードの全てです。

次のコマンドでプロジェクトをビルドします:

Terminal window
pnpm nx run-many --target build --all

次のコマンドでプロジェクトをデプロイします:

Terminal window
pnpm nx run infra:deploy my-project-sandbox/*

ステップ5: デプロイ済みクラウドリソースでのウェブサイトテスト

Section titled “ステップ5: デプロイ済みクラウドリソースでのウェブサイトテスト”
  1. runtime-config.jsonファイルを取得:

    Terminal window
    pnpm nx run demo-website:load:runtime-config
  2. ローカルウェブサイトサーバーを起動

    Terminal window
    pnpm nx run demo-website:serve

ウェブサイトはhttp://localhost:4200で利用可能になり、デプロイしたAPIと認証リソースを指すようになります。


おめでとうございます!🎉 @aws/nx-pluginを使ったフルスタックアプリケーションの構築とデプロイに成功しました!