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
APIフレームワークを Lambdaで動かす
Search
Issei.Komori
July 02, 2024
Technology
1
130
APIフレームワークを Lambdaで動かす
札幌ITでぃぐでぃぐ会 vol.2 ~API勉強会~ 登壇資料
https://digdig.connpass.com/event/319132/
Issei.Komori
July 02, 2024
Tweet
Share
More Decks by Issei.Komori
See All by Issei.Komori
mnt_data_とは?ChatGPTコード実行環境を深堀りしてみた
icck
0
420
MCPコードリーディングすると得られるもの
icck
1
120
NL2SQLの世界
icck
0
580
Audio and Video Processing with Generative AI
icck
0
63
Postmanと仲良くなる。API簡易実行にしか使ってなかった初心者の第二歩目
icck
1
190
Other Decks in Technology
See All in Technology
AI エージェントとはそもそも何か? - 技術背景から Amazon Bedrock AgentCore での実装まで- / AI Agent Unicorn Day 2025
hariby
4
1k
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
9.9k
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
0
160
PRDの正しい使い方 ~AI時代にも効く思考・対話・成長ツールとして~
techtekt
PRO
3
2.5k
MCPで変わる Amebaデザインシステム「Spindle」の開発
spindle
PRO
3
2.8k
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
260
バッチ処理で悩むバックエンドエンジニアに捧げるAWS Glue入門
diggymo
3
110
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
2
190
20250903_1つのAWSアカウントに複数システムがある環境におけるアクセス制御をABACで実現.pdf
yhana
2
330
Grafana MCPサーバーによるAIエージェント経由でのGrafanaダッシュボード動的生成
hamadakoji
1
1.3k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
150
今!ソフトウェアエンジニアがハードウェアに手を出すには
mackee
9
4.1k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Faster Mobile Websites
deanohume
309
31k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
4 Signs Your Business is Dying
shpigford
184
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1.1k
Code Review Best Practice
trishagee
70
19k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Transcript
APIフレームワークを Lambdaで動かす 生活協同組合コープさっぽろ 2024/08/31 小森一成(@icckx) 札幌ITでぃぐでぃぐ会 vol.2 ~API勉強会~
小森 一成(@icckx)
今日お話すること
• APIフレームワークは良い • APIフレームワークをLambdaで動かしたい 今日お話すること
皆さんは、APIを実装するとき、 APIフレームワークつかってますか?✋
例えば、FastAPI
• Node.jsやGo並の最も高速なPythonフレームワークの1つ • 大体のライブラリはPyPIに存在しており、ビジネスロジックに集中しやすい • コードファースト。OpenAPIが自動生成される
“FastAPI は巨人の肩の上に立っています” 引用
https://www.starlette.io/ ASGI Framework 非同期、Websoketの実装が 非常にかんたん 巨人 - 1(すたーれっと)
https://docs.pydantic.dev データ検証ライブラリ Pythonが型安全に 型アノテーションを利用した 型のバリデーション 巨人 - 2(ぱいだんてぃっく)
APIフレームワークを語弊がある程度に 端的にまとめると 難しかったり、めんどくさくて ビジネスをするには必要だが、 1円も売上に関係ない実装を 肩代わりしてくれるやつ (素晴らしい)
APIフレームワークを使うと ビジネスロジックに集中できる時間が増える
じゃあ、 APIフレームワークを使いたい場合、 どんなアーキテクチャになるか
Virtual private cloud (VPC) Amazon API Gateway Application Load Balancer
AWS Fargate まずコンテナが思い浮かぶ
15 Client ALB Cluster Service ECR Image Security Group Container
Port Mappings Task Definition HTTPSプロトコル通信 を選択 443ポート HTTPSを許可 80ポート、HTTP ホスト80→コンテナ8000 80ポート、HTTP ALBのSG Security Group Target Group 実際には、SGとかポートマッピングとかいろいろ考える必要がある
コンテナをホスティングしたくない VPCつかいたくない そしてこう考える....
Amazon API Gateway LambdaでAPIフレームワークが使えればいいのに.. AWS Lambda
現実
起動とペイロード Lambdaは「lambda_handler」から始まります
APIフレームワークは「独特」の記法から始まります 起動とペイロード
入出力インターフェースが違うので LambdaでAPIフレームワークは動かない
Lambda Web Adapter
https://github.com/awslabs/aws-lambda-web-adapter
https://github.com/awslabs/aws-lambda-web-adapter
https://github.com/awslabs/aws-lambda-web-adapter
なるほど...?
実装をみてみる
https://gallery.ecr.aws/awsguru/aws-lambda-adapter 最新バージョンをギャラリーからCopyして
COPYコマンド1つ追記(Dockerfileの場合)
https://github.com/awslabs/aws-lambda-web-adapter
👍とっても簡単
<幅広く対応> あなたの好きな APIフレームワーク きっと対応済
DEMO
まとめ
• APIフレームワークはサーバレスで動きます ◦ Lambda Web AdapterならDockerfileに1行追記するだけ • アーキテクチャパターンとして知っているかが重要 ◦ Lambda✕APIフレームワークしたいときは、まずコレ
◦ API待機のために常時稼働のFargateがあったら、リファクタが可能な構成 ▪ VPCやめられる可能性 ▪ ALBやめられて、コスト削減 ▪ Fargateやめられて、未稼働時間分のコスト削減 ▪ Dockerfile1行追記するだけ(大事なことなので繰り返し)なので難易度低め まとめ
APIフレームワークを Lambdaで動かす 生活協同組合コープさっぽろ 2024/08/31 小森一成(@icckx) 札幌ITでぃぐでぃぐ会 vol.2 ~API勉強会~