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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yuu26
March 19, 2024
Technology
3
1.5k
AWS アーキテクチャクイズ
社内 LT で発表した「AWS アーキテクチャクイズ」の資料です。
yuu26
March 19, 2024
Tweet
Share
More Decks by yuu26
See All by yuu26
プロダクト成長を支える開発基盤とスケールに伴う課題
yuu26
4
1.5k
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
5.1k
Datadog 関数クイズ (初級編)
yuu26
0
140
バクラクにおける可観測性向上の取り組み
yuu26
4
2.3k
EMになって半年でやったこと
yuu26
1
3.1k
ローカル開発環境をAWSへ移行して爆速にした
yuu26
15
11k
AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用
yuu26
2
4.9k
Other Decks in Technology
See All in Technology
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
150
Escape from Excel方眼紙 ~マークダウンで繋ぐ、人とAIの架け橋~ /nikkei-tech-talk44
nikkei_engineer_recruiting
0
180
Tebiki Engineering Team Deck
tebiki
0
27k
スピンアウト講座05_実践活用事例
overflowinc
0
1k
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
170
Phase11_戦略的AI経営
overflowinc
0
1.3k
AI時代のオンプレ-クラウドキャリアチェンジ考
yuu0w0yuu
0
210
A Casual Introduction to RISC-V
omasanori
0
550
ABEMAのバグバウンティの取り組み
kurochan
1
600
生成AIで速度と品質を両立する、QAエンジニア・開発者連携のAI協調型テストプロセス
shota_kusaba
0
470
既存アプリの延命も,最新技術での新規開発も:WebSphereの最新情報
ktgrryt
0
150
俺の/私の最強アーキテクチャ決定戦開催 ― チームで新しいアーキテクチャに適合していくために / 20260322 Naoki Takahashi
shift_evolve
PRO
1
420
Featured
See All Featured
Believing is Seeing
oripsolob
1
94
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
180
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
120
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
490
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
82
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
160
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
240
Statistics for Hackers
jakevdp
799
230k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
200
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
sira's awesome portfolio website redesign presentation
elsirapls
0
200
Transcript
© LayerX Inc. AWS アーキテクチャクイズ 2024-03-15 バクラクエンジニア共有会 LT
© LayerX Inc. 2 AWS アーキテクチャクイズ これからクイズを3問出題します ぜひコメントで回答を! 勘でもいいです!!
© LayerX Inc. 3 第1問
© LayerX Inc. 4 第1問 室温センサーから室温データ (JSON) が定期的に飛んできます データを DynamoDB
に溜めたい場合、前段に何を置くといいでしょう? ここに何を置く? IoT 室温センサー Amazon DynamoDB JSON
© LayerX Inc. 5 第1問 室温センサーから室温データ (JSON) が定期的に飛んできます データを DynamoDB
に溜めたい場合、前段に何を置くといいでしょう? Amazon API Gateway IoT 室温センサー Amazon DynamoDB JSON
© LayerX Inc. 6 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問
Amazon API Gateway 室温センサー Amazon DynamoDB
© LayerX Inc. 7 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問
Amazon API Gateway 室温センサー Amazon DynamoDB JSON データ (例) { "time": 1710408430033, "temperature": 18.5 }
© LayerX Inc. 8 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問
Amazon API Gateway 室温センサー Amazon DynamoDB JSON データ (例) { "time": 1710408430033, "temperature": 18.5 } マッピングテンプレート #set($data = $input.path('$')) { "TableName": "hoge", "Item": { "time": { "N": "$data.time" }, "temperature": { "N": "$data.temperature" } } }
© LayerX Inc. 9 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問
Amazon API Gateway 室温センサー Amazon DynamoDB JSON データ (例) { "time": 1710408430033, "temperature": 18.5 } マッピングテンプレート #set($data = $input.path('$')) { "TableName": "hoge", "Item": { "time": { "N": "$data.time" }, "temperature": { "N": "$data.temperature" } } } DynamoDB へのリクエスト内容 { "TableName": "hoge", "Item": { "time": { "N": "1710408430033", }, "temperature": { "N": "18.5" } } }
© LayerX Inc. 10 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問
Amazon API Gateway 室温センサー Amazon DynamoDB JSON データ (例) { "time": 1710408430033, "temperature": 18.5 } マッピングテンプレート #set($data = $input.path('$')) { "TableName": "hoge", "Item": { "time": { "N": "$data.time" }, "temperature": { "N": "$data.temperature" } } } DynamoDB へのリクエスト内容 { "TableName": "hoge", "Item": { "time": { "N": "1710408430033", }, "temperature": { "N": "18.5" } } } 記録したよ
© LayerX Inc. 11 第2問
© LayerX Inc. 12 メッセージをオウム返しする LINE bot を作ります 第2問
© LayerX Inc. 13 メッセージをオウム返しする LINE bot を作ります ※ メッセージは
Webhook で届く ※ LINE Reply API へリクエストを送って返信する 第2問 ここに何を置く? LINE bot LINE Reply API メッセージ Webhook 返信
© LayerX Inc. 14 メッセージをオウム返しする LINE bot を作ります ※ メッセージは
Webhook で届く ※ LINE Reply API へリクエストを送って返信する 第2問 Amazon API Gateway LINE bot LINE Reply API メッセージ Webhook 返信
© LayerX Inc. 15 API Gateway では、リクエスト内容を変換して別エンドポイントへリクエストできる 第2問 Amazon API
Gateway LINE bot LINE Reply API
© LayerX Inc. 16 API Gateway では、リクエスト内容を変換して別エンドポイントへリクエストできる 第2問 LINE Webhook
(抜粋) { "events": [ { "timestamp": 1710408430033, "message": { "type": "text", "text": "こんにちはこんにちは!!" }, "replyToken": "710c805bd4bae907" } ] } Amazon API Gateway LINE bot LINE Reply API
© LayerX Inc. 17 API Gateway では、リクエスト内容を変換して別エンドポイントへリクエストできる 第2問 LINE Webhook
(抜粋) { "events": [ { "timestamp": 1710408430033, "message": { "type": "text", "text": "こんにちはこんにちは!!" }, "replyToken": "710c805bd4bae907" } ] } マッピングテンプレート #set($data = $input.path('$.events[0]')) { "messages": [ { "type": "text", "text": "$data.message.text" } ], "replyToken": "$data.replyToken" } Amazon API Gateway LINE bot LINE Reply API
© LayerX Inc. 18 API Gateway では、リクエスト内容を変換して別エンドポイントへリクエストできる 第2問 LINE Webhook
(抜粋) { "events": [ { "timestamp": 1710408430033, "message": { "type": "text", "text": "こんにちはこんにちは!!" }, "replyToken": "710c805bd4bae907" } ] } マッピングテンプレート #set($data = $input.path('$.events[0]')) { "messages": [ { "type": "text", "text": "$data.message.text" } ], "replyToken": "$data.replyToken" } LINE Reply API へのリクエスト内容 { "messages": [ { "type": "text", "text": "こんにちはこんにちは!!" } ], "replyToken": "710c805bd4bae907" } Amazon API Gateway LINE bot LINE Reply API
© LayerX Inc. 19 第3問
© LayerX Inc. 20 第3問 Slack には、外部からメッセージを送る Incoming Webhook という機能があります
秘密の URL にメッセージを送ると認証なしで Slack に届きます (秘密の URL) User Slack Message バクラク! バクラク!
© LayerX Inc. 21 第3問 ユーザには URL を隠蔽しつつ IP 制限をかけるために
AWS を挟むことにしました どの AWS コンポーネントを使うといいでしょうか? (秘密の URL) User Slack Message ここに何を置く?
© LayerX Inc. 22 第3問 ユーザには URL を隠蔽しつつ IP 制限をかけるために
AWS を挟むことにしました どの AWS コンポーネントを使うといいでしょうか? (秘密の URL) User Slack Message Amazon API Gateway
© LayerX Inc. 23 第3問 (秘密の URL) User Slack Message
API Gateway では、届いたリクエストを別の URL へ中継できます アクセス元 IP アドレスも制限できます Amazon API Gateway
© LayerX Inc. 24 第3問 User Slack Message API Gateway
では、届いたリクエストを別の URL へ中継できます アクセス元 IP アドレスも制限できます Amazon API Gateway バクラク! バクラク! IP アドレスを 確認して通す (秘密の URL)
© LayerX Inc. 25 まとめ 色々な使い道がある Amazon API Gateway は便利!
※ クイズの正解となる構成は他にもあります ※ API の前段で認可周りや流量制御を任せるのが標準的な使い方です