[AWS] - Spring Boot ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ(2)

๊ฐœ๋ฐœ ํ™˜๊ฒฝ

๐Ÿ’ป OS : M1 Mac Ventura 13.1 / EC2 Amazon Linux

๐Ÿƒ Spring : Spring Boot 2.7.7

๐Ÿญ Env : Gabia(๊ฐ€๋น„์•„), Nginx, Certbot/SSL

Gabia

๋„๋ฉ”์ธ ๊ตฌ๋งค

์•ž์œผ๋กœ DNS๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€๋น„์•„์— ๋“ค์–ด๊ฐ€ ๋„๋ฉ”์ธ์„ ๊ตฌ๋งคํ•˜์ž!

image

  • ๋ณธ์ธ์ด ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์„ ๊ฒ€์ƒ‰ํ•œ ๋’ค, ์‹ ์ฒญ
  • ๊ตฌ๋งค ๊ณผ์ •์—์„œ ๋”ฐ๋กœ ๊ฑด๋“ค์ด๋Š” ๊ฒƒ ์—†์ด ๊ตฌ๋งค!

image

๋„๋ฉ”์ธ ์„ค์ •

  • ๋ฉ”์ธํ™”๋ฉด ์šฐ์ธก ์ƒ๋‹จ์— ์žˆ๋Š” My๊ฐ€๋น„์•„ ๋ฒ„ํŠผ ํด๋ฆญ
  • ๋ฐฉ๊ธˆ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์˜ ๊ด€๋ฆฌ ๋ฒ„ํŠผ ํด๋ฆญ

image

  • DNS ์ •๋ณด ํƒญ์— ๋“ค์–ด๊ฐ€์„œ DNS ๊ด€๋ฆฌ ๋ฒ„ํŠผ ํด๋ฆญ

image

  • ๋ฐฉ๊ธˆ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์˜ ๊ฐ€์žฅ ์šฐ์ธก ์„ค์ • ๋ฒ„ํŠผ ํด๋ฆญ

image

  • ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋ ˆ์ฝ”๋“œ ์ˆ˜์ •์„ ๋ˆŒ๋Ÿฌ ํŽธ์ง‘
  • www, @ ์ด 2๊ฐœ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ๊ฐ ์ง€์ •ํ•ด์ค€๋’ค, TTL์€ 3600์œผ๋กœ ์ง€์ •ํ•ด์ค€๋‹ค.
  • ๊ฐ’/์œ„์น˜๋Š” EC2์˜ ํผ๋ธ”๋ฆญ IPv4(ํƒ„๋ ฅ์  IP)๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ ์šฉ๊นŒ์ง€ ์ตœ๋Œ€ 10๋ถ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‹ ์ฒญํ•œ ๋„๋ฉ”์ธ์œผ๋กœ ์ ‘์† ์‹œ EC2์— ๋ฐฐํฌ๋˜์–ด ์žˆ๋Š” ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Nginx

Amazon Linux(EC2)์— ssh๋กœ ์ ‘๊ทผํ•ด์„œ ์•„๋ž˜ ๊ณผ์ •์„ ์ง„ํ–‰!

Nginx ์„ค์น˜

image
sudo amazon-linux-extras install -y nginx1

nginx -v

config ํŒŒ์ผ ์ˆ˜์ •

image
sudo vi /etc/nginx/nginx.conf

์—ฌ๊ธฐ์„œ server_name ๋ถ€๋ถ„์— ๊ฐ€๋น„์•„์—์„œ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ•ด์ค€๋‹ค.

Certbot/SSL

https ๋ณด์•ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” SSL ์ธ์ฆ์„œ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์•„๋ž˜ ๊ณผ์ •์„ ํ†ตํ•ด SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›๊ณ , ์ ์šฉํ•ด๋ณด๋„๋ก ํ•˜์ž!

sudo wget -r --no-parent -A 'epel-release-*.rpm' http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/

sudo rpm -Uvh dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-*.rpm

sudo yum-config-manager --enable epel*

sudo yum install -y certbot python2-certbot-apache

sudo yum install certbot-nginx

๋„คํŠธ์›Œํฌ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์ง€ ์•Š์€ ์ด์ƒ ์œ„ ๋‚ด์šฉ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚  ์ผ์€ ์—†์„ ๊ฒƒ์ด๋‹ค.

sudo certbot --nginx

๋ชจ๋“  ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด, ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰!

  • ์ฒ˜์Œ์— ๋‚˜์˜ค๋Š” email ์ž…๋ ฅ์€ ํ•„์ˆ˜๋กœ ๊ธฐ์–ต
  • ๋ชจ๋‘ Y๋ฅผ ์ž…๋ ฅํ•ด ๋™์˜ํ•ด์ฃผ๋„๋ก ํ•œ๋‹ค!
    • ํ™๋ณด์„ฑ ์ด๋ฉ”์ผ ์ˆ˜์‹  ์—ฌ๋ถ€๋Š” N์„ ํ•ด๋„ ์ƒ๊ด€ ์—†์Œ!

Proxy

sudo vi /etc/nginx/nginx.conf
  • conf ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ์œ„ ๋ช…๋ น์–ด ์ž…๋ ฅ
location / {
       proxy_pass http://localhost:8080; # ์ž์‹ ์˜ springboot app์ด์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
}

์œ„์˜ ๋‚ด์šฉ์„ ์ด ๋‘ ๊ณณ์— ๋“ฑ๋กํ•  ๊ฒƒ์ด๋‹ค.

image
image
# nginx์— ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ํ…Œ์ŠคํŠธ
sudo nginx -t

# nginx ์„œ๋น„์Šค ์žฌ์‹œ์ž‘
sudo service nginx restart

'DevOps > AWS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[AWS] - Spring Boot ํ”„๋กœ์ ํŠธ ๋ฐฐํฌ(1)  (0) 2023.09.11