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

Amplify Gen 2で社内システムをReplaceする

Amplify Gen 2で社内システムをReplaceする

KyotoLT 第31回の発表資料です。

Atsuki Nakai

August 24, 2024
Tweet

Other Decks in Technology

Transcript

  1. © SEEDS Co., Ltd. All rights reserved. Amplify Gen 2で


    社内システムをReplaceする
 株式会社シーズ 中井 惇葵

  2. © SEEDS Co., Ltd. All rights reserved. 仕事 Webアプリのサーバーサイド開発 (PHP,

    TypeScript, Python) 活動 2023 Japan AWS Jr. Champions 好きなAWSサービス AWS CloudFormation AWS Amplify 株式会社シーズ システム開発事業部 中井 惇葵 Nakai Atsuki 自己紹介 2
  3. © SEEDS Co., Ltd. All rights reserved. ・2024年5月にGA! ・コードファーストでフルスタックアプリ開発が可能  ・CDKベースとなった

    (Gen 1ではCLIベースだった) ・開発者ごとのサンドボックス環境 が容易に構築可能  ・ホットスワップでリソースの変更を即デプロイ Amplify Gen 2 8
  4. © SEEDS Co., Ltd. All rights reserved. ・TypeScriptで各リソースを定義する ・基本のディレクトリ構成は右枠の通り ・定義したいリソースごとにディレクトリを切り、

    resource.ts ファイルを追加する  例) Cognitoに関するリソースを追加する場 合は、auth/resource.ts を作成する ├── amplify/ │ ├── auth/ │ │ └── resource.ts // Cognitoに関するリソースを定義 │ ├── data/ │ │ └── resource.ts // AppSyncに関するリソースを定義 │ ├── storage/ │ │ └── resource.ts // S3に関するリソースを定義 │ ├── backend.ts // バックエンド全体を定義 │ ├── package.json │ └── tsconfig.json ├── node_modules/ ├── .gitignore ├── package-lock.json ├── package.json └── tsconfig.json コードファーストでフルスタックアプリ開発が可能 9
  5. © SEEDS Co., Ltd. All rights reserved. $ npx ampx

    sandbox Amplify Sandbox Identifier: hogehoge Stack: amplify-awsdashboard-hogehoge-sandbox-abcdefghij To specify a different sandbox identifier, use --identifier ✨ Synthesis time: 0.04s … 開発者ごとのサンドボックス環境が容易に構築可能 ・npx ampx sandbox コマンドの実行で、開発者ごとのサンドボックス環境が構築される ・リソースの変更を検知し、自動でデプロイされる ・ホットスワップ機能により、高速にデプロイ可能 10
  6. © SEEDS Co., Ltd. All rights reserved. API (AppSync) ・モデルのスキーマを定義することにより、対応

    するAppSyncとDynamoDBのリソースが作成さ れる ・アクセス制御を細かく指定可能で、認証済み ユーザーには閲覧のみ、データの所有者には すべての権限を与えるなどが可能 ・リゾルバーを追加することで、データソースに 対する独自の処理を実装できる 12 data/resource.ts
  7. © SEEDS Co., Ltd. All rights reserved. ・アプリのホスティングとCI/CDに Amplify Hostingを利用。

    ・GitHubと連携し、git pushのタイミ ングで自動デプロイが可能。 Amplify Hosting 13
  8. © SEEDS Co., Ltd. All rights reserved. 気になるところ ・より細かなアクセス制御が必要な場合はリゾルバーを定義する必要がありそう  ・isPublic属性がTrueの場合のみ全ユーザーに公開するなど

    ・DynamoDBのテーブルがモデルごとに作成される  ・シングルテーブルとマルチテーブル、どちらの設計にするかは場合による (参考)  ・アクセスコスト削減の観点だと、シングルテーブル  ・キャパシティ制御やモニタリングの観点で言えばマルチテーブル ・Amplify HostingにWAFを付けたい  ・11月のリリースを目標に開発が進んでいるらしい (参考) 14
  9. © SEEDS Co., Ltd. All rights reserved. 17 ありがとうございました 株式会社シーズ

    〒600-8815 京都市下京区中堂寺粟田町93番地 京都リサーチパーク6号館321 [email protected] https://www.seeds-std.co.jp/ 担当: システム開発事業部 中井 惇葵 [email protected]