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
サーバレスで動かすトークン発行プラットフォーム.pdf
Search
shunp
February 23, 2019
Programming
0
2k
サーバレスで動かすトークン発行プラットフォーム.pdf
JAWS DAYS 2019で発表した資料になります。
[Serverless] サーバレスで動かすトークン発行プラットフォーム
shunp
February 23, 2019
Tweet
Share
More Decks by shunp
See All by shunp
HAKODATE Developers Conference 2019
shunp
0
190
日々の生活に緊張感を! Flutterでつくる寿命タイマー / The LifeTimer created by Flutter
shunp
1
910
This is My Architectureの発表感想とサーバレスアーキテクチャ
shunp
1
280
Other Decks in Programming
See All in Programming
AI活用のコスパを最大化する方法
ochtum
0
120
15年目のiOSアプリを1から作り直す技術
teakun
1
600
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
220
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
350
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
370
AIプロダクト時代のQAエンジニアに求められること
imtnd
2
700
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
330
AWS Infrastructure as Code の新機能 2025 総まとめ 〜SA 4人による怒涛のデモ祭り〜
konokenj
10
3.2k
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
470
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
2
230
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
210
浮動小数の比較について
kishikawakatsumi
0
380
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
360
The Mindset for Success: Future Career Progression
greggifford
PRO
0
270
Tell your own story through comics
letsgokoyo
1
830
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Deep Space Network (abreviated)
tonyrice
0
86
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
The untapped power of vector embeddings
frankvandijk
2
1.6k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
450
Site-Speed That Sticks
csswizardry
13
1.1k
Transcript
αʔόϨεͰߏங͢Δ τʔΫϯൃߦϓϥοτϑΥʔϜ খॣฏ
ࣗݾհ
ΤϯδχΞγΣΞϋεࡏॅ খॣฏ ͍͚͜͠ΎΜ͍ SF*OWFOU 5IJTJT.Z"SDIJUFDUVSFʹग़ԋ ࡉʑͱใൃ৴͍ͯ͠·͢ 2JJUB 5XJUUFS
ॴଐձࣾ
4JNQMFYגࣜձࣾ ͷۀҎདྷɺϝΨόϯΫɺେखূ݊Λ͡Ίͱͨ͠ ओཁͳۚ༥ػ͚ؔʹɺ ۚ༥ͷऔҾϦεΫཧۀΛࢧԉ͢Δ ಠࣗ։ൃͷ*5ιϦϡʔγϣϯɾαʔϏεΛఏڙ Ծ௨՟ϒϩοΫνΣʔϯྖҬੵۃల։த ࡢ݄ʹ%..#JUDPJOΛϦϦʔε ࠃ"1/ςΫϊϩδʔύʔτφʔͱͯ͠ॳΊͯ ʮ"84ۚ༥αʔϏείϯϐςϯγʔʯೝఆΛऔಘ
ಥવͰ͕ٕ͢ज़ऀͷํʹ࣭Ͱ͢ɻ ʑ৽͍ٕ͠ज़Λ͍ ࣗݾݚᮎͰ͖͍ͯ·͔͢ʁ
ͪΐ͏Ͳલͷࠓࠒ αʔόϨεαʔϏεͱແԑͳ։ൃऀ
˒ۚ༥ۀքʹٻΊΒΕΔݫ੍͍͠ ๏ఆཁ݅Λຬͨ͢ݎ࿚ੑ ϛεͷڐ͞Εͳ͍ΫϦςΟΧϧੑ ˒ೲܕ ސ٬ͷϦΫΤετʹ߹ΘͤͯߏΛܾఆ ৽͍ٕ͠ज़ͷಋೖʹ͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ཁ݅Λ࣮֬ʹຬͨͤΔΑ͏ ৽͍ٕ͠ज़ͷಋೖʹอकతͳେ͖͍߹͕͋Δ ฐࣾͷ߹ ཧͱݱ࣮ͷ
Ϊϟοϓ
͔ͩΒͱ͍ͬͯ ಉ͡ࢿ࢈Λͣͬͱ͍ଓ͚Δ༁ʹ͍͔ͳ͍
αʔόϨεͰߏங͢Δ τʔΫϯൃߦϓϥοτϑΥʔϜ খॣฏ
Γ͍ͨ͜ͱ͔ΓΕΔΘ͚͡Όͳ͍ ͜ΜͳੈͷதͰ খॣฏ ϝΠϯϓϩδΣΫτͱผʹࡉʑͱଓ͚͖ٕͯͨज़ઓͱ ࠓ͔Β࢝ΊΔαʔόϨε։ൃͷखҾ͖
ۙͰ༻͖ͯͨ͠αʔϏε Amazon Elastic Block Store (EBS) Amazon Simple Storage Service
(S3) AWS Key Management Service AWS Identity and Access Management (IAM) AWS CloudHSM Amazon Cognito Amazon CloudFront Amazon VPC PrivateLink Amazon Route 53 AWS Amplify AWS AppSync Amazon CloudWatch AWS CloudFormation AWS CloudTrail Amazon Lex AWS X-Ray Amazon API Gateway AWS CodePipeline AWS CodeStar AWS Cloud9 AWS CodeBuild AWS CodeCommit Amazon Aurora Amazon DynamoDB Amazon ElastiCache Amazon Lightsail AWS Fargate AWS Elastic Beanstalk AWS Lambda Amazon Elastic Container Service Amazon Sumerian Amazon Simple Notification Service Amazon Simple Queue Service AWS Step Functions Amazon Polly Amazon Kinesis
৽͍ٕ͠ज़ͷಋೖʹ͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ৽͍ٕ͠ज़ͷಋೖʹอकతͳେ͖͍
͡Ό͋Ͱ͖ΔձࣾΛ୳͢ʁݸਓͰΔʁ ͬͺΓɺࢥ͍ೖΕͷ͋Δ͜ͷձࣾʹԿ͔͍ͨ͠ɻ ৽͍ٕ͠ज़ͷಋೖʹ͔֬ʹҰఆͷϦεΫ͕ଘࡏ͢Δ ৽͍ٕ͠ज़ͷಋೖʹอकతͳେ͖͍ ୭ʹཔ·Εͯͳ͍͚Ͳʜ ٕज़ྗڧԽϓϩάϥϜΛউखʹܭըͯ͠Έͨ
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ Ծ௨՟ൃߦ ϒϩοΫνΣʔϯଓ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ Ծ௨՟ൃߦ ϒϩοΫνΣʔϯଓ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
ͳͥ͜ͷ׆ಈ͕ඞཁͳͷ͔ʁ ͜ͷ׆ಈʹΑΓձࣾʹͲΜͳϝϦοτ͕͋Δͷ͔ʁ 1PJOU Πϊϕʔγϣϯʹͭͳ͕Δ׆ಈ ɾΠϊϕʔγϣϯΛੜΈग़͢͜ͱΛձࣾͷଘࡏҙٛͱͯ͠ଊ͍͑ͯΔاۀɻ ɾϒϩοΫνΣʔϯ͕ۚ༥ۀքͰ࠷ϗοτͳͰ͋ͬͨɻ ָ͕ࣾ͘͠ͳΔπʔϧΛఏڙ
ɾτʔΫϯͱ͍͏֎తใुͰɺීஈͷࣄʹผͷҙຯ͚ͮΛ࣋ͨͤΔɻ ɾࣾ֎ʹग़͞ͳ͍ͷͰϦεΫগͳ͍ɻ ٕज़αϯυϘοΫεͱͯ͠ར༻ ɾઓ͍ٕͨ͠ज़Λࢼ͢ͱͯ͠ར༻͢Δ͜ͱΛએݴɻ ɾࢼͨ͠ϊϋͷڞ༗ʹΑΔࣾͷٕज़ྗ্Λݟਾ͑Δɻ ɾྗΛ࣋ͯ༨ͨ͠एखΛर͏ϑΟʔϧυʹར༻ͯ͠΄͍͠ɻ ׆ಈࣗମͷঝೝ ߟهࣄΛࣾͰެ։
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ Ծ௨՟ൃߦ ϒϩοΫνΣʔϯଓ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
։ൃલఏ ਓ͕͍ͳ͍ খ͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ਖ਼ຊۀͰख͍ͬͺ͍ͷՔಇ ͕ࣝͳ͍ Γ͍ͨ͜ͱ৽ͨͳྖҬ
·ͣඞཁ࠷খݶͷػೳʹूத͢Δ ᶃߴরձ ࣗͲͷ͘Β͍4JNQMFY5PLFOΛ͍࣋ͬͯΔ͔֬ೝͰ͖Δ ᶄτʔΫϯडऔ Կ͔ͷτϦΨʔͰ4JNQMFY5PLFOΛΒ͑Δ ։ൃલఏ ਓ͕͍ͳ͍ খ͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ਖ਼ຊۀͰख͍ͬͺ͍ͷՔಇ
͕ࣝͳ͍ Γ͍ͨ͜ͱ৽ͨͳྖҬ
·ͣඞཁ࠷খݶͷػೳʹूத͢Δ ᶃߴরձ ࣗͲͷ͘Β͍4JNQMFY5PLFOΛ͍࣋ͬͯΔ͔֬ೝͰ͖Δ ᶄτʔΫϯडऔ Կ͔ͷτϦΨʔͰ4JNQMFY5PLFOΛΒ͑Δ ։ൃલఏ ਓ͕͍ͳ͍ খ͕૽͍ͰΔ͚ͩ ͕࣌ؒͳ͍ ਖ਼ຊۀͰख͍ͬͺ͍ͷՔಇ
͕ࣝͳ͍ Γ͍ͨ͜ͱ৽ͨͳྖҬ 6*ͭ͘Δͷ͔͔࣌ؒΔ 4MBDLΛ6*ͱͯ͠ར༻ ೝূࡁΈલఏ Πϯϑϥߏங͔͔࣌ؒΔ αʔόϨε-BNCEBͰߏங ࣗಈతʹ%ZOBNP%#͕બࢶʹ ࣮ૣ͘ऴΘΒ͍ͤͨ पลϥΠϒϥϦͷ๛ͳ /PEFKTͰ࣮
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
ಠࣗ௨՟Λఆٛ͢ΔΠϯλϑΣʔε &3$ ͕ طʹఆٛࡁΈͷ0QFO;FQQFMJOͱ͍͏ϥΠϒϥϦΛ༻ ༷ʑͳϒϩοΫνΣʔϯϓϥοτϑΥʔϜ͕ଘࡏ͢ΔதͰ ͔࣌Β࠷ਓؾͩͬͨ&UIFSFVNΛબ 5SV⒐FϑϨʔϜϫʔΫΛͬͯ 4PMJEJUZͷίϯτϥΫτΛ։ൃˍςετωοτσϓϩΠ 4JNQMFY5PLFO͕ςετωοτ σϓϩΠ͞Ε͍ͯΔ͜ͱΛ֬ೝ
τʔΫϯͷϩΰ࡞
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ
Amazon API Gateway Amazon DynamoDB AWS Lambda ࠓճͷొαʔϏε AWS Lambda
&$ͳͲͷαʔόΛඞཁͱͤͣʹίʔυͷ࣮ߦ͕Ͱ͖Δɻ ྫ͑ɺ;JQʹݻΊͨιʔείʔυΛ-BNCEBͷίϯιʔϧը໘͔Β Ξοϓϩʔυ͢Δ͚ͩͰίʔυΛϦϞʔτͰ࣮ߦͰ͖Δɻ /PEFKTͷ࣮ߦڥͱͯ͠ར༻ Amazon API Gateway 3&45"1*8FC4PDLFU"1*Λ࡞͢ΔࡍͷΠϯλϑΣʔεΛ؆୯ʹ༻ҙͰ͖Δɻ ݺͼग़͍ͨ͠-BNCEBΛϚοϐϯάͰ͖ɺ"1*(BUFXBZ -BNCEBͰ"1*ΛߏஙՄೳɻ τϥϑΟοΫͷཧɺ*".ͱΈ߹ΘͤͨೝՄ੍ޚͰ͖Δɻ ϦΫΤετΛड͚Δ"1*ΤϯυϙΠϯτΛ࡞ Amazon DynamoDB ΩʔόϦϡʔ͓ΑͼυΩϡϝϯτܕͷσʔλϕʔεαʔϏεɻ εέʔϧཧΠϯετʔϧॲཧͳͲ͕ෆཁͰ؆୯ʹར༻Ͱ͖Δɻ -BNCEBͷσʔλॻ͖ࠐΈઌͱͯ͠ΘΕΔ͜ͱ͕ଟ͍ɻ ϒϩοΫνΣʔϯʹॻ͖ࠐ·ͳ͍σʔλͷอଘઌͱͯ͠ར༻
ᶃߴ֬ೝ ᶄτʔΫϯडऔ "1*࣮ &UIFSFVN ΞυϨεੜ ΞυϨε Ϣʔβใ ϢʔβใͱΞυϨεͷ ϚοϐϯάใΛอଘ ςετωοτ
τʔΫϯอ༗ྔΛ ॻ͖ࠐΉ XFCKT Λຬͨ͢࠷ݶͷΞʔΩςΫνϟશମ૾ ίϚϯυʹҾ ͱͯ͠࿈ܞ ˒4MBDL͔Β"1*(BUFXBZ͕ ൃߦ͢ΔΤϯυϙΠϯτ ɹɹɹ3&45"1*ͷϦΫΤετ͕ൃੜ ˒εϚʔτίϯτϥΫτͰ ɹɹཧ͠ʹ͍͘Ϛοϐϯάใ ɹɹɹ%ZOBNP%#ॻ͖ࠐΈ ˒ϩδοΫ/PEFKTͰهड़͠ ɹɹ-BNCEBΞοϓϩʔυ ˒XFCKTͱ͍͏ϥΠϒϥϦΛͬͯ ɹɹ&UIFSFVNωοτϫʔΫʹσϓϩΠ͞Εͨ ɹɹɹεϚʔτίϯτϥΫτΛૢ࡞ Amazon API Gateway Amazon DynamoDB AWS Lambda MetaMask Slack Ethereum
ᶃߴ֬ೝ ᶄτʔΫϯडऔ "1*࣮ &UIFSFVN ΞυϨεੜ ΞυϨε Ϣʔβใ ϢʔβใͱΞυϨεͷ ϚοϐϯάใΛอଘ ςετωοτ
τʔΫϯอ༗ྔΛ ॻ͖ࠐΉ XFCKT Λຬͨ͢࠷ݶͷΞʔΩςΫνϟશମ૾ ίϚϯυʹҾ ͱͯ͠࿈ܞ ˒4MBDL͔Β"1*(BUFXBZ͕ ൃߦ͢ΔΤϯυϙΠϯτ ɹɹɹ3&45"1*ͷϦΫΤετ͕ൃੜ ˒εϚʔτίϯτϥΫτͰ ɹɹཧ͠ʹ͍͘Ϛοϐϯάใ ɹɹɹ%ZOBNP%#ॻ͖ࠐΈ ˒ϩδοΫ/PEFKTͰهड़͠ ɹɹ-BNCEBΞοϓϩʔυ ˒XFCKTͱ͍͏ϥΠϒϥϦΛͬͯ ɹɹ&UIFSFVNωοτϫʔΫʹσϓϩΠ͞Εͨ ɹɹɹεϚʔτίϯτϥΫτΛૢ࡞ Amazon API Gateway Amazon DynamoDB AWS Lambda αʔόϨεͰzΔ͖͜ͱzʹूதͰ͖ͨ
ͭͷطࣄ࣮Λͭͬͯ͘͠·͓͏ʂ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏
ࣾͰར༻Ͱ͖ΔπʔϧΛ࡞Δ Ϣʔεέʔεఆ શମΞʔΩઃܭ %#ઃܭ εϚʔτίϯτϥΫτ ಠࣗ௨՟σϓϩΠ "1*࣮ αʔόϨεαʔϏε ͦͷଞ"84αʔϏε 8FC6* ϞόΠϧ6* "3 ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ൃ৴ͯ͠ ڞײΛूΊΔ
ͱΓ͋͑ͣ ࢀՃˍϒʔεग़ల͕ܾఆ ͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ /PEFKTΛ࣮ͬͨ αʔόϨε 4MBDLʹΑΔ6*ͷলུ ػೳ͕ߴ֬ೝˍτʔΫϯडऔ &3$ʹΑΔτʔΫϯͷൃߦ 4MBDLϝοηʔδʹΑΔߴ֬ೝ
ͱΓ͋͑ͣ ࢀՃˍϒʔεग़ల͕ܾఆ ͜ͷ··ͷϨϕϧͰྑ͍ͷ͔ʜʁ /PEFKTΛ࣮ͬͨ ϥΠτͳ"1*ͳΒ (PݴޠͰ։ൃ͍ͨ͠ αʔόϨε ίʔυཧͯ͠ ෳͷ-BNCEBΛར༻ 4MBDLʹΑΔ6*ͷলུ
ࢀՃऀ͕ϩάΠϯͰ͖Δ 7VFKTͰ8FCը໘Λͭ͘Δ ػೳ͕ߴ֬ೝˍτʔΫϯडऔ ࢀՃऀ͕ͦͷͰ τʔΫϯΛૹΓ߹͑ΔαʔϏε &3$ʹΑΔτʔΫϯͷൃߦ ఆྔੑͱఆੑੑΛ݉Ͷඋ͑ͨ &3$Ͱ ௨՟ͷϓϥοτϑΥʔϜΛͭ͘Δ ཁ͔݅Βٕज़ཁૉ·ͰશͯΛΞοϓσʔτ͢Δ 4MBDLϝοηʔδʹΑΔߴ֬ೝ "3Λͬͨ ήʔϜܕΠϯλϑΣʔε
ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶ཧ "1*Ճ࡞ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟Ճ (Pݴޠॻ͖͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ԾඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
ൃදऀ༻1$ εΫϦʔϯ Ӿཡ Ө ϓϨθϯςʔλ ௌߨऀ ݱεϥΠυͷϖʔδ͕ ࣗͷεϚϗʹಉظ͞ΕΔ ൃදεϥΠυ ࠷ߴ
͍͍Ͷ ͏ʔΜ ίϝϯτදࣔཝ Ξϯέʔτ εϥΠυ ίϝϯτදࣔཝ <௨ৗεϥΠυ> <Ξϯέʔτ࣌> Ξϯέʔτʹ͑Δͱ τʔΫϯΛड͚औΔ͜ͱ͕Ͱ͖Δ ༻ҙ͞ΕͨίϝϯτϘλϯΛԡ͢͜ͱͰ ϓϨθϯςʔλτʔΫϯΛૹΔ͜ͱ͕Ͱ͖Δ τʔΫϯͷྲྀ௨ྔΛεϥΠυ͝ͱʹूܭ ϑΟʔυόοΫ ϓϨθϯαϙʔτΞϓϦ Ξϯέʔτϖʔδ͕Ө͞ΕΔͱ εϚϗͷ6*͕มԽ ϓϨθϯςʔλͷൃදʹ߹ΘͤͯಠࣗτʔΫϯΛૹΓ߹͏ΞϓϦΛ Πϕϯτग़లʹ͚ͯ࡞
ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶ཧ "1*Ճ࡞ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟Ճ (Pݴޠॻ͖͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ԾඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
&3$&3$ IUUQTMBCTUJSOFUXPSLEFTJHOPGBHBNJOHXPSMEWJFXUIBUFSDFOBCMFT &3$͕Մೳʹ͢ΔήʔϜԽ͞Εͨੈք؍ Կ͕Ͱ͖ΔΑ͏ʹͳΔ͔ʁ ᶃ ௨՟Λ"1*ܦ༝ͰԿछྨͰൃߦՄೳʹ 4MBDLͷνϟϯωϧຖʹಠࣗ௨՟Λൃߦ ᶄশ߸ΩϟϥΫλʔͳͲҰҙੑͷ͋ΔͷΛ࡞Մೳʹ ྫ͑ੈքʹ͔ͭ͠ଘࡏ͠ͳ͍ʮ4JNQMFY"84.BTUFSʯͳͲͷশ߸Λ࡞ ᶅੜ͞ΕͨᶃͱᶄΛ؆୯ʹަՄೳʹ
4JNQMFY5PLFOΛϕʔε௨՟ͱͯ͠ݖརͷചങ͕Մೳ
ࣗຫͰ͖Δٕज़ཁૉΛऔΓೖΕΑ͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍ Ծඪɿ4JNQMFY5PLFO
Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ֎෦Ͱൃද͢Δ Ϣʔεέʔε࠶ཧ "1*Ճ࡞ %#ઃܭमਖ਼ &3$ϑΥʔΫ &3$ &3$ "1*ܦ༝Ͱ௨՟Ճ (Pݴޠॻ͖͑ -BNCEBBTB$PEF 7VFKTͰ8FCը໘࡞ J1BEͰ"3ମݧ 3FWFBMKTεϥΠυͷڞ༗ ٕज़తͳνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ԾඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ
Amazon API Gateway Amazon DynamoDB AWS Lambda લճ·ͰͷొαʔϏε ࠓճಋೖͨ͠αʔϏε Amazon
Simple Storage Service (S3) AWS CloudFormation Amazon CloudFront Amazon Simple Storage Service (S3) όοΫΞοϓσʔλͷอଘઌσʔλϨΠΫͱͯ͠ͷར༻ͷΈͳΒͣ ੩తΣϒαΠτͷϗεςΟϯάՄೳɻ ࠓճ7VFKTͷ41"Λ4ʹϗεςΟϯά͢ΔతͰ༻ɻ Amazon CloudFront 4ΛΦϦδϯαʔόͱΈͳ͠Ωϟογϡͨ͠ίϯςϯπΛ৴͢Δɻ $%1$BDIF%JTUSJCVUJPOύλʔϯ AWS CloudFormation (SAM) $MPVE'PSNBUJPOʹΑΓ"84αʔϏε࠶ߏங࣌ͷࣗಈԽɻ -BNCEBͰ࡞ͨ͠"1*ΛΞοϓσʔτ͢Δͱ͖ʹςϯϓϨʔτΛྲྀ͢ɻ $MPVE'PSNBUJPOͷ֦ுͰ͋Δ4". 4FSWFSMFTT"QQMJDBUJPO.PEFM ʹͯهड़ɻ IUUQTRJJUBDPNTIVOQJUFNTFFFFFGF <ࢀߟ>(Pʴ-BNCEBͰ࠷αʔόϨενϡʔτϦΞϧ
7VFKT γϯϓϧ41" εϥΠυ͝ͱͷ ϦΞΫγϣϯΛੵ εϚʔτίϯτϥΫτ ΞΫηε༻ %ZOBNP%# ΞΫηε༻ "3,JU සൃ͢Δ-BNCEBͷσϓϩΠΛ
ίʔυͰཧ "3දࣔ༻ ΤϯυϙΠϯτ ϓϨθϯαϙʔτΞϓϦ ΞʔΩςΫνϟ֓ཁ ,PWBOωοτϫʔΫ τʔΫϯΛ "3Ͱදݱ Amazon Simple Storage Service (S3) Amazon API Gateway Amazon API Gateway AWS Lambda AWS Lambda Amazon DynamoDB Amazon CloudFront &UIFSFVN &3$ʹΑΔ τʔΫϯͷൃߦ ฐࣾಠ࣮ࣗʹΑΔϓϥοτϑΥʔϜ AWS CloudFormation (SAM)
खݩͷεϥΠυ͕εΫϦʔϯͱ࿈ಈ ϥϯμϜʹมΘΔϘλϯΛԡ͠ͳ͕Β ίϝϯτͱτʔΫϯΛૹ৴ ࣾһূΛ͔͟͢ͱ ͦͷਓΛೝࣝͯ͠"3্ʹτʔΫϯߴΛදࣔ ը໘ΛΫϦοΫ͢Δͱ "3্ͰτʔΫϯͷૹ৴͕Ͱ͖Δ ϓϨθϯαϙʔτΞϓϦ "3ΞϓϦ
ݦࡏԽ͢ΔϢʔεέʔεʹඋ͑ͨ ٕज़ࢿ࢈ͷཧΛ͠Α͏ ൃ৴ͯ͠ ڞײΛूΊΔ ࣾͰར༻Ͱ͖ ΔπʔϧΛ࡞Δ ֎෦Ͱൃද͢Δ νϟϨϯδ Ͱ͖Δڥ ͍͚͜͠ΎΜ͍
Ծඪɿ4JNQMFY5PLFO Ծ௨՟ Λൃߦͯࣾ͠Ͱར༻ͯ͠Β͏ ϓϩμΫτԽʹ͚ͯ ৽نࣄۀܭըॻ ن֨MFTTͳΥϨοτ ༷ʑͳ%"QQT։ൃ ଞ௨՟ $*$%උ ೝূೝՄ σʔλੳ ωΠςΟϒΞϓϦ։ൃ ੑೳ 6*69 Γ͍ͨνϟϨϯδཁૉ શମઃܭ ϒϩοΫνΣʔϯ όοΫΤϯυ ϑϩϯτΤϯυ ϞόΠϧ ԾඪɿτʔΫϯൃߦΛϕʔεͱͨ͠ϓϨθϯαϙʔτΞϓϦͷ։ൃ ඪɿϓϩμΫτԽʹ͚ٕͨज़ཧ
AWS Cloud9 AWS CodeBuild AWS CodeCommit AWS CodePipeline AWS Lambda
Amazon API Gateway Α͘ར༻͢ΔαʔϏε AWS Cloud9 &$্Ͱ։ൃڥΛఏڙɻλʔϛφϧ͕ηοτͰ͍͍ͯΔɻ Ͳͷ͔ΒͰಉ͡։ൃڥ͕ϒϥβΛ։͚ͩ͘Ͱ༻ҙ͞Ε͍ͯΔͨΊ ߹ʹΑͬͯ%PDLFSͰ։ൃڥΛἧ͑ΔΑΓָɻ AWS CodeCommit -BNCEBͷιʔείʔυཧ$PEF$PNNJU্Ͱཧɻ ϓϧϦΫΤετɾίϛοτϏδϡΞϥΠβʔͳͲΛ(6*Ͱఏڙ͓ͯ͠Γ บ͋Δͷͷ(JU)VCͱͦΕ΄Ͳେࠩͳ͍༻ײͰར༻Ͱ͖Δɻ AWS CodePipeline AWS CodeBuild $MPVE'PSNBUJPO4".ͷίϚϯυͰ-BNCEB"1*(BUFXBZΛ࡞͢Δɻ lJOTUBMMz lQSF@CVJMEz lCVJMEzͳͲϑΣʔζຖʹ࣮ߦ͢ΔίϚϯυΛάϧʔϓԽ͠ ඞཁͳϞδϡʔϧΠϯετʔϧɺςετɺϏϧυΛ࣮ߦͤ͞Δɻ $*$%ύΠϓϥΠϯΛ(6*Ͱఏڙ͢Δɻ ιʔείʔυཧͱͯ͠$PEF$PNNJUΛબ͢ΔͱɺಛఆϒϥϯνʹϚʔδ͞Εͨ߹ ύΠϓϥΠϯ͕ىಈ͠ɺޙଓͷ$PEF#VJME͕࣮ߦ͞ΕΔɻ
Α͘ར༻͢ΔαʔϏε Amazon Cognito AWS Amplify AWS AppSync AWS AppSync ओʹ(SBQI2-αʔόͱͯ͠ར༻ɻ
-BNCEB%ZOBNP%#&MBTUJD4FBSDI4FSWJDFΛޙଓͰϑοΫͰ͖Δɻ ෳͷ%ZOBNP%#ςʔϒϧʹ·͕ͨΔॲཧՄೳɻ AWS Amplify ϑϩϯτΤϯυ༻ͷ$*$%ͱͯ͠"NQMJGZ$POTPMFΛ༻ɻ 4ͷΞοϓϩʔυ͓Αͼ$MPVE'SPOUͰͷ৴ઃఆ͕লུͰ͖Δɻ "NQMJGZ'SBNFXPSLͰ"84αʔϏεͷΞΫηεΛ؆ུԽ͠ "QQ4ZOD$PHOJUPͷΞΫηεΛγϯϓϧʹ͢Δɻ Amazon Cognito ೝূαʔϏεͱͯ͠ར༻ɻ ϢʔβσʔλΛཧ͠ɺೝূޭ࣌ʹϢʔβใؚ͕·Εͨ+85Λฦ͢ɻ *".ͱΈ߹ΘͤΔ͜ͱͰೝՄ੍ޚ͢Δ͜ͱՄೳɻ IUUQTRJJUBDPNTIVOQJUFNTEBEGBEEGG <ࢀߟ> 7VFKT "NQMJGZΛۦ͢ΕϞμϯͳ8FCΞϓϦΛͰެ։Ͱ͖Δ
3FNJY *%& ΞʔΩςΫνϟ֓ཁ 4MBDLΠϕϯτ औಘ༻ %ZOBNP%# ΞΫηε༻ εϚʔτίϯτϥΫτ ΞΫηε༻ 4MBDLͷ
3&45"1*Λड͚Δ ೝূ ϑϩϯτΤϯυ༻$*$% ։ൃϑϨʔϜϫʔΫ σϓϩΠ 4MBDL &3$ 7VFKT γϯϓϧ41" Amazon API Gateway AWS Lambda AWS Lambda Amazon DynamoDB Amazon DynamoDB &3$9999 AWS AppSync AWS Amplify Amazon Cognito AWS Lambda AWS Lambda AWS Cloud9 AWS CodePipeline 'MVUUFS Amazon CloudWatch AWS CloudFormation AWS CloudTrail -BNCEB'VODUJPOT
ݱࡏͷ։ൃεΩʔϜ ࣮ݧతʹ ϓϩτλΠϓͷ࡞ ࣾһ Ϣʔβ ੜ ར༻ ٕज़ࢿ࢈ͷੵ 'MVUUFS 7VFKT
4MBDL 6OJUZ "3,JU &UIFSFVN (Pݴޠ "84 هࣄʹ·ͱΊΔ ༻్ผʹϦϙδτϦΛ࡞ ֤ΞϓϦ "84ʹݶΒͣ෯͍ྖҬΛࢹʹೖΕͯ׆ಈத
αʔόϨεͬͯԿ͔Β࢝ΊΕྑ͍ͷ͔Θ͔Βͳ͍ ͦ͠͏ͩࣗ͠ʹԕ͍ੈք ࠔͬͨ͜ͱ͕͋Ε 4/4ܦ༝Ͱ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ αʔόϨεͦ͜؆୯ʹ͡ΊΒΕΔʂ ·͚ͣͭͩ "1*Λ࣮͢Δͱ͜Ζ͔Βελʔτͯ͠Έ·͠ΐ͏
νʔϜͷࠓޙ ৽ͨͳࣄۀΛੜΈग़͢ϑΣʔζ ϑϩϯτ͔ΒόοΫ·Ͱ ྖҬΛݶఆͤͣ׆༂͍ͨ͠ΤϯδχΞؒΛืूத ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ
ຊ͋Γ͕ͱ͏͍͟͝·ͨ͠ 2JJUB 5XJUUFS ຊࢿྉͷ༰4/4Ͱެ։͠·͢