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
170
AWSのサーバーレスでとりあえず開発をはじめてみた時に 無知ゆえに陥りがちなこと
下記、勉強会での資料です。
https://youtu.be/EVdUQx4jCkE
iret.kumoben
March 19, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
37
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
59
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
83
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
60
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
65
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
53
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
85
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
130
第173回 雲勉 ノーコードで生成 AI アプリを構築!Google Cloud AI Applications(旧 Vertex AI Agent Builder)入門
iret
0
100
Other Decks in Technology
See All in Technology
ソフトウェアエンジニアとAIエンジニアの役割分担についてのある事例
kworkdev
PRO
1
360
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
純粋なイミュータブルモデルを設計してからイベントソーシングと組み合わせるDeciderの実践方法の紹介 /Introducing Decider Pattern with Event Sourcing
tomohisa
1
390
善意の活動は、なぜ続かなくなるのか ーふりかえりが"構造を変える判断"になった半年間ー
matsukurou
0
210
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
330
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
1.5k
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.4k
Qiita Bash アドカレ LT #1
okaru
0
150
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
19k
国井さんにPurview の話を聞く会
sophiakunii
1
300
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
260
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Building an army of robots
kneath
306
46k
sira's awesome portfolio website redesign presentation
elsirapls
0
100
Paper Plane (Part 1)
katiecoart
PRO
0
2.7k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Context Engineering - Making Every Token Count
addyosmani
9
580
Designing Experiences People Love
moore
143
24k
Darren the Foodie - Storyboard
khoart
PRO
0
2.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
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