AWS EC2 ์„œ๋ฒ„์— ๋„๋ฉ”์ธ/HTTPS/Redirection ์ ์šฉ
Web/Server

AWS EC2 ์„œ๋ฒ„์— ๋„๋ฉ”์ธ/HTTPS/Redirection ์ ์šฉ

๐ŸŒŸGoal : ๋„๋ฉ”์ธ์„ ๊ตฌ์ž…ํ•˜์—ฌ EC2 ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ , HTTPS, ์„œ๋ธŒ๋„๋ฉ”์ธ, Redirection๊นŒ์ง€ ์ ์šฉํ•ด๋ณด์ž.

 

- ๋„๋ฉ”์ธ ์ ์šฉ

: ๊ฐ€๋น„์•„์—์„œ 1๋…„์งœ๋ฆฌ ๋„๋ฉ”์ธ์„ ํ•˜๋‚˜ ๊ตฌ์ž…ํ•ด๋ณด์˜€๋‹ค. ์›ํ•˜๋Š” ๋„๋ฉ”์ธ์„ ์•„๋ฌด๊ฑฐ๋‚˜ ๊ตฌ์ž…ํ•˜๋ฉด ๋จ.

 

๐Ÿ“Œ ์„œ๋ฒ„์™€ ๋„๋ฉ”์ธ์„ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด?

: ํŒŒ์ผ๊ณผ ์‹œ์Šคํ…œ์„ ๋งคํ•‘ํ•˜๋Š” DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ํŠน์ • ๋„๋ฉ”์ธ์ด ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์„œ๋ฒ„๋ฅผ DNS ์„œ๋ฒ„์—๊ฒŒ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

 

๐Ÿ“Œ ๊ด€๋ จ ๊ฐœ๋… ์ •๋ฆฌ

  • DNS ์„œ๋ฒ„ : IP ์ฃผ์†Œ์™€ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์–ด์ฃผ๋Š” ํ™˜๊ฒฝ/์‹œ์Šคํ…œ์ด๋‹ค. 
  • ํ˜ธ์ŠคํŠธ : ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋œ ์žฅ์น˜ ๋˜๋Š” ์„œ๋ฒ„๋“ค์— ๋ถ€์—ฌ๋˜๋Š” ๊ณ ์œ ํ•œ ์ด๋ฆ„์œผ๋กœ ๊ธฐ๊ณ„์ ์ธ ์ฃผ์†Œ ๋Œ€์‹  ์ผ๋ฐ˜์ธ์ด ์ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
  • TTL : Time to live -> IP ํŒจํ‚ท์˜ ์ƒ์กด ์‹œ๊ฐ„ (IP ํŒจํ‚ท์ด ๋ผ์šฐํŒ… ๋˜๋ฉฐ ๊ฑฐ์ณ์•ผํ•  ๋ผ์šฐํ„ฐ์˜ ๊ฐœ์ˆ˜ ํ‘œํ˜„) 
  • A ๋ ˆ์ฝ”๋“œ : DNS์— ์ €์žฅ๋˜๋Š” ์ •๋ณด์˜ ํƒ€์ž…์œผ๋กœ ๋„๋ฉ”์ธ ์ฃผ์†Œ์™€ ์„œ๋ฒ„์˜ IPv4 ์ฃผ์†Œ๋ฅผ ์ง์ ‘ ๋งคํ•‘์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • EX) test.gabia.com ์ƒ์„ฑ์„ ์›ํ•œ๋‹ค๋ฉด ํ˜ธ์ŠคํŠธ ๋ช…์— test๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ์‚ฌ์ดํŠธ์˜ IP์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๋ฉด ๋œ๋‹ค.

 

๐Ÿ“Œ ๋„๋ฉ”์ธ ์ ์šฉ์—๋Š” ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

1) ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ๊ด€๋ฆฌ ํˆด์„ ์ด์šฉํ•ด DNS ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€

: ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” www๋กœ ๋˜์–ด์žˆ๋Š” ๋ ˆ์ฝ”๋“œ, ๊ทธ๋ฆฌ๊ณ  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ์—†์ด ๋„๋ฉ”์ธ๋งŒ ์ž…๋ ฅํ•ด๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก @ ๋„๋ฉ”์ธ ๋ ˆ์ฝ”๋“œ ๋‘๊ฐœ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ €์žฅํ•ด์ฃผ์ž.

 

์ˆ˜์ • ์™„๋ฃŒ. ์กฐ๊ธˆ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉด ๋„๋ฉ”์ธ์ด ์—ฐ๊ฒฐ๋œ๋‹ค.

 

2) ๊ฐ€๋น„์•„ ๋„ค์ž„ ์„œ๋ฒ„๋ฅผ aws ๋„ค์ž„ ์„œ๋ฒ„๋กœ ๋ณ€๊ฒฝ (๋ฐ˜์˜ ์‹œ๊ฐ„์ด ์กฐ๊ธˆ ์˜ค๋ž˜๊ฑธ๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค)

์šฐ์„  ๋„๋ฉ”์ธ์˜ DNS(๊ฐ€๋น„์•„์—์„  ๋„ค์ž„์„œ๋ฒ„)์„œ๋ฒ„๋ฅผ AWS์˜ ๋„ค์ž„์„œ๋ฒ„๋กœ ๋ฐ”๊ฟ”์ฃผ์ž. ์ด๋ฅผ ํ†ตํ•ด์„œ AWS DNS ์„œ๋ฒ„์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ AWS์˜ IP์™€ ์‰ฝ๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

: ๋„๋ฉ”์ธ ์ด๋ฆ„์— ๋‚ด๊ฐ€ ์•„๊นŒ ๊ตฌ์ž…ํ•œ ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ๋ช…์„ ์ ์–ด์ฃผ๊ณ , ํผ๋ธ”๋ฆญ ํ˜ธ์ŠคํŒ…์„ ํ•ด์ค€๋‹ค.

NS ์œ ํ˜•์˜ ๋„ค๊ฐ€์ง€ ๋„ค์ž„์„œ๋ฒ„ ์ด๋ฆ„์„ ๋ณต์‚ฌํ•œ๋‹ค.
๊ฐ€๋น„์•„ ๋„ค์ž„์„œ๋ฒ„๋ฅผ ์•„๊นŒ ๋ณต์‚ฌํ•ด๋‘” aws ๋„ค์ž„์„œ๋ฒ„๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

 

aws์—์„œ A ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ ์ƒ์„ฑํ•œ๋‹ค.

: AWS ๋ ˆ์ฝ”๋“œ ์˜์—ญ์— ๋‚ด ๋„๋ฉ”์ธ์œผ๋กœ ๋œ A ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ ์ถ”๊ฐ€ํ•˜๊ณ , ์ €๋ฒˆ์— ๊ตฌ์ถ•ํ•ด๋‘” AWS ์„œ๋ฒ„์˜ ip ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด์„œ ์ƒํŒ ๋ชจ๋ฅด๋Š” ์‚ฌ์ด์ธ AWS ์„œ๋ฒ„์™€ ๊ฐ€๋น„์•„์˜ ๋„๋ฉ”์ธ์ด ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค! 

 

- ๊ทธ๋ฆฌ๊ณ  Nginx ์„ค์ • ํŒŒ์ผ์— ๋„๋ฉ”์ธ ๋ช…์„ ๋“ฑ๋กํ•ด์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. server_name์— ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”.

sudo vim /etc/nginx/sites-available/default #์ƒˆ๋กœ์šด ์„œ๋ธŒ๋„๋ฉ”์ธ ์„ค์ •์„ ์œ„ํ•ด server ๋ธ”๋ก์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๋„๋ฉ”์ธ ์ ์šฉ ์™„๋ฃŒ!

 

: ์ €๋ ดํ•˜๊ธธ๋ž˜ ๋„๋ฉ”์ธ์„ ๋‘ ๊ฐœ ์‚ฌ์„œ ์‹คํ—˜ํ•ด๋ดค๋Š”๋ฐ 1๋ฒˆ์ด ํ›จ์”ฌ ๋ฐ˜์˜์ด ๋น ๋ฅด๋‹ค. ์ถ”์ฒœ!

 

 

-HTTPS ์ ์šฉ

๐Ÿ“Œ HTTP/ HTTPS

  • HTTP : ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์–‘์ชฝ์—์„œ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋ณธ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์ด๋‹ค. HTTP๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ์ •๋ณด๋ฅผ ํ‰๋ฌธ์œผ๋กœ ์ „์†กํ•ด ์‰ฝ๊ฒŒ ์ •๋ณด๋ฅผ ์—ฟ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.
  • HTTPS : HTTP์˜ ์ทจ์•ฝ์ ์„ ๋ง‰๊ธฐ ์œ„ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ SSL ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์•”ํ˜ธํ™” ํ†ต์‹  ์ฑ„๋„์„ ์„ค์ •ํ•œ ๋‹ค์Œ ํ‰๋ฌธ HTTP ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•ด ์ •๋ณด ์œ ์ถœ์„ ๋ง‰๋Š” https๊ฐ€ ์‚ฌ์šฉ๋œ๋‹ค.
  • SSL : Secure Socket Layer ์˜ ์ค„์ž„๋ง๋กœ, ์›น ์‚ฌ์ดํŠธ์™€ ๋ธŒ๋ผ์šฐ์ € ์‚ฌ์ด์— ์ „์†ก๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ํ•ด์ปค๊ฐ€ ์ •๋ณด๋ฅผ ์—ด๋žŒํ•˜๊ฑฐ๋‚˜ ์œ ์ถœํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. 

 

๐Ÿ“Œ HTTPS ์ ์šฉ ๊ณผ์ • 

  • certbot ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด์„œ ํŽธ๋ฆฌํ•˜๊ฒŒ ์ธ์ฆ์„œ๋ฅผ ์ž๋™์œผ๋กœ ๋ฐœ๊ธ‰, ์„ค์ •, ๊ฐฑ์‹ ํ•  ์ˆ˜ ์žˆ๋‹ค. 
sudo apt install python3-certbot-nginx #์„ค์น˜ํ•˜๋ฉด ๋‹ค๋ฅธ ํ•„์š” ํŒจํ‚ค์ง€๋“ค๋„ ๋”ธ๋ ค์˜จ๋‹ค.

sudo vi /etc/nginx/sites-available/default  #nginx ์„ค์ • ํŒŒ์ผ์— ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

sudo service nginx restart #nginx ์žฌ์‹œ์ž‘

sudo certbot --nginx -d [๋„๋ฉ”์ธ๋ช…] #์ž๋™์œผ๋กœ certbot์ด ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ํ•ด ์„ค์ •ํ•ด์ค€๋‹ค.
#redirect option์„ ์„ ํƒํ•ด์•ผ ์–ด๋–ค ์š”์ฒญ์ด ๋“ค์–ด์™€๋„ https ์š”์ฒญ์œผ๋กœ ์ž๋™ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•œ๋‹ค.

sudo certbot renew --dry-run #์ธ์ฆ์„œ ์ž๋™ ๊ฐฑ์‹  ํ…Œ์ŠคํŠธ 
sudo service nginx restart

aws ์ธ๋ฐ”์šด๋“œ ๊ทœ์น™์— HTTPS๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.
HTTPS๊ฐ€ ์ ์šฉ๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค!

 

https://blog.buffashe.com/2020/09/get-ssl-cert-via-letsencrypt/

 

Let's Encrypt(Certbot)๋ฅผ ํ†ตํ•œ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์ ์šฉ – buffashe's Blog

์ด ๊ธ€์—์„œ๋Š” Certbot์„ ์‚ฌ์šฉํ•œ Let’s Encrypt SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰๊ณผ ์ž๋™ ๊ฐฑ์‹  ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ถ„ํˆฌ 20.04์— Apache ๋˜๋Š” Nginx ์›น ์„œ๋ฒ„๊ฐ€ … ๋” ๋ณด๊ธฐ "Let’s Encrypt(Certbot)๋ฅผ ํ†ตํ•œ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์ ์šฉ"

blog.buffashe.com

 

-์„œ๋ธŒ ๋„๋ฉ”์ธ ์ ์šฉ

๐Ÿ“Œ์„œ๋ธŒ ๋„๋ฉ”์ธ์ด๋ž€?

๋„๋ฉ”์ธ ๋„ค์ž„ ์‹œ์Šคํ…œ(DNS) ๊ณ„์ธต์—์„œ ์„œ๋ธŒ๋„๋ฉ”์ธ(subdomain) ๋˜๋Š” ํ•˜์œ„ ๋„๋ฉ”์ธ์€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์ผ๋ถ€์ธ ๋„๋ฉ”์ธ์ด๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด example.com์ด๋ผ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ์ผ๋ถ€๋กœ์„œ ์˜จ๋ผ์ธ ์Šคํ† ์–ด๋ฅผ ์ œ๊ณตํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์„œ๋ธŒ๋„๋ฉ”์ธ shop.example.com์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ์„œ๋ธŒ ๋„๋ฉ”์ธ ์ ์šฉ ๋ฐฉ๋ฒ•

  • ๊ฐ€๋น„์•„ DNS ๊ด€๋ฆฌํˆด์—์„œ alias๋ฅผ ์ง€์ •ํ•˜๋Š” CNAME ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๊ณ , ์›ํ•˜๋Š” ์„œ๋ธŒ๋„๋ฉ”์ธ ๋ช…์„ ์ ์ž.

 

  • ์„œ๋ธŒ๋„๋ฉ”์ธ๋ช…์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
cd /var/www/html
sudo mkdir mail #์„œ๋ธŒ๋„๋ฉ”์ธ ๋ช…์œผ๋กœ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
sudo mkdir blog

cd mail
sudo touch main.html
sudo vi main.html  #๋ฉ”์ธ ํŽ˜์ด์ง€๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋‘”๋‹ค. 

cd blog
sudo touch main.html
sudo vi main.html

 

  • nginx ์„ค์ • ํŒŒ์ผ ์ˆ˜์ •
sudo vim /etc/nginx/sites-available/default #์ƒˆ๋กœ์šด ์„œ๋ธŒ๋„๋ฉ”์ธ ์„ค์ •์„ ์œ„ํ•ด server ๋ธ”๋ก์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

  • ์„œ๋ฒ„ ์žฌ์‹œ์ž‘
sudo service nginx restart

 

  • ์„œ๋ธŒ๋„๋ฉ”์ธ ์ ์šฉ ํ™•์ธ

: mail subdomain์ด ์ž˜ ์ ์šฉ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  •  ์„œ๋ธŒ๋„๋ฉ”์ธ https ์„ค์ •
sudo certbot --nginx -d [๋„๋ฉ”์ธ ์ด๋ฆ„1] -d [๋„๋ฉ”์ธ ์ด๋ฆ„2]... #์„œ๋ธŒ๋„๋ฉ”์ธ๊ณผ ๋ฉ”์ธ๋„๋ฉ”์ธ๋ช…์„ ๋ชจ๋‘ ์ ๋Š”๋‹ค.
#์งˆ๋ฌธ์ด ๋œจ๋ฉด e๋ฅผ ๋ˆŒ๋Ÿฌ์„œ ์ธ์ฆ์„œ๋ฅผ expandํ•œ๋‹ค.

sudo service nginx restart

https๊ฐ€ ์ ์šฉ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

- Redirection 

: ๋ณดํ†ต ๋ฆฌ๋‹ค์ด๋ ‰์…˜์€ https redirection๊ณผ domain redirection(ip to domain redirection) ๋‘๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. 

https redirection์€ ์•ž์„œ์„œ certbot์„ ํ†ตํ•ด์„œ ์ž๋™์œผ๋กœ ์„ค์ •์ด ๋˜์—ˆ๊ณ , ์ด์ œ ip ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด๋„ ๋„๋ฉ”์ธ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋„๋ก redirection ์„ค์ •์„ ํ•ด์ฃผ๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

  • nginx ์„ค์ • ํŒŒ์ผ์— server ๋ธ”๋ก์„ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
sudo vim /etc/nginx/sites-available/default #Nginx์— ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

sudo service nginx restart
  •  ์ดํ›„์— ip ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•ด๋„ ๋„๋ฉ”์ธ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๐Ÿ™ ์ฐธ๊ณ  ์ž๋ฃŒ

https://dev.plusblog.co.kr/30

 

DNS์—์„œ CNAME๊ณผ A ๋ ˆ์ฝ”๋“œ์˜ ์ฐจ์ด

๊ฐ€๋น„์•„, ํ›„์ด์ฆˆ, ๊ณ ๋Œ€๋”” ๋“ฑ์˜ DNS๋ฅผ ์ด์šฉํ•ด์„œ ์ปค์Šคํ…€ ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•  ๋•Œ, ์„œ๋ธŒ ๋„๋ฉ”์ธ์„ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ CNAME๊ณผ A ๋ ˆ์ฝ”๋“œ ๊ฐ™์€ ์ •๋ณด๋ฅผ DNS ์„œ๋น„์Šค ํ™ˆํŽ˜์ด์ง€์— ๋“ฑ๋กํ•ด์•ผํ•œ๋‹ค. ๋‘˜ ๋‹ค ์„œ๋ธŒ ๋„๋ฉ”์ธ์„

dev.plusblog.co.kr

http://www.codns.com/b/B05-195