Upgrade to Pro — share decks privately, control downloads, hide ads and more …

爆速でフルスタックなアプリケーションが作れる!? Nx Plugin for AWSに入門しよう!

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for 吉井弘樹 吉井弘樹
October 01, 2026
71

爆速でフルスタックなアプリケーションが作れる!? Nx Plugin for AWSに入門しよう!

Avatar for 吉井弘樹

吉井弘樹

October 01, 2026

Transcript

  1. NxとNx Plugin for AWSの関係性 Nx nx generate Nx Plugins nx

    generate Nx Plugin for AWS Developer My WorkSpace React App(ひな形) React Generator Python API Generator DynamoDB Generator Auth Generator … Other Plugins.. 10
  2. ひな形の先は⾃分で作る NX Plugin for AWSは機能実装を進めるための、スタートライン を作ってくれる。 下記のような機能の設計‧実装‧テスト‧拡張は開発者の責務 • • •

    • Reactで〇〇機能の画⾯を作る FastAPIで〇〇のAPIを作る DynamoDBのデータモデルを作成する TerraformでVPC等のリソースを作る(スタートラインからの拡張) 16
  3. Nx Plugin for AWSなら... Nx Plugin for AWSは初速と拡張性を両⽴できる。 • 初速

    ◦ Generatorを組み合わせることで、アプリケーションを素早く構築で きる ◦ PaaSやBaaSを使わずとも、初速が得られる • 拡張性 ◦ 技術ロックインが⼩さく、要件に合わせて構成を変更しやすい ▪ Nx Plugin for AWSが⽣成するのは⼀般的なフレームワークの コードでしかない 19
  4. ReactとFastAPIのひな形を⽣成 ワークスペースを作成 $ pnpm create @aws/nx-workspace demo-app --iac=terraform --containers=docker $

    cd demo-app React Webサイトを⽣成 $ pnpm nx g @aws/nx-plugin:ts#website demo-website --no-interactive FastAPIを⽣成 $ pnpm nx g @aws/nx-plugin:py#api \ --name=demo-api --framework=fastapi --auth=cognito --no-interactive 24
  5. 認証‧DBを追加 Reactに認証を追加 $ pnpm nx g @aws/nx-plugin:ts#website#auth --project=demo-website --no-interactive DynamoDBを追加

    $ pnpm nx g @aws/nx-plugin:py#dynamodb --name=demo-db --no-interactive 接続を追加 $ pnpm nx g @aws/nx-plugin:connection --sourceProject=@demo-app/demo-website --targetProject=demo_app.demo_api --no-interactive $ pnpm nx g @aws/nx-plugin:connection --sourceProject=demo_app.demo_api --targetProject=demo_app.demo_db --no-interactive 25
  6. AWSにデプロイする Generatorで⽣成されたリソースのTerraform Moduleを/packages/infra/src/main.tfで読み込み、デプロイコマンドを叩く。 # Cognito 認証 module "user_identity" { source

    = "../../common/terraform/src/core/user-identity" } デプロイコマンド $ pnpm build $ pnpm nx bootstrap infra $ pnpm nx plan infra $ pnpm nx apply infra # Lambda のデプロイ成果物を配置するバケット module "asset_bucket" { source = "../../common/terraform/src/core/asset-bucket" } # Cognito 認証付き FastAPI module "demo_api" { source = "../../common/terraform/src/app/apis/demo-api" asset_bucket_name = module .asset_bucket .bucket_name user_pool_id = module .user_identity .user_pool_id user_pool_client_ids = [module .user_identity .user_pool_client_id ] } 27
  7. 画⾯とAPIのサンプルを⾒て思ったこと • AIに作らせれば、すぐできそう? • これだけなら下記のようなコマンドで始めるのと変わらないので は? $ pip install fastapi

    $ pnpm create vite sample-app --template react-ts 画⾯とAPIのサンプル以外にも、ひな形には他にも⾊々いいポイント があります!!!
  8. いい感じなポイント(1/3) • ログ‧トレース‧メトリクスの設定が最初からある ◦ AWS Lambda Powertoolsを使った、ログ‧トレース‧メトリクスの設定 が導⼊済み。 from .init

    import app, tracer # init.py で用意された Tracerを読み込む @app.get ("/echo") @tracer.capture_method # このAPIの処理をトレース対象にする def echo(message: Annotated[ str, Query( max_length =1024)]) -> EchoOutput: return EchoOutput( message=f"{message}")
  9. まとめ Nx Plugin for AWSは、モノレポ管理ツール「Nx」を拡張し、 AWS向けのアプリやインフラのひな形を⽣成できるPlugin • • • Pluginに内包されている、Generatorを組み合わせることで、React‧FastAPI‧認証

    ‧DB‧Terraformのフルスタックアプリケーションのひな形を数個のコマンドで⽣成でき ます ⽣成される、ひな形にはログ‧トレース‧メトリクスやビルド‧テスト等の仕組みが⽤意 されており、開発者は機能実装に集中できます ⼀般的な技術コンポーネントで構成されるため、技術ロックインを少なくしながら、⾃分 たちでアプリケーションを育てて⾏くことができます