Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amplify Gen 2で社内システムをReplaceする
Search
Atsuki Nakai
August 24, 2024
Technology
220
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amplify Gen 2で社内システムをReplaceする
KyotoLT 第31回
の発表資料です。
Atsuki Nakai
August 24, 2024
More Decks by Atsuki Nakai
See All by Atsuki Nakai
Cursor SDK × PptxGenJSで作るプレゼン資料生成エージェント
malvaceae
0
81
Other Decks in Technology
See All in Technology
NANDでも描画したい!
nichica906
3
810
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
5k
『自分で判断できるか』を基準に、プロダクトのハンズオン研修でAI利用の線を引いてみた / Where We Drew the Line on AI in Hands-on Training
honyanya
0
430
VPCでもFloatingIPを使いたいんだ
y_kotani
1
120
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
130
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
460
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
210
AIエージェントのためのデータ設計
daiz21
0
520
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
:syncing_time:
sksat
3
840
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
220
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
450
Odyssey Design
rkendrick25
PRO
2
780
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
490
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
360
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
480
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Code Review Best Practice
trishagee
74
20k
Transcript
© SEEDS Co., Ltd. All rights reserved. Amplify Gen 2で
社内システムをReplaceする 株式会社シーズ 中井 惇葵
© SEEDS Co., Ltd. All rights reserved. 仕事 Webアプリのサーバーサイド開発 (PHP,
TypeScript, Python) 活動 2023 Japan AWS Jr. Champions 好きなAWSサービス AWS CloudFormation AWS Amplify 株式会社シーズ システム開発事業部 中井 惇葵 Nakai Atsuki 自己紹介 2
© SEEDS Co., Ltd. All rights reserved. 3 こんな社内システムがありました
© SEEDS Co., Ltd. All rights reserved. ・AWSアカウントの情報を一元的に管理できるツール ・2021年11月リリース AWS
Dashboard 4 機能 ・AWSアカウント管理 ・ユーザー認証 ・IP制限
© SEEDS Co., Ltd. All rights reserved. 5
© SEEDS Co., Ltd. All rights reserved. ・インフラ・バックエンドの管理が煩雑 ・CFnテンプレートにPythonで記述されたAPIのコードを埋め込んでデプロイしている ・APIのコードが一つのファイル
(api.py) にすべて記載されている ・開発用環境の構築が面倒 ・CI/CDが存在しない 課題点 6
© SEEDS Co., Ltd. All rights reserved. 7 Amplify Gen
2
© SEEDS Co., Ltd. All rights reserved. ・2024年5月にGA! ・コードファーストでフルスタックアプリ開発が可能 ・CDKベースとなった
(Gen 1ではCLIベースだった) ・開発者ごとのサンドボックス環境 が容易に構築可能 ・ホットスワップでリソースの変更を即デプロイ Amplify Gen 2 8
© 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
© 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
© SEEDS Co., Ltd. All rights reserved. ・認証方法や外部IDプロバイダーの設定を記述すること により、Cognitoのリソースが作成される ・AppSyncやS3に対するアクセス制御に利用する
認証 (Cognito) 11 auth/resource.ts
© SEEDS Co., Ltd. All rights reserved. API (AppSync) ・モデルのスキーマを定義することにより、対応
するAppSyncとDynamoDBのリソースが作成さ れる ・アクセス制御を細かく指定可能で、認証済み ユーザーには閲覧のみ、データの所有者には すべての権限を与えるなどが可能 ・リゾルバーを追加することで、データソースに 対する独自の処理を実装できる 12 data/resource.ts
© SEEDS Co., Ltd. All rights reserved. ・アプリのホスティングとCI/CDに Amplify Hostingを利用。
・GitHubと連携し、git pushのタイミ ングで自動デプロイが可能。 Amplify Hosting 13
© SEEDS Co., Ltd. All rights reserved. 気になるところ ・より細かなアクセス制御が必要な場合はリゾルバーを定義する必要がありそう ・isPublic属性がTrueの場合のみ全ユーザーに公開するなど
・DynamoDBのテーブルがモデルごとに作成される ・シングルテーブルとマルチテーブル、どちらの設計にするかは場合による (参考) ・アクセスコスト削減の観点だと、シングルテーブル ・キャパシティ制御やモニタリングの観点で言えばマルチテーブル ・Amplify HostingにWAFを付けたい ・11月のリリースを目標に開発が進んでいるらしい (参考) 14
© SEEDS Co., Ltd. All rights reserved. まとめ 15
© SEEDS Co., Ltd. All rights reserved. ・Amplifyめっちゃ便利! 煩雑なインフラ・バックエンドから解放される ・CDKに触れたことがあれば、かなり取っ付きやすい印象
・GAされたばかりのサービスなので、今後さらに便利になりそう まとめ 16
© SEEDS Co., Ltd. All rights reserved. 17 ありがとうございました 株式会社シーズ
〒600-8815 京都市下京区中堂寺粟田町93番地 京都リサーチパーク6号館321
[email protected]
https://www.seeds-std.co.jp/ 担当: システム開発事業部 中井 惇葵
[email protected]