Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバレスアーキテクチャはじめの一歩
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Koji Nakayama
April 22, 2017
Technology
1.6k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバレスアーキテクチャはじめの一歩
https://jawsugosaka.doorkeeper.jp/events/59431
Koji Nakayama
April 22, 2017
More Decks by Koji Nakayama
See All by Koji Nakayama
Software Testing in AWS IoT with The Power of Python
knakayama
0
1.8k
The ~~Ten~~ Three Most Critical Security Risks in Serverless Architectures
knakayama
2
1.6k
サーバーレス x IoT 〜我々はどういった課題に直面してそれをどのように解決したのか〜
knakayama
0
1.5k
Bloxが切り開くECSの世界
knakayama
1
1.3k
AWS Serverless Application Modelのデプロイ戦略
knakayama
4
2.5k
github-classmethod-study-20170426
knakayama
1
3.9k
Other Decks in Technology
See All in Technology
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
1
1.5k
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
320
あるけみー式LTスライド作成術
alchemy1115
1
200
2026_devsumi_ozono.pdf
o3
3
410
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
170
2026/09/10 Spring Bootから Jakarta EE/MicroProfileへの移行
megascus
0
340
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
0
140
[2026-09-11]SREは誰のもの?運用エンジニアが始める 「SRE領域への越境」とチームの進化の軌跡 〜Road to NEXT CRE
tosite
0
160
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
960
Multica × 長期記憶:40個のミニプロジェクト管理
eiei114
1
250
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
270
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
160
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
13
39k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
450
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
270
Bash Introduction
62gerente
615
220k
Everyday Curiosity
cassininazir
0
310
Transcript
ςЄϝϹφίЄκϓμώϰ ΅ͮΗ΄Ӟ䴿 JAWS-UGՂ᮷ ̿SERVERLESSᐦ ӗςЄϝϹφͽίϤϷΨ֢ͼΕΞ͜ӗ̀ 2017/04/22 Ӿઊ ଛလ 1
ᛔ૩奧Օ • Ӿઊ ଛလ • μ϶φϮϊϐϖ AWSԪ䮣᮱ ϊϷϲЄτϴ ЀίЄκϓμϕ •
AWSΨڥአͭ͵αЀϢ϶΄戔懯/䯤塈/π ЀςϸϓΰЀν • GitHub: knakayama • 奺䵉 • ηЀϤϹςЄϝ΄晁አ3ଙ • AWS 1ଙ 2
ίυδЀύ 1. Serverless͢扖氂Ρᙧว 2. Serverless;΅֜͡ 3. Serverless΄ڥᅩ 4. ServerlessΨඪ͞ΡϑЄϸ 5.
ᐒտ΅ኚ͚ͥ 6. Δ;Η 7. ݇ᘍϷЀμ 3
ဳᅩ • φ϶αϖ΅匍䦒ᅩ΄ఘ䁭Ψڹͭͼ͚Δͯ • Serverlessኴᵈ΄ίϐϤϔЄϕ΅͚΄ͽڥአͯΡ檭΅๋ෛ΄ ఘ䁭Ψ݇ᆙͯΡͩ; • AWSզक़΄扖(GCP;͡Azure;͡OpenWhisk;͡)΅Ꭳ憎͚͢ ΄ͽۆ䙄 4
1. Serverless͢扖氂Ρᙧว 5
τЀϤϸWeb DBίЄκϓμώϰ Ψᘍ͞ͼΕΡ 6
7
τЀϤϸ䯤౮ • ELBͽϝϐμεЀϖ΄EC2ϕ϶Ϣΰϐ μၞͯ • EC2ͽRDSίμψφ • RDSϔЄόכਂ 8
EC2Ψڥአͭ͵䁰ݳ΄抓氂 • ෭̸΄晁አ • 哶憙 • ϊϢϕγδί΄ίϐϤϔЄϕ • ᚈ୧䌏䖕 9
OSզӤ΄Ϲαϱ΅ڥአᘏ㯎ͽᓕቘ ͯΡᥝ͘͢Ρ 10
ͽͣΡΟΚΠ͵͚ͥ 11
Ͳ晁አ͢ᥝΡ΄͡ • ϳЄσ㭅㮔ΨͧΡ͵ΗςЄϠφΨ֢Ρ • ςЄϠφΨ֢Ρ͵ΗπЄϖΨ䨗ͥ • πЄϖΨ㵕ͯ͡͵ΗςЄϝ͢ᥝΡ • ςЄϝ͢ྋଉ㵕֢ͭ姆ͧΡ͵Η晁አ͢ᥝΡ 12
Θ;ςЄϠφ(πЄϖ) ᵞӾͭ͵͚ 13
ͩͩΔͽ΄Δ;Η • 晁አ΅ͽͣΡΟΚΠ͵͚ͥ • ΄ፓጱ΅ςЄϠφΨ֢ͼϳЄσ㭅㮔Ψ׀ͯΡͩ; • ͳ΄͵ΗςЄϠφ(πЄϖ)΄ΕᵞӾͭ͵͚ • Serverless͢ጭ䁰ͯΡᙧว΅͚ͩ͜͵Ԫఘ͘͢Ρ 14
2. Serverless;΅֜͡ 15
Serverless;΅֜͡ • Ӟᛱጱ΅Function as a Service(FaaS)ΨӾஞ;ͭ͵ίЄκϓμώϰ • AWSͽ΅Lambda • ͵Ͷ̵ͭLambdaͯΟֵΥ͚ίЄκϓμώϰΨͩ͜Ό䁰ݳΘ͘Ρ
(Lambdaless) • ͩ΄旽΅ۆ;䨀ซ • αϦЀϕϖϷϣЀ;͚͜ᇙ䖀͘͢Ρ • ֜Ο͡΄αϦЀϕΨॶ䱛;ͭͼϡόρ϶φαϐώጱݱ圵㳌ቘ͢䋚ᤈͫΡ 16
Lambda • πЄϖΨ䋚ᤈͽͣΡπЀϡϲЄϓΰЀνςЄϠφ • ςЄϝΚϤϺψφΨ樄咲ᘏ㯎ͽᓕቘͯΡᥝ͚͢ • Ϸμεφϕ/䋚ᤈ䦒樌䖕ͮ͵䕪ᰁ抓ᰂګ • ਞ͚ •
僻ාڥአ䩵Θ꧌䋚 • EC2΄䁰ݳ๋֗1䦒樌㶨֖ͽ抓ᰂ • 匍䦒ᅩͽلୗςϪЄϕͭͼ͚Ρ承΅Node.js/Python/Java/C# • ͵Ͷͭ㳨΄承Θ䋚ᤈݢᚆ 17
αϦЀϕϖϷϣЀҘ 18
S3 Event Notification • S3咲ኞͭ͵αϦЀϕ(Put/DeleteͿ) Ψॶ䱛ݱ圵㳌ቘΨ䋚ᤈͽͣΡ՛奲Ε 1. ᓕቘᘏ͢ίϐϤϺЄϖአϝξϐϕኮ ؟ΨPut 2.
S3 Event NotificationͽLambda᩸㵕 3. Lambdaͽኮ؟Ψےૡ̵ͭᤒᐏአϝξϐ ϕPut 4. ϳЄσ΅CloudFront奺ኧͽኮ؟Ψᤒᐏ 19
SNS Notification • SNSϕϡϐμ奺ኧͽLambda᩸㵕ݢᚆ 1. ͚ͭͣ㮔Ψ᩻晃ͭ͵΄ͽCloudWatch Alarm咲ᅉ 2. CloudWatch Alarm΄ίμτϴЀͽSNS
ϕϡϐμ᭗Ꭳ 3. ϕϡϐμΨςϣφμ϶αϣͭͼ͚Ρ LambdaΨ䋚ᤈ 4. Lambda͡ΟSlack᭗Ꭳ 20
Kinesis Firehose • Kinesis Firehose΄φϕϷЄϭॶ䱛ͽ Lambda᩸㵕ݢᚆ 1. ϤϺϔϲЄς͡ΟKinesis Firehoseφ ϕϷЄϭϔЄόಭف
2. φϕϷЄϭϔЄό͢ಭفͫΡ; Lambda᩸͢㵕ͫͼETL㳌ቘ䋚ෞ 3. ๋奰ጱےૡͫ͵ϔЄόΨS3Put 21
3. Serverless΄ڥᅩ 22
ضᑕ΄㾩ΨServerlessఽͮ ᗝͣ䟵͞ͼΕΡ 23
24
ServerlessίЄκϓμώϰ • CloudFrontͽϞφϦЄφϸЄϓΰЀν • Ϟφ䖕ͮͼS3͡API Gatewayϕ϶ Ϣΰϐμၞͯ • S3΄WebϨφϓΰЀνͽUIᤒᐏ •
API Gateway΄IntegrationͽLambda᩸㵕 • Lambda͡ΟDynamoDBput_item/ get_item • ϔЄόφϕί;ͭͼDynamoDB • Lambda on VPC + RDSͽΘOK 25
Serverless΄ڥᅩ • ϫϚЄυϖςЄϠφΨӾஞ;ͭ͵ίЄκϓμώϰ΄ͽ晁አᶎΨAWS͠Δ͡ͱͽ ͣΡ • ςЄϠφ(πЄϖ)΄樄咲ϷϊЄφΨᵞӾͽͣΡ • ᛔᆐ;听奾ݳ(ϫαμϺςЄϠφ)ίЄκϓμώϰΡ • 1ͺ΄Lambdaͽقͼ΄㳌ቘΨ䋚ෞͯΡ΄΅匍䋚ጱͮΙ͚΄ͽ̵ᛔᆐ;晒ڔᔉ
ଶͽړ櫝ͭͼ͚ͥ • ӞᛱጱEC2ΨӾஞ;ͭ͵ίЄκϓμώϰΞΠΘπφϕΨಪ͞ΟΡ • Lambda͢ϷμεφϕϦЄφ΄抓ᰂ֛ᔮ΄͢य़͚ͣ 26
4. ServerlessΨඪ͞ΡϑЄϸ 27
ServerlessίЄκϓμώϰ΄抓氂 • LambdaΨ㵕֢ͫͱΡ΄΅क़;ᶎׯ͚ͥͫ • ϫϚυϮЀϕπЀϊЄϸͽፗളπЄϖ䨗ͥ • ϺЄθϸͽπЄϖ䨗ͥ → ZipࢴΗΡ →
ίϐϤϺЄϖͯΡ • LambdaӞ㮆Ͷͧͽਠ奾ͯΡΞ͜䯤౮΅ΑΒ͚ • 愢හ΄AWSϷϊЄφΨڥአͯΡ΄͢୮͵Πڹ • ϓφϕΨͭ͵͚ • ϳϘϐϕϓφϕ • ϺЄθϸ厏हͽ΄ϓφϕ • ͩ΄旽ΨӤಋͥΚͼͥΡ՛奲Ε͢Α͚ͭ 28
ϢϹЄϭϼЄμ 29
ϢϹЄϭϼЄμ • ϔϤϺαϮЀϕϞϐξЄυ֢౮ϤϺψφ΄墋ᔰ۸ • ServerlessίЄκϓμώϰق֛΄πЄϖ۸ • CloudFormation • Terraform •
πЄϖ۸ΞΡڥᅩ • ٚ匍 • Git/GitHub/PR洑㵕樄咲 • CI/CDΨڥአͭ͵ϔϤϺαϞαϤ϶αЀ۸ 30
դᤒጱϢϹЄϭϼЄμ Serverless Framework AWS Serverless Application Model(AWS SAM) Apex 䋚ᤰ
Node.js ᎣΟΩ(Java?) Go ϫϸώμ϶γϖ Yes No No OSS Yes No Yes AWSϷϊЄφ΄֢౮ොဩ CloudFormation(Ӟ᮱ᶋ䌏䖕) CloudFormation Terraform CLI΄ํ僻 Yes(sls) No(AWS CLI?) Yes(apex) ͳ΄՜ Ϥ϶ναЀΞΡ䝭䔴 ϺЄθϸ䋚ᤈ΄ςϪЄϕ ग़䱛ᚆ ڥአᘏग़͚Ҙ AWS挘愚 Swagger & ChangeSetςϪЄϕ 㷗ੂ͜;ϢϹЄϭϼЄμ ͽ΅ͥϯϔϸ HookςϪЄϕ Go承΄ςϪЄϕܹ͚Ҙ Dry-runςϪЄϕ τЀϤϸ 31
ϓφϕϑЄϸ 32
ϳϘϐϕϓφϕ • Lambda΅क़᮱͡ΟჁͫ͵ϔЄόΨ㳌ቘͯΡ樛හ;͞Ρͩ;ΘͽͣΡ • AWS΄䁰ݳLambdaჁͫΡϔЄό΅㶨ΡJSON • ෬ਂϓφϕϯυϲЄϸΨֵ͵ϳϘϐϕϓφϕ͢ݢᚆ • ᇙਧ΄JSONΨჁͯ →
奾ຎ͢๗இͭ͵Θ΄͡嘦扯 • Node.js΄chai;͡ΞֵͥΥͼΡΓ͚ • http://qiita.com/horike37/items/15bf675f973d30bb1f5c • PythonͶ͵Οpytest • https://librabuch.jp/blog/2016/07/aws-lambda-environment/ 33
ϺЄθϸ厏हͽ΄ϓφϕ • ϓφϕΨͯΡ΄AWS厏हΨ͚ͷ͚ͷአͯΡ΄΅ᶎׯ • ϺЄθϸͽAWS;ݶᒵ΄䱛ᚆΨͯΡΘ΄Κ̵ϯϐμᔮ΄ϑЄϸΨڥአͯΡ ϑЄϸ ༷ᥝ Serverless Framework lambda-local
Lambda΄فڊێΨϺЄθϸͽٚ匍ݢᚆ DynamoDB Local DynamoDB;ݶᒵ΄䱛ᚆΨϺЄθϸͽٚ匍ݢᚆ AWS挘愚 mhart/kinesalite Kinesis΄فڊێΨϺЄθϸͽٚ匍ݢᚆ spulec/moto AWSςЄϠφ΄فڊێΨϺЄθϸͽٚ匍ݢᚆ atlassian/localstack 愢හ΄ϺЄθϸ䋚ᤈᔮςЄϠφΨΔ;Η͵ϢϸφόϐμϑЄϸ 34
5. ᐒտ΅ኚ͚ͥ 35
ᐒտ΅ኚ͚ͥ • Lambda΅ͳΠګ夹͘͢Ρ • ๋य़䋚ᤈ䦒樌5ړ • ๋य़φϕϹЄυ512MB(/tmp) • ෬ਂ΄ದ悬;ϫϐώ͚ͭ䁰ݳΘ͘Ρ •
Ruby on Rails;͡ • قͼ΄EC2Ψᗝͣ䟵͞ΡΘ΄ͽ΅͚ • 䁰ݳΞͼπЀϓϗ(ECS)ςЄϠφΘ䭥懵ͯΡ • 晒晒ಅͽڥአͯΡͩ; 36
Serverless͢ϜϫΠΚ͚ͯϳЄφξЄφ • ϷίϸόαϭϢήαϸ㳌ቘ • S3΄Event NotificationͽLambda᩸㵕 → ኮ؟㳌ቘ • ϷίϸόαϭφϕϷЄϭ㳌ቘ
• Kinesis → LambdaͽETL → S3ΚDynamoDB • APIϝϐμεЀϖ • API Gateway;΄Integration → Lambda → ϔЄόφϕί • SNSϕϡϐμ;΄昧൭ • AWSςЄϠφ樌΄Ϝϣ;ΡSNSϕϡϐμ → Lambda᩸㵕 → ձ΄㳌ቘ https://www.slideshare.net/keisuke69/aws-lambda-amazon-api-gateway-deep-dive 37
6. Δ;Η 38
Δ;Η • AWSΨڥአͯΡΟServerlessίЄκϓμώϰΨֵͼΕΞ͜ • 僻ቘίЄκϓμώϰق֛ΨServerless۸͚ͭͯͤ • ᥝկጱ櫞ͭͳ͜ͽ͘ΆᔰፗEC2/ECSΨ䭥懵ͯΡ • ΔͰ΅φϯЄϸφόЄϕ͡ΟতΗΡ 39
͠ΥΠ 40
7. ݇ᘍϷЀμ 41
Serverless;΅֜͡ • https://rebuild.fm/160/ • https://martinfowler.com/articles/serverless.html • http://dev.classmethod.jp/cloud/aws/serverless- meetup-20160802/ 42
ServerlessίЄκϓμώϰ • https://speakerdeck.com/ikait/serverless-architecture-supports- nikkeis-paper-viewer 43
ServerlessΨඪ͞ΡϑЄϸ • https://github.com/serverless/serverless • https://github.com/awslabs/serverless-application-model • https://github.com/apex/apex • https://speakerdeck.com/horike37/serverless-framework- workshop
• https://medium.com/vandium-software/unit-testing-aws- lambda-functions-in-node-js-7ad6c8f5000 44
ᐒտ΅ኚ͚ͥ • http://docs.aws.amazon.com/lambda/latest/dg/limits.html • https://www.slideshare.net/keisuke69/aws-lambda-amazon-api- gateway-deep-dive 45