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
第15回 雲勉LT【オンライン】Amazon EventBridge Pipesのご紹介、SQ...
Search
iret.kumoben
February 27, 2024
Technology
890
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第15回 雲勉LT【オンライン】Amazon EventBridge Pipesのご紹介、SQSのメッセージをECSに配信する
下記、勉強会での資料です。
https://youtu.be/TWr1dURIJZw
iret.kumoben
February 27, 2024
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
120
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
100
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
120
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
160
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
140
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
130
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
120
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
170
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
190
Other Decks in Technology
See All in Technology
【CEDEC2026】『ウマ娘 プリティーダービー』 英語版のキャラクターの方言や口調をローカライズするための創造的アプローチ
cygames
PRO
1
240
Master Dataグループ紹介資料
sansan33
PRO
1
4.8k
Redmine 7.0 新機能・機能強化解説(OSC2026京都ダイジェスト版)
vividtone
1
250
第3回しろおびセキュリティスポンサーセッション
log0417
0
170
モバイルアプリ開発概論2026
recruitengineers
PRO
5
560
TypeScript入門 2026
recruitengineers
PRO
3
550
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
【CEDEC2026】グラフィックスエンジニアのためのニューラルシェーディング入門
cygames
PRO
0
140
LanceDB入門
mocobeta
7
360
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
200
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
130
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
WCS-LA-2024
lcolladotor
0
790
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
Optimizing for Happiness
mojombo
378
71k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
290
Done Done
chrislema
186
16k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
How STYLIGHT went responsive
nonsquared
100
6.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Transcript
第15回 雲勉LT【オンライン】 Amazon EventBridge Pipesのご紹介、 SQSのメッセージをECSに配信する
0.講師⾃⼰紹介 2 n 名前 • ⻘⽊ 侑甫 (あおき ゆうすけ) •
カスタマー⽀援事業部インフラセクション構築グループ • 新卒からエンジニアで、アイレットで4社⽬ • 趣味はポーカー • EventBridgeやLambdaなどサーバレス系のサービスが好き • 資格はまだまだ取得中
アジェンダ 3 0. ⾃⼰紹介 1. EventBridge Pipesについて 2. EventBridge Pipesを使⽤してみた
3. EventBridge Pipes まとめ
1. EventBridge Pipesについて 4
1.初めに 5 • EventBridge Pipesというサービスがあることに気がつく • EventBridge Pipesというサービスのユースケースを考えてみたり⾊々触りたい・・・ • 仮想要件
• スマホアプリを作成している • スマホアプリはAPI Gateway / Lambda / RDS構成で構成されている • 別のシステムからスマホアプリで表⽰させたい • 別のシステムはSQSに連携したい内容をメッセージで置くところまで実装してくれる • ここから、RDSにメッセージをおくまでどうするかを考える
2. EventBridge Pipesを使⽤してみた 6 n 構成図 n 考えた構成 n ネットワーク構成は考慮してません
1. EventBridge Pipesについて 7 • 1-1. EventBridge Pipesとはどんなサービス︖ • EventBridgeとStep
Functionsを⾜して2で割ったようなイメージ • 両⽅のサービスのいいとこどりがされている • EventBridgeで実⾏のログが⾒れる
1. EventBridge Pipesについて 8 n EventBridge Pipesの4step • ⼤事なステップとしては以下の4つ ソース
フィルタリング エンリッチメント ターゲット
1. EventBridge Pipesについて 9 n EventBridge Pipesの4step ソース n イベントを受け付けるためのソース
n 例して以下のようなものがある n Amazon SQS,Amazon Kinesis Data Streams,Amazon DynamoDB ストリーム …etc ソース フィルタリング エンリッチメント ターゲット
1. EventBridge Pipesについて 10 n EventBridge Pipesの4step フィルタリング n フィルター条件「FilterCriteria」というフィルタリングパターン
(Pattern) を定義可能な、リスト(Filters)構成のオブジェクト構造が あり、JSON⽂字列で表現 ソース フィルタリング エンリッチメント ターゲット
1. EventBridge Pipesについて 11 n 例えば ソース フィルタリング エンリッチメント ターゲット
{ "Metadata1": [ test1 ], "data": {"Data1": [ test2 ]} } 左のjsonは メタデータプロパティ : FilterCriteria.Metadata1 データプロパティ : FilterCriteria.Data1 で参照できる
1. EventBridge Pipesについて 12 n EventBridge Pipesの4step エンリッチメント n ソースからの情報をターゲットに渡す前に加⼯する
n 例えば受け取った時に別のデータを加える︖もしくは整合性確認︖ などの要素に使えそう n 現時点で私が確認した限りでは使い⽅が未知数 n とはいえ使⽤⽤途はありそうな印象 ソース フィルタリング エンリッチメント ターゲット
1. EventBridge Pipesについて 13 n EventBridge Pipesの4step ターゲット n データの処理先/送り先
n 例として、API Gateway/ECS/SNS/SQS….etc ソース フィルタリング エンリッチメント ターゲット
2. EventBridge Pipesを使⽤してみた 14
2. EventBridge Pipesを使⽤してみた 15 n 想定構成図 • 構成としてはSQS/EventBridge Pipes/ECS構成 •
フローとしてはSQSに⼊ってきたメッセージをEventBridge Pipesが処理し、ECSに渡す • データを受け取って処理するようなユースケースが多いと考えているので、シンプルに応 ⽤が効くような構成とした • ECSの処理の結果はDBへの保存などを想定 • 今回の構成ではネットワークの記⼊は排除しています • ECSをプライベートサブネットに配置する場合は、ECSとECRを疎通させるVPCエンドポイ ントの設定が必要です
2. EventBridge Pipesを使⽤してみた 16 n 構成図 n 検証として考えた構成は右図 n ネットワーク構成は考慮してません
2. EventBridge Pipesを使⽤してみた 17 n 設定内容 n SQSの設定のためソースからSQSを選択する n オプションは必要に応じて考慮
ソース フィルタリング エンリッチメント ターゲット
2. EventBridge Pipesを使⽤してみた 18 n 設定内容 n フィルタリングが必要な要件があれば使⽤する n 今回はシンプルな構成なので、使⽤しない
ソース フィルタリング エンリッチメント ターゲット
2. EventBridge Pipesを使⽤してみた 19 n 設定内容 n 必要があれば利⽤ n 今回は使⽤しない
ソース フィルタリング エンリッチメント ターゲット
2. EventBridge Pipesを使⽤してみた 20 n 設定内容 n 設定内容としてはECSのクラスターとタスク定義を指定する n ECSのサービスを⽴ち上げるわけではないので、ネットワーク設定の対応が必要
ソース フィルタリング エンリッチメント ターゲット
2. EventBridge Pipesを使⽤してみた 21 n 設定内容 n ネットワークの設定については別途設定が必要です n セキリュティグループは、ECSからRDSなどのその他VPCに依存するサービスに
アクセスをする場合などに利⽤してください ソース フィルタリング エンリッチメント ターゲット 補⾜ですが、最近課⾦対象になっています
2. EventBridge Pipesを使⽤してみた 22 n 特記事項 n 初期設定(左)、設定後(右)
2. EventBridge Pipesを使⽤してみた 23 n 特記事項 n 次のページにsamplejsonを作成しています。Samplejsonを使⽤し てEventBrdige Pipesをアップデートコマンドを発⾏する必要があ
ります n 例えばsamplejsonをupdate.jsonのように名前をつけた場合は以下 のコマンドで更新ができます n aws pipes update-pipe --cli-input-json file://update.json
2. EventBridge Pipesを使⽤してみた 24 { "Name": "#eventbridge pipe名", "RoleArn": "#eventbridge
pipe role名", "TargetParameters": { "EcsTaskParameters": { "EnableECSManagedTags": true, "EnableExecuteCommand": false, "LaunchType": "FARGATE", "NetworkConfiguration": { "awsvpcConfiguration": { "AssignPublicIp": "ENABLED", "SecurityGroups": [ "#sg-xxxxxx" ], "Subnets": [ "#subnet-xxxxxx", "#subnet-xxxxxx" ] } }, "Overrides": { "ContainerOverrides": [ { "Environment": [ { "name" : "#sqsmessage", "value" : "$.body" } ], "Name": "#containerの名称" } ] }, "TaskCount": 1, "TaskDefinitionArn": "#task定義arn" }, "InputTemplate": "{¥n ¥"body¥": <$.body>¥n}" } }
2. EventBridge Pipesを使⽤してみた 25 n ログの設定とモニタリング n EventBridgeの呼び出された回数の確認がしやすい n 以下は実際に適当な回数呼び出してみて表⽰したメトリクス
2. EventBridge Pipesを使⽤してみた 26 n ログの設定とモニタリング n 以下のようなログが規則正しく出⼒される n Errorになった場合は詳細は出⼒されないのでCloudTrailでの確認が必要
n ただし、ログの保存などは別途設定が必要 { "resourceArn": ”xxxxxx", "timestamp": 1707809529425, "executionId": "dc8fb743-a2d4-4cb7-ae51-dff74da81e60", "messageType": "TargetTransformationStarted", "logLevel": "TRACE" }
2. EventBridge Pipesを使⽤してみた 27 n 動作確認 n SQSにメッセージを⼊れていきます
2. EventBridge Pipesを使⽤してみた 28 n 動作確認 n スクショでまとめているので動きがわかりにくいかもしれませんが、SQSにメッ セージを⼊⼒すると、ECSのタスクが⽴ち始めます n
メッセージ1回につき1タスク⽴ち上がります n 写真の例ではtest ~ test1を4回⼊れたので、4タスク⽴ち上がります
2. EventBridge Pipesを使⽤してみた 29 n 動作確認 n コンテナで受け取ったメッセージを確認するにはECS側で環境変数を取得する設 定が必要です n
例えば、pythonでsqsmessageという環境変数名で渡した場合は以下のように sqsmessageを確認することができます import os body = os.environ.get(”sqsmessage")
3. EventBridge Pipes まとめ 30
3. EventBridge Pipes まとめ 31 n 使⽤してみて • AWS Step
Functionsのような印象を受けたが、設定項⽬がよりシンプルでわかりや すくなっていた • ECSを使⽤するケースだとコマンドでアップデートしないとECSに引数を渡せないの でそこが少し厄介 • ログの設定もわかりやすくデバックがしやすい • モニタリングもありサービスがどのように利⽤されたかわかる • イベント駆動開発をしていてLambdaだと処理能⼒が⾜りないケースだと効果を発揮 しそう