EC2 ์„ค์ •ํ•˜๊ธฐ

img.png ์„œ๋น„์Šค์— ๋งž๋Š” ์ปจํ…Œ์ด๋„ˆ ์ด๋ฆ„์„ ์„ค์ •ํ•ด์ฃผ๊ณ , AMI๋Š” ubuntu๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ž‘์„ฑ ์‹œ์ (23.08.17) ๊ธฐ์ค€ 22.0.4 ๋ฒ„์ „์ด LTS์˜€๊ธฐ์— ํ•ด๋‹น ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ, LTS ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.35.07.png ์ธ์Šคํ„ด์Šค ์œ ํ˜•์€ ์ปจํ…Œ์ด๋„ˆ ์ƒ์„ฑ ํ›„ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ˆ ํ”„๋ฆฌํ‹ฐ์–ด๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” t2.micro๋กœ ์„ค์ •ํ•ด์ฃผ๊ณ  ํ•„์š”ํ•˜๋‹ค๋ฉด ๋‚˜์ค‘์— ๋ฐ”๊พธ๋„๋ก ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๋ฒˆ ec2 ์žฌ์ƒ์„ฑ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ค‘์ด๋ผ ํ‚ค ํŽ˜์–ด๋‚˜ ๋ณด์•ˆ ๊ทธ๋ฃน์€ ๊ธฐ์กด์— ์žˆ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. (์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ถ”ํ›„ ์ถ”๊ฐ€ ์˜ˆ์ •) img_1.png ์Šคํ† ๋ฆฌ์ง€ ์—ญ์‹œ ํ”„๋ฆฌํ‹ฐ์–ด๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ 30GB๋กœ ์„ค์ •ํ•ด์ฃผ์—ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ์„ค์ •๊นŒ์ง€ ๋งˆ์ณค๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค ์‹œ์ž‘!

ํƒ„๋ ฅ์  IP

ec2๋Š” ์žฌ๋ถ€ํŒ… ์‹œ IP๊ฐ€ ์žฌํ• ๋‹น๋˜์–ด ๋งค๋ฒˆ ๋ฐ”๋€Œ๊ฒŒ ๋œ๋‹ค. ๊ณ ์ •๋œ IP๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ํƒ„๋ ฅ์  IP ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.41.37.png ์ขŒ์ธก ๋ฉ”๋‰ด์— ํƒ„๋ ฅ์  IP ๋ฉ”๋‰ด๋กœ ๋“ค์–ด๊ฐ€์ค€๋‹ค.

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.45.28.png ์ƒ์„ฑ๋œ ํƒ„๋ ฅ์  IP๋ฅผ ์„ ํƒํ•˜๊ณ  ์ž‘์—… > ํƒ„๋ ฅ์  IP ์ฃผ์†Œ ์—ฐ๊ฒฐ ์„ ์„ ํƒํ•ด์ค€๋‹ค. ์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.47.51.png ๋ฆฌ์†Œ์Šค ์œ ํ˜•์€ โ€˜์ธ์Šคํ„ด์Šคโ€™๋ฅผ ์„ ํƒํ•ด์ฃผ๊ณ , ์•„๋ž˜ ์ธ์Šคํ„ด์Šค ๊ฒ€์ƒ‰๋ž€์—์„œ ์ „์— ๋งŒ๋“  ec2 ์ด๋ฆ„์„ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์„ ํƒํ•ด์ค€๋‹ค. ํ•„์ž์˜ ๊ฒฝ์šฐ, ๊ธฐ์กด์— ์ƒ์„ฑํ–ˆ๋˜ ์ธ์Šคํ„ด์Šค์™€ ํƒ„๋ ฅ์  IP๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์–ด, ์•„๋ž˜ ์žฌ์—ฐ๊ฒฐ์— ์ฒดํฌํ•ด์ฃผ์—ˆ์ง€๋งŒ ์ฒ˜์Œ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒฝ์šฐ ์ฒดํฌํ•˜์ง€ ์•Š๊ณ  ์—ฐ๊ฒฐ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋œ๋‹ค.

EC2 ์—ฐ๊ฒฐ ๋ฐ ๋‚ด๋ถ€ ์„ค์ •

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.50.28.png ํƒ„๋ ฅ์  IP ์„ธํŒ…๊นŒ์ง€ ๋๋‹ค๋ฉด ์ง์ ‘ ec2์— ์—ฐ๊ฒฐํ•˜์—ฌ ๋‚ด๋ถ€์—์„œ nginx, codedeploy, docker ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ๋‹ค์‹œ ec2 ๋ฉ”๋‰ด๋กœ ๋Œ์•„์™€ ์ƒ์„ฑํ–ˆ๋˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์„ ํƒํ•ด์ฃผ๊ณ , ์šฐ์ธก ์œ„ ์—ฐ๊ฒฐ์„ ๋ˆŒ๋Ÿฌ์ค€๋‹ค. ์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜ค์ „ 11.52.29.png ssh๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์œ„ ๋‹จ๊ณ„๋ฅผ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•  ๋•Œ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—ฐ๊ฒฐํ–ˆ๋˜ ํ‚ค ํŽ˜์–ด์˜ ์œ„์น˜๋กœ ๊ฐ€์„œ ๋ช…๋ น์–ด๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

ssh ์—ฐ๊ฒฐ ์•ˆ๋˜๋Š” ๋ฌธ์ œ

img_2.png ํ•˜๋‚˜์˜ ํƒ„๋ ฅ์  IP์— ๊ณ„์†ํ•ด์„œ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹นํ•ด์„œ์ธ์ง€ ssh ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋งˆ์ฃผํ–ˆ๋‹ค. ์˜ค๋ฅ˜ ๋‚ด์šฉ์€ ๋Œ€์ถฉ ์•„๋ž˜์™€ ๊ฐ™์•˜๊ณ , ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ธˆ๋ฐฉ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

REMOTE HOST IDENTIFICATION HAS CHANGED!

[ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•]

ssh-keygen -R [ IP or DomainName]

์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ดˆ๊ธฐํ™”ํ•ด์ฃผ๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ssh ์—ฐ๊ฒฐ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์ž˜ ์ ‘์†๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

nginx ์„ค์ •

sudo apt update
sudo apt install nginx

์„ค์น˜๋˜๊ณ  ๋‚˜์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ running์ด๋ผ๊ณ  ๋œจ๋ฉด nginx๊ฐ€ ์ž˜ ์‹คํ–‰๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

systemctl status nginx

img_3.png

๋˜๋Š” ํƒ„๋ ฅ์  IP ์ฃผ์†Œ๋กœ ์ ‘์†ํ•˜์—ฌ Welcome to nginx! ๋ฌธ๊ตฌ๋ฅผ ๋ณด์•˜๋‹ค๋ฉด nginx ์„ค์น˜์— ์„ฑ๊ณตํ•œ ๊ฒƒ์ด๋‹ค.

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜คํ›„ 2.52.51.png

nginx ์„ค์ • ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

vi /etc/nginx/site-available/default
server {

    listen 80;
    listen [::]:80;
	
    server_name _;
	
    location / {
    	proxy_pass http://127.0.0.1:3000;
    }

}

์„ค์ • ํŒŒ์ผ ๋ณ€๊ฒฝ ํ›„ nginx ์žฌ๋ถ€ํŒ…

sudo systemctl restart nginx

code deploy ์„ค์ •

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜คํ›„ 2.59.53.png Code deploy ์„œ๋น„์Šค๋กœ ๋“ค์–ด๊ฐ€์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•ด์ค€๋‹ค.

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜คํ›„ 3.01.18.png

๋ฐฐํฌ ๊ทธ๋ฃน์„ ์„ ํƒํ•ด์ค€ ํ›„ ์šฐ์ธก ํŽธ์ง‘ ๋ฉ”๋‰ด๋ฅผ ๋ˆŒ๋Ÿฌ์ค€๋‹ค.

์Šคํฌ๋ฆฐ์ƒท 2023-08-17 ์˜คํ›„ 3.01.35.png

ํŽธ์ง‘ ํ™”๋ฉด ๋“ค์–ด๊ฐ€๋ฉด ์•„๋ž˜ ์ชฝ์— ํ™˜๊ฒฝ ๊ตฌ์„ฑ์œผ๋กœ ๋‚ด๋ ค๊ฐ€ EC2 ์ธ์Šคํ„ด์Šค์™€ ์—ฐ๊ฒฐํ•ด์ค€๋‹ค. ์—ฐ๊ฒฐ์€ ์ƒ์„ฑํ•  ๋•Œ ์„ค์ •ํ–ˆ๋˜ Name์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด์ œ ๋‹ค์‹œ EC2๋กœ ๋Œ์•„์™€ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— codedeploy-agent๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค.

1. apt ์ €์žฅ์†Œ ์—…๋ฐ์ดํŠธ

sudo apt-get update

2. ruby ์„ค์น˜

sudo apt-get install ruby

3. wget ์„ค์น˜

sudo apt-get install wget

4. agent ์„ค์น˜

wget https://aws-codedeploy-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/latest/install

chmod +x ./install
sudo ./install auto

5. ์„œ๋น„์Šค ํ™•์ธ

sudo service codedeploy-agent status

nginx์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ running ํ‚ค์›Œ๋“œ๊ฐ€ ๋ณด์ธ๋‹ค๋ฉด ์ž˜ ์„ค์น˜๋œ ๊ฒƒ์ด๋‹ค.

Docker ์„ค์น˜

EC2 ๋‚ด๋ถ€ Docker ์„ค์น˜ ๋ฐฉ๋ฒ•์€ ํ•ด๋‹น ์•„ํ‹ฐํด์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ–ˆ๋‹ค.

at ์„ค์น˜

sudo apt install at

์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์„ธํŒ…์„ ๋งˆ์นœ ํ›„, Code deploy ์„œ๋น„์Šค์—์„œ ์‹คํŒจํ–ˆ๋˜ ๋ฐฐํฌ๋ฅผ ์žฌ์‹œ๋„ ํ–ˆ๋‹ค.