Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWSのサーバーレスでとりあえず開発をはじめてみた時に無知ゆえに陥りがちなこと
Search
iret.kumoben
March 19, 2024
Technology
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSのサーバーレスでとりあえず開発をはじめてみた時に 無知ゆえに陥りがちなこと
下記、勉強会での資料です。
https://youtu.be/EVdUQx4jCkE
iret.kumoben
March 19, 2024
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
140
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
120
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
140
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
180
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
150
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
150
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
130
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
230
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
210
Other Decks in Technology
See All in Technology
AgentCoreで実践するハーネスエンジニアリング
yakumo
1
290
継続的なAIコスト最適化
bgpat
1
200
Incremental HTTP
kazuho
5
2.1k
Google Cloud Next Tokyo 26登壇時のスクリプト
recruitengineers
PRO
0
200
しろおびから始める!ログ活用の第一歩
shumei_ito
0
440
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
200
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
410
転んだ話が背中を預ける理由になる / A_story_about_falling_down_gives_you_a_reason_to_watch_each_other_s_backs.pdf
pauli
3
330
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
220
ai_cording_with_k8s_knowledge.pdf
mochizuki875
1
310
AI時代に必要な脅威モデリング― 変化の速度に負けない理解とリスク判断
masakane55
5
1.1k
Featured
See All Featured
BBQ
matthewcrist
90
10k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
550
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Designing Powerful Visuals for Engaging Learning
tmiket
1
600
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
390
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
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