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
インナーソースはじめました @ NES Tech Brewery
Search
SimSta
September 25, 2024
4
140
インナーソースはじめました @ NES Tech Brewery
SimSta
September 25, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
shimagaji
2
290
シマリスを知る!2024 @ Cloud in the Camp Horippa
shimagaji
0
62
(ほぼ)ノーコードでもBedrockしたいっ!! @JAWS-UG Sapporo
shimagaji
4
220
まずServerlessから考える、まずStep Functionsから考える @CloudNative Days Summer 2024 プレイベント
shimagaji
1
240
CodeCatalystで生成AIチャットボットをデプロイしてみた @ クラメソさっぽろ勉強会 #2
shimagaji
0
230
塩漬けダメ、ゼッタイ! サポート切れのIaCツールをTerraformに移行した話
shimagaji
0
170
Bedrock Agentsを搭載した図書管理LINE Chatbotを作ろうとしてみた @ JAWS-UG Yokohama
shimagaji
1
220
AWS認定全冠から始まるクラウドジャーニー @ JAWS-UG Tokyo
shimagaji
0
730
Serverless re:Capしながら LINE Chatbotをほぼノーコードで作る @ JAWS-UG Yokohama
shimagaji
2
200
Featured
See All Featured
What's new in Ruby 2.0
geeforr
342
31k
The Invisible Side of Design
smashingmag
297
50k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
664
120k
GitHub's CSS Performance
jonrohan
1030
450k
Building Applications with DynamoDB
mza
90
6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
A Philosophy of Restraint
colly
203
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Into the Great Unknown - MozCon
thekraken
31
1.4k
Practical Orchestrator
shlominoach
186
10k
The Cost Of JavaScript in 2023
addyosmani
43
5.9k
Transcript
Πϯφʔιʔε ͡Ί·ͨ͠ 4JN4UB !TIJNBHBKJ /&44BQQPSP5FDI#SFXFSZ /FT5FDI#SFXFSZ
ˡϗϫΠτγϚϦεͷΞϧλ
ࣗݾհ ɹ࡛ۄɹʢʙେֶͷ్த·Ͱʣ ˠࡳຈɹʢʙେֶɾʣ ˠਆಸʢʙେֶӃʙब৬ͯ͘͠Β͍ʣ ˠࡳຈɹʢʙͪΐͬͱɺݱࡏʣ ͖ͳ"84αʔϏεɿ4UFQ'VODUJPOT 4JN4UBʢΦϯϥΠϯͷ͕ͨ͢ʣ ,%%*ΞδϟΠϧ։ൃηϯλʔגࣜձࣾ ϓϥοτϑΥʔϜΤϯδχΞϦϯά෦ !TIJNBHBKJ
5XJUUFS 4FSWFSMFTT ΧάΧά
ϗϫΠτγϚϦεͱ Β͍ͯ͠·͢🐿 ˢେνϧλϦε 5XJUUFSΞΧϯτ͋ΔΑ !BMUB@XIJUFDIJQ ࠷ۙॳΊͯ ಈපӃʹߦ͖·ͨ͠
աڈͷొஃࢿྉΞοϓͯ͠·͢ʢࠓͷࢿྉʂʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJ
ݸਓϒϩάΛӡ༻͍ͯ͠·͢͠·͕͡ ͠Ήͦ͘ "84ΞοϓσʔτΛ ຖिߋ৽ʂ ͦͷଞ ΫϥυΨδΣοτ γϚϦεͷͳͲ
"HFOEB • ϓϥοτϑΥʔϜΤϯδχΞͷ͓ࣄ • Πϯφʔιʔεͱͷग़ձ͍ • ΠϯφʔιʔεͷޮՌͱ͠͞ • ·ͱΊ
ϓϥοτϑΥʔϜΤϯδχΞͷ ͓ࣄ
ϓϥοτϑΥʔϜΤϯδχΞϦϯάͬͯʁ ϓϥοτϑΥʔϜɾΤϯδχΞϦϯάͱԿ͔ʁ(BSUOFS IUUQTXXXHBSUOFSDPKQKBBSUJDMFTXIBUJTQMBUGPSNFOHJOFFSJOH ҎԼΛຬͨ͢ϓϥοτϑΥʔϜΛ ߏங͢ΔΞϓϩʔνΛࢦ͢ ඪɿ ɾ։ൃऀͷੜ࢈ੑ্ ɾϏδωεՁͷग़ తɿ
ɾ։ൃऀͷೝෛՙΛܰݮ ɾ։ൃऀͷΤΫεϖϦΤϯε্ खஈɿ ɾηϧϑαʔϏεػೳͷॆ࣮ ɾΠϯϑϥӡ༻ͷࣗಈԽ
,"(ϓϥοτϑΥʔϜνʔϜͷ͓ࣄ • ࣾڞ௨(JU)VC&OUFSQSJTF4FSWFSʢ()&4ʣͷཧ • ()&4ࣗࣾΫϥυڥͷίετ࠷దԽ • ࣗࣾΫϥυڥ*E1ͷӡ༻ɺཧ • ࣗࣾΫϥυڥͱ֤Ҋ݅ڥͷηΩϡϦςΟվળ
ˠ4FDVSJUZ)VC(VBSE%VUZͷಋೖɺཧͳͲ • ֤εΫϥϜνʔϜͷώΞϦϯάɺࢧԉϝχϡʔ࡞ • ͦͷଞɺͪΐͬͱ֎Ͱͤͳ͍͜ͱͳͲ
,"(ϓϥοτϑΥʔϜνʔϜͷ͓ࣄ • ࣾڞ௨(JU)VC&OUFSQSJTF4FSWFSʢ()&4ʣͷཧ • ()&4ࣗࣾΫϥυڥͷίετ࠷దԽ • ࣗࣾΫϥυڥ*E1ͷӡ༻ɺཧ • ࣗࣾΫϥυڥͱ֤Ҋ݅ڥͷηΩϡϦςΟվળ
ˠ4FDVSJUZ)VC(VBSE%VUZͷಋೖɺཧͳͲ • ֤εΫϥϜνʔϜͷώΞϦϯάɺࢧԉϝχϡʔ࡞ • ͦͷଞɺͪΐͬͱ֎Ͱͤͳ͍͜ͱͳͲ ˠ͜ΕϓϥοτϑΥʔϜΤϯδχΞϦϯάͬΆ͍ ˠ͜ΕϓϥοτϑΥʔϜΤϯδχΞϦϯάͬΆ͍͚Ͳൿີ ˠ͜͜ΑΓ্Πϯϑϥ$$P&ཁૉڧΊ
ηϧϑαʔϏεܕͷϓϥοτϑΥʔϜ 1MBUGPSN&OHJOFFSJOHPO4FSWFSMFTT IUUQTTQFBLFSEFDLDPN@LFOTIQMBUGPSNFOHJOFFSJOHPOTFSWFSMFTT • ҎԼͭʮ1MBUGPSN&OHJOFFSJOHPO4FSWFSMFTTʯ͔Βൈਮ • "NB[PO$PEF$BUBMZTU • "844FSWJDF$BUBMPH •
#BDLTUBHF • ॳظ(JU)VCͳͲͷίʔυϦϙδτϦͰՄೳͰʁͱߟ͑Δ ˠࣾͷ(JU)VC&OUFSQSJTF0SHBOJ[BUJPOΛબఆ
(JU)VC&OUFSQSJTFͷඋʹΑΔ൫ݻΊ ϙʔλϧϦϙδτϦͷ࡞ ϦϙδτϦͷ࡞ϧʔϧ੍ఆ 5FBNTʹΑΔݖݶཧ
(JU)VC&OUFSQSJTFͷඋʹΑΔ൫ݻΊ • ೝෛՙͷݮͱՄࢹੑ্ʹΑΔෛ࠴Խͷ༧ • ϙʔλϧϦϙδτϦͷ࡞ • ϦϙδτϦ࡞ϧʔϧͷ੍ఆ • ηΩϡϦςΟ໘ͷݟ͠ •
5FBNTʹΑΔϦϙδτϦ୯ҐͷΞΫηεݖݶઃఆ • 0SHBOJ[BUJPOʹ͓͚Δ#BTF1FSNJTTJPOTͷແޮԽ • ϦϙδτϦͷ7JTJCJMJUZΛݪଇ1SJWBUFมߋ • ࢧԉπʔϧ܈ͷѪশߟҊ
ࢧԉπʔϧ܈ʮLBHUPPMTʯͷߟҊ wҎԼͷΑ͏ͳͷΛࠓޙ࡞ɾఏڙ༧ఆ w (JU)VC"DUJPOT༻ͷ$PEF#VJME3VOOFSΛల։͢Δπʔϧ w /"5(BUFXBZΛࢦఆͨ࣌ؒ͠ͷΈϓϩϏδϣχϯά͢Δπʔϧ w ։ൃڥ͚ʹ/"5ΠϯελϯεΛ࡞͢ΔςϯϓϨʔτ wίϯϙʔωϯτίʔυεχϖοτͳͲɺ։ൃΛαϙʔτ͢Δͷ࡞͍ͨ͠ LBHUPPMT
w ϓϥοτϑΥʔϜνʔϜ͕ఏڙ͢ΔࢧԉπʔϧʢϦϙδτϦʣ܈ w *B$ɺίʔυεχϖοτͳͲศརͳπʔϧɺηΩϡϦςΟ্࣮ࢪͯ͠ཉ͍͠ͷΛల։༧ఆ
LBHUPPMTୈɿ(VBSE%VUZ4VNNBSJ[FS (VBSE%VUZ͔Βͷ௨Λ ͦͷ··4/4Ͱૹ৴͢Δͱ ͚ͬ͜͏ೝෛՙߴ͍ͷͰ શ෦#FESPDLʹ͛ͯ ͍͍ײ͡ʹͯ͠௨͢Δπʔϧ
(VBSE%VUZ4VNNBSJ[FSͷߏ ௨ઌʹ4MBDLʢ&ϝʔϧՄʣΛ͏͜ͱͰ ʢ΄΅ʣϊʔίʔυΛ࣮ݱ AWS Cloud GuardDuty Step Functions Bedrock SNS
Invoke Execute EventBridge User Threats E-Mail Publish Slack Security Hub ᶃ(VBSE%VUZͷΠϕϯτΛर͏ ᶄ4FDVSJUZ)VCʹू͞ΕͨΠϕϯτΛर͏ ͷͲͪΒ͔Λબͯ͠σϓϩΠՄೳ
LBHUPPMTʢϓϥοτϑΥʔϜΤϯδχΞϦϯάʣͷ՝ • ,"(ͷ৫ܗଶ • ࣄۀձࣾͱҟͳΓɺ֤Ҋ֤݅νʔϜͰγεςϜ͕ҟͳΔ • "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ͬͯͳʹʁ
LBHJTNͷJTNͬͯͳʹʁ JOOFSTPVSDFNBO
ΠϯφʔιʔεͷޮՌͱ͠͞
ΠϯφʔιʔεͷޮՌ • Φʔϓϯͳڥͷߏங • πʔϧφϨοδͷڞ༗ɺࣾશମͰͷੵ • ʮंྠͷ࠶ൃ໌ʯͷࢭ • ίϥϘϨʔγϣϯจԽͷৢ •
ϑΟʔυόοΫͱίϯτϦϏϡʔγϣϯͷଅਐ • νʔϜؒͷڠྗମ੍ͷڧԽɺαΠϩԽͷղফ • ϓϩμΫτͱ৫ͷվળ • ࣭։ൃੜ࢈ੑͷ্ • ৽ͨͳΠϊϕʔγϣϯͷଅਐ
Πϯφʔιʔεͷ͠͞ • ܧଓతͳϝϯςφϯεͷཁٻ • ϝϯςφϯε͞Εͳ͍πʔϧφϨοδෛ࠴Խ͢Δ • ʮ͍͔͠ΒϝϯςͰ͖ͳ͍ʯʮఏڙͯ͠ऴΘΓʯΛແ͍ͨ͘͠ • ίϥϘϨʔγϣϯจԽͷৢ •
(JWFͱ5BLFͷ͕ؔҰํతʹͳΓ͗͢ͳ͍Α͏ʹ͢Δ • ࣗൃతͳίϯτϦϏϡʔγϣϯ͕ߦ͑ΔڥͱจԽ͕ඞཁ • վળʹΑΔޮՌͷଌఆ • ޮՌΛ࣮ײ͢ΔͨΊʹࢦඪΛઃ͚ɺ֤Ҋ݅Ͱܭଌͯ͠Β͏
Πϯφʔιʔεͷ͠͞ • ܧଓతͳϝϯςφϯεͷཁٻ • ϝϯςφϯε͞Εͳ͍πʔϧφϨοδෛ࠴Խ͢Δ • ʮ͍͔͠ΒϝϯςͰ͖ͳ͍ʯʮఏڙͯ͠ऴΘΓʯΛແ͍ͨ͘͠ • ίϥϘϨʔγϣϯจԽͷৢ •
(JWFͱ5BLFͷ͕ؔҰํతʹͳΓ͗͢ͳ͍Α͏ʹ͢Δ • ࣗൃతͳίϯτϦϏϡʔγϣϯ͕ߦ͑ΔڥͱจԽ͕ඞཁ • վળʹΑΔޮՌͷଌఆ • ޮՌΛ࣮ײ͢ΔͨΊʹࢦඪΛઃ͚ɺ֤Ҋ݅Ͱܭଌͯ͠Β͏ ˠࣾͷʮΠϯφʔιʔεʯͱ͍͏ίϛϡχςΟΛӡӦ͍ͯ͘͠͠͞
ʮ͠͞ʯʹର͢Δ,"(ͷ͍͍ॴʢએʣ • ΞδϦςΟͱࣗ༝͕ߴ͍ • উखʹLBHUPPMTͱ͔LBHJTNͱ͔࡞ͬͯڐ͞ΕΔ • ͋Δఔࣗݾͷʹ͓͍ͯਐΊΒΕΔͷͰૉૣ͘औΓΊΔ • ࣦഊΛաʹΊΔจԽ͕ͳ͍ •
৺ཧతͳϓϨογϟʔ͕΄ͱΜͲͳ͍ • ʮೋਓʹགྷΔਓʯ͕͍Δ • औΓΈʹରͯͬͯ͘͠ΕΔޙԡͯ͘͠͠ΕΔਓ͕͍Δ • ʮΠϯφʔιʔεʯͱ͍͏ίϛϡχςΟӡӦ͕ʢൺֱతʣָʹ࣮ફͰ͖Δ ʢࣗͰ͖Δ΄Ͳ؆୯Ͱͳ͍ͷͰؤுΓ·͢ʣ νʔϜʹϊϦΛͨΒͨ࣌͠ʹ͍ͨʮೋਓʹགྷΔਓʯͷڞ௨ IUUQTTQFBLFSEFDLDPNQJZPOBLBKJNBUJNVOJOPSJXPNPUBSBTJUBTIJOJJUBFSSFONVOJZPOHSVSFOOPHPOHUPOHEJBO
ࢀߟɿΞδϟΠϧ։ൃηϯλʔݑষ
ԿΑΓֶΜͰ࣮ફ͖͢ʂ νʔϜτϙϩδʔ Πϯφʔιʔεύλʔϯ ίϛϡχςΟ
࣮ફྫɿEFWJPΑΓ Πϯφʔιʔε1MBUGPSN&OHJOFFSJOH͍ͣΕ,"(͕ࢦ͖࢟͢ͷҰͭͳؾ͕͢Δ $MBTTNFUIPEྲྀͷ1MBUGPSN&OHJOFFSJOH IUUQTEFWDMBTTNFUIPEKQBSUJDMFTDMBTTNFUIPEQMBUGPSNFOHJOFFSJOHEFWJP
࣮ફྫɿ4FSWFSMFTT%BZT5PLZPΑΓ 1MBUGPSN&OHJOFFSJOHͷ࣮ફʹఆ·ͬͨਖ਼ղແ͘ɺ৫ʹద߹͍ͤͯ͘͜͞ͱ͕ॏཁͩͱ௧ײ ͍·͋ΔνʔϜʹϑΟοτͤ͞Δ4FSWFSMFTTͦͯ͠1MBUGPSN&OHJOFFSJOHͷઓ IUUQTTQFBLFSEFDLDPNTFJLFTFSWFSMFTTGJUTUIFUFBNZPVIBWFBOEQMBUGPSNFOHJOFFSJOH
·ͱΊ
·ͱΊ • ϓϥοτϑΥʔϜΤϯδχΞϦϯάͷऔΓΈΛ࢝ΊΔ্Ͱɺ ΠϯφʔιʔεʹײԽ͞Εɺཱ྆ͤ͞ΔܗͰൃ ˠʮLBHUPPMTʯͱʮLBHJTNʯ • ΠϯφʔιʔεʹΑΓνʔϜؒͷίϥϘϨʔγϣϯ͕ਪਐ͞Εɺ
ंྠͷ࠶ൃ໌Λ͙͜ͱ͕Ͱ͖Δ • Πϯφʔιʔε׆ಈίϛϡχςΟʹࣅ͍ͯΔ ˠదʹӡӦ͠ͳ͚ΕޮՌΛൃشͤͣɺٕज़ෛ࠴ͷԹচͱͳΔ • ϓϥοτϑΥʔϜΤϯδχΞͱͯ͠ηϧϑαʔϏεܕͷࢧԉΛਪਐ Πϯφʔιʔε׆ಈͱͷ૬ޮՌʹΑΓɺΑΓ։ൃऀମݧͷ্Λࢦ͢ • ઌਓͷφϨοδͱίϛϡχςΟ͔Βֶͼɺ࣮ફ͢Δʂ
5IBOLZPVʂ