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ํ์ผ) ๋ชจ๋ ๊ฐ์ ธ์ค์ง ๋ชปํ๋ค.
์ด ๋ฌธ์ ๋ ๋ค์ ๋งํฌ์์ ํด๊ฒฐํ๋ค.
'๐ DevOps > ๐ AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
EC2์ ROUTE 53 ๋๋ฉ์ธ ์ฐ๊ฒฐ (0) | 2021.04.12 |
---|---|
AWS ์ธ์ฆ์: AWS Certificage Manager (0) | 2021.04.12 |
Elastic IP ํ๋ ฅ์ IP ์ค๋ช , ๋น์ฉ (0) | 2021.04.12 |
[Ubuntu] NGINX ์ค์น + LetEncrypt ์ค์น (0) | 2021.04.09 |
http -> https ๋ฆฌ๋ค์ด๋ ํธ ํด๊ฒฐ (node js, helmet ๋ชจ๋) (0) | 2021.04.08 |