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
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevO...
Search
SimSta
November 15, 2024
0
75
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
SimSta
November 15, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
16
日本からre:Inventを支えた活動報告&ミニre:Cap @ JAWS-UG Sapporo
shimagaji
0
26
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
shimagaji
1
180
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
88
KDDI CCoEからKAG Platform Engineeringへ受け継がれたもの、変わったもの @ CCoE実践者コミュニティ北海道
shimagaji
0
85
インナーソースはじめました @ NES Tech Brewery
shimagaji
4
170
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
shimagaji
2
330
シマリスを知る!2024 @ Cloud in the Camp Horippa
shimagaji
0
69
(ほぼ)ノーコードでもBedrockしたいっ!! @JAWS-UG Sapporo
shimagaji
4
250
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Building Your Own Lightsaber
phodgson
103
6.1k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
Practical Orchestrator
shlominoach
186
10k
YesSQL, Process and Tooling at Scale
rocio
169
14k
For a Future-Friendly Web
brad_frost
175
9.4k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Transcript
εΫϥϜνʔϜͷ%FW0QTΛࢧ͑Δ 1MBUGPSN&OHJOFFSJOH 4JN4UB !TIJNBHBKJ ࣮ફ%FW0QTʂʙ,"(ͱLVCFMMͷऔΓΈʙ LLEFWPQT
ˡϗϫΠτγϚϦεͷΞϧλ
ࣗݾհ ɹ࡛ۄɹʢʙେֶͷ్த·Ͱʣ ˠࡳຈɹʢʙେֶɾʣ ˠਆಸʢʙେֶӃʙब৬ͯ͘͠Β͍ʣ ˠࡳຈɹʢʙͪΐͬͱɺݱࡏʣ ͖ͳ"84αʔϏεɿ4UFQ'VODUJPOT 4JN4UBʢΦϯϥΠϯͷ͕ͨ͢ʣ ,%%*ΞδϟΠϧ։ൃηϯλʔגࣜձࣾ ϓϥοτϑΥʔϜΤϯδχΞϦϯά෦ !TIJNBHBKJ
5XJUUFS 4FSWFSMFTT ͝ΧάΧά
ϗϫΠτγϚϦεͱ Β͍ͯ͠·͢🐿 ˢେνϧλϦε 5XJUUFSΞΧϯτ͋ΔΑ !BMUB@XIJUFDIJQ
աڈͷొஃࢿྉΞοϓͯ͠·͢ʢࠓͷࢿྉʂʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJ
ݸਓϒϩάΛӡ༻͍ͯ͠·͢͠·͕͡ ͠Ήͦ͘ "84ΞοϓσʔτΛ ຖिߋ৽ʂ ͦͷଞ ΫϥυΨδΣοτ γϚϦεͷͳͲ
͠Ήͦ͘3BEJP "84ͷΞοϓσʔτΛαΫοͱΩϟονΞοϓ !͠Ήͦ͘ ຖिਫ༵ʙ ৴தʂ
None
"HFOEB • 1MBUGPSN&OHJOFFSJOHͷ֓ཁ • ,"(ͷ1MBUGPSN&OHJOFFSJOHͱ ࢧԉπʔϧ܈ʮLBHUPPMTʯ • Πϯφʔιʔεͷ׆༻ •
·ͱΊ
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&OHJOFFSJOHͱ ࢧԉπʔϧ܈ʮLBHUPPMTʯ
,"(1'&νʔϜͷ͓ࣄ • ࣾڞ௨(JU)VC&OUFSQSJTF4FSWFSʢ()&4ʣͷཧ • ()&4ࣗࣾΫϥυڥͷίετ࠷దԽ • ࣗࣾΫϥυڥ*E1ͷӡ༻ɺཧ • ࣗࣾΫϥυڥͱ֤Ҋ݅ڥͷηΩϡϦςΟվળ
ˠ4FDVSJUZ)VC(VBSE%VUZͷಋೖɺཧͳͲ • ֤εΫϥϜνʔϜͷώΞϦϯάɺࢧԉϝχϡʔ࡞ • ͦͷଞ ։ൃऀڥͷҰ෦Πϯϑϥཧ෦తͳ$$P&Λ୲͍ͳ͕Β গͣͭ͠1MBUGPSN&OHJOFFSJOHΛ࣮ફ
ηϧϑαʔϏεܕͷϓϥοτϑΥʔϜ 1MBUGPSN&OHJOFFSJOHPO4FSWFSMFTT IUUQTTQFBLFSEFDLDPN@LFOTIQMBUGPSNFOHJOFFSJOHPOTFSWFSMFTT • "84ͷ߹ɺҎԼͷ͕ͭީิʹͳΓಘΔ • "NB[PO$PEF$BUBMZTU • "844FSWJDF$BUBMPH •
#BDLTUBHF • (JU)VCͳͲͷίʔυϦϙδτϦͰఏڙՄೳ ˠ,"(Ͱࣾͷ(JU)VC&OUFSQSJTF0SHBOJ[BUJPOΛ׆༻
(JU)VC&OUFSQSJTFͷඋʹΑΔ൫ݻΊ ϙʔλϧϦϙδτϦͷ࡞ ϦϙδτϦͷ࡞ϧʔϧ੍ఆ 5FBNTʹΑΔݖݶཧ
ηϧϑαʔϏεπʔϧ܈ʮLBHUPPMTʯ w1MBUGPSN&OHJOFFSJOHͱͯ͠ͷࢧԉπʔϧΛఏڙ͍ͨ͠ͱ͍͏ϞνϕʔγϣϯͰ։࢝ w·ͣݩʑͷ1'&෦ʹΑΔۀʢΠϯϑϥ$$P&دΓʣʹؔ࿈͢ΔͷΛఆ wηΩϡϦςΟɺΨόφϯεܥ wίετͷݮ w(JU)VC&OUFSQSJTFͷར༻ิॿ LBHUPPMT w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w
*B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ
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ʹ͛ͯ ͍͍ײ͡ʹͯ͠௨
ྫɿ(VBSE%VUZ4VNNBSJ[FSͷߏ *B$ʹ*OGSBTUSVDUVSF$PNQPTFSɺΞϓϦέʔγϣϯʹ4UFQ'VODUJPOTΛར༻ͯ͠ ϩʔίʔυ͔ͭ(6*Ͱͷࢹ֮ԽʹΑΔೝෛՙͷܰݮΛ࣮ݱ AWS Cloud GuardDuty Step Functions Bedrock SNS
Invoke Execute EventBridge User Threats E-Mail Publish Slack Security Hub ᶃ(VBSE%VUZͷΠϕϯτΛर͏ ᶄ4FDVSJUZ)VCʹू͞ΕͨΠϕϯτΛर͏ ͷͲͪΒ͔Λબͯ͠σϓϩΠՄೳ
Πϯφʔιʔεͷ׆༻
,"(ͷ৫ͱ1MBUGPSN&OHJOFFSJOHతͳ՝ • ,"(ͷ৫ܗଶ • ࣄۀձࣾͱҟͳΓɺ֤Ҋ֤݅νʔϜͰγεςϜ͕ҟͳΔ • "84͚ͩͰͳ͘(PPHMF$MPVE"[VSFͷҊ݅ͦͦ͜͜ • ਤʢཱྀߦઌʣަ௨खஈʢࣗಈंɺమಓɺඈߦػɺધʣ͕όϥόϥ
ˠಓ࿏͚ͩͰͳ͘ઢ࿏ۭ࿏ɺߤ࿏උ͠ͳ͚ΕͳΒͳ͍ • ϓϥοτϑΥʔϜνʔϜͷݶք • ΧόʔͰ͖Δٕज़ྖҬ͕ݶΒΕͯ͠·͏ ˠʮࢧԉͰ͖ΔͷʯͱʮٻΊΒΕ͍ͯΔͷʯͷΞϯϚον • πʔϧ૿ՃʹΑΔϝϯςφϯεվળ͕Ͱ͖Δ࿑ྗͷෆ • ಓ࿏Ҏ֎Λ։Ͱ͖ΔϦιʔεϊϋ͕Γͳ͍ • ޮՌతʹ֤νʔϜΛࢧԉͰ͖Δ͔ͱ͍͏ෆ҆ɾɾɾ
ͦΜͳͱ͖ʹग़ձͬͨͷ͕ ͪ͜Β
IUUQTZPVUVCF/0I@J'-:D TJ@,NF.TX#RER1(
None
ɹͦ͏ͩɺ ɹΠϯφʔιʔεɺ ɹΖ͏ɻ
Πϯφʔιʔεͱʁ ΠϯφʔιʔεͰ࢝ΊΔ৫Φʔϓϯιʔε։ൃೖ IUUQTTQFBLFSEFDLDPNZVIBUUPSJOOFSTPVSDFMFBSOJOHQBUIKBQBOFTF ҰݴͰද͢ͱʮࣾΦʔϓϯιʔεʯ
LBHUPPMTͷํมߋ LBHUPPMT w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w *B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ w $0/53*#65*/(NEΛઃ͚ɺ։ൃऀ͔ΒͷίϯτϦϏϡʔγϣϯΛΦʔϓϯʹड͚ೖΕ
LBHJTNͷՃ ͲͪΒΠϯφʔιʔεʢࣾΦʔϓϯιʔεʣͷҐஔ͚ ཧӡ༻ͷओମ͕ϓϥοτϑΥʔϜνʔϜ͔༗ࢤ͔ͷҧ͍ LBHUPPMT w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w *B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ w $0/53*#65*/(NEΛઃ͚ɺ։ൃऀ͔ΒͷίϯτϦϏϡʔγϣϯΛΦʔϓϯʹड͚ೖΕ
LBHJTN w ֤νʔϜϧʔϧͳͲɺࣾͷ͋ΒΏΔॴ͔Βఏڙӡ༻͞ΕΔϓϩμΫτ w ϦϙδτϦͷ࡞ϧʔϧʹଇΕ୭Ͱఏڙ0, w ֤ϦϙδτϦͷϧʔϧʹै͑୭ͰίϯτϦϏϡʔτ0, ಠஅͰউखʹ໊͚·ͨ͠
LBHJTNͷJTNͬͯͳʹʁ JOOFSTPVSDFNBO
1MBUGPSN&OHJOFFSJOHºΠϯφʔιʔεͷޮՌ • Φʔϓϯͳڥͷߏங • πʔϧφϨοδΛࣾશମͰڞ༗ɺੵ • ʮंྠͷ࠶ൃ໌ʯͷࢭɺαΠϩԽͷղফ • ίϥϘϨʔγϣϯจԽͷৢ •
ࣗൃతͳϑΟʔυόοΫͱίϯτϦϏϡʔγϣϯͷଅਐ • νʔϜؒɺνʔϜͱ1'&νʔϜؒͷίϛϡχέʔγϣϯڧԽ ˠ֤νʔϜͷʮधཁʯΛΑΓѲͰ͖ΔΑ͏ʹͳΔ • ϓϩμΫτͱ৫ͷվળ • πʔϧͷ࣭։ൃੜ࢈ੑͷ্
,"(1MBUGPSN&OHJOFFSJOHͷ՝ • Πϯφʔιʔεʮ1'&νʔϜͷෛ୲ܰݮʯΛҙຯ͠ͳ͍ • ϝϯςφϯεͷͨΊʹ֤ఏڙπʔϧΛཧղ͢Δඞཁ͕͋Δ • ։ൃνʔϜ͕ٻΊ͍ͯΔͷΛΈऔΓɺఏڙ͢ΔΊΔ • ʮࣗൃతͳࢀՃʯΛଅ͢ڥͮ͘Γ͕ٻΊΒΕΔ •
πʔϧͷఏڙίϯτϦϏϡʔγϣϯ͋͘·Ͱળҙʢ༗ࢤʣ • ͍͔ʹଟ͘ͷϝϯόʔʹಈػ͚Λ༩͑ɺר͖ࠐΊΔ͔͕ॏཁ ˠҰछͷࣾίϛϡχςΟΛ1'&νʔϜ͕ӡӦ͢ΔΑ͏ͳߏਤ • ޮՌͷଌఆΛߦ͏ͨΊͷࢦඪ୳͠ • ΠϯφʔιʔεͷҙٛӨڹΛఆྔతʹଌΔʢ4UBSͳͲʁʣ
ԿΑΓֶΜͰ࣮ફ͖͢ʂ νʔϜτϙϩδʔ Πϯφʔιʔεύλʔϯ ίϛϡχςΟ ͦͷଞ༷ʑͳ ઌਓͷ࣮ફྫ͋Γ
·ͱΊ
·ͱΊ • 1MBUGPSN&OHJOFFSJOHͷऔΓΈΛଅਐ্͍ͯ͘͠Ͱɺ ΠϯφʔιʔεʹײԽ͞Εɺཱ྆ͤ͞ΔܗͰൃ ˠʮLBHUPPMTʯͱʮLBHJTNʯ • 1MBUGPSN&OHJOFFSJOHͱΠϯφʔιʔεͱͷΈ߹ΘͤʹΑΓɺ
αΠϩԽͷղফंྠͷ࠶ൃ໌ͷ੍͕ظͰ͖Δ • Πϯφʔιʔε׆ಈ1'&͕ӡӦ͢ΔίϛϡχςΟ ˠଟ͘ͷਓΛר͖ࠐΈͳ͕ΒɺࣗൃతͳจԽΛৢ͢Δ • ઌਓͷφϨοδͱίϛϡχςΟ͔Βֶͼɺ࣮ફ͢Δʂ
5IBOLZPVʂ