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
AWSのサーバーレスでとりあえず開発をはじめてみた時に無知ゆえに陥りがちなこと
Search
iret.kumoben
March 19, 2024
Technology
1
76
AWSのサーバーレスでとりあえず開発をはじめてみた時に 無知ゆえに陥りがちなこと
下記、勉強会での資料です。
https://youtu.be/EVdUQx4jCkE
iret.kumoben
March 19, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第140回 雲勉 今度こそ AWS CDK で構築してみたくなるようなCDK活用集
iret
0
33
第139回 雲勉 Amazon Q Developerで安全快適な IaC with Terraform
iret
0
32
第138回 雲勉 Google Cloudではじめるプラットフォームエンジニアリング
iret
0
30
第137回 雲勉 Google Cloud Vertex AIとLangGraphを味方につけてRAGを改善したひ
iret
0
78
第136回 雲勉 AIに構成図を読み込ませてサーバー作成(Amazon Bedrock)
iret
0
86
第135回 雲勉 AWS Verified Access 入門 ~ VPNを利用せずに拠点/端末からAWSへアクセス ~
iret
1
120
第134回 雲勉 未経験クラウドエンジニア1年生(社会人1年生)の奮闘記
iret
0
60
第133回 雲勉 【オンライン】今度こそ既存のAWSリソースをいい感じにコードに落とし込みたい!
iret
0
56
第132回 雲勉【オンライン】春の生成AI祭り
iret
1
73
Other Decks in Technology
See All in Technology
Classmethod Odyssey 登壇資料
yamahiro
0
390
[NIKKEI Tech Talk]Bias for Action!! 実践から学ぶための仕組とコミュニティ / Community for Practice and Learning
kanamasa
0
290
データ分析を支える技術 生成AI再入門
ishikawa_satoru
0
380
DDDにおける認可の扱いとKotlinにおける実装パターン / authorization-for-ddd-and-kotlin-implement-pattern
urmot
4
390
シフトレフトで挑む セキュリティの生産性向上
sekido
PRO
0
270
データベース研修 分析向けSQL入門【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
120
Luupの開発組織におけるインシデントマネジメントの変遷 ver.RoadtoSRENEXT2024
grimoh
1
270
エンジニア向け会社紹介資料
caddi_eng
14
230k
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
推薦システムを本番導入する上で一番優先すべきだったこと~NewsPicks記事推薦機能の改善事例を元に~
morinota
1
150
テスト・設計研修【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
170
Featured
See All Featured
Speed Design
sergeychernyshev
9
270
Music & Morning Musume
bryan
43
5.9k
For a Future-Friendly Web
brad_frost
173
9.2k
Docker and Python
trallard
37
2.9k
Stop Working from a Prison Cell
hatefulcrawdad
266
20k
Navigating Team Friction
lara
181
13k
Done Done
chrislema
179
15k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
Optimizing for Happiness
mojombo
373
69k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
44
4.7k
The Language of Interfaces
destraynor
151
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
121
18k
Transcript
第1回 雲勉LT⼤会 AWSのサーバーレスで とりあえず開発をはじめてみた時に 無知ゆえに陥りがちなこと
⾃⼰紹介 2 ⻄⽥ 駿史 danishi • 第四開発事業部 第三開発S セクションリーダー •
SES ⇒ SIer ⇒ エンジニア、PM、マネジャー • 2019年4⽉アイレット⼊社 • 登壇は久しぶりなので頑張ります🔥 • 最近、AWS、GC両⽅全冠しました👑👑
アジェンダ 3 今⽇話すこと ※バックエンドをAPI Gateway + Lambda + DynamoDBで SPAの仕組みを作った時の経験を元に話します
AWSのサーバーレスで開発をした時の ハマりどころいくつか どうやってサーバーレスの制約を回避するか
AWSのサーバーレスで とりあえず開発をはじめてみた時に 無知ゆえに陥りがちなこと 4
サーバーレスじゃない時(LAMPとか) 5 チャレンジング(無 茶)な要件 トリッキーな 実装 開発中の 仕様変更、追加要望 だいたいなんとかなる(なお現場は) 重たいバッチを
ぶん回す
チャレンジング (無茶)な要件 重たいバッチを ぶん回す トリッキーな 実装 開発中の 仕様変更、追加要望 サーバーレスの時 6
サーバーレスアーキテクチャは メリットも多いが制約も多い (⼯夫や制約を受け⼊れないと) なんとかならない
Lambdaを使う時の制約 7 n Lambdaの実⾏環境は起動ごとに⽴ち上がって(再利⽤もされるが)終わると破棄される n ⼀時ファイルを作って他のプログラムと共有するような実装は データストアサービスと組みわせなければできない (Lambdaだけでは)状態を持てないため ステートレスな仕組みにする必要がある 最⻑15分の実⾏時間の制限がある
n 15分で終わり切る処理しか作れない⇒バッチ処理に不向き n Step FunctionsやSQSを利⽤して処理を分割して実⾏する n GlueやECSなど処理時間の制約が厳しくないサービスを利⽤する ※他にも同時実⾏数とかコールドスタートとか
API Gatewayを使う時の制約 8 n リクエストを受けてから29秒以内にレスポンスを返さないと504エラー n Step FunctionsやSQSと組み合わせて⾮同期に。(CSV Imp/Expとか要注意) 最⻑29秒で統合タイムアウト
リクエスト、レスポンスのサイズ制限 n Lambdaの送受信ペイロード上限が6MB n ⼤きなファイルを直接POSTできない n S3を利⽤する ・AWS SDK for JavaScriptからS3にアップロード、APIにはパスだけ渡す ・レスポンスはS3の署名付きURLを返す
DynamoDBを使う時の制約 9 簡単にLambdaから呼び出せるからよくDBに選定されがち。でもちょっと待って NoSQLは曲者。 IUUQTEPDTBXTBNB[PODPNKB@KQBNB[POEZOBNPECMBUFTUEFWFMPQFSHVJEFCQHFOFSBMOPTRMEFTJHOIUNMCQHFOFSBMOPTRMEFTJHOWTSFMBUJPOBM
DynamoDBを使う時の制約 10 それでもパフォーマンスが良いので⼒技でなんとかなることもあるけど DynamoDBが適さないところでは素直に他のDBを使おう。最近出たZero-ETLが光明になるか。 n PK、SKおよびLSI、GSIを設定していない、できない箇所では検索(クエリ)及び ソートがDynamoDBの機能では(効率的に)できない。 n 論理削除の実装が難しい n
JOINがないのでN+1問題発⽣しがち、回避のために⾮正規化するのも⾟い n トランザクションはあるが100アイテムまで n 連番キーはホットスポットになるためアンチパターン ・検索とソートの属性を合わせる。複合検索、複合ソートは不可。 ・フィルターを使ってもコスト、速度は上がらない。 ・ページングは次の検索キーを返すためフィルターやプログラムで結果を捏ねると使えない
まとめ 11 サーバーレスアーキテクチャは メリットも多いが制約も多い サービスの特性、制約をよく理解して、 他のサービスと組み合わせる できるだけ上流⼯程で防ぐ、 下流でも柔軟さを確保したプロジェクト推進を
動画URL 12 n 動画タイトル 第1回 雲勉LT⼤会 AWSをテーマに社内でLT⼤会をやってみた n 動画URL https://youtu.be/EVdUQx4jCkE