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からはじめるBedrock @ JAWS-UG AI/ML
Search
SimSta
September 25, 2024
2
400
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
SimSta
September 25, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
210
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
270
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
34
日本からre:Inventを支えた活動報告&ミニre:Cap @ JAWS-UG Sapporo
shimagaji
0
82
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
shimagaji
1
280
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
shimagaji
0
95
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
110
KDDI CCoEからKAG Platform Engineeringへ受け継がれたもの、変わったもの @ CCoE実践者コミュニティ北海道
shimagaji
0
99
インナーソースはじめました @ NES Tech Brewery
shimagaji
4
220
Featured
See All Featured
How GitHub (no longer) Works
holman
314
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Documentation Writing (for coders)
carmenintech
71
4.8k
Designing for Performance
lara
608
69k
Fireside Chat
paigeccino
37
3.5k
The Invisible Side of Design
smashingmag
299
50k
Being A Developer After 40
akosma
91
590k
A Tale of Four Properties
chriscoyier
159
23k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
840
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Typedesign – Prime Four
hannesfritz
41
2.6k
Transcript
4UFQ'VODUJPOT͔Β͡ΊΔ #FESPDL 4JN4UB !TIJNBHBKJ +"846("*.-ࢧ෦ KBXTVH@BJNM
ˡϗϫΠτγϚϦεͷΞϧλ
ࣗݾհ ɹ࡛ۄɹʢʙେֶͷ్த·Ͱʣ ˠࡳຈɹʢʙେֶɾʣ ˠਆಸʢʙେֶӃʙब৬ͯ͘͠Β͍ʣ ˠࡳຈɹʢʙͪΐͬͱɺݱࡏʣ ͖ͳ"84αʔϏεɿ4UFQ'VODUJPOT 4JN4UBʢΦϯϥΠϯͷ͕ͨ͢ʣ ,%%*ΞδϟΠϧ։ൃηϯλʔגࣜձࣾ ϓϥοτϑΥʔϜΤϯδχΞϦϯά෦ !TIJNBHBKJ
5XJUUFS 4FSWFSMFTT ΧάΧά
ϗϫΠτγϚϦεͱ Β͍ͯ͠·͢🐿 5XJUUFSΞΧϯτ͋ΔΑ !BMUB@XIJUFDIJQ େνϧλϦε͍ΔΑ
աڈͷొஃࢿྉΞοϓͯ͠·͢ʢࠓͱࡢͷࢿྉʂʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJ
ݸਓϒϩάΛӡ༻͍ͯ͠·͢͠·͕͡ ͠Ήͦ͘ "84ΞοϓσʔτΛ ຖिߋ৽ʂ ͦͷଞ ΫϥυΨδΣοτ γϚϦεͷͳͲ
"HFOEB • #FESPDL͕ΊͪΌͪ͘ΌΞπ͍ • #FESPDLΛ؆୯ʹ͍͍ͨʂ • 4UFQ'VODUJPOTͷ͢ʍΊ • ΞϓϦέʔγϣϯͷྫ •
4UFQ'VODUJPOTͷҙ • ·ͱΊ
͡Ίʹ
ࠓɺ#FESPDL͕ΊͪΌͪ͘ΌΞπ͍
#FESPDLͷػೳ Ϟσϧݺͼग़͠ Ҏ্ͷج൫Ϟσϧ͔Β ༻్ʹ߹ΘͤͯબΜͰݺͼग़ͤΔ ը૾ೝࣝը૾ੜɺຒΊࠐΈ0, ,OPXMFEHF#BTFT ؆୯ͳηοτΞοϓͰ 4ʹอଘͨ͠จॻΛͱʹ ຊ֨తͳ3"(Λ࣮Ͱ͖Δ "HFOUT
Ϟσϧ͕ࢦࣔʹԠͯࣗ͡తʹ 3"(-BNCEBΛ࣮ߦͯ͠ λεΫΛ͜ͳͯ͘͠ΕΔ • ϓϩϏδϣϯυεϧʔϓοτ • ਪύϥϝʔλͷௐ • 1SJWBUF-JOL • $IBUXJUIZPVSEPDVNFOU • ϞσϧධՁ • ίϥϘϨʔγϣϯʢ4UVEJPʣ • ΨʔυϨʔϧ • ΥʔλʔϚʔΫݕग़ • ΧελϜϞσϧΠϯϙʔτ • ϓϩϯϓτϚωδϝϯτ • 1SPNQU'MPXT FUD
͍ͭʹ$MBVEF͕౦ژϦʔδϣϯʹՃʂ Ӊ࠷Ͱʢग़ݱͯ͠ޙʣهࣄॻ͖·ͨ͠ IUUQTRJJUBDPNTIJNBHBKJJUFNTCCEFGBEBGGGC
ೖهࣄ͋Γ·͢ IUUQTEFWDMBTTNFUIPEKQ
ॻ੶ग़·ͨ͠#FESPDL։ൃೖ 4JN4UBͪΐͬͱ͚͓ͩख͍͍͖ͤͯͨͩ͞·ͨ͠
#FESPDLΛͬͨ ΞϓϦέʔγϣϯͷྫ
Ϗδͭ͘ʂʢ%9ࣄۀاըମݧΞϓϦʣ Ӊ࠷ Λࢦͯ͠"NB[PO#FESPDLΛຊ֨׆༻ͨ͠ϓϩμΫτΛ։ൃ͠·ͨ͠ʂ IUUQTEFWFMPQFSTLEEJDPNCMPH5.%QDEJ5R3$.[SEQ;P #FESPDLͷ("͔Β ޙͷʹ ϓϨεϦϦʔε͕ग़ͨ Ӊ࠷ͷ#FESPDLΞϓϦ
͔͙ͨΜʢ4MBDL͔Β͑ΔνϟοτϘοτʣ +"84%":4$ϑϧ"84ͷϚϧνςφϯτ4BB4ੜ"*ΞϓϦʮ͔͙ͨΜʯ։ൃൿ IUUQTXXXEPDTXFMMDPNTTL[L;+-.72KBXTEBZT@D@LBHVUBOQ
ٞࣄύοΫϯʢ3F"DU"HFOUʹΑΔӦۀࢧԉπʔϧʣ ,%%*ΞδϟΠϧ։ൃηϯλʔͷ"84ੜ"*ࣄྫɿ"NB[PO#FESPDLͰӦۀ׆ಈΛαϙʔτrٞࣄͱఏҊॻͷ࡞࣌ؒΛݮ IUUQTBXTBNB[PODPNKQCMPHTOFXTBXTHFOBJVTFDBTFTLEEJBHJMFNJOVUFT
Ͱੜ"*ΞϓϦέʔγϣϯͬͯ ࡞ΔͷେมͳΜͰ͠ΐʁ
4JN4UBͷόοΫάϥϯυ • ։ൃʢαϒγεςϜʣܦݧˠ΄΅্ྲྀఔɺίʔυॻ͔ͳ͍ • ࢼݧͷγφϦΦϑΝΠϧΈ͍ͨͳಠࣗݴޠͳΒͨ͘͞Μॻ͍ͨ • Πϯϑϥʢ΄΅ΫϥυʣܦݧˠZBNMͱͪΐͬͱ͚ͩUG • -BNCEBʢ1ZUIPOʣͱϑϩϯτͷ+BWB4DSJQUͪΐͬͱ͚ͩ ίʔυ͋Μ·ॻ͍ͨ͜ͱͳ͍ʢŧŔŕŪƂŜſʣ
ίʔυ͕ॻ͚Ε ͍ΖΜͳ͜ͱ͕Ͱ͖Δͷʹʜɻ
ʢ͋·ΓʣίʔυΛॻ͔ͣʹ #FESPDL͍ͨͬ͠ʂʂ
ʢ΄΅ʣϊʔίʔυͰ#FESPDL͢Δํ๏ͷྫ • 4UFQ'VODUJPOTΛ͏ • (FOFSBUJWF"*6TF$BTFT+1ʢ(FO6ʣΛσϓϩΠ͢Δ • #FESPDL$MBVEF$IBUΛ$PEF$BUBMZTU͔ΒσϓϩΠ͢Δ • ͦͷଞʹ͍Ζ͍Ζ͋ΔΑ
ʢ΄΅ʣϊʔίʔυͰ#FESPDL͢Δํ๏ͷྫ • 4UFQ'VODUJPOTΛ͏ɹˡࠓͪ͜ΒΛհʂ • (FOFSBUJWF"*6TF$BTFT+1ʢ(FO6ʣΛσϓϩΠ͢Δ • #FESPDL$MBVEF$IBUΛ$PEF$BUBMZTU͔ΒσϓϩΠ͢Δ • ͦͷଞʹ͍Ζ͍Ζ͋ΔΑ
൪ʹ͍ͭͯৄࡉΛΓ͍ͨํͪ͜ΒͰհ͍ͯ͠·͢ IUUQTTQFBLFSEFDLDPNTIJNBHBKJKBXTVHTBQQPSPCFESPDLXJUIBMNPTUOPDPEF
4UFQ'VODUJPOTº#FESPDLͰ ΞϓϦέʔγϣϯΛͭ͘Ζ͏ʂ
4UFQ'VODUJPOTͱʁ ϩʔίʔυͰ"84֎෦"1*ͱ࿈ܞͯ͠ΞϓϦέʔγϣϯͷ ϫʔΫϑϩʔΛߏஙͰ͖ΔΦʔέετϨʔγϣϯαʔϏε
4UFQ'VODUJPOTͷັྗ ͪ͜ΒͰࢥ͏ଘޠ͖ͬͯ·ͨ͠ IUUQTTQFBLFSEFDLDPNTIJNBHBKJTFSWFSMFTTGJSTUTUFQGVODUJPOTGJSTU
4UFQ'VODUJPOTº#FESPDLͰ ͭͬͨ͘ΞϓϦέʔγϣϯͷհ
ᶃ΄΅ϊʔίʔυͰͭ͘Δ-*/&νϟοτϘοτ ͠Ήͦ͘ͷϒϩάݪߘΛϕʔεͱͯ͠ "84ͷΞοϓσʔτʹؔ͢Δ࣭ʹ͑·͢ #FESPDL,OPXMFEHF#BTFTΛ 1JOFDPOFͱΈ߹Θͤͯ༻ҙ͠ɺ 3FUSJFWBM"OE(FOFSBUFΛݺͼग़ͯ͠ར༻ ͵ΔΆ
-*/&νϟοτϘοτͷߏ ϑϩϯτΤϯυʹ-*/&Λ͏͜ͱͰ ʢ΄΅ʣϊʔίʔυΛ࣮ݱ AWS Cloud API Gateway Step Functions Bedrock
EventBridge API Destination LINE Webhook Invoke Execute Call HTTPS Endpoint Secrets Manager API Key User API Key S3 Pinecone Retrieve Embedding
4UFQ'VODUJPOTͷϫʔΫϑϩʔ ࠷ॳͷॲཧͰݺͼग़͠ݩνΣοΫ ʢҰக͠ͳ͍ॲཧεΩοϓʣ ݕࡧͯ͠ੜͨ͠ग़ྗΛ ͞Βʹܗ͢ΔελΠϧ ʢվળɾͷ༨͋Γʣ &WFOU#SJEHF"1*%FTUJOBUJPOͰ -*/&ͷΤϯυϙΠϯτΛݺͼग़͠ ճΛϢʔβʔʹૹ৴ ձཤྺΛՃ͢Δ߹
%ZOBNP%#ͷಡΈॻ͖Λ͢
΄΅ίʔυΛॻ͔ͳ͍Ͱ ؆୯ʹνϟοτϘοτ͕࡞ΕΔʂ ͨͩ͠ɾɾɾ
ͬͱγϯϓϧʹνϟοτϘοτ͕࡞ΕΔΑ͏ʹͳͬͨ݅ "84$IBUCPUΛ͏͜ͱͰશʹϊʔίʔυͰ"HFOUTΛݺͼग़ͤΔΑ͏ʹ ʢ"DUJPO(SPVQTΛ͏߹-BNCEBͷίʔσΟϯά͕ඞཁʣ AWS Cloud Bedrock Agents SNS Invoke Notify
Action Groups Chatbot Publish Knowledge Bases User Slack
ͬͱγϯϓϧʹνϟοτϘοτ͕࡞ΕΔΑ͏ʹͳͬͨ݅ User Slack ˢຊͷ͔͙ͨΜ ˡِͷ͔͙ͨΜʢ͔ͨ͘Μʣ
ᶄ(VBSE%VUZͷ݁ՌΛ͍͍ײ͡ʹ௨ͯ͘͠ΕΔ܅ (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ʹू͞ΕͨΠϕϯτΛर͏ ͷͲͪΒ͔Λબͯ͠σϓϩΠՄೳ
4UFQ'VODUJPOTͷϫʔΫϑϩʔ ͜Ε͚ͩ
4UFQ'VODUJPOTº#FESPDLΞϓϦέʔγϣϯ·ͱΊ • 3"(Λࡌͨ͠-*/&νϟοτϘοτ • (VBSE%VUZͷ݁ՌΛ͍͍ײ͡ʹͯ͠௨ͯ͘͠ΕΔ܅ ͲͪΒΊͪΌͪ͘Όγϯϓϧ͔ͭ΄΅ϊʔίʔυͳͷͰ ੜ"*ΞϓϦέʔγϣϯͷೖʹ࠷దʂ #FESPDL"HFOUTΛར༻͢Δ߹-BNCEBίʔσΟϯά͕ඞཁͳɺ ຊ൪ར༻͢Δ߹8"'ͳͲηΩϡϦςΟ໘Λߟྀ͖͢ͳʹҙʂ
ॻ੶ʹϋϯζΦϯ͋Γ·͢#FESPDL։ൃೖ
4UFQ'VODUJPOTར༻࣌ͷ ҙ
"HFOUTͷݺͼग़͠-BNCEB͕ඞཁ ਤॻିग़ΤʔδΣϯτΛߏஙͨ͠ͱ͖ͷྫ ʮ"HFOUΛݺͼग़ͨ͢Ί͚ͩͷ-BNCEBʯ͕ඞཁ ʢͪΐͬͱΠέͯͳ͍ʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJCFESPDLBHFOUTXPEB[BJTJUBUVTIVHVBOMJMJOFDIBUCPUXP[VPSPVUPTJUFNJUBBUKBXTVHZPLPIBNB
"4-ʢ+40/1BUIʣͷೝෛՙߴΊ ΄ͱΜͲ(6*Ͱૢ࡞Ͱ͖Δ͕ ࡉ͔͍ॲཧ+40/Ͱฤू͢Δ ʢZBNM͕ཉ͍͠ʜʂʣ ΈࠐΈؔ4UBUF9999 ΄ͱΜͲ֮͑ͯͳ͍ ೖग़ྗʹ͏ *OQVU1BUI 3FTVMU1BUI 3FTVMU4FMFDUPS
0VUQVU1BUI ͍͍ͩͨงғؾͰͬͯΔ ࠷ۙঢ়ଶ͝ͱʹςετͰ͖ΔͷͰ ೖग़ྗ͕زཧղͰ͖ΔΑ͏ʹͳͬͨ
ಉ͡Ϧʔδϣϯͷ#FESPDL'.ͷΈݺͼग़ͤΔ Tokyo Region Oregon Region N.Virginia Region ΫϩεϦʔδϣϯਪΤϯυϙΠϯτܦ༝ͰͷΈ ηΧϯμϦͱͯ͠ଞϦʔδϣϯͷ'.Λݺͼग़ͤΔ ʢݱঢ়64ͱ&6ͷΈɺΧελϜਪΤϯυϙΠϯτཉ͍͠ʣ
·ͱΊ
·ͱΊ • 4UFQ'VODUJPOTʹΑΓɺ؆୯ʹ#FESPDLΛͬͨ ੜ"*ΞϓϦέʔγϣϯೖ͢Δ͜ͱ͕Ͱ͖Δ • ϊʔίʔυϩʔίʔυ͔Β࢝Ίͯɺඞཁͱͳͬͨࡍʹ ίʔσΟϯάͰ࣮͍ͯ͘͠ͷΞϦ •
ݱঢ়4UFQ'VODUJPOTʹ͍ʹ͍͘ଘࡏ͢Δ ˠੵۃతͳϑΟʔυόοΫ͍ͩ͡
5IBOLZPVʂ