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
430
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
SimSta
September 25, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
AWSの2025年最新トレンドをフル活用してフルサーバーレスな司書エージェントを作ってみた @ JAWS-UG Sapporo
shimagaji
3
270
AWS Media Servicesを使ってAmazon IVSとYouTubeへの同時配信を試してみた @ JAWS-UG千葉支部 x Media-JAWS
shimagaji
1
100
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
270
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
380
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
39
日本からre:Inventを支えた活動報告&ミニre:Cap @ JAWS-UG Sapporo
shimagaji
0
120
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
shimagaji
1
320
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
shimagaji
0
100
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
120
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
696
190k
Fireside Chat
paigeccino
39
3.6k
Docker and Python
trallard
46
3.6k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Designing for Performance
lara
610
69k
RailsConf 2023
tenderlove
30
1.2k
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ʂ