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
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.6k
github-classmethod-study-20170426
knakayama
1
4k
Other Decks in Technology
See All in Technology
Devin プロモコードの受け取りと適用(2026.10.27)
kinopeee
1
640
AI時代、つくる力を自分たちの手に。 ──電通×KAG、アジャイルとAI駆動開発で挑む開発の変革
yuukiyo
3
400
Snowflake でできることが増えたら、 ABAC が必要になった
kaeton
0
110
日本AIベンチャーレポート2026
kentarofujii
0
250
How we choose session proposals
kawaguti
PRO
1
180
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
1
270
OneLakeをデータソースにした AI Search(Foundry IQ)の ライフサイクル管理
ryuseiiida
0
110
reInvent2026stby LT00 "Change your life!"
shinichirokawano
1
370
AI秘書と毎日働くのはもう当たり前。開発以外の業務に足りない機能をどう埋める?
minorun365
PRO
4
1.9k
ひとりで始めた AI駆動開発、チームに広げて何が変わったのか
kenichiodo
0
130
CSS2026:OWS研究会・招待講演「世界観を、実装する」
atsush1_sada
2
340
AIエージェントに 権限と鍵をどこまで渡すか
nrinetcom
PRO
2
120
Featured
See All Featured
Building Applications with DynamoDB
mza
96
7.3k
Odyssey Design
rkendrick25
PRO
2
890
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
540
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
280
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
530
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
First, design no harm
axbom
PRO
2
1.4k
Building Adaptive Systems
keathley
44
3.3k
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