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
yuu26
March 19, 2024
Technology
3
1.1k
AWS アーキテクチャクイズ
社内 LT で発表した「AWS アーキテクチャクイズ」の資料です。
yuu26
March 19, 2024
Tweet
Share
More Decks by yuu26
See All by yuu26
Datadog 関数クイズ (初級編)
yuu26
0
35
バクラクにおける可観測性向上の取り組み
yuu26
4
1.5k
EMになって半年でやったこと
yuu26
1
2.7k
ローカル開発環境をAWSへ移行して爆速にした
yuu26
14
11k
AWS Systems Manager で実現する SSH レスでセキュアなクラウド運用
yuu26
2
4.4k
Other Decks in Technology
See All in Technology
FastConnect の冗長性
ocise
1
9.6k
スクラムのイテレーションを導入してチームの雰囲気がより良くなった話
eccyun
0
110
Ask! NIKKEI RAG検索技術の深層
hotchpotch
13
2.8k
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
890
事業継続を支える自動テストの考え方
tsuemura
0
300
5分で紹介する生成AIエージェントとAmazon Bedrock Agents / 5-minutes introduction to generative AI agents and Amazon Bedrock Agents
hideakiaoyagi
0
220
株式会社EventHub・エンジニア採用資料
eventhub
0
4.2k
自動テストの世界に、この5年間で起きたこと
autifyhq
10
7.1k
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
「海外登壇」という 選択肢を与えるために 〜Gophers EX
logica0419
0
500
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
130
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
230
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
How to train your dragon (web standard)
notwaldorf
90
5.8k
The Cult of Friendly URLs
andyhume
78
6.2k
What's in a price? How to price your products and services
michaelherold
244
12k
Navigating Team Friction
lara
183
15k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Raft: Consensus for Rubyists
vanstee
137
6.8k
The Invisible Side of Design
smashingmag
299
50k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Rails Girls Zürich Keynote
gr2m
94
13k
Embracing the Ebb and Flow
colly
84
4.6k
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 の前段で認可周りや流量制御を任せるのが標準的な使い方です