https://programmer-may.tistory.com/176
์๋ฒ์ HTTPS ์์ฒญ ๋ณด๋ด๊ธฐ 1ํธ - (feat. Mixed Content ์๋ฌ ํด๊ฒฐ)
๊ฐ์์ต์ข ์ ์ผ๋ก ํ๋ก ํธ์๋์ ๋ฐฑ์๋์ ์์ ์ด ๋๋ ํ ์คํธ๋ฅผ ํด๋ณด๊ธฐ ์ํด, Vercel์ ๋ฐฐํฌ๋ ์น ํ์ด์ง์์ ํ ์คํธ ์๋ฒ EC2 ์ธ์คํด์ค API ์์ฒญ์ ๋ณด๋๋ค. ํ์ง๋ง ์ฐ๋ํ์๋ง์ ์๋ฌ๋ฅผ ๋ง๋ ์ ์
programmer-may.tistory.com
์ ํธ์ ๋๋ฉ์ธ ๋ฑ๋ก(AWS Route 53 , ๊ฐ๋น์ )๋ถํฐ SSL ์ธ์ฆ์ ๋ฐ๊ธ( AWS Certificate Manager(ACM)) ๊น์ง ์์ ๋ดค๋ค. ์ด์ EC2 ๊ฒ์ ๋ก๋๋ฐธ๋ฐ์๋ฅผ ๋์ด HTTPS ์์ฒญ์ ๋ฐ์ ์ ์๊ฒ ํ์!
EC2 - Target Group
๋ก๋ ๋ฐธ๋ฐ์์ ์ ์ฉํ๊ธฐ ์ํ Target Group์ ๋ง๋ค์ด์ค์ผ ํ๋ค.
EC2 ํ์ด์ง์์ ์ผ์ชฝ ํ๋จ์ ๋ก๋ ๋ฐธ๋ฐ์ฑ ๋ถ๋ถ์ ๋์ ๊ทธ๋ฃน์ ์ ํํ๋ค.
ํ์๋ ์ด๋ฏธ ๋ง๋ค์ด ๋์๊ธฐ ๋๋ฌธ์ ๋์๊ทธ๋ฃน์ด ํ๋ ์กด์ฌํ์ง๋ง, ๊ณต๋ฐฑ์ธ ์ํ๊ฐ ์ ์์์ผ๋ก ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฌ์ค๋ค.
๋์ ์ ํ์ ์ธ์คํด์ค๋ฅผ ์ ํํ๊ณ , ๋์ ๊ทธ๋ฃน ์ด๋ฆ์ ์ ํด์ค๋ค.
๊ทธ๋ค์์ด ์ค์ํ๋ฐ ํ๋กํ ์ฝ๊ณผ ํฌํธ์ด๋ค. ์ฌ๊ธฐ์์ ํฌํธ ๋ฒํธ๋ ๋ด๊ฐ ์คํํ ์๋น์ค์ ํฌํธ๋ฒํธ์ด๋ค์ฆ ๋ณธ์ธ์ด ์๋ฒ์ ํฌํธ๋ฅผ 8080๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด 80๋ฒ์ด์๋ 8080๋ฒ์ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค!! ํ์๋ 80 ํฌํธ๋ก ์๋น์ค๋ฅผ ์คํํ๊ธฐ์ 80 ํฌํธ๋ก ํด์ฃผ์๋ค.
๋ค๋ฅธ ๊ฒ๋ค์ ์ ๋ถ ๊ธฐ๋ณธ ๊ฐ์ผ๋ก ํด์ฃผ๊ณ ์ํ ๊ฒ์ฌ ๋ํ ๊ตณ์ด ์ํด์ค๋ ๋๋ค. Health checks ๋ถ๋ถ์ ๋ง ๊ทธ๋๋ก ๊ฐ๋จํ ์๋ฒ ์์ฒญ์ ๋ณด๋ด์ ์ ์์๋ํ๋์ง ํ์ธํ๋ ๋ถ๋ถ์ด๋ค. ๊ด๋ จ api๋ฅผ ๊ตณ์ด ์๋ง๋ค์ด๋ ์๊ด์์ผ๋ ๋ค์์ ๋๋ฌ ๋์ด๊ฐ๋ค.
์ ์ฉํ ์ธ์คํด์ค๋ฅผ ๋๋ฌ์ฃผ๊ณ ์์ ์ด ์์ ์ ํ ํฌํธ ๋ฒํธ๋ฅผ ์ ๊ณ ์๋์ ๋ณด๋ฅ์ค์ธ ๊ฒ์ผ๋ก ํฌํจ ๋ฒํผ์ ๋๋ฌ ๋์ ๋ณด๊ธฐ์ ํด๋น ์ธ์คํด์ค๊ฐ ๋ฑ๋ก ๋๋์ง ํ์ธํ๋ค. ํ์ ๋ง์ง๋ง์ ๋์ ๊ทธ๋ฃน ์์ฑ์ ๋๋ฅธ๋ค.
EC2 - Load Balancer
๋ค์์ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ์ค์ ํ ์ฐจ๋ก์ด๋ค.
ํ์๋ ์ด๋ฏธ ๋ง๋ค์ด์ ํ๋๊ฐ ์์ง๋ง ๊ณต๋์ด ์ ์์ด๊ธฐ์ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ์ ๋๋ฅธ๋ค.
๋งจ ์ผ์ชฝ์ Application Load Balancer๋ฒํผ์ ๋๋ฌ์ค๋ค.
๋ก๋ ๋ฐธ๋ฐ์์ ์ด๋ฆ์ ์ ๊ณ ๋คํธ์ํฌ ๋งคํ์๋ ์์ ์ EC2 ์ธ์คํด์ค์ ๊ฐ์ฉ์์ญ์ด ๋ฐ๋์ ํฌํจ ๋์ด์ผ ํ๋ค.
๋ก๋ ๋ฐธ๋ฐ์ฑํ EC2 ์ธ์คํด์ค์ ์ธ๋ถ์ ๋ณด์์ ๋คํธ์ํน ํญ์์ ๊ฐ์ฉ์์ญ์ ํ์ธ ํ๋ค. 2c ์ด๋ฏ๋ก 2a ์ 2c ์ ๋งคํํด์ฃผ์๋ค.
๋ณด์๊ทธ๋ฃน์ ๋ณธ์ธ์ ์ธ์คํด์ค์ ๊ฐ์ ๋ณด์ ๊ทธ๋ฃน์ ์ฌ์ฉํ๋ฉด ๋๋ค.
(์ฃผ์: ๋ณด์ ๊ท์น์ https์ด ๋ฑ๋ก๋์ด ์์ด์ผํ๋ค.)
๋ฆฌ์ค๋ ๋ฐ ๋ผ์ฐํ ์ ๋์ ๊ทธ๋ฃน ์ ํ์ ๋๋ฌ ์๊น ๋ง๋ ๋์ ๊ทธ๋ฃน์ผ๋ก ์ค์ ํด์ค๋ค.
๋ฆฌ์ค๋ ์ถ๊ฐ๋ฅผ ๋๋ฌ HTTPS ํ๋กํ ์ฝ 443 ํฌํธ๋ก ์์ฒญ์ด ์ค๋ฉด ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ฆฌ๋ค์ด๋ ์์ผ ์ค ์ ์๊ฒ ํ๋ค.
HTTPS ํ๋กํ ์ฝ ๋ฆฌ์ค๋๋ฅผ ์ค์ ํด์ฃผ๋ฉด ์ด๋ ๊ฒ ๋ณด์ ๋ฆฌ์ค๋ ์ค์ ์ด ๋์จ๋ค. ์ฐ๋ฆฐ ACM ์์ ์ธ์ฆ์ ๋ฐ๊ธ์ ํด์ฃผ์์ผ๋ฏ๋ก ์ธ์ฆ์ ์์ค๋ ACM์์ ๋ฅผ ๋๋ฅด๊ณ
์ธ์ฆ์ ์ ํ์์ ๋ฐ๊ธ ๋ฐ์ ์ธ์ฆ์๋ฅผ ์ ํํด์ค๋ค.
๊ทธ ํ์ ๋งจ ์๋ ๋ก๋ ๋ฐธ๋ฐ์ ์์ฑ ๋ฒํผ์ ๋๋ฌ ๋ก๋ ๋ฐธ๋ฐ์๋ฅผ ๋ง๋ค์ด ์ค๋ค.
AWS Route53
์ด์ ๋๋ฉ์ธ ์ค์ ๋ง์ด ๋จ์๋ค.
Route53์ผ๋ก ๋์๊ฐ์ ๋๋ฉ์ธ ์ด๋ฆ์ ๋๋ฌ์ค๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ฝ๋ ์์ฑ์ ๋๋ฌ์ค๋ค.
๋ณ์นญ์ ํ์ฑํ ํ๊ณ
์๋ํฌ์ธํธ ์ ํ ์๋ ALB ์ ๋ํ ๋ณ์นญ
๋ฆฌ์ ์ ํ ์๋ ์์ ์ ๋ฆฌ์ ์ ์ ํํ๊ณ
๋ก๋ ๋ฐธ๋ฐ์ ์ ํ์๋ ๋ฐฉ๊ธ ๋ง๋ ๋ก๋๋ฐธ๋ฐ์ค๋ฅผ ์ ํํ๋ค.
๋ฐฑ์๋ ๋๋ฉ์ธ์ ์ํด ๋ ์ฝ๋ ์ด๋ฆ์๋ api๋ฅผ ๋ถ์ฌ ์ฌ์ฉํ๊ธฐ ์ํด ๋ง๋ค์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ์ฝ๋ ์์ฑ์ ๋๋ฌ ์ค๋ค.
๊ทธ๋ผ ์๋ก ์์ ๋ ๋ ์ฝ๋๋ฅผ ํ์ธํ ์ ์๋ค ์ ํ์ A์ด๊ณ ์๊น ๋ ์ฝ๋์ด๋ฆ์ผ๋ก ์ ํด์ค api. ๊ฐ ๋ถ์, ํธ๋ํฝ ๋ผ์ฐํ ๋์์ผ๋ก๋ ๋ง๋ค์ด์ค ๋ก๋๋ฐธ๋ฐ์ ๊ฐ ์์ ๊ฒ์ด๋ค.
์ด์ ํฌ์คํธ ๋งจ์ผ๋ก ํ ์คํธ ํด๋ณด๋ฉด
https://api.{๋๋ฉ์ธ๋ช } ์ผ๋ก ์๋ฒ ํต์ ์ ํ์๋ฉด ์๋๋๊ฑธ ๋ณผ ์ ์๋ค.
ํ์์ ๋ค๋ฅด๊ฒ ํ๋ค๋ฉด https://{๋ ์ฝ๋ ์ด๋ฆ}/{API ์๋ํฌ์ธํธ} ๋ก https ์์ฒญ์ผ๋ก๋ EC2 ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ ๊ฒ์ด๋ค.
๋๊ธ