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
450
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
290
AWS Media Servicesを使ってAmazon IVSとYouTubeへの同時配信を試してみた @ JAWS-UG千葉支部 x Media-JAWS
shimagaji
1
110
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
280
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
410
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
46
日本からre:Inventを支えた活動報告&ミニre:Cap @ JAWS-UG Sapporo
shimagaji
0
120
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
shimagaji
1
330
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
shimagaji
0
100
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
120
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
36
7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Balancing Empowerment & Direction
lara
5
760
How to Ace a Technical Interview
jacobian
280
24k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
A Modern Web Designer's Workflow
chriscoyier
697
190k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Agile that works and the tools we love
rasmusluckow
331
21k
Fireside Chat
paigeccino
41
3.7k
Visualization
eitanlees
150
16k
Bash Introduction
62gerente
615
210k
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ʂ