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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
200
日々の生活に緊張感を! Flutterでつくる寿命タイマー / The LifeTimer created by Flutter
shunp
1
920
This is My Architectureの発表感想とサーバレスアーキテクチャ
shunp
1
280
Other Decks in Programming
See All in Programming
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
200
Nostalgia Meets Technology: Super Mario with TypeScript
manfredsteyer
PRO
0
110
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
550
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
4
2k
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
600
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
210
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
420
S3ストレージクラスの「見える」「ある」「使える」は全部違う ─ 体験から見た、仕様の深淵を覗く
ya_ma23
0
1.1k
Migration to Signals, Signal Forms, Resource API, and NgRx Signal Store @Angular Days 03/2026 Munich
manfredsteyer
PRO
0
160
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
340
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
180
Featured
See All Featured
Balancing Empowerment & Direction
lara
5
990
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
160
Scaling GitHub
holman
464
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Designing for Performance
lara
611
70k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
4 Signs Your Business is Dying
shpigford
187
22k
Raft: Consensus for Rubyists
vanstee
141
7.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Odyssey Design
rkendrick25
PRO
2
560
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Ͱެ։͠·͢