0. ๊ฐ์
...๋ค ๊ตฐ๋์ ์์ต๋๋ค (์ ์ฅ)
๊ตฐ๋๋ฅผ ๊ฐ ์์ค์ ์๋๋ฐ๋งต ๋ฏธ๋์ด ์๋ฒ๊ฐ ์๋์น ์๊ฒ ์ญ์ ๋์๊ณ ๋ค์ ์ค์ ํด์ผํ๋ ์ํฉ์ด ๋์์ต๋๋ค(...ใ )
์ด ํฌ์คํ ๋ค์ ๊ธฐ์กด์ github์ ์๋ ์ฝ๋๋ฅผ ๋ค์ ๊ฐ์ ธ์ ์๋ฒ๋ฅผ ์ฌ์ค์ ํ๋ ๊ณผ์ ์ ๋ํ ๊ธฐ๋ก์ผ๋ก, ๊ทธ์ค centos ์ด๊ธฐ ์ค์ ์์ ์๋น์ค ๋ฐฐํฌ์ ํ์ํ ํจํค์ง๋ค์ ์ค์นํ๋ ๊ณผ์ ์ ๋ด๊ณ ์์ต๋๋ค.
1. EPEL ์ค์น
EPEL์ด๋ ๊ธฐ์ ์ฉ ๋ฆฌ๋ ์ค์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ๋ค์ํ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๋ ํจํค์ง ์ ์ฅ์๋ฅผ ๋งํฉ๋๋ค.
Cent OS ๋ฟ ์๋๋ผ Red Hat๊ณ์ด์ ๋ค์ํ ๋ฆฌ๋ ์ค ๋ฒ์ ๋ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์๋ ๊ธฐ๋ฅ(ํจํค์ง)๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ์ ์ฅ์๋ก,
EPEL์ ์ค์น ๋ฐ ํ์ฑํํ์ฌ ๋ค์ํ ์์ฉ ํจํค์ง๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ์ ์์ต๋๋ค.
EPEL๋ ๊ฒฐ๋ก ์ ์ผ๋ก ํจํค์ง๋ฅผ ํตํด ์ ๊ณต๋๋ฏ๋ก, EPEL์ ํ์ฑํํ๋ ํจํค์ง๋ฅผ ์ค์นํ์ฌ ํ์ฑํํฉ๋๋ค.
# sudo yum install epel-release
๋ช ๋ น ์คํ์ด ์๋ฃ๋๋ฉด, EPEL ์ค์น ๋ฐ ํ์ฑํ๋ ์๋ฃ๋ฉ๋๋ค.
2. Node.JS ์ค์น / ์ค์
1) Node.JS ์ค์น
์์์ ๋ฏธ๋ฆฌ epel์ ํ์ฑํํ์ผ๋ฏ๋ก, epel์์ ๊ด๋ฆฌ๋๊ณ ์๋ nodejs ํจํค์ง๋ฅผ yum ๋ช ๋ น์ด๋ก ๊ฐ์ ธ์ค๋ฉด ๋ฉ๋๋ค.
# yum install -y nodejs
yum์ Red Hat๊ณ์ด์ ๋ฆฌ๋ ์ค์์ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ํจํค์ง๊ด๋ฆฌ์์ด๋ฉฐ,
๊ธฐ์กด์ RPM ํจํค์ง ๊ด๋ฆฌ์์ ๊ธฐ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋์ ๋์์ต๋๋ค.
"-y" ์ต์ ์ ์ถ๊ฐํ์ฌ ์ค์น๊ณผ์ ์ค ํ์ํ ๊ฒ์๋ ํจํค์ง ํ์ธ ๋ฐ ์ค์น์น์ธ ๋ฑ์ ๊ณผ์ ์ ์๋์ผ๋ก skipํ ์ ์์ต๋๋ค.
์ค์น๊ฐ ์ ์์ ์ผ๋ก ์๋ฃ๋์๋์ง ์๋ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ํ์ธํฉ๋๋ค.
# node -v #nodejs ์ค์น๋ฒ์
# npm -v #npm (node package manager) ์ค์น๋ฒ์
2) Node.JS ํจํค์ง ์ค์น
Node.js ๊ธฐ๋ฐ ์๋ฒ๋ฅผ ์ค์ ๋ก ๋ฐฐํฌํ๊ธฐ ์ํด์๋ ์๋น์ค๊ฐ ์ค๋จ๋์ง ์๋๋ก ์ด์ํ ์ ์๋ ํจํค์ง๋ฅผ ์ค์นํด์ผ ํฉ๋๋ค.
์ด ํจํค์ง๋ nodejs ์ค์น๋ฅผ ํตํด ํจ๊ป ์ค์น๋ npm์ ํตํด ์ค์นํฉ๋๋ค.
์ ๊ฐ ์ค์ ์ ์ํด ์ค์นํ ํจํค์ง๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- yarn: npm ๊ฐ์ ํจํค์ง ๊ด๋ฆฌ์ ์
๋๋ค.
- ์ข ์์ฑ์ด ๋ง์ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ ๋์์ ํจํค์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด ์๋์ธก๋ฉด์์ ํฐ ์ฅ์ ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- npm ๋๋น ๋ณด์์ฑ์ด ๊ฐ๋ ฅํฉ๋๋ค.
- pm2: ์๋ฒ ๋ฐฐํฌ๋ฅผ ๋์์ฃผ๋ ํจํค์ง ์
๋๋ค.
- ์๋ฒ๊ฐ ๋ด๋ถ์ค๋ฅ ๋ฑ์ผ๋ก ์ธํด ์๋น์ค๊ฐ ์ค๋จ๋์ง ์๋๋ก ๋์์ค๋๋ค.
- ์ฌ๋ฌ ํจํค์ง๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ๋ณต์์๋ฒ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํ์ด ์ฉ์ดํฉ๋๋ค.
- ๋ค์ํ ํต๊ณ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ์๋ฒ ๊ด๋ฆฌ์ ๋์์ ์ค ์ ์์ต๋๋ค.
# npm i -g yarn pm2
"i" ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ค์ ์๋ ์ด๋ฆ์ ํจํค์ง๋ค์ ์ค์นํฉ๋๋ค.
"-g" ์ต์ ์ i๋ช ๋ น ๋ค์ ์ถ๊ฐํ์ฌ ํน์ ํจํค์ง์ ๊ตญํ๋์ง ์๊ณ ์ ์ญ์ ์ผ๋ก ์ค์นํฉ๋๋ค.
3) PM2 ์คํํ์ผ ์์ฑ
pm2๋ฅผ ์คํํ์ฌ ์๋ฒ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์๋ฒ๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํด, pm2 ๋ช ๋ น์ ์๋์ผ๋ก ์คํํ์ฌ ํ๋ก์ธ์ค ์์์ ์๋ํํ ์ ์๋ ecosystem ํ์ผ์ ์์ฑํฉ๋๋ค.
// ecosystem.config.js
module.exports = {
apps: [{
name: "AJ_Mealmap - AssetHosting Server",
script: "[[PUB_FILE_ROUTE]]",
watch: false,
exec_mode: "[[SV_EXEC_MODE]]",
env: {
[[ENV_LISTS]]
}
}]
}
3. mongoDB ์ค์น
mongoDB ์ค์น๋ ์์ nodejs ๋งํผ ๊ฐ๋จํ์ง ์์ต๋๋ค.
EPEL ์ ์ฅ์์์ ๊ฒ์ํ์ฌ ์ค์นํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ธ๋ฐ, ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด repo ํ์ผ์ ์์ฑํด์ผ ํฉ๋๋ค.
yum์ด ํด๋น ํจํค์ง๋ฅผ ์ฐพ์ ์ ์๋๋ก /etc/yum.repos.d ๊ฒฝ๋ก์ .repo ํ์ผ์ ๋ง๋ค์ด์ค๋๋ค.
cat <<EOF> /etc/yum.repos.d/mongodb-org-5.0.repo
> [mongodb-org-5.0]
> name=MongoDB Repository
> baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/ # +) baseurl: ์ค์น๊ฐ ํ์ํ ๋ฒ์ ์ ๋ง๊ฒ ๋ณ๊ฒฝ (์ค์น๋ฒ์ : 5.0)
> gpgcheck=1
> enabled=1
> gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
> EOF
ํ์ผ์ ๋ง๋ ๋ค yum์ด ์ ์ฐพ์๋ด๋์ง repolist๋ฅผ ํ์ธํฉ๋๋ค
# yum repolist
# yum update #๋ง์ฝ ๋ฆฌ์คํธ์ ํ์๋์ง ์์ ๊ฒฝ์ฐ
์ ํ์ธ๋๋ค๋ฉด ์ ๋๊ฒ ์ค์นํด์ฃผ๋ฉด ๋ฉ๋๋ค.
# yum install -y mongodb-org
๋ช ๋ น์ด ์๋ฃ๋ ํ, ์ค์น๊ฐ ์ ๋์๋์ง ํ์ธํด์ค๋๋ค
# systemctl start mongod # mongodb daemon์ ์คํํฉ๋๋ค
# mongosh # ๊ธฐ๋ณธ์ค์ ์ผ๋ก mongo shell์ ์ ์ํฉ๋๋ค
4. apache ์ค์น
apache๋ mongoDB์๋ ๋ฌ๋ฆฌ EPEL ์ ์ฅ์์์ ๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค.
๋๊ตฌ๋ณด๋ค ๋น ๋ฅด๊ฒ yum ๋ช ๋ น์ด๋ก ์ค์น๋ฅผ ์งํํด์ฃผ์.
# yum install -y httpd
์ค์น๊ฐ ์๋ฃ๋์๋์ง ํ์ธํ๊ธฐ ์ํด ์๋น์ค๋ฅผ ์์ํ๋ค.
์์ ํฌ์คํ ์ค๋ฅํด๊ฒฐ์ ๋์จ ๋ฌธ์ ์ด๊ธด ํ๋ฐ, ํฌํธ ํ ๋น๊ถํ ๊ฑฐ๋ถ๋ก ์ธํด ์๋น์ค ์์์ด ์๋๋ ๊ฒฝ์ฐ
SELinux์ ๋ฌธ์ ์ด๋ฏ๋ก SELinux์ ๋ณด์์ค์ ์ ๊บผ์ฃผ๋ฉด ๋๋ค.
# systemctl start httpd # ์๋น์ค ์์
# systemctl status httpd # ์๋น์ค ํ์ฌ์ํ ํ์ธ
# setenforce 0 && systemctl start httpd # ์๋น์ค ์์์ด ํฌํธ๊ถํ ๋ฌธ์ ๋ก ๊ฑฐ๋ถ๋ ๊ฒฝ์ฐ
5. ๋ง๋ฌด๋ฆฌ
์ด๋ก์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋น์ค ๋ฐฐํฌ์ ํ์ํ ํจํค์ง์ ๋ํ ์ค์น๊ฐ ๋๋ฌ์ต๋๋ค.
์ฌ์ค ๋ค์ SSL ์ธ์ฆ์ ์ค์ ๋ฑ์ ์งํํ๋ฉฐ ํ์ํ ํจํค์ง๋ค์ด ํจ์ฌ ๋ง์ง๋ง, ์ฐ์ ๊ธฐ๋ณธ์ ์ธ ์ค์ ์ ํ๋๊ฒ์ ๋ชฉํ๋ก ํ์๊ธฐ ๋๋ฌธ์
์ฌ๊ธฐ์์ ๊ธฐ๋ณธ์ค์ ์ ๋ง์นฉ๋๋ค.
ํ์ง๋ง apache์ ๊ฒฝ์ฐ ์ค์น๋ฅผ ์ ์์ ์ผ๋ก ํ์์๋ ์ธ๋ถ์์๋ ์ ์์ด ๋์ง ์๋๋ฐ, ๋ฐ๋ก ๋ฐฉํ๋ฒฝ์ ์ค์ ํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์์ ํฌ์คํ ์์ ๋ง๋ณด๊ธฐ๋ก ๋ค๋ค๋ณด์๋ ๋ฐฉํ๋ฒฝ ์ค์ ์ ๋ค์ ํฌ์คํ ์์ ์กฐ๊ธ ๋ ์์ธํ ๋ค๋ฃจ๋ฉฐ ์ค์ ํ ๊ณํ์ ๋๋ค.