Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS アーキテクチャクイズ

yuu26
March 19, 2024

AWS アーキテクチャクイズ

社内 LT で発表した「AWS アーキテクチャクイズ」の資料です。

yuu26

March 19, 2024
Tweet

More Decks by yuu26

Other Decks in Technology

Transcript

  1. © LayerX Inc. 4 第1問 室温センサーから室温データ (JSON) が定期的に飛んできます データを DynamoDB

    に溜めたい場合、前段に何を置くといいでしょう? ここに何を置く? IoT 室温センサー Amazon DynamoDB JSON
  2. © LayerX Inc. 5 第1問 室温センサーから室温データ (JSON) が定期的に飛んできます データを DynamoDB

    に溜めたい場合、前段に何を置くといいでしょう? Amazon API Gateway IoT 室温センサー Amazon DynamoDB JSON
  3. © LayerX Inc. 7 API Gateway では、リクエスト内容を変換して別の AWS コンポーネントへリクエストできる 第1問

    Amazon API Gateway 室温センサー Amazon DynamoDB JSON データ (例) { "time": 1710408430033, "temperature": 18.5 }
  4. © 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" } } }
  5. © 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" } } }
  6. © 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" } } } 記録したよ
  7. © LayerX Inc. 13 メッセージをオウム返しする LINE bot を作ります ※ メッセージは

    Webhook で届く ※ LINE Reply API へリクエストを送って返信する 第2問 ここに何を置く? LINE bot LINE Reply API メッセージ Webhook 返信
  8. © LayerX Inc. 14 メッセージをオウム返しする LINE bot を作ります ※ メッセージは

    Webhook で届く ※ LINE Reply API へリクエストを送って返信する 第2問 Amazon API Gateway LINE bot LINE Reply API メッセージ Webhook 返信
  9. © 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
  10. © 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
  11. © 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
  12. © LayerX Inc. 20 第3問 Slack には、外部からメッセージを送る Incoming Webhook という機能があります

    秘密の URL にメッセージを送ると認証なしで Slack に届きます (秘密の URL) User Slack Message バクラク! バクラク!
  13. © LayerX Inc. 21 第3問 ユーザには URL を隠蔽しつつ IP 制限をかけるために

    AWS を挟むことにしました どの AWS コンポーネントを使うといいでしょうか? (秘密の URL) User Slack Message ここに何を置く?
  14. © LayerX Inc. 22 第3問 ユーザには URL を隠蔽しつつ IP 制限をかけるために

    AWS を挟むことにしました どの AWS コンポーネントを使うといいでしょうか? (秘密の URL) User Slack Message Amazon API Gateway
  15. © LayerX Inc. 23 第3問 (秘密の URL) User Slack Message

    API Gateway では、届いたリクエストを別の URL へ中継できます アクセス元 IP アドレスも制限できます Amazon API Gateway
  16. © LayerX Inc. 24 第3問 User Slack Message API Gateway

    では、届いたリクエストを別の URL へ中継できます アクセス元 IP アドレスも制限できます Amazon API Gateway バクラク! バクラク! IP アドレスを 確認して通す (秘密の URL)
  17. © LayerX Inc. 25 まとめ 色々な使い道がある Amazon API Gateway は便利!

    ※ クイズの正解となる構成は他にもあります ※ API の前段で認可周りや流量制御を任せるのが標準的な使い方です