DevelopersIO Decadeでビデオ登壇するにあたり作成した資料になります。
ΦϖϨʔγϣϯ෦ଜ༞ೋ"NB[PO&WFOU#SJEHFͰͰ͖Δ͜ͱΛ·ͱΊͯΈͨ
View Slide
ଜ༞ೋ"84ࣄۀຊ෦ΦϖϨʔγϣϯ෦େࡕΦϑΟεࡏ੶αʔόʔϨεڥߏஙࣗݾհ - 2021 APN AWS Top Engineer/APN ALL AWS Certifications 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ΞϓϦશମͰΠϕϯτۦಈܕΞϓϦέʔγϣϯΛେنʹߏங͢Δzhttps://aws.amazon.com/jp/eventbridge/
"NB[PO&WFOU#SJEHFͱ l"84ɺطଘͷγεςϜɺ·ͨ4BB4ΞϓϦશମͰΠϕϯτۦಈܕΞϓϦέʔγϣϯΛେنʹߏங͢Δzhttps://aws.amazon.com/jp/eventbridge/ʰΠϕϯτʱΛ༻͍༷ͯʑͳΞϓϦέʔγϣϯΛ؆୯ʹଓͰ͖ΔΑ͏ʹ͢ΔϧʔςΟϯάαʔϏε
Πϝʔδ ಠࣗ"QQ4BB4"84αʔϏεAmazonEventBridgeΠϕϯτϧʔϧΠϕϯτιʔε λʔήοτϧʔϧϧʔϧ4BB4"84αʔϏεผ"84ڥΠϕϯτόεʴϧʔϧΠϕϯτ
"NB[PO&WFOU#SJEHFΛར༻ͨ͠ྫ ૄ݁߹ʹϚΠΫϩαʔϏεΛΈཱͯΔαʔόʔϨεͳϚωʔδυαʔϏεͷͨΊαʔό४උɾߏஙɾཧʢϚϧν";ɺ4-"ˋʣ
Amazon 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"}}
Πϕϯτιʔε
Πϕϯτιʔε छྨΠϕϯτͷछྨ ૹ৴ݩ ૹ৴ઌͷΠϕϯτόε ૹ৴͞ΕΔλΠϛϯά"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.htmlhttps://aws.amazon.com/eventbridge/integrations/
ͬͯΈͨϒϩάͷհ https://dev.classmethod.jp/articles/shopify-with-eventbridge/
Πϕϯτόε
Πϕϯτόεͷछྨ σϑΥϧτόε ΧελϜόε ύʔτφʔόεྫʣΠϯελϯε͕ఀࢭͨ͠ ྫʣจػೳ͕จΛड͚͚ͨྫʣSaaSͰཧ͢Δސ٬ใ͕ߋ৽͞Εͨ
ϧʔϧ
ϧʔϧ 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-filtering.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" : ,"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ͷঢ়ଶมԽͷΠϕϯτ
ૹ৴ઌλʔήοτ
λʔήοτ 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
"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$SFEFOUJBMTw"1*,FZwΫϨσϯγϟϧ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ૄ݁߹ʹ࿈ܞͰ͖Δ
λʔήοτʹผΞΧϯτͷΠϕϯτόεΛࢦఆ ΫϩεΞΧϯτ࿈ܞwૄ݁߹ʹ࿈ܞͰ͖Δ͕ࣗଘࡏ͢ΔAWSΞΧϯτͷEventBridgeͷΈҙࣝ͢ΕΑ͍
λʔήοτʹผΞΧϯτͷΠϕϯτόεΛࢦఆ ΫϩεΞΧϯτ࿈ܞwૄ݁߹ʹ࿈ܞͰ͖Δґଘ͕ؔEventBridgeʹด͡Δ
λʔήοτʹผϦʔδϣϯͷΠϕϯτόε ϦʔδϣϯؒͷΠϕϯτసૹʹΑΔΠϕϯτू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#SJEHFwαʔόʔཧෆཁͰΠϕϯτόε͕ར༻w࣮ͳ͠Ͱ"84αʔϏεɺ4BB4ͳͲΞϓϦΛ࿈ܞwૄ݁߹ͳΠϕϯτۦಈΞʔΩςΫνϟͷߏங͕༰қwΠϕϯτεΩʔϚͷࣗಈݕɺอଘɺཧw։ൃΛޮΛ্͛Δศརͳػೳ͕ͨ͘͞Μ͋Δ
ࢀߟࢿྉ
ࢀߟࢿྉ https://www.slideshare.net/AmazonWebServicesJapan/20210127-aws-expert-online-13-241967722https://pages.awscloud.com/rs/112-TZM-766/images/DevAx_connect_day7_SaaS_integration_shared.pdfhttps://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.pdfhttps://d1.awsstatic.com/webinars/jp/pdf/services/20200122_BlackBelt_EventBridge.pdfOn-demand γʔζϯ 1ʮΠϕϯτۦಈʯ https://aws.amazon.com/jp/devax-connect-on-demand/