Infra & DevOps

[FE] ๋ชจ๋ฐ”์ผ ์ฒญ์ฒฉ์žฅ - ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ

hyeyeonismm 2025. 6. 19. 08:50
EC2 ์ธ์Šคํ„ด์Šค์— ๋„์šด ์›น์„ ๊ฐ€๋น„์•„์—์„œ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ๊ธฐ๋กํ–ˆ๋‹ค.

 

1. ๊ฐ€๋น„์•„ ์„ค์ •

๊ฐ€๋น„์•„์—์„œ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์„ ๋ฐฐํฌ๋œ EC2 ํผ๋ธ”๋ฆญ ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด A ๋ ˆ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.
A ๋ ˆ์ฝ”๋“œ๋Š” ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ํŠน์ • IPv4 ์ฃผ์†Œ์™€ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” DNS ๋ ˆ์ฝ”๋“œ๋กœ, ์‚ฌ์šฉ์ž๊ฐ€ ๋„๋ฉ”์ธ์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ํ•ด๋‹น IP๋กœ ์ ‘์†๋˜๋„๋ก ํ•ด์ค€๋‹ค.

๊ฐ€๋น„์•„์˜ [๋„๋ฉ”์ธ ๊ด€๋ฆฌ] > [DNS ์ •๋ณด] > [DNS ๊ด€๋ฆฌ] ๋กœ ์ด๋™ํ•œ๋‹ค.

ํ˜ธ์ŠคํŠธ์—๋Š” @ (๋ฃจํŠธ ๋„๋ฉ”์ธ์„ ์˜๋ฏธํ•จ), ๊ฐ’์—๋Š” ํผ๋ธ”๋ฆญ IP๋ฅผ ๋„ฃ์–ด์ค€๋‹ค.

 

2. nginx conf ํŒŒ์ผ ์ˆ˜์ •

EC2 ์ธ์Šคํ„ด์Šค์—์„œ ์›น์„ nginx๋กœ ์„œ๋น„์Šคํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์— ๋งž์ถฐ nginx config ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

server {
  listen 80;
  server_name ourweddingstory.co.kr www.ourweddingstory.co.kr;

  root /usr/share/nginx/html;
  index index.html;

  location / {
    try_files $uri $uri/ /index.html;
  }
}

 

3. HTTPS ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ 

AWS์˜ ๋ฌด๋ฃŒ SSL ์ธ์ฆ์„œ ์„œ๋น„์Šค์ธ ACM์„ ํ†ตํ•ด HTTPS ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ–ˆ๋‹ค.
ACM์„ ์‚ฌ์šฉํ•ด์„œ ๋ณด์•ˆ ์ธ์ฆ์„œ๋ฅผ ๋งŒ๋“ค๊ณ , ALB์™€ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ ..

AWS ์ฝ˜์†”์— ์ ‘์†ํ•ด์„œ ์•„๋ž˜์˜ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ๋‹ค.
[AWS Certificate Manager] > [์š”์ฒญ] > [ํผ๋ธ”๋ฆญ ์ธ์ฆ์„œ ์š”์ฒญ]

๋„๋ฉ”์ธ ์ด๋ฆ„ ์ž…๋ ฅ ๋‹จ๊ณ„์—์„œ๋Š” www์ด ๋“ค์–ด๊ฐ„ ๋„๋ฉ”์ธ๊ณผ ๋“ค์–ด๊ฐ€์ง€ ์•Š์€ ๋„๋ฉ”์ธ ๋ชจ๋‘ ์ž…๋ ฅํ•ด์ค€๋‹ค.
DNS ์ƒ์—์„œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์œผ๋กœ ์ทจ๊ธ‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘˜ ๋‹ค ๊ฐ™์€ IP ์ฃผ์†Œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚ค๊ณ , ๋‘˜ ๋‹ค ์ธ์ฆ์„œ์— ํฌํ•จ์‹œ์ผœ์•ผ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฒฝ๊ณ ์—†์ด HTTPS๋กœ ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

4. Route 53 ์„ค์ •

AWS ACM์—์„œ ๋ฐœ๊ธ‰๋ฐ›์€ ์ธ์ฆ์„œ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด, ๋„๋ฉ”์ธ์˜ ์†Œ์œ ๊ถŒ์„ ์ฆ๋ช…ํ•˜๊ธฐ ์œ„ํ•œ DNS ๊ฒ€์ฆ ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค.
๋”ฐ๋ผ์„œ Route 53์— CNAME ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

(1) ํผ๋ธ”๋ฆญ ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ
๋จผ์ € ๋„๋ฉ”์ธ ์ด๋ฆ„์— ๋Œ€ํ•œ ํ˜ธ์ŠคํŒ… ์˜์—ญ์„ ์•„๋ž˜์˜ ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค.
[Route 53] > ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ > ๋„๋ฉ”์ธ ์ด๋ฆ„ ์ž‘์„ฑ > ํผ๋ธ”๋ฆญ ํ˜ธ์ŠคํŒ… ์˜์—ญ

ํผ๋ธ”๋ฆญ ํ˜ธ์ŠคํŒ… ์˜์—ญ์€ www.~~~์ฃผ์†Œ๋Š” ๋”ฐ๋กœ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค. Route 53์—์„œ ํ˜ธ์ŠคํŒ… ์˜์—ญ์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฃจํŠธ ๋„๋ฉ”์ธ์— ๋Œ€ํ•ด์„œ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์—, www.~~~์€ ํ•˜์œ„ ๋ ˆ์ฝ”๋“œ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

 

(2) ACM์—์„œ ์ œ๊ณตํ•œ CNAME ๊ฐ’ ์ถ”๊ฐ€
ํ˜ธ์ŠคํŒ… ์˜์—ญ์—์„œ ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ํ›„ CNAME ๋ ˆ์ฝ”๋“œ ๊ฐ’์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

 

(3) NS ๋ ˆ์ฝ”๋“œ ๋„ค์ž„์„œ๋ฒ„๋กœ ๋“ฑ๋ก

๋˜ํ•œ, ํ˜ธ์ŠคํŒ… ์˜์—ญ์„ ์ƒ์„ฑํ•˜๋ฉด NS, SOA ๋ ˆ์ฝ”๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š”๋ฐ ์ด๋ฅผ ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ์„ค์ • ํŽ˜์ด์ง€์—์„œ ๋„ค์ž„์„œ๋ฒ„๋กœ ๋“ฑ๋กํ•ด์ค˜์•ผ Route 53์—์„œ ์‹ค์ œ ์„ค์ •ํ•œ ๋ ˆ์ฝ”๋“œ๋“ค์ด ๋ฐ˜์˜๋œ๋‹ค. NS ๋ ˆ์ฝ”๋“œ๋Š” ์ด ๋„๋ฉ”์ธ์˜ DNS ์„ค์ •์€ AWS Route 53์ด ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

๋ชจ๋“  ์„ค์ •์„ ๋งˆ์นœ ํ›„ ๋‹ค์‹œ ACM ์„œ๋น„์Šค๋กœ ๋Œ์•„์™”์„ ๋•Œ ์ƒํƒœ๊ฐ€ [๋ฐœ๊ธ‰๋จ] ์ด๋ฉด ์„ฑ๊ณตํ•œ ๊ฒƒ์ด๋‹ค.

 

5. ALB ์„ค์ •

HTTPS ์ธ์ฆ์„œ๊ฐ€ ๋ฐœ๊ธ‰๋œ ํ›„์—๋Š” ์ด๋ฅผ ์ ์šฉํ•  ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์„ค์ •ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ALB๋Š” ์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” ํŠธ๋ž˜ํ”ฝ์„ EC2 ์ธ์Šคํ„ด์Šค๋กœ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

EC2 > ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ > ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ์ƒ์„ฑ > ALB

์œ„์˜ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์—ฌ ๋กœ๋“œ๋ฐธ๋Ÿฐ์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
๊ฐ€์šฉ์˜์—ญ์€ ๋‚ด EC2๊ฐ€ ์กด์žฌํ•˜๋Š” ์˜์—ญ์„ ํฌํ•จํ•ด์„œ 2๊ฐœ๋ฅผ ์„ ํƒํ•œ๋‹ค.

๋ฆฌ์Šค๋„ˆ ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•œ๋‹ค.
HTTP๋กœ ์ ‘์†ํ•˜๋Š” ๊ฒฝ์šฐ HTTPS๋กœ ๋ฆฌ๋””๋ ‰์…˜ ํ•˜๋„๋ก ํ•˜๊ณ , HTTPS์—๋Š” ACM ์ธ์ฆ์„œ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ ์ƒ์„ฑ๋œ ALB dns๊ฐ’์„ Route 53์˜ A ๋ ˆ์ฝ”๋“œ์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค. (@๋ž‘ www ๋‘˜๋‹ค ํ•ด์•ผ๋จ)

๊ทธ๋Ÿผ ๋‚ด๊ฐ€ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์œผ๋กœ ์—ฐ๊ฒฐ ์™„!