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
aws-lt-push-notification
Search
Hirokazu Maruta
December 21, 2017
Technology
0
35
aws-lt-push-notification
AWS勉強会での発表資料。
PUSH通知の構成について登壇しました。
Hirokazu Maruta
December 21, 2017
Tweet
Share
More Decks by Hirokazu Maruta
See All by Hirokazu Maruta
encryption
mochisuna
0
94
わかった気になるチューリングマシン
mochisuna
0
38
Elementary algorithm
mochisuna
0
17
ssh-dynamic-forward
mochisuna
0
46
ServerlessFramework-Trello
mochisuna
0
26
TechBash Slack Reaction Award
mochisuna
0
43
techbash-clasp
mochisuna
0
54
vuejs-night-publish
mochisuna
0
840
surprise-lt-for-intern-vol-2
mochisuna
0
49
Other Decks in Technology
See All in Technology
BLADE: An Attempt to Automate Penetration Testing Using Autonomous AI Agents
bbrbbq
0
360
OOM発生時のトラブルシューティング Profilerを活用できるか調査してみた
atsushii
0
190
累計2500万着電を支える大規模 電話自動応答サービスのアーキテクチャ / Architecture of a Large-Scale Automated Phone Response Service Supporting 25 Million Cumulative Calls
ymachida
1
1.4k
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
2.2k
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
140
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
200
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
400
LLMの気持ちになってRAGのことを考えてみよう
john_smith
0
160
Storybook との上手な向き合い方を考える
re_taro
5
3.8k
CysharpのOSS群から見るModern C#の現在地
neuecc
2
4.1k
FlutterアプリにおけるSLI/SLOを用いたユーザー体験の可視化と計測基盤構築
ostk0069
0
290
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
1
170
Featured
See All Featured
BBQ
matthewcrist
85
9.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Code Reviewing Like a Champion
maltzj
520
39k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Music & Morning Musume
bryan
46
6.2k
Transcript
AWSͰPUSHΛ͠Α͏ ϒϥβϓογϡ৴Ͱར༻͍ͯ͠ΔAWSߏ ·ΔͨͻΖ͔ͣ
͜͡͠ΐ͏͔͍ ؙాʢ·ΔͨͻΖ͔ͣʣ • ɹ • ϓϥοτϑΥʔϜ։ൃ෦(௨৴νʔϜ) • झຯɿϐΞϊɺϘυήɺΞΠίϯ࡞ʢΧούʣ • ͓ࣄɿAWSɺGoݴޠɺϝϯλʔ
͢͜ͱ • ൪ • ͬͬͬ͘͟ΓҰ࿈ͷྲྀΕ • ϒϥβϓογϡ৴ͷAWSઃܭ • ͍ͨ͠ͱ͜ʢ͕࣌ؒ͋ͬͨΒʣ •
·ͱΊ
ಥͰ͕࣭͢Ͱ͢
ϓογϡ௨ͬͯ ͝ଘͰ͔͢ʁ
Ϣʔβʔ ొ αΠτ ৴ऀ
Ϣʔβʔ ৴ ৴ऀ αΠτ
Ϣʔβʔ ৴ऀ αΠτ
ࢲࣄͰ͕͢
10݄ʹɺϓογϡ௨Λ ϦϦʔε͠·ͨ͠
σϞ
Ͳ͏࣮ͬͯݱ͍ͯ͠Δ͔
ɹɹͷྗΛ ;ΜͩΜʹͬͯ·͢
શମ૾ ৴༧ Ϣʔβʔʹಧ͘ ※ϩάऩूج൫Ҏ֎ ৴ऀ
શମ૾ ৴༧ Ϣʔβʔʹಧ͘ ※ϩάऩूج൫Ҏ֎ શ෦આ໌Ͱ͖ͳ͍ ৴ऀ
ͬͬͬ͘͟Γશମ૾
ػೳͰάϧʔϓ͚ Ϣʔβʔ ৴ऀ ཧը໘ ϩάΠϯ νΣοΫ εέδϡʔϧ༧ ΦϓτΠϯϖʔδ ϒϥβϓογϡ৴
Ϣʔβʔ͕ΦϓτΠϯ Ϣʔβʔ ৴ऀ ϩάΠϯ νΣοΫ ΦϓτΠϯϖʔδ ৴Λड͚औΔ
৴ऀ͕εέδϡʔϧ༧ Ϣʔβʔ ৴ऀ ཧը໘ εέδϡʔϧ༧ ࢦఆ࣌ؒͰ৴༧
༧ͷ࣌ؒʹൃՐ Ϣʔβʔ ৴ऀ εέδϡʔϧ༧ Ϣʔβʔʹϓογϡ͕ಧ͘ ϒϥβϓογϡ৴
Ұ࿈ͷྲྀΕ Ϣʔβʔ ৴ऀ ཧը໘ ϩάΠϯ νΣοΫ εέδϡʔϧ༧ ΦϓτΠϯϖʔδ ϒϥβϓογϡ৴
ࠓճൃද͢Δͷ͜͜ Ϣʔβʔ ৴ऀ εέδϡʔϧ༧ ϒϥβϓογϡ৴ Ϣʔβʔʹϓογϡ͕ಧ͘
ϒϥβϓογϡ৴
͜Ε Ϣʔβʔ εέδϡʔϧ༧ ϒϥβϓογϡ৴ ৴ͷ෦ ৴ऀ
AWSߏ Ϣʔβʔ ৴ऀ
ΑΓৄ͘͠ղ ৴ऀ worker Elastic Beanstalk •LoadBalancer •AutoScaling •EC2
ΑΓৄ͘͠ղ worker ʂ์͓͍ͬͯͯαʔϏε͕ಈ ͘ʂ ৴ऀ
ΑΓৄ͘͠ղ worker ↑ ৴ରऔಘ ↑ ৴αʔϏεʹ ͛Δ ৴ऀ
ΑΓৄ͘͠ղʢதʣ worker தGoݴޠ ৴ऀ
ΑΓৄ͘͠ղʢ࿈ܞʣ worker ElastiCache ʢΩϟογϡʣ SQS ʢΩϡʔʣ ৴ऀ
worker FireBase: Chrome MWP : firefox ΑΓৄ͘͠ղʢ৴ʣ ৴ऀ
AWSߏ Ϣʔβʔ ৴ऀ
εέδϡʔϧ༧
͜Ε Ϣʔβʔ εέδϡʔϧ༧ ϒϥβϓογϡ৴ ༧ͷ෦ ৴ऀ
جຊࢥ εέδϡʔϧ༧ Ϣʔβʔ ༧ ࢦఆ࣌ؒͰൃՐ ৴ऀ
جຊࢥ εέδϡʔϧ༧ Ϣʔβʔ ༧ ࢦఆ࣌ؒͰൃՐ ࣌ؒʹͳͬͨΒ ϒϥβϓογϡΛݺͿ ৴ऀ
εέδϡʔϧ༧ ༧ ৴ऀ
৴࣌ࠁʹൃՐ
৴࣌ࠁʹൃՐ
Lambdaͷ࣋ͪ࣌ؒ
5 ʼ
Lambda5͚ͩɾɾɾ େྔʹૹΔʂ
Lambda5͚ͩɾɾɾ ؒʹ߹Θͳ͍ɾɾɾ
ΈΜͳͰॲཧ͢Ε͜Θ͘ͳ ͍ʂ ॲཧΛׂ ॱ࣮࣍ߦ
εέδϡʔϧ৴
શମ૾ Ϣʔβʔ ৴ऀ
͍ͨ͠ͱ͜ ʢ͕࣌ؒ͋ͬͨΒʣ
Elastic Beanstalk • ͍ͬ͢͝ศརͩΑ
Elastic Beanstalk • ͍ͬ͢͝ศརͩΑ → ͰɺڽͬͨઃఆΛ͢Δͷͱͯਏ͍
Elastic Beanstalk • ͍ͬ͢͝ศརͩΑ → ͰɺڽͬͨઃఆΛ͢Δͷͱͯਏ͍ ebextensions
Elastic Beanstalk • ͍ͬ͢͝ศརͩΑ → ͰɺڽͬͨઃఆΛ͢Δͷͱͯਏ͍ ebextensionsʢ΄ΜͷҰ෦ʣ
Elastic Beanstalk • ࠓͳΒFargate͏ Fargate • ͍͢͝ʢখฒʣ ※ݱঢ়όʔδχΞͷΈ
ElasticCache • ͜Ε࡞ͬͨ࣌DAX͕ͳ͔ͬͨΜͰ͢ɾɾɾ DAX • DynamoDB Accelerator • ΩϟογϡαʔϏε •
DynamoDBͷલஈʹඋ
Lambda • όʔδϣχϯάͯ͠ͳ͍ʢݱࡏʣ • σϓϩΠ࣌ʹώϡʔϚϯΤϥʔ͕ා͍ʢࠓ ʣ • ରࡦ͠ͳ͍ͱʢͳΔͰʣ
Kinesis Firehose • ετϦʔϜͷλΠϛϯάϥϯμϜ • ϩάใͱ͔Ͱॱ൪͕ॏཁͳ߹ζϨΔ → ͪΌΜͱͨ͠ରࡦ͕ඞཁ → ޙͰࠔΔʢ࣮ࡍࠔͬͨʣ
Kinesis Firehose • ετϦʔϜͷλΠϛϯάϥϯμϜ • ϩάใͱ͔Ͱॱ൪͕ॏཁͳ߹ζϨΔ → ͪΌΜͱͨ͠ରࡦ͕ඞཁ → ޙͰࠔΔʢ࣮ࡍࠔͬͨʣ
→ ޙͰࠔΔʢϗϯτࠔͬͨʣ
IAM Role • ໌ࣔతͳڋ൱ͯ͢ͷڐՄʹ༏ઌ • υΩϡϝϯτʹॻ͍ͯ͋Δ •AɿAllow •Bɿɹ- •CɿDeny •AɿAllow
•Bɿɹ- •Cɿɹ- •AɿAllow •BɿDeny •CɿDeny ʴ
IAM Role • ໌ࣔతͳڋ൱ͯ͢ͷڐՄʹ༏ઌ • υΩϡϝϯτʹॻ͍ͯ͋Δ •AɿAllow •Bɿɹ- •CɿDeny •AɿAllow
•BɿAllow •CɿAllow •AɿAllow •BɿAllow •CɿDeny ʴ
ຐԦDeny ͳΜͰౖΒΕͯΔͷ͔͑ͳ͘ͳΔ
IAM Role • ໌ࣔతͳڋ൱ͯ͢ͷڐՄʹ༏ઌ • υΩϡϝϯτʹॻ͍ͯ͋Δ •AɿAllow •Bɿɹ- •CɿDeny •AɿAllow
•BɿAllow •CɿAllow •AɿAllow •BɿAllow •CɿDeny ʴ ཧ༝͕ͳ͍ͳΒ Deny͢Δͳ
CloudFormation ศརʂɾɾɾͰ
CloudFormation ศརʂɾɾɾͰ • ͭΒ͍ʢYAMLʣ • ͭΒ͍ʢ৬ਓൃੜʣ • ͭΒ͍ʢΤϥʔ͑ͳ͍ʣ
CloudFormation ศརʂɾɾɾͰ • ͭΒ͍ʢYAMLʣ • ͭΒ͍ʢ৬ਓൃੜʣ • ͭΒ͍ʢΤϥʔ͑ͳ͍ʣ
·ͱΊ
None
͍͢͝ʢখฒʣ
͍͢͝ʢখฒʣ
Έ߹ΘͤͰ ϓογϡ৴Ͱ͖ͪΌ͏
ଓʑͱྑ͍αʔϏε͕ ग़͖͍ͯͯ·͢
ྑ͍ɹɹɹɹϥΠϑΛʂ
͓͠·͍
·ͱΊ • AWSͰϓογϡ৴Λ։ൃ • αʔϏεͷछྨ͕๛ • Έ߹ΘͤͰເ͕͕Δ • ͍͜ͳ͢·Ͱ͕େม