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
Node.jsサーバアプリケーションの 稼働方法 ~基本からDockerまで~
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Akiyoshi Tanaka
May 09, 2019
Programming
960
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Node.jsサーバアプリケーションの 稼働方法 ~基本からDockerまで~
Akiyoshi Tanaka
May 09, 2019
More Decks by Akiyoshi Tanaka
See All by Akiyoshi Tanaka
TypeScript @Decorator で node.js 開発
akkunchoi
0
73
Laravel5.5 Broadcastingを使ってみた話
akkunchoi
1
560
Other Decks in Programming
See All in Programming
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
140
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
150
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
120
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
The Good Stuff, Not the Slop: Engineering High-Quality Android Apps with Modern AI Tooling
danybony
1
250
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
290
Family mrubyの進捗
kishima
1
120
一人だけ、Kiroが静止する日
hideg
0
110
Security issues being discussed on Web Platforms
petamoriken
0
950
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.9M
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
430
Bash Introduction
62gerente
615
220k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
What's in a price? How to price your products and services
michaelherold
247
13k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
65k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
520
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Transcript
/PEFKTαʔόΞϓϦέʔγϣϯͷ Քಇํ๏ ʙجຊ͔Β%PDLFS·Ͱʙ
ࣗݾհ w גࣜձࣾ#5SFF w ాதষت"LJZPTIJ5BOBLB w !BLLVO@DIPJ w /PEFKTΞϓϦέʔγϣϯӡ༻ܦݧ
୯ମϓϩάϥϜ αʔόϨε αʔό 'BB4-BNCEB #BB4'JSFCBTF *BB4&$ 1BB4)FSPLV ϑϩϯτΤϯυΞϓϦέʔγϣϯͷϏϧυ ࠓͷτϐοΫʂ /PEFKTͷ༻్ࠓͷτϐοΫ
*P5σόΠε ΦϯϓϨ
w /PEFKTͰαʔόཱͯͨ͜ͱ͕͋Δ w QNΛͬͨ͜ͱ͕͋Δ w %PDLFS্Ͱ/PEFKTΛಈ͔͍ͯ͠Δ ࣭
w جຊ w ϓϩηεϚωʔδϟ w αʔόΞʔΩςΫνϟ w "84&$4Y/PEFKT ࣍
w جຊ w ϓϩηεϚωʔδϟ w αʔόΞʔΩςΫνϟ w "84&$4Y/PEFKT
/PEFKT8FCαʔόಈ࡞ྫ ιʔε $ curl http://localhost:8000 Fri May 03 2019 13:00:25
GMT+0900 (JST) αʔόىಈ ΫϥΠΞϯτ ΞΫηε $ node index.js
OPEFίϚϯυ w جຊతʹγϯάϧϓϩηεɺγϯάϧεϨου w ΤϥʔͰϓϩηε͕མͪΔͱఀࢭͯ͠͠·͏ w ߋ৽͢ΔࡍʹμϯλΠϜ͕ൃੜ
w جຊ w ϓϩηεϚωʔδϟ w ΞʔΩςΫνϟ w "84&$4Y/PEFKT
ϓϩηεϚωʔδϟ ɾΞϓϦέʔγϣϯ͕ҟৗऴྃͨ͠߹ʹࣗಈతʹ࠶࢝ಈ͢Δɻ ɾϥϯλΠϜɾύϑΥʔϚϯεͱϦιʔε༻ྔʹؔ͢ΔΠϯαΠτΛಘΔɻ ɾύϑΥʔϚϯεΛ্ͤ͞ΔͨΊʹઃఆΛಈతʹมߋ͢Δɻ ɾΫϥελϦϯάΛ੍ޚ͢Δɻ IUUQTFYQSFTTKTDPNKBBEWBODFEQNIUNM
ϓϩηεϚωʔδϟ w GPSFWFS w 1. w 4USPOH-PPQ1SPDFTT.BOBHFS TUSPOHQN w
4ZTUFN%
1.
ϓϩηεϚωʔδϟQN w /PEFKTͷϓϩηεϚωʔδϟ w Πϯετʔϧɺىಈ؆୯ w ϓϩηε࠶ىಈɺઃఆϑΝΠϧԽ $ npm install
pm2@latest -g $ pm2 start app.js
ϓϩηεϚωʔδϟQN w σϓϩΠ w ࣗಈىಈαϙʔτ w Ϛϧνϓϩηεىಈ w ଞɺϞχλϦϯάɺϩάཧ
ϓϩηεϚωʔδϟQNσϓϩΠ w ઃఆϑΝΠϧʹهड़ͯ͠ίϚϯυ࣮ߦ͢Δ͚ͩ w θϩμϯλΠϜͰߋ৽Մೳ w DBQJTUSBOPͱͷ૬ੑ͕ѱ͍ɻQNͰͷσϓϩΠ͕ແ w γϯϘϦοΫϦϯΫͰϦϦʔεΛΓସ͑ΔΈ͕QNʹ߹Θͳ͍ w
࠶ىಈ࣌ʹө͞Εͳ͍ɺΤϥʔͰམͪΔ
ϓϩηεϚωʔδϟQNσϓϩΠ module.exports = { apps: [{ name: "app", script: "app.js"
}], deploy: { production: { key: "/path/to/some.pem", user: "ubuntu", host: ["192.168.0.13"], ref: "origin/master", repo: "
[email protected]
:Username/repository.git", path: "/var/www/my-repository", 'post-deploy': "npm install", }, } } FDPTZTUFNDPOpHKT IUUQTQNJPEPDFOSVOUJNFHVJEFFBTZEFQMPZXJUITTI
ϓϩηεϚωʔδϟQNࣗಈىಈ w ࣗಈىಈαʔόىಈ࣌ʹࣗಈతʹϓϩηεΛىಈ͢Δ w ֤04ʹ߹ΘͤͨࣗಈىಈઃఆΛੜ͢ΔίϚϯυ͕༻ҙ w TZTUFNE VQTUBSU MBVODIE PQFOSD
SDE TZTUFNW $ pm2 startup
ϓϩηεϚωʔδϟϚϧνϓϩηε w $16ϦιʔεΛ࠷େݶ͏ͨΊ w γϯάϧϓϩηεͰϕϯνϚʔΫൺֱ͠ͳ͍Ͱʜʂ w ϫʔΧʔϓϩηε͕ͭఀࢭͯ͠ɺଞͷϓϩηεͰಈ࡞ w $16ϔϏʔͳॲཧɺϒϩοΩϯά*0Ͱࢭ·Δ
ϓϩηεϚωʔδϟϚϧνϓϩηε w ϓϩηεͷσʔλΠϕϯτڞ༗͞Εͳ͍ w 3FEJTͰڞ༗͢Δ w 8FC4PDLFUΛϚϧνϓϩηεͰ͏߹ඞਢ
ϓϩηεϚωʔδϟQNϚϧνϓϩηε w ෛՙࢄΛࣗͰΔˠGPSLϞʔυ w ෛՙࢄΛQNʹ͍ͤͨˠDMVTUFSϞʔυ
ϓϩηεϚωʔδϟQNϚϧνϓϩηε DMVTUFS GPSL ιʔεमਖ਼ ෆཁ ඞཁ ϙʔτׂ ϚελʔͷΈ ͭ ϓϩηε͝ͱ
ෳ ىಈํ๏ DMVTUFSϞδϡʔϧ DIJME@QSPDFTTGPSL ϩʔυόϥϯγϯά ༗ ແ εςΟοΩʔ ηογϣϯ ෆՄ -#ଆͰՄ
ϓϩηεϚωʔδϟ·ͱΊ w OPEFͷىಈQNͰࣄΓΔ w Ϛϧνϓϩηεʹ͢Δ߹Ϟʔυͷҧ͍ʹҙ w DMVTUFSϞʔυͱGPSLϞʔυͷ͍͚
w جຊ w ϓϩηεϚωʔδϟ w αʔόΞʔΩςΫνϟ w "84&$4Y/PEFKT
αʔόΞʔΩςΫνϟ γϯάϧϓϩηε Ϛϧνϓϩηε γϯάϧαʔό ։ൃ༻్ খن Ϛϧναʔό γϯϓϧ εέʔϧΞτ DMVTUFSͰ
εέʔϧΞτ
γϯάϧϓϩηεɾγϯάϧαʔό w ࠷γϯϓϧͳߏ w ։ൃڥɺϓϩτλΠϓ͚ αʔό
Ϛϧνϓϩηεɾγϯάϧαʔό w खܰʹεέʔϧΞοϓ͍ͨ͠ɺՄ༻ੑΛ্͍͛ͨ w খنͳϓϩμΫτ͚ αʔό DMVTUFS
Ϛϧνϓϩηεɾγϯάϧαʔό w GPSLϞʔυͳΒϩʔυόϥϯαඞཁ ϩʔυόϥϯα αʔό GPSL
γϯάϧϓϩηεɾϚϧναʔό ϩʔυόϥϯα w αʔόଆͷߏΛγϯϓϧʹෛՙࢄ͕Ͱ͖Δ w %PDLFSڥͰߏங͍͢͠ w ϩʔυόϥϯαͰεςΟοΩʔηογϣϯ͍ͨ͠߹ʢ4PDLFUJPʣ αʔό αʔό
ϚϧνϓϩηεɾϚϧναʔό ϩʔυόϥϯα w ϚϧνίΞαʔόͰෛՙࢄ͍ͨ͠ w GPSLϞʔυͰಈ͔͢ͱ໘ αʔό αʔό
αʔόΞʔΩςΫνϟ·ͱΊ γϯάϧϓϩηε Ϛϧνϓϩηε γϯάϧαʔό ։ൃ༻్ খن Ϛϧναʔό γϯϓϧ εέʔϧΞτ DMVTUFSͰ
εέʔϧΞτ
w جຊ w ϓϩηεϚωʔδϟ w αʔόΞʔΩςΫνϟ w "84&$4Y/PEFKT
"84&$4 w "84ͷ%PDLFSίϯςφϚωδϝϯταʔϏε w &$͔ɺϑϧϚωʔδυͷ'BSHBUFΛબͰ͖Δ w 'BSHBUFศར͚ͩͲɺ&$ΑΓׂߴͰɺTTIͰαοͱೖΕͳ͍
%PDLFSY/PEFKT w %PDLFSͱ/PEFKTͷ૬ੑ͕ྑ͍ w ͲͪΒجຊγϯάϧϓϩηε w /PEFKTίϯςφ͚ͩͰ8FCαʔόίϯςφ͕ͳͯ͘ಈ͘
ෳαʔόߏ๊͕͑Δ՝ w σϓϩΠ w ϩάऩू w εέʔϧΞτ w αʔόߏཧ
ෳαʔόߏ๊͕͑Δ՝Λ"84&$4Ͱղܾ w σϓϩΠ w ϩάऩू w εέʔϧΞτ w αʔόߏཧ ϩʔϦϯάߋ৽
$MPVE8BUDI Φʔτεέʔϧ %PDLFSpMFEPDLFSDPNQPTF
ϩʔϦϯάߋ৽ ίϯςφ W ίϯςφ W ίϯςφ W ίϯςφ W ৽͍͠όʔδϣϯΛىಈ
৽όʔδϣϯͷૄ௨͕֬ೝͰ͖Ε چόʔδϣϯΛࢭΊΔ
"84&$4 &-# ʢϩʔυόϥϯαʣ &$ %PDLFSίϯςφ &$ %PDLFSίϯςφ %PDLFSίϯςφ ˞'BSHBUFͷ߹ɺ&$ෆཁ
"84&$4 w ίϯςφͷࣗಈ෮چ w OPEFKTϓϩηε͕མͪͯɺૄ௨͕Ͱ͖ͳ͘ͳΔͱίϯςφΛىಈ͢Δ w ϩʔϦϯάߋ৽ w ϩάυϥΠόઃఆ w
&-#ʹΑΔϩʔυόϥϯγϯά w ΤϑΣϝϥϧϙʔτʹ͢Δ͜ͱͰϙʔτׂࣗಈ
ϓϩηεϚωʔδϟ ɾΞϓϦέʔγϣϯ͕ҟৗऴྃͨ͠߹ʹࣗಈతʹ࠶࢝ಈ͢Δɻ ɾϥϯλΠϜɾύϑΥʔϚϯεͱϦιʔε༻ྔʹؔ͢ΔΠϯαΠτΛಘΔɻ ɾύϑΥʔϚϯεΛ্ͤ͞ΔͨΊʹઃఆΛಈతʹมߋ͢Δɻ ɾΫϥελϦϯάΛ੍ޚ͢Δɻ IUUQTFYQSFTTKTDPNKBBEWBODFEQNIUNM
"84&$4 w "84&$4ϓϩηεϚωʔδϟʁ w &$4্ͳΒQNΛΘͣOPEFίϚϯυ͚ͩͰेʁ
·ͱΊ w QNͰαʔόӡ༻ͷେ෦ղܾͰ͖Δ w ༻్ʹ߹ͬͨΞʔΩςΫνϟબఆ͕ඞཁ w ෳߏ%PDLFSΛͬͨӡ༻͕Φεεϝ
Γ͍ͨ͜ͱ w XPSLFS@UISFBET w ύϑΥʔϚϯεɾνϡʔχϯά w ͦͷଞͷίϯςφϚωδϝϯταʔϏε
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠