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
350
Step FunctionsからはじめるBedrock @ JAWS-UG AI/ML
SimSta
September 25, 2024
Tweet
Share
More Decks by SimSta
See All by SimSta
KAG社内のPlatform Engineeringをちょっとだけ紹介します @ Sapporo Engineer Base
shimagaji
0
30
日本からre:Inventを支えた活動報告&ミニre:Cap @ JAWS-UG Sapporo
shimagaji
0
75
Step FunctionsとInfrastructure Composerで挑むローコード × Platform Engineering @ JAWS-UG 青森
shimagaji
1
230
スクラムチームのDevOpsを支えるPlatform Engineering @ 実践DevOps! 〜KAGとkubellの取り組み〜
shimagaji
0
81
日本からre:Inventを支える技術 @ re:Invent2024 北海道組 事前勉強会
shimagaji
0
97
KDDI CCoEからKAG Platform Engineeringへ受け継がれたもの、変わったもの @ CCoE実践者コミュニティ北海道
shimagaji
0
93
インナーソースはじめました @ NES Tech Brewery
shimagaji
4
190
シマリスを知る!2024 @ Cloud in the Camp Horippa
shimagaji
0
84
(ほぼ)ノーコードでもBedrockしたいっ!! @JAWS-UG Sapporo
shimagaji
4
270
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Unsuck your backbone
ammeep
669
57k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Code Review Best Practice
trishagee
67
18k
Statistics for Hackers
jakevdp
797
220k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
GraphQLとの向き合い方2022年版
quramy
44
13k
The World Runs on Bad Software
bkeepers
PRO
67
11k
What's in a price? How to price your products and services
michaelherold
244
12k
Into the Great Unknown - MozCon
thekraken
35
1.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
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ʂ