๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

1. AWS EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

1. ๋ณด์•ˆ ๊ทธ๋ฃน ์ถ”๊ฐ€: ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— ssh, http, https ์ถ”๊ฐ€

2. pemํ‚ค ์ƒ์„ฑ 

3. ssh ๋“ฑ๋ก

4. pemํ‚ค ๊ถŒํ•œ ๋ณ€๊ฒฝ

chmod 400 EC2.pem
  • ๋งฅ ์œ ์ €
ssh -i [pem key ํŒŒ์ผ ๊ฒฝ๋กœ] [์‚ฌ์šฉ์ž ์ด๋ฆ„]@[Public IP ์ฃผ์†Œ ๋˜๋Š” DNS ์ด๋ฆ„]
  • ๋Œ€๋ถ€๋ถ„์˜ Linux AMI์˜ ๊ฒฝ์šฐ, ๊ธฐ๋ณธ ์‚ฌ์šฉ์ž ์ด๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    • Amazon Linux, CentOS, Red Hat Enterprise Linux (RHEL): ec2-user
    • Ubuntu: ubuntu
    • Debian: admin
    • Fedora: fedora
ssh -i ~/Downloads/EC2.pem ubuntu@123.45.67.89
  • ์œˆ๋„์šฐ ์œ ์ €
    • Putty-gen์„ ํ†ตํ•ด pemํŒŒ์ผ์„ pkyํŒŒ์ผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.
    • Putty๋ฅผ ํ†ตํ•ด SSH์— ์ ‘์†ํ•œ๋‹ค.

5. ssh ์ ‘์†

 

2. Ubuntu Instance

์šฐ๋ถ„ํˆฌ ์„œ๋ฒ„์— node์™€ git์„ ์„ค์น˜ํ•œ๋‹ค

# ์‹œ์Šคํ…œ์— ์„ค์น˜๋œ ํŒจํ‚ค์ง€ ์ •๋ณด๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์—…๋ฐ์ดํŠธ
sudo apt update
# Node.js์˜ ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€
curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -

# ์„ค์น˜
sudo apt-get install -y nodejs
sudo apt install git
git clone ...
npm install

 

 

3. .envํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

vi .env
i
์ฝ”๋“œ ๋ถ™์—ฌ๋„ฃ๊ธฐ 
esc
:
wq enter

 


[์ด์Šˆ ๋ฐœ์ƒ] ํฌํŠธ ๊ถŒํ•œ ์˜ค๋ฅ˜(permission denied)

 80๋ฒˆ ํฌํŠธ permission ์˜ค๋ฅ˜

Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1337:8)
    at processTicksAndRejections (node:internal/process/task_queues:81:21) {
  code: 'EACCES',
  errno: -13,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 80
}

well known port์ธ 1024๋ฏธ๋งŒ port๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฃจํŠธ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰ ํ•ด์•ผํ•œ๋‹ค.
sudo npm start์„ ํ•ด์•ผํ•œ๋‹ค.

 

1) sudo ๋ช…๋ น์–ด ๋จน๊ฒŒํ•˜๊ธฐ

node๊ฐ€ ์„ค์น˜ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ๋กœ์™€ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค.
which node๋กœ ๊ฒฝ๋กœํŒŒ์•…(์ ˆ๋Œ€๊ฒฝ๋กœ๋กœ ์”€)
~/.nvm/versions/node/v15.13.0/bin/node

sudo ln -s /home/ec2-user/.nvm/versions/node/v15.13.0/bin/node /usr/local/bin
sudo ln -s /home/ec2-user/.nvm/versions/node/v15.13.0/bin/npm /usr/local/bin

cd /usr/local/bin
// ls -al๋กœ ํŒŒ๋ž€์ƒ‰ ๊ธ€์ž๋กœ ๋งํฌ ์—ฐ๊ฒฐ๋๋‚˜ ํ™•์ธํ•˜๊ธฐ

 

2) secure path ์„ค์ •์„ ๋ฐ”๊ฟ”์ค€๋‹ค. 

sudo visudo
/ (๊ฒ€์ƒ‰)
/secure_path
~bin:/usr/local/bin

 

ํด๋”๋กœ ๊ฐ€์„œ ์‹คํ–‰ํ•œ๋‹ค.

cd /home/ec2-user/Quote-Owl
sudo npm start

 

sudo ์˜ค๋ฅ˜

์—ฌ์ „ํžˆ permision denied์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ๋”๋ถˆ์–ด ์ƒˆ๋กœ์šด sudo์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ฒผ๋‹ค.sudo npm start๋ฅผ ํ•˜๊ณ  ๋‚˜์„œ ๋ชจ๋“  package.json ๋ช…๋ น์–ด์— ์œ„์™€ ๊ฐ™์€ ์—๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋กœ ๋œฌ๋‹ค. ๋ฃจํŠธ ํด๋”๋กœ ์ ‘๊ทผ์„ ๋ชปํ•ด์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

glob error [Error: EACCES: permission denied, scandir '/root/.npm/_logs'] {
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path: '/root/.npm/_logs'
}

 

๋ฐฉ๋ฒ•1. netstat -ano 
๋ชจ๋“  ํฌํŠธ ํ™•์ธ: ์ด๋ฏธ 80๋ฒˆ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํฌํŠธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์˜€๋‹ค.

 

๋ฐฉ๋ฒ•2. ์ฝ”๋“œ๊ฐ€ ๊ผฌ์ธ๊ฑด๊ฐ€?
Terminate instance  -> Launch Instance
์ธ์Šคํ„ด์Šค ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์ƒ์„ฑํ•œ๋‹ค.

์ด ๋ฌธ์ œ๋„ ์•„๋‹ˆ์˜€๋‹ค.

 

๋ฐฉ๋ฒ•3. npm์œผ๋กœ ์‹คํ–‰ํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ๊ธ€๋กœ๋ฒŒํ•˜๊ฒŒ ์„ค์น˜ํ•˜๊ธฐ

npm config set user 0

npm config set unsafe-perm true

npm install -g package

--> ์–ด๋–ค ๊ฒƒ๋„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•จ

 

๋ฐฉ๋ฒ•4. 

sudo npm install --save -g --unsafe-perm=true --allow-root

--> ์–ด๋–ค ๊ฒƒ๋„ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•จ

 

๋ฐฉ๋ฒ•5.

sudo๋ฌธ์ œ? sudo node a.js๋Š” ์ž˜ ๋Œ์•„๊ฐ„๋‹ค. ์ด ๋ฌธ์ œ๋„ ์•„๋‹ˆ๋‹ค.

 

์ฐพ์•„๋ณด๋‹ˆ 80๋ฒˆ ํฌํŠธ๋ฅผ ๋ฃจํŠธ๊ถŒํ•œ์„ ์ฃผ์–ด ๋ฐ”๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฏธ๊ฐœํ•œ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

ํฌํŠธํฌ์›Œ๋”ฉ์„ ํ†ตํ•ด 80๋ฒˆ ํฌํŠธ๋กœ ์šฐํšŒํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•œ๋‹ค.

 

ํฌํŠธ ํฌ์›Œ๋”ฉ

ํฌํŠธํฌ์›Œ๋”ฉ ์„ค์ • ์ฝ”๋“œ

sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3001

ํฌํŠธ ํฌ์›Œ๋”ฉ ์ทจ์†Œ ์ฝ”๋“œ

sudo iptables -D PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3001

ํฌํŠธ ํฌ์›Œ๋”ฉ ์ƒํƒœ ํ™•์ธ ์ฝ”๋“œ

sudo iptables -t nat -L

 

80๋ฒˆ ํฌํŠธ๋กœ ์ ‘์†ํ•˜๋ฉด 3001๋ฒˆ ํฌํŠธ๋กœ  ํฌ์›Œ๋”ฉ ํ•ด์ฃผ๋Š” ๊ฒƒ ๊นŒ์ง€ ์„ฑ๊ณตํ–ˆ๋‹ค.

 

ํ•˜์ง€๋งŒ ์•„๋ž˜์™€ ๊ฐ™์€ ๋‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

Failed to load resource: net::ERR_CONNECTION_REFUSED

net::ERR_CONNECTION_REFUSED

 

ํ™ˆHTML์—์„œ ๋ชจ๋“  ์†Œ์ŠคํŒŒ์ผ(๋งํฌ๋กœ ์„ค์ •ํ•œ ์‚ฌ์ง„ ํŒŒ์ผ, JSํŒŒ์ผ, CSSํŒŒ์ผ) ๋ชจ๋‘ ๊ฐ€์ ธ์˜ค์ง€ ๋ชปํ–ˆ๋‹ค. 

 

์ด ๋ฌธ์ œ๋Š” ๋‹ค์Œ ๋งํฌ์—์„œ ํ•ด๊ฒฐํ•œ๋‹ค.

psychogrammer.tistory.com/133?category=939647

๋ฐ˜์‘ํ˜•