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
Step FunctionsとInfrastructure Composerで挑むローコード ...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
SimSta
November 22, 2024
390
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
SimSta
November 22, 2024
More Decks by SimSta
See All by SimSta
緊急地震速報を受信したら配信を制御する仕組みを作ってみた @Media-JAWS x JAWS-UG千葉
shimagaji
1
120
セキュリティ運用エージェントGuardDuty-Operatorを作って社内に配ってみた @ JAWS-UG SRE支部
shimagaji
2
260
祝日にも対応なコスト節約ツールNAT-Schedulerの紹介 @ JAWS-UG 札幌×秋田コラボ
shimagaji
1
170
AgentCore RuntimeのCDKデプロイにdeploy-time-buildを使ってみよう @ JAWS-UG Sapporo
shimagaji
2
170
AWSの2025年最新トレンドをフル活用してフルサーバーレスな司書エージェントを作ってみた @ JAWS-UG Sapporo
shimagaji
3
330
AWS Media Servicesを使ってAmazon IVSとYouTubeへの同時配信を試してみた @ JAWS-UG千葉支部 x Media-JAWS
shimagaji
1
160
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
330
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
540
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
66
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
247
13k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
260
Exploring anti-patterns in Rails
aemeredith
3
430
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
620
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
A better future with KSS
kneath
240
18k
Designing for Performance
lara
611
70k
Unsuck your backbone
ammeep
672
58k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Transcript
4UFQ'VODUJPOTͱ *OGSBTUSVDUVSF$PNQPTFSͰΉ ϩʔίʔυº1MBUGPSN&OHJOFFSJOH 4JN4UB !TIJNBHBKJ +"846(੨ʢ߂લʣ KBXTVHBPNPSJKBXTVHUPIPLV
ˡϗϫΠτγϚϦεͷΞϧλ
ࣗݾհ ɹ࡛ۄɹʢʙେֶͷ్த·Ͱʣ ˠࡳຈɹʢʙେֶɾʣ ˠਆಸʢʙେֶӃʙब৬ͯ͘͠Β͍ʣ ˠࡳຈɹʢʙͪΐͬͱɺݱࡏʣ ͖ͳ"84αʔϏεɿ4UFQ'VODUJPOT 4JN4UBʢΦϯϥΠϯͷ͕ͨ͢ʣ ,%%*ΞδϟΠϧ։ൃηϯλʔגࣜձࣾ ϓϥοτϑΥʔϜΤϯδχΞϦϯά෦ !TIJNBHBKJ
5XJUUFS 4FSWFSMFTT ͝ΧάΧά
,"(ͷւಓ౦ΦϑΟε
,"(ͷւಓ౦ΦϑΟε ʁ ɾͦͷҬʹॅΜͰ͍Δࣾһ͕͍Δ͜ͱ ɾݱ࣌Ͱಓݝ͝ͱʹϲॴ ɾͭ·Γʜʁ
ϗϫΠτγϚϦεͱ Β͍ͯ͠·͢🐿 5XJUUFSΞΧϯτ͋ΔΑ !BMUB@XIJUFDIJQ େνϧλϦε͍ΔΑ
աڈͷొஃࢿྉΞοϓͯ͠·͢ʢࠓͷࢿྉʂʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJ
ݸਓϒϩάΛӡ༻͍ͯ͠·͢͠·͕͡ ͠Ήͦ͘ "84ΞοϓσʔτΛ ຖिߋ৽ʂ ͦͷଞ ΫϥυΨδΣοτ γϚϦεͷͳͲ
͠Ήͦ͘3BEJP "84ͷΞοϓσʔτΛαΫοͱΩϟονΞοϓ !͠Ήͦ͘ ຖिਫ༵ʙ ৴தʂ
͜ͷ΄͔ɺSF*OWFOUظؒதʙʢ+45ʣຖ৴༧ఆʂ
উखʹର߅͍ͯ͠Δ উखʹର߅͍ͨ͠
"HFOEB • 1MBUGPSN&OHJOFFSJOHͱʁ • ηϧϑαʔϏεπʔϧͷల։ • "84ͰͷϩʔίʔυΞϓϩʔν • LBHUPPMTͷൃ •
ϩʔίʔυº1MBUGPSN&OHJOFFSJOHͷ՝ • ·ͱΊ
1MBUGPSN&OHJOFFSJOHͷ֓ཁ
1MBUGPSN&OHJOFFSJOHʢ1'&ʣͱʁ ϓϥοτϑΥʔϜɾΤϯδχΞϦϯάͱԿ͔ʁ(BSUOFS IUUQTXXXHBSUOFSDPKQKBBSUJDMFTXIBUJTQMBUGPSNFOHJOFFSJOH ҎԼΛຬͨ͢ϓϥοτϑΥʔϜΛ ߏங͢ΔΞϓϩʔνΛࢦ͢ ඪɿ ɾ։ൃऀͷੜ࢈ੑ্ ɾϏδωεՁͷग़ తɿ
ɾ։ൃऀͷೝෛՙΛܰݮ ɾ։ൃऀͷΤΫεϖϦΤϯε্ खஈɿ ɾηϧϑαʔϏεػೳͷॆ࣮ ɾΠϯϑϥӡ༻ͷࣗಈԽ
%FW0QTͱ1MBUGPSN&OHJOFFSJOH ϓϥοτϑΥʔϜΤϯδχΞϦϯάͱ IUUQTMFBSONJDSPTPGUDPNKBKQQMBUGPSNFOHJOFFSJOHXIBUJTQMBUGPSNFOHJOFFSJOH 4%-$ ʢιϑτΣΞ։ൃϥΠϑαΠΫϧʣ ιϑτΣΞ։ൃͷϑΣʔζΛࣔ͢ࢦ %FW0QT ܧଓతͳσϦόϦʔΛ࣮ݱ͢ΔͨΊͷ ։ൃख๏ͱӡ༻ͷࣗಈԽɾޮԽ 1MBUGPSN&OHJOFFSJOH
։ൃηΩϡϦςΟɾΨόφϯεΛ ڥඋ*B$ɺࣗಈԽͳͲͰࢧԉ "HJMF4%-$4LZSPDLFUJOH:PVS1SPKFDUXJUI"HJMF1SJODJQMFT IUUQTNMTEFWDPNCMPHBHJMFTEMD
ւಓཱྀߦʹྫ͑Δͱʜ 4%-$ త·Ͱͷਤ %FW0QT ަ௨खஈʢΓʣ 1MBUGPSN&OHJOFFSJOH ަ௨Πϯϑϥɺλʔϛφϧ ʢࠃಓɺߴɺۭ࿏ɺߤ࿏ʣ ࡳຈˠവؗߦ͘ͷʹ ͔ͭͯమಓͰ͔͔͕࣌ؒͬͨ
ࣨའ͔Βߤ࿏ΛඋͰ͖Ε େ෯ʹ͕࣌ؒॖͰ͖Δ͔͠Εͳ͍ খḺˠߦ͘ͱ͢Δͱ Γʢెาंమಓഅʣ͕%FW0QT ಓΓͷඋ͕1MBUGPSN&OHJOFFSJOH $PQZSJHIU4PVHPV4IPVLFO$0 -UE"MM3JHIUT3FTFSWFE
ηϧϑαʔϏεπʔϧͷల։
ηϧϑαʔϏεܕͷϓϥοτϑΥʔϜ 1MBUGPSN&OHJOFFSJOHPO4FSWFSMFTT IUUQTTQFBLFSEFDLDPN@LFOTIQMBUGPSNFOHJOFFSJOHPOTFSWFSMFTT
ηϧϑαʔϏεܕͷϓϥοτϑΥʔϜ 1MBUGPSN&OHJOFFSJOHPO4FSWFSMFTT IUUQTTQFBLFSEFDLDPN@LFOTIQMBUGPSNFOHJOFFSJOHPOTFSWFSMFTT • "84ͷ߹ɺҎԼͷ͕ͭީิʹͳΓಘΔ • "NB[PO$PEF$BUBMZTU • "844FSWJDF$BUBMPH •
#BDLTUBHF • (JU)VCͳͲͷίʔυϦϙδτϦͰఏڙՄೳ ˠ,"(Ͱࣾͷ(JU)VC&OUFSQSJTF0SHBOJ[BUJPOΛ׆༻
Ͱπʔϧͱ͔ΞϓϦέʔγϣϯͬͯ ࡞Δͷେมͦ͏ʜʁ
ηϧϑαʔϏεπʔϧͷݕ౼ͱ՝ • ࣄۀձࣾͱҟͳΓҊ݅͝ͱʹγεςϜ͕ҟͳΔ ˠڞ௨ͷίϯϙʔωϯτఏڙ͕͍͠ ˠ֤νʔϜͷΞʔΩςΫνϟΛेʹௐࠪ͢Δඞཁ͋Γ • πʔϧཧνʔϜશһ͕ϝϯςφϯεͰ͖Δͷ͕ཧ
ˠ։ൃऀνʔϜͱҟͳΓٕज़ελοΫ͕Ұக͠ʹ͍͘ ɹΠϯϑϥɺγεɺύʔτφʔΛؚΉνʔϜͳͲ • ϝϯςφϯεͷೝෛՙΛͰ͖Δ͚ͩԼ͍͛ͨ ˠίʔυͷϝϯςφϯεͰ͖ΔݶΓͨ͘͠ͳ͍ ˠͦͦίʔυΛ͋·Γॻ͖ͨ͘ͳ͍ɺࢹ֮తײతʹ࡞Γ͍ͨ ɹʢ͕ɺίʔυͱͯ͠อଘ͍ͨ͠ɾɾɾʣ
ίʔυ͕ॻ͚Ε ͍ΖΜͳ͜ͱ͕Ͱ͖Δͷʹʜɻ
ʢ͋·ΓʣίʔυΛॻ͔ͣʹ πʔϧΛ։ൃ͍ͨͬ͠ʂʂ
"84Ͱͷ ϩʔίʔυΞϓϩʔν
4UFQ'VODUJPOT º *OGSBTUSVDUVSF$PNQPTFS
4UFQ'VODUJPOTͱʁ ϩʔίʔυͰ"84֎෦"1*ͱ࿈ܞͯ͠ΞϓϦέʔγϣϯͷ ϫʔΫϑϩʔΛߏஙͰ͖ΔΦʔέετϨʔγϣϯαʔϏε
4UFQ'VODUJPOTͷັྗ ͪ͜ΒͰࢥ͏ଘޠ͖ͬͯ·ͨ͠ IUUQTTQFBLFSEFDLDPNTIJNBHBKJTFSWFSMFTTGJSTUTUFQGVODUJPOTGJSTU
ʲ5PEBZʳ4UFQ'VODUJPOT͕7BSJBCMFTͱ+40/BUBΛαϙʔτ 7BSJBCMFTɿޙଓͷॲཧͰར༻͍ͨ͠มΛ֨ೲͰ͖Δʂ +40/BUBɿ-BNCEBͳ͠Ͱෳࡶͳσʔλૢ࡞Λ࣮ݱʂ 4JNQMJGZJOHEFWFMPQFSFYQFSJFODFXJUIWBSJBCMFTBOE+40/BUBJO"844UFQ'VODUJPOT IUUQTBXTBNB[PODPNCMPHTDPNQVUFTJNQMJGZJOHEFWFMPQFSFYQFSJFODFXJUIWBSJBCMFTBOEKTPOBUBJOBXTTUFQGVODUJPOT “Example": "{% jsonata expression %}"
-BNCEB͕ඞཁͩͬͨॲཧΛ+40/BUB͚ͩͰॻ͚Δʂ εςοϓͷೖग़ྗॲཧϑϩʔ͕γϯϓϧʹʂ ʢ"4-ͷه๏͕γϯϓϧʹͳͬͨͱݴ͍ͬͯͳ͍ʣ ೖྗ͞ΕͨϖΠϩʔυΛ"TTJHO͓ͯ͘͜͠ͱͰ ͲͷεςοϓͰ؆୯ʹݺͼग़ͤΔʂ
*OGSBTUSVDUVSF$PNQPTFSͱʁ $MPVE'PSNBUJPOςϯϓϨʔτΛࢹ֮తʹ࡞ɾදࣔͰ͖ΔαʔϏε ʢݩʑ4".ಛԽͰɺ໊લ"QQMJDBUJPO$PNQPTFSͩͬͨʣ "84ίϯιʔϧɺ·ͨ*%&ͷ"845PPMLJU͔Βར༻Մೳ 4".Ϧιʔεʢ֦ுίϯϙʔωϯτʣͱ$'OϦιʔεͰ͍উख͕ҟͳΔ
4UFQ'VODUJPOTº*OGSBTUSVDUVSF$PNQPTFS *OGSBTUSVDUVSF$PNQPTFS͔Β 4UFQ'VODUJPOTͷ 8PSLGMPX4UVEJPΛ։͚Δʂ
LBHUPPMTͷൃ
ηϧϑαʔϏεπʔϧ܈ʮLBHUPPMTʯ w1MBUGPSN&OHJOFFSJOHͱͯ͠ͷࢧԉπʔϧΛఏڙ͍ͨ͠ͱ͍͏ϞνϕʔγϣϯͰ։࢝ w·ͣݩʑͷ1'&νʔϜʹΑΔۀʢΠϯϑϥ$$P&دΓʣʹؔ࿈͢ΔͷΛఆ wηΩϡϦςΟɺΨόφϯεܥ wίετͷݮ w(JU)VC&OUFSQSJTFͷར༻ิॿ LBHUPPMT w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w
*B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ
LBHUPPMTͷհ
LBHUPPMTͷհ • (VBSE%VUZ4VNNBSJ[FS • (VBSE%VUZͷݕग़݁ՌΛ#FESPDLͰ͔Γ͔ͯ͘͢͠Β௨ • 4FDVSJUZ)VCʹू͞Εͨ(VBSE%VUZݕग़݁ՌʹରԠ • $PEF#VJME3VOOFS •
()&ͷ4FMGIPTUFE3VOOFSΛϚωʔδυͰల։ • 71$ͷ࡞͔Β(JU)VC"QQTܦ༝Ͱͷଓ·ͰΨΠυ͖Ͱ࡞ • /"54DIFEVMFS • /"5(BUFXBZΛ༵ͱ࣌ؒͰ࡞আ͠ɺίετΛݮ • TBNQMFTFDVSJUZIVCOPUJGJDBUJPOT • 4FDVSJUZ)VC͔Βͷ௨Λ4MBDLૹ৴͢ΔͨΊͷ5FSSBGPSNίʔυ
(VBSE%VUZ4VNNBSJ[FS (VBSE%VUZ͔Βͷ௨Λ ͦͷ··4/4Ͱૹ৴͢Δͱ ͚ͬ͜͏ೝෛՙߴ͍ͷͰ શ෦#FESPDLʹ͛ͯ ͍͍ײ͡ʹͯ͠௨͢Δπʔϧ
௨ઌʹ4MBDLʢ&ϝʔϧՄʣΛ͏͜ͱͰ ʢ΄΅ʣϊʔίʔυΛ࣮ݱ AWS Cloud GuardDuty Step Functions Bedrock SNS Invoke
Execute EventBridge User Threats E-Mail Publish Slack Security Hub ᶃ(VBSE%VUZͷΠϕϯτΛर͏ ᶄ4FDVSJUZ)VCʹू͞ΕͨΠϕϯτΛर͏ ͷͲͪΒ͔Λબͯ͠σϓϩΠՄೳ (VBSE%VUZ4VNNBSJ[FS
(VBSE%VUZ4VNNBSJ[FSͷߏ *OGSBTUSVDUVSF$PNQPTFSͱ 4UFQ'VODUJPOT8PSLGMPX4UVEJPͰՄࢹԽ
$PEF#VJME3VOOFS $PEF#VJMEΛͬͨ4FMGIPTUFE3VOOFSͷηοτΞοϓΛࢧԉ AWS Cloud AWS Cloud Network Load Balancer
NAT gateway GitHub Enterprise NAT gateway CodeBuild ɾ$PEF$POOFDUJPOTϗετ ɾ$PEF$POOFDUJPOTଓ ɾ8FCIPPL ͜ͷϦιʔεҰࣜΛॱ൪ʹ࡞
$PEF#VJME3VOOFSͷߏ $-*·ͨίϯιʔϧͰηοτΞοϓ͕ඞཁͳϦιʔε͋Γ $PEF$POOFDUJPOTϗετͱଓʢ(JU)VC"QQTઃఆʣɺ8FCIPPL
/"54DIFEVMFS /"5(BUFXBZఀࢭͰ͖ͳ͍ͷͰɺεέδϡʔϧͰ࡞আ͢Δઓ๏ͰίετΛઅ AWS Cloud Step Functions NAT Gateway SNS Create
Stack Execute Scheduler User Error Notification Publish Step Functions Execute Scheduler Publish Delete Stack
/"54DIFEVMFSͷߏ
ϩʔίʔυº1MBUGPSN&OHJOFFSJOH ͷ՝
ϩʔίʔυº1MBUGPSN&OHJOFFSJOHͷ՝ • ,"(ͷ৫ܗଶʹجͮ͘ఏڙൣғͷݶք • ࣄۀձࣾͱҟͳΓɺ֤Ҋ֤݅νʔϜͰγεςϜ͕ҟͳΔ • "84͚ͩͰͳ͘(PPHMF$MPVE"[VSFͷҊ݅ͦͦ͜͜ ˠ5FSSBGPSNͳͲͷशख़ͱϝϯςφϯεͷඞཁੑ͕ٻΊΒΕΔ •
ϓϥοτϑΥʔϜνʔϜͷݶք • ΧόʔͰ͖Δٕज़ྖҬ͕ݶΒΕͯ͠·͏ ˠʮࢧԉͰ͖ΔͷʯͱʮٻΊΒΕ͍ͯΔͷʯͷΞϯϚον • πʔϧ૿ՃʹΑΔϝϯςφϯεվળ͕Ͱ͖Δ࿑ྗͷෆ • ϩʔίʔυΞϓϩʔν͕ద༻Ͱ͖ͳ͍έʔεׂΓΔ֮ޛ
՝ʹର͢Δ ͭͷղܾࡦ
None
Πϯφʔιʔεͱʁ ΠϯφʔιʔεͰ࢝ΊΔ৫Φʔϓϯιʔε։ൃೖ IUUQTTQFBLFSEFDLDPNZVIBUUPSJOOFSTPVSDFMFBSOJOHQBUIKBQBOFTF ҰݴͰද͢ͱʮࣾΦʔϓϯιʔεʯ
ΠϯφʔιʔεΛؚΊͨ,"(ͷ1MBUGPSN&OHJOFFSJOH ͲͪΒΠϯφʔιʔεʢࣾΦʔϓϯιʔεʣͱͯ͠ѻ͏ ཧӡ༻ͷओମ͕ϓϥοτϑΥʔϜνʔϜ͔༗ࢤ͔ͷҧ͍ LBHUPPMT w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w *B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ w $0/53*#65*/(NEΛઃ͚ɺ։ൃऀ͔ΒͷίϯτϦϏϡʔγϣϯΛΦʔϓϯʹड͚ೖΕ
LBHJTN w ֤νʔϜϧʔϧͳͲɺࣾͷ͋ΒΏΔॴ͔Βఏڙӡ༻͞ΕΔϓϩμΫτ w ϦϙδτϦͷ࡞ϧʔϧʹଇΕ୭Ͱఏڙ0, w ֤ϦϙδτϦͷϧʔϧʹै͑୭ͰίϯτϦϏϡʔτ0, ಠஅͰউखʹ໊͚·ͨ͠
ৄͪ͘͜͠Βʂ IUUQTTQFBLFSEFDLDPNTIJNBHBKJLBHLVCFMMEFWPQT
ֶͿ͜ͱେࣄʂ νʔϜτϙϩδʔ Πϯφʔιʔεύλʔϯ ΠϯφʔιʔεҰछͷ ࣾίϛϡχςΟͳͷͰʜ ͦͷଞ༷ʑͳ ઌਓͷ࣮ફྫ͋Γ
·ͱΊ
·ͱΊ • 1MBUGPSN&OHJOFFSJOHͷऔΓΈʹ͓͚Δϝϯςφϯε ೝෛՙͷʹରԠ͢ΔͨΊɺ"84ͷϩʔίʔυαʔϏεΛ׆༻ ˠ4UFQ'VODUJPOTͱ*OGSBTUSVDUVSF$PNQPTFS • ʮLBHUPPMTʯͱͯ͠ηϧϑαʔϏεπʔϧΛల։ •
ϚϧνΫϥυϦιʔεͷͳͲʹରॲ͘͢ ʮLBHJTNʯͱͯ͠ΠϯφʔιʔεͷऔΓΈਪਐ • ઌਓͷφϨοδͱίϛϡχςΟ͔Βֶͼɺ࣮ફ͢Δʂ
5IBOLZPVʂ