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
SimSta
November 22, 2024
0
62
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
SimSta
November 22, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
shimagaji
0
66
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
70
KDDI CCoEからKAG Platform Engineeringへ受け継がれたもの、変わったもの @ CCoE実践者コミュニティ北海道
shimagaji
0
83
インナーソースはじめました @ NES Tech Brewery
shimagaji
4
160
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
shimagaji
2
320
シマリスを知る!2024 @ Cloud in the Camp Horippa
shimagaji
0
64
(ほぼ)ノーコードでもBedrockしたいっ!! @JAWS-UG Sapporo
shimagaji
4
240
まずServerlessから考える、まずStep Functionsから考える @CloudNative Days Summer 2024 プレイベント
shimagaji
1
260
CodeCatalystで生成AIチャットボットをデプロイしてみた @ クラメソさっぽろ勉強会 #2
shimagaji
0
240
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
A designer walks into a library…
pauljervisheath
204
24k
Agile that works and the tools we love
rasmusluckow
327
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
A Modern Web Designer's Workflow
chriscoyier
693
190k
10 Git Anti Patterns You Should be Aware of
lemiorhan
655
59k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Unsuck your backbone
ammeep
668
57k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Facilitating Awesome Meetings
lara
50
6.1k
Into the Great Unknown - MozCon
thekraken
32
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ʂ