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
Amazon EventBridgeでできることをまとめてみた #devio2021
Search
ynishimura
October 05, 2021
Technology
0
12k
Amazon EventBridgeでできることをまとめてみた #devio2021
DevelopersIO Decadeでビデオ登壇するにあたり作成した資料になります。
ynishimura
October 05, 2021
Tweet
Share
More Decks by ynishimura
See All by ynishimura
React + Tauriでデスクトップアプリ開発に入門してみた
ynishimura0922
0
2k
Amazon EventBridgeを使って簡単なAWS環境の監視システムを構築する #devio2022
ynishimura0922
1
5.7k
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
73k
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
190
Practical Agentic AI in Software Engineering
uzyn
0
110
DroidKaigi 2025 Androidエンジニアとしてのキャリア
mhidaka
2
200
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
250
DDD集約とサービスコンテキスト境界との関係性
pandayumi
3
280
AIエージェント開発用SDKとローカルLLMをLINE Botと組み合わせてみた / LINEを使ったLT大会 #14
you
PRO
0
120
AWSで始める実践Dagster入門
kitagawaz
1
620
Snowflake Intelligenceにはこうやって立ち向かう!クラシルが考えるAI Readyなデータ基盤と活用のためのDataOps
gappy50
0
230
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
410
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
200
DevIO2025_継続的なサービス開発のための技術的意思決定のポイント / how-to-tech-decision-makaing-devio2025
nologyance
1
390
Featured
See All Featured
Making Projects Easy
brettharned
117
6.4k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
Six Lessons from altMBA
skipperchong
28
4k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Scaling GitHub
holman
463
140k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
112
20k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Transcript
ΦϖϨʔγϣϯ෦ଜ༞ೋ "NB[PO&WFOU#SJEHFͰ Ͱ͖Δ͜ͱΛ·ͱΊͯΈͨ
ଜ༞ೋ "84ࣄۀຊ෦ΦϖϨʔγϣϯ෦ େࡕΦϑΟεࡏ੶ αʔόʔϨεڥߏங ࣗݾհ - 2021 APN AWS
Top Engineer/ APN ALL AWS Certi fi cations Engineer - 2020 APN AWS Top Engineers - 2019 APN AWS Top Engineers
࣍ w"NB[PO&WFOU#SJEHFʹ͍ͭͯ w"NB[PO&WFOU#SJEHFͷશମ૾ɾߏ w"NB[PO&WFOU#SJEHFͷศརͳػೳ ˞࣌ͷใ
ࠓճ͞ͳ͍͜ͱ wΠϕϯτۦಈΞʔΩςΫνϟͷઃܭʹ͍ͭͯ wϚΠΫϩαʔϏεͷઃܭʹ͍ͭͯ wࣅͨ͜ͱ͕Ͱ͖ΔଞαʔϏεͱͷҧ͍ɾબఆʹ͍ͭͯ
ఆࢹௌऀ w4BB4ෳͷαʔϏεΛ࿈ܞͨ͠γεςϜΛߏங͍ͨ͠ w"NB[PO&WFOU#SJEHFΛ͍͖͍ͬͯͨ w"NB[PO&WFOU#SJEHFʹ͍ͭͯΓ͍ͨ ΰʔϧ w"NB[PO&WFOU#SJEHFͰͰ͖Δ͜ͱɺ֓ཁΛཧղ
Amazon EventBridgeͱ
"NB[PO&WFOU#SJEHFͱ l"84ɺطଘͷγεςϜɺ·ͨ4BB4ΞϓϦશମͰ ΠϕϯτۦಈܕΞϓϦέʔγϣϯΛେنʹߏங͢Δz https://aws.amazon.com/jp/eventbridge/
"NB[PO&WFOU#SJEHFͱ l"84ɺطଘͷγεςϜɺ·ͨ4BB4ΞϓϦશମͰ ΠϕϯτۦಈܕΞϓϦέʔγϣϯΛେنʹߏங͢Δz https://aws.amazon.com/jp/eventbridge/ ʰΠϕϯτʱΛ༻͍༷ͯʑͳΞϓϦέʔγϣϯΛ ؆୯ʹଓͰ͖ΔΑ͏ʹ͢ΔϧʔςΟϯάαʔϏε
Πϝʔδ ಠࣗ"QQ 4BB4 "84αʔϏε Amazon EventBridge Πϕϯτ ϧʔϧ Πϕϯτιʔε
λʔήοτ ϧʔϧ ϧʔϧ 4BB4 "84αʔϏε ผ"84ڥ Πϕϯτόεʴϧʔϧ Πϕϯτ
"NB[PO&WFOU#SJEHFΛར༻ͨ͠ྫ ૄ݁߹ʹϚΠΫϩαʔϏεΛΈཱͯΔ αʔόʔϨεͳϚωʔδυαʔϏεͷͨΊ αʔό४උɾߏஙɾཧ ʢϚϧν";ɺ4-"ˋʣ
Amazon EventBridgeͷશମ૾ɾߏ
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
Πϕϯτͱ Πϕϯτঢ়ଶมԽΛද͢ +40/ͰΓऔΓ +40/ߏ wEFUBJMUZQFΠϕϯτͷछྨ wTPVSDFΠϕϯτͷૹ৴ݩ wSFTPVSDFTؔ࿈Ϧιʔεͷྻ wEFUBJMΠϕϯτͷৄࡉσʔλ {
"version": "0" , "id": "6a7e8feb-b491-4cf7-a9f1-bf3 , "detail-type": "EC2 Instance State , "source": "aws.ec2" , "account": "111122223333" , "time": "2017-12-22T18:43:48Z" , "region": "us-west-1" , "resources": [ "arn:aws:ec2:us-west-1:123456789 ] , "detail": { "instance-id": "i-1234567890abcd , "state": "terminated" } }
Πϕϯτιʔε
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
Πϕϯτιʔε छྨ Πϕϯτͷछྨ ૹ৴ݩ ૹ৴ઌͷΠϕϯτόε ૹ৴͞ΕΔλΠϛϯά "84αʔϏεͷΠϕϯτ ֤"84αʔϏε σϑΥϧτͷ
Πϕϯτόε "84αʔϏεͷঢ়ଶ͕ม Θͬͨͱ͖ ֤"84αʔϏε $MPVE5SBJMܦ༝ "84αʔϏεͷ"1*Λݺͼ ग़ͨ͠ͱ͖ ΧελϜΠϕϯτ ΞϓϦέʔγϣϯ ૹ৴࣌ʹࢦఆ &WFOU#SJEHFͷ1VU&WFOUT "1*Λݺͼग़ͨ͠ͱ͖ 4BB4Πϕϯτ 4BB4ΞϓϦέʔγϣϯ ֤4BB4͝ͱʹ࡞͞ΕΔ ύʔτφʔΠϕϯτόε 4BB4ΞϓϦέʔγϣϯʹ ΑͬͯҟͳΔ
"84αʔϏε͕ૹ৴͢ΔΠϕϯτ w&WFOU#SJEHFະαϙʔτͷ߹$MPVE5SBJMܦ༝ͷΠϕϯτ औಘՄೳ wσϑΥϧτΠϕϯτόεʹૹ৴ https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-service-event.html &WFOU#SJEHFʹૹ৴͞ΕΔΠϕϯτ "84Ϧιʔεͷঢ়ଶมԽΛىʹΠϕϯτൃੜ $MPVE5SBJMܦ༝Ͱૹ৴͞ΕΔΠϕϯτ "84Ϧιʔεૢ࡞ʢ"1*ݺͼग़͠ʣΛىʹΠϕϯτൃੜ
Քಇத㱺ఀࢭ Ϣʔβͷૢ࡞Πϕϯτ Πϯελϯεͷঢ়ଶมԽ
ΧελϜΠϕϯτ w1VU&WFOUT"1*ݺͼग़͠ʹΑͬͯૹ৴ w$-*ͰBXTFWFOUTQVUFWFOUTίϚϯυͰૹ৴ w֤ݴޠͷ"844%,Λར༻࣮͠ wૹ৴ઌͷΠϕϯτόεૹ৴࣌ʹࢦఆՄೳ wະࢦఆͷ߹σϑΥϧτΠϕϯτόεʹૹ৴͞ΕΔ https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-putevents.html
ΧελϜΠϕϯτ 1ZUIPOΛͬͨΧελϜΠϕϯτΛൃߦ͢Δαϯϓϧ https://dev.classmethod.jp/articles/eventbridge-cross-account-schema-discovery/
4BB4Πϕϯτ w4BB4ʹΑΔΠϕϯτ֤4BB4ઐ༻ͷΠϕϯτόεʹૹ৴ wૹ৴͞ΕΔΠϕϯτͷछྨλΠϛϯάɺ֤4BB4ΞϓϦ έʔγϣϯͰҟͳΔ wଟ͘ͷ4BB4͕&WFOU#SJEHFʹ౷߹͞Ε͍ͯΔ https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-saas.html https://aws.amazon.com/eventbridge/integrations/
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/shopify-with-eventbridge/
Πϕϯτόε
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
Πϕϯτόεͷछྨ σϑΥϧτόε ΧελϜόε ύʔτφʔόε ྫʣΠϯελϯε͕ఀࢭͨ͠ ྫʣจػೳ͕จΛड͚͚ͨ ྫʣSaaSͰཧ͢Δސ٬ใ͕ ߋ৽͞Εͨ
ϧʔϧ
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
ϧʔϧ wΠϕϯτόεͰड৴ͨ͠ΠϕϯτͰɺͲͷΠϕϯτΛɹɹ λʔήοτʹૹ৴͢Δ͔Λఆٛ͢Δ Πϕϯτύλʔϯ τϥϯεϑΥʔϚʔ λʔήοτ ύλʔϯϚονϯάʹΑΔఆٛ εέδϡʔϧࣜʹΑΔఆٛ JSON
pathΛ༻ͯ͠ ΠϕϯτΛม λʔήοτϦετ ϧʔϧ͝ͱʹ࠷େ̑ݸࢦఆՄೳ Πϕϯτ
Πϕϯτύλʔϯ wύλʔϯϚονϯάʹΑΔΠϕϯτͷϑΟϧλʔ wϑΟϧλʔछྨɿɺϓϨϑΟοΫεɺଘࡏνΣοΫͳͲ { "source": ["aws.ec2"] , "detail-type": ["EC2
Instance State-change Notification"] , "detail": { "state": ["terminated" ] } } https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-event-patterns-content-based- fi ltering.html ྫʣEC2Πϯελϯεͷऴྃʹ͍ͭͯ௨Λड͚͍ͨΠϕϯτύλʔϯྫ
Πϕϯτύλʔϯ wεέδϡʔϧࣜʹΑΔΠϕϯτ࡞ wλΠϜκʔϯ65$ɺ࠷খਫ਼ʮʯ DSPOࣜ SBUFࣜ ઃఆͷܗࣜ DSPO <><࣌ؒ><><݄><༵><> SBUFT
<><୯Ґ> ઃఆྫ ຖޕޙ࣌ 65$ ʹ࣮ߦ͢Δ DSPO ͝ͱʹ࣮ߦ͢Δ SBUF NJOVUFT
τϥϯεϑΥʔϚʔ wೖྗΠϕϯτΛ+40/QBUIͰม https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-transform-target-input.html ड͚औͬͨΠϕϯτ ૹ৴Πϕϯτఆٛ มఆٛ { "instance" :
<instance> , "state": <state > } { "version": "0" , "id": "7bf73129-1428-4cd3-a780-95db273d1602" , "detail-type": "EC2 Instance State-change Notification" , "source": "aws.ec2" , "account": "123456789012" , "time": "2015-11-11T21:29:54Z" , "region": "us-east-1" , "resources": [ "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111" ] , "detail": { "instance-id": "i-0123456789" , "state": "RUNNING" } } { "instance" : "$.detail.instance-id", "state" : "$.detail.state" } ೖྗͷInstance-id,state Λมʹࢦఆ มΛͬͯ λʔήοτʹૹ৴͢Δ ΠϕϯτΛఆٛ ྫʣEC2ͷঢ়ଶมԽͷΠϕϯτ
ૹ৴ઌλʔήοτ
"NB[PO&WFOU#SJEHFͷશମ૾ https://aws.amazon.com/jp/eventbridge/
λʔήοτ wΠϕϯτͷૹ৴ઌͱͳΓɺΠϕϯτΛॲཧ͢Δͷ wͭͷϧʔϧ͋ͨΓͭ·Ͱͷλʔήοτʹૹ৴Մೳ wϦτϥΠઃఆɺ%-2ͷઃఆՄೳ wΠϕϯτอ࣋ظؒɿ࠷େ࣌ؒ wϦτϥΠճɿ࠷େճ
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/eventbridge-supports- dead-letter-queue/
λʔήοτʹࢦఆͰ͖Δͷ wαϙʔτ͞Εͨ"84αʔϏε w"1*%FTUJOBUJPOʢ"1*Ѽઌʣ wผΞΧϯτͷΠϕϯτόε wผϦʔδϣϯͷΠϕϯτόε https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-targets.html
λʔήοτʹࢦఆͰ͖Δͷ wαϙʔτ͞Εͨ"84αʔϏε w"1*%FTUJOBUJPOʢ"1*Ѽઌʣ wผΞΧϯτͷΠϕϯτόε wผϦʔδϣϯͷΠϕϯτόε https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-targets.html
"1*%FTUJOBUJPOʢ"1*Ѽઌʣ wҙͷΤϯυϙΠϯτʹ )551ϦΫΤετΛૹ৴ wίʔυͷ࣮ෆཁ wηΩϡΞʹೝূใཧ wݺͼग़͠ϨʔτௐՄೳ https://aws.amazon.com/blogs/compute/using-api-destinations-with-amazon-eventbridge/ ਤͷҾ༻ݩ
"1*%FTUJOBUJPOʢ"1*Ѽઌʣͷೝূ wछྨͷೝূํ๏Λαϙʔτ w#BTJDೝূ w0"VUI$MJFOU$SFEFOUJBMT w"1*,FZ wΫϨσϯγϟϧ4FSDSFU.BOBHFSʹอଘ
"1*%FTUJOBUJPOʢ"1*Ѽઌʣͷར༻ྫ wྫɿTMBDLʹ௨͢Δ w-BNCEBΛར༻
"1*%FTUJOBUJPOʢ"1*Ѽઌʣͷར༻ྫ wྫɿTMBDLʹ௨͢Δ SecretsManagerͰೝূใऔಘ ΠϕϯτͷϖΠϩʔυΛݩʹύϥϝʔλ࡞ HTTPϦΫΤετΛૹͬͯΔ͚ͩ
"1*%FTUJOBUJPOʢ"1*Ѽઌʣͷར༻ྫ wྫɿTMBDLʹ௨͢Δ wஔ͖͑Δ͜ͱͰ࣮ෆཁɺηΩϡΞʹೝূใཧ
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/event-bridge-api- destinations-with-slack/
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/try-auth0-api-directly- from-event-bridge-authorization-typeoauth-client-credentials/
λʔήοτʹࢦఆͰ͖Δͷ wαϙʔτ͞Εͨ"84αʔϏε w"1*%FTUJOBUJPOʢ"1*Ѽઌʣ wผΞΧϯτͷΠϕϯτόε wผϦʔδϣϯͷΠϕϯτόε https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-targets.html
λʔήοτʹผΞΧϯτͷΠϕϯτόεΛࢦఆ ΫϩεΞΧϯτ࿈ܞ wૄ݁߹ʹ࿈ܞͰ͖Δ
λʔήοτʹผΞΧϯτͷΠϕϯτόεΛࢦఆ ΫϩεΞΧϯτ࿈ܞ wૄ݁߹ʹ࿈ܞͰ͖Δ ͕ࣗଘࡏ͢ΔAWSΞΧϯτͷ EventBridgeͷΈҙࣝ͢ΕΑ͍
λʔήοτʹผΞΧϯτͷΠϕϯτόεΛࢦఆ ΫϩεΞΧϯτ࿈ܞ wૄ݁߹ʹ࿈ܞͰ͖Δ ґଘ͕ؔEventBridgeʹด͡Δ
λʔήοτʹࢦఆͰ͖Δͷ wαϙʔτ͞Εͨ"84αʔϏε w"1*%FTUJOBUJPOʢ"1*Ѽઌʣ wผΞΧϯτͷΠϕϯτόε wผϦʔδϣϯͷΠϕϯτόε https://docs.aws.amazon.com/ja_jp/eventbridge/latest/userguide/eb-targets.html
λʔήοτʹผϦʔδϣϯͷΠϕϯτόε ϦʔδϣϯؒͷΠϕϯτసૹʹΑΔΠϕϯτू wಉҰΞΧϯτͷΠϕϯτू wड৴ՄೳͳϦʔδϣϯ wόʔδχΞɺΦϨΰϯɺΞΠϧϥϯυ https://aws.amazon.com/jp/blogs/compute/introducing-cross-region-event-routing-with-amazon- eventbridge/ ਤͷҾ༻ݩ
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/amazon- eventbridge-introduces-support-cross-region-event- bus-targets/
Amazon EventBridgeͷศརͳػೳ
4DIFNB3FHJTUSZ w&WFOU#SJEHFͰΓऔΓ͞ΕΔ༷ʑͳσʔλͷεΩʔϚΛ ཧ w0QFO"1* +40/4DIFNB%SBGUͰอଘՄೳ wεΩʔϚͷόʔδϣϯཧՄೳ JsonߏɺϓϩύςΟͷҰཡܕใΛཧ
4DIFNB3FHJTUSZ w&WFOU#SJEHFͰΓऔΓ͞ΕΔ༷ʑͳσʔλͷεΩʔϚΛ ཧ w0QFO"1* +40/4DIFNB%SBGUͰอଘՄೳ wεΩʔϚͷόʔδϣϯཧՄೳ Exportͯ͠όϦσʔγϣϯʹར༻Ͱ͖Δ
+40/4DIFNB w࣮ߦ࣌ͷόϦσʔγϣϯ͕Մೳ https://dev.classmethod.jp/articles/json-validation/
4DIFNB%JTDPWFSZ w&WFOU#SJEHFͰड͚औͬͨ4BB4ΠϕϯτΧελϜΠϕϯτ ͷεΩʔϚΛ0QFO"1*ܗࣜͰࣗಈอଘ
$PEF#JOEJOHT w"845PPMLJUGPS*OUFMMJ+ 7JTVBM4UVEJP$PEFΛ༻͍ͯ εΩʔϚఆٛΛऔಘՄೳ w+BWB 1ZUIPO 5ZQF4DSJQU ʹରԠ w࣮࣌ͷίʔυิίϯύΠϧ࣌ͷΤϥʔݕग़ʹར༻
3FQMBZ"SDIJWFػೳ w"SDIJWFɿࢦఆͨ͠ύλʔϯͷΠϕϯτΛอଘ w3FQMBZɿ"SDIJWFͨ͠ΠϕϯτΛ࠶ੜ wઃఆͨ͠ϧʔϧɺλʔήοτͷಈ࡞֬ೝ͕༰қʹ
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/ eventbridge-record-createaccount-event/ https://dev.classmethod.jp/articles/ amazon-eventbridge-archive-replay/
·ͱΊ
·ͱΊ "NB[PO&WFOU#SJEHF wαʔόʔཧෆཁͰΠϕϯτόε͕ར༻ w࣮ͳ͠Ͱ"84αʔϏεɺ4BB4ͳͲΞϓϦΛ࿈ܞ wૄ݁߹ͳΠϕϯτۦಈΞʔΩςΫνϟͷߏங͕༰қ wΠϕϯτεΩʔϚͷࣗಈݕɺอଘɺཧ w։ൃΛޮΛ্͛Δศརͳػೳ͕ͨ͘͞Μ͋Δ
ࢀߟࢿྉ
ࢀߟࢿྉ https://www.slideshare.net/AmazonWebServicesJapan/20210127-aws-expert-online-13-241967722 https://pages.awscloud.com/rs/112-TZM-766/images/DevAx_connect_day7_SaaS_integration_shared.pdf https://pages.awscloud.com/rs/112-TZM-766/images/ Amazon%20EventBridge%20%E3%81%AE%E4%BE%BF%E5%88%A9%E3%81%AA%E6%A9% 9F%E8%83%BD%20%2B%20%E6%96%B0%E6%A9%9F%E8%83%BD.pdf https://d1.awsstatic.com/webinars/jp/pdf/services/20200122_BlackBelt_EventBridge.pdf On-demand γʔζϯ
1ʮΠϕϯτۦಈʯ https://aws.amazon.com/jp/devax-connect-on-demand/
None