๋ค์ด๊ฐ๋ฉฐ
โ์ธ๋ถํ์ฌ์ ๋๋ฉ์ธ์ ์ฐ๋ฆฌ ์ธํ๋ผ์ ์ฐ๊ฒฐํด๋ฌ๋ผโ๋ ์๊ตฌ์ฌํญ์ด ์๊ฒผ์ต๋๋ค. ์๋ฅผ ๋ค์ด Aํ์ฌ๊ฐ ์์ ํ chat.example.com ๋๋ฉ์ธ์ ์ฐ๋ฆฌ ํ์ฌ์ AWS CloudFront์ ์ฐ๊ฒฐํด์ผ ํ๋ ์ํฉ์
๋๋ค.
๋ค์ ๋งํ๋ฉด, ์ฐ๋ฆฌ ์๋น์ค๋ฅผ Aํ์ฌ์ ๋๋ฉ์ธ์ ํตํด ์ ๊ณตํ๋ ๊ฒ์ด์ฃ .
๋จ์ํ ๊ธฐ์ ์ ์ธ ์ค์ ๋ง ํ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง, ์ค์ ๋ก๋ ์ธ๋ถํ์ฌ์์ ์ปค๋ฎค๋์ผ์ด์ ์ด ์ ๋ฐ ์ด์์ ์ฐจ์งํฉ๋๋ค. ์ด ๊ธ์์๋ ๋ ๊ฐ์ง ์ค์ ์๋๋ฆฌ์ค๋ฅผ ๋ค๋ฃน๋๋ค.
- ์๋๋ฆฌ์ค 1: ์ธ๋ถ ๋๋ฉ์ธ์ ์ฐ๋ฆฌ CloudFront์ ์ฒ์ ์ฐ๊ฒฐํ๊ธฐ
- ์๋๋ฆฌ์ค 2: ์ด์์ฌ๊ฐ ๋ฐ๋์ด CloudFront ๋ฐฐํฌ๋ฅผ ๊ต์ฒดํ๊ธฐ
์๋๋ฆฌ์ค 1: ์ธ๋ถ ๋๋ฉ์ธ์ ์ฐ๋ฆฌ CloudFront์ ์ฐ๊ฒฐํ๊ธฐ
์ํฉ
chat.example.com์ ์ธ๋ถํ์ฌ(A์ฌ)๊ฐ ์์ ํ ๋๋ฉ์ธ- ์ฐ๋ฆฌ ํ์ฌ๋ S3 + CloudFront๋ก ์๋น์ค๋ฅผ ์ด์ ์ค
- A์ฌ๊ฐ ์์ฌ ๋๋ฉ์ธ์ผ๋ก ์ฐ๋ฆฌ ์๋น์ค์ ์ ๊ทผํ๊ฒ ํ๊ณ ์ถ์
์ธ๋ถํ์ฌ์์ ๋ณด๋ด์ค ๊ฒ
A์ฌ์์ โ๋๋ฉ์ธ ๋ฑ๋ก ์๋ฃโ๋ผ๋ฉฐ ์ธ์ฆ์ ํ์ผ ๋ฌถ์์ ๋ณด๋ด์์ต๋๋ค.
STAR.example.com.crt โ ์ธ์ฆ์ ๋ณธ๋ฌธ
STAR.example.com.key โ ๊ฐ์ธํค
ca-bundle.crt โ ์ธ์ฆ์ ์ฒด์ธ
STAR.example.com.pem โ ์์ ๋์ผ ๋ด์ฉ (ํ์ฅ์๋ง ๋ค๋ฆ)
STAR.example.com.pfx โ Windows/IIS์ฉ
STAR.example.com.keystore โ Java์ฉ
ํ์ผ์ด ๋ง์ ๋นํฉ์ค๋ฝ์ง๋ง, ์ค์ ๋ก ํ์ํ ๊ฑด 3๊ฐ๋ฟ์ ๋๋ค.
์์ ์์
1๋จ๊ณ: ACM์ ์ธ์ฆ์ Import (์ฐ๋ฆฌ ํ์ฌ)
CloudFront์์ ์ปค์คํ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ๋ฐ๋์ us-east-1(๋ฒ์ง๋์ ๋ถ๋ถ) ๋ฆฌ์ ์ ACM์ ์ธ์ฆ์๊ฐ ์์ด์ผ ํฉ๋๋ค.
AWS ์ฝ์์์:
- ๋ฆฌ์ ์ us-east-1๋ก ๋ณ๊ฒฝ
- ACM(Certificate Manager) โ ์ธ์ฆ์ ๊ฐ์ ธ์ค๊ธฐ(Import)
- ์ธ์ฆ์ ๋ณธ๋ฌธ:
.crtํ์ผ ๋ด์ฉ - ํ๋ผ์ด๋น ํค:
.keyํ์ผ ๋ด์ฉ - ์ธ์ฆ์ ์ฒด์ธ:
ca-bundle.crtํ์ผ ๋ด์ฉ
CLI๋ก ํ๋ฉด:
aws acm import-certificate \
--region us-east-1 \
--certificate fileb://STAR.example.com.crt \
--private-key fileb://STAR.example.com.key \
--certificate-chain fileb://ca-bundle.crt
2๋จ๊ณ: CloudFront ๋ฐฐํฌ ์ค์ (์ฐ๋ฆฌ ํ์ฌ)
CloudFront ๋ฐฐํฌ ํธ์ง์์:
- ๋์ฒด ๋๋ฉ์ธ ์ด๋ฆ(CNAMEs):
chat.example.com์ถ๊ฐ - ์ฌ์ฉ์ ์ ์ SSL ์ธ์ฆ์: 1๋จ๊ณ์์ importํ ์ธ์ฆ์ ์ ํ
3๋จ๊ณ: DNS ๋ณ๊ฒฝ ์์ฒญ (์ธ๋ถํ์ฌ์ ์์ฒญ)
์ฌ๊ธฐ๊ฐ ์ธ๋ถํ์ฌ์์ ์ํต์ด ํ์ํ ์ง์ ์ ๋๋ค.
A์ฌ์ โDNS ๋ ์ฝ๋๋ฅผ CNAME์ผ๋ก ๋ณ๊ฒฝํด์ฃผ์ธ์โ๋ผ๊ณ ์์ฒญํฉ๋๋ค.
chat.example.com โ CNAME โ d1234abcdef.cloudfront.net
์ด๋ ์ฃผ์ํ ์ ์ด ์์ต๋๋ค.
- ๊ธฐ์กด์ A ๋ ์ฝ๋ (IP ์ฃผ์) ์ค์ ๋์ด ์๋ค๋ฉด ๋ฐ๋์ CNAME์ผ๋ก ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค
- CloudFront๋ ๊ณ ์ IP๊ฐ ์๋๊ธฐ ๋๋ฌธ์ A ๋ ์ฝ๋๋ก๋ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค
dig๋ช ๋ น์ด๋ก ํ์ธํ์ ๋IN A xxx.xxx.xxx.xxxํํ๊ฐ ๋์ค๋ฉด ์์ง ๋ณ๊ฒฝ ์ ์ ๋๋ค
๋์น๊ธฐ ์ฌ์ด ํฌ์ธํธ: ์ธ์ฆ์ ๊ฐฑ์
์ธ๋ถ์์ ๋ฐ์ importํ ์ธ์ฆ์๋ ์๋ ๊ฐฑ์ ์ด ๋์ง ์์ต๋๋ค.
| ๊ตฌ๋ถ | ACM ์ง์ ๋ฐ๊ธ | ์ธ๋ถ ์ธ์ฆ์ Import |
|---|---|---|
| ์๋ ๊ฐฑ์ | AWS๊ฐ ์๋ ์ฒ๋ฆฌ | ์๋ ๊ฐฑ์ ํ์ |
| ๋น์ฉ | ๋ฌด๋ฃ | ์ธ์ฆ์ ๊ตฌ๋งค ๋น์ฉ ๋ณ๋ |
| ๊ฐฑ์ ์ฃผ์ฒด | AWS | ์ธ๋ถํ์ฌ์์ ์ฌ๋ฐ๊ธ โ ๋ค์ import |
๋ง๋ฃ์ผ ์ ์ ์ธ๋ถํ์ฌ๋ก๋ถํฐ ๊ฐฑ์ ์ธ์ฆ์๋ฅผ ๋ฐ์ ๋ค์ import ํด์ผ ํฉ๋๋ค. EventBridge + SNS ์๋ฆผ์ ๊ฑธ์ด๋๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
์๋๋ฆฌ์ค 2: ์ด์์ฌ ๊ต์ฒด โ CloudFront ๋ฐฐํฌ๋ฅผ ๋ฐ๊ฟ์ผ ํ ๋
์ํฉ
- Aํ์ฌ์ ๋๋ฉ์ธ
chat.example.com์ด Bํ์ฌ์ CloudFront์ ์ฐ๊ฒฐ๋์ด ์ด์ ์ค - ๊ณ์ฝ ๋ง๋ฃ๋ก Cํ์ฌ์ CloudFront๋ก ๊ต์ฒดํด์ผ ํจ (B โ C)
- Cํ์ฌ๊ฐ ๋ฏธ๋ฆฌ ์์ฌ CloudFront์ ๋๋ฉ์ธ์ ๋ฑ๋กํ๋ ค ํ๋๋โฆ
๋ง๋๊ฒ ๋๋ ์๋ฌ
One or more aliases specified for the distribution includes an
incorrectly configured DNS record that points to another CloudFront
distribution.
AWS CloudFront๋ ๋์ผํ CNAME์ ๋ ๊ฐ์ ๋ฐฐํฌ์ ๋์์ ๋ฑ๋กํ ์ ์์ต๋๋ค. Bํ์ฌ ๋ฐฐํฌ์ chat.example.com์ด ๋จ์์๋ ํ, Cํ์ฌ๋ ๊ฐ์ ๋๋ฉ์ธ์ ๋ฑ๋กํ ์ ์์ต๋๋ค.
์ ์ด๋ฐ ์ ์ฝ์ด ์์๊น?
CloudFront๊ฐ CNAME ๋ฑ๋ก ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ฆ์ ์ํํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
chat.example.com์ DNS๋ฅผ ์กฐํ- ์ด๋ฏธ ๋ค๋ฅธ CloudFront ๋ฐฐํฌ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์๋์ง ํ์ธ
- ๋ค๋ฅธ ๋ฐฐํฌ๋ฅผ ๊ฐ๋ฆฌํค๊ณ ์์ผ๋ฉด โ ๋ฑ๋ก ๊ฑฐ๋ถ
ํ ๋๋ฉ์ธ์ด ๋์์ ๋ CDN์ ๊ฐ๋ฆฌํค๋ ์ถฉ๋์ ๋ฐฉ์งํ๊ธฐ ์ํ ์ ์ฑ ์ ๋๋ค.
๊ต์ฒด ์์ ์์
์ด ์์ ์ ์ธ ์ฃผ์ฒด๊ฐ ์์๋๋ก ์์ง์ฌ์ผ ํฉ๋๋ค.
[Bํ์ฌ] CloudFront์์ CNAME ์ญ์
โ
[Aํ์ฌ] DNS ๋ ์ฝ๋ ์ญ์ ๋๋ Cํ์ฌ CloudFront๋ก ๋ณ๊ฒฝ
โ
[Cํ์ฌ] ์์ฌ CloudFront์ CNAME ๋ฑ๋ก
์ด ์์๊ฐ ์ง์ผ์ง์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๊ณ์๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ญ์ ~์ฌ๋ฑ๋ก ์ฌ์ด์ ์งง์ ๋ค์ดํ์์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก, ์ธ ํ์ฌ๊ฐ ๋์์ ๋๊ธฐํ๋ฉฐ ์์ฐจ์ ์ผ๋ก ์งํํ๋ ๊ฒ์ด ์ด์์ ์ ๋๋ค.
์ญ์ ํ๋๋ฐ ์ฌ์ ํ ๋ฐ์์ด ์ ๋๋ ๊ฒฝ์ฐ
DNS ์บ์ฑ ๋๋ฌธ์ผ ์ ์์ต๋๋ค
dig ๊ฒฐ๊ณผ์ TTL ๊ฐ๋งํผ ์บ์๊ฐ ์ ์ง๋ฉ๋๋ค. ๋ณดํต ์ ๋ถ ~ ์ ์๊ฐ ์ด๋ด์ ๋ฐ์๋์ง๋ง, 2~3์๊ฐ์ด ์ง๋๋ ๊ทธ๋๋ก๋ผ๋ฉด ์บ์ฑ์ด ์๋๋ผ ์ค์ ๋ฌธ์ ๋ฅผ ์์ฌํด์ผ ํฉ๋๋ค.
์ค์ ๋ฌธ์ ํ์ธ ๋ฐฉ๋ฒ
๊ถํ ์๋ ๋ค์์๋ฒ์ ์ง์ ์ง์ํ๋ฉด ์บ์์ ๋ฌด๊ดํ๊ฒ ์ค์ ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
# ๋ค์์๋ฒ ํ์ธ
dig example.com NS
# ํด๋น ๋ค์์๋ฒ์ ์ง์ ์ง์
dig @ns1.example.com chat.example.com
# ๋๋ ๋ฃจํธ๋ถํฐ ์ถ์
dig chat.example.com +trace
# ์ธ๋ถ DNS๋ก ๊ต์ฐจ ํ์ธ
dig @8.8.8.8 chat.example.com
์ฌ๊ธฐ์ ์ฌ์ ํ ์ด์ CNAME์ด ๋์จ๋ค๋ฉด, ์ค์ ๋ก ์ญ์ ๊ฐ ๋์ง ์์ ๊ฒ์ ๋๋ค.
ํํ ์ค์๋ค
- Route 53์ ํธ์คํ ์์ญ์ด ์ฌ๋ฌ ๊ฐ: ์ค์ ์ฌ์ฉ ์ค์ด ์๋ ์์ญ์์ ์ญ์ ํ ๊ฒฝ์ฐ
- ์๋ธ๋๋ฉ์ธ์ด ๋ณ๋ ์์:
chat.example.com์ด ๋ค๋ฅธ DNS ์๋น์ค์์ ๊ด๋ฆฌ๋๊ณ ์๋ ๊ฒฝ์ฐ - ์ญ์ ํ ์ ์ฅ ๋ฏธ์๋ฃ: ์ฝ์์์ ์ญ์ ๋ง ํ๊ณ โ๋ณ๊ฒฝ ์ฌํญ ์ ์ฅโ์ ๋๋ฅด์ง ์์ ๊ฒฝ์ฐ
Bํ์ฌ๊ฐ ํ์กฐํ์ง ์๋ ๊ฒฝ์ฐ
๋๋ฌผ์ง๋ง ๊ณ์ฝ์ด ์ข ๋ฃ๋์์์๋ Bํ์ฌ๊ฐ CNAME์ ์ญ์ ํด์ฃผ์ง ์๋ ์ํฉ์ด ์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ Aํ์ฌ(๋๋ฉ์ธ ์์ ์) ๊ฐ AWS Support์ ์ง์ ์์ฒญํ ์ ์์ต๋๋ค. AWS๊ฐ DNS TXT ๋ ์ฝ๋ ๋ฑ์ ํตํด ๋๋ฉ์ธ ์์ ๊ถ์ ๊ฒ์ฆํ ๋ค ์ถฉ๋์ ํด์ํด ์ค๋๋ค.
ํ์ ์ ์ฒดํฌ๋ฆฌ์คํธ
์ธ๋ถํ์ฌ์ ๋๋ฉ์ธ ์ฐ๊ฒฐ ์์ ์ ํ ๋, ์ฌ์ ์ ์ ๋ฆฌํด๋๋ฉด ์ข์ ํญ๋ชฉ๋ค์ ๋๋ค.
| ํ์ธ ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์ธ์ฆ์ ํ์ผ ์๋ น | .crt, .key, ca-bundle.crt 3๊ฐ๊ฐ ํต์ฌ |
| ์ธ์ฆ์ ๋ง๋ฃ์ผ ํ์ธ | import ์ธ์ฆ์๋ ์๋ ๊ฐฑ์ ์ ๋จ, ๋ง๋ฃ์ผ ์บ๋ฆฐ๋ ๋ฑ๋ก |
| DNS ๋ณ๊ฒฝ ๊ถํ ํ์ธ | ๋๊ฐ DNS๋ฅผ ๊ด๋ฆฌํ๋์ง, CNAME ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ์ง |
| CloudFront ๋๋ฉ์ธ ๊ณต์ | d1234abcdef.cloudfront.net ํํ์ CNAME ์ฃผ์๋ฅผ ์ธ๋ถํ์ฌ์ ์ ๋ฌ |
| ์์ ์์ ์กฐ์จ | ์ ์ฒด ๊ต์ฒด ์ ์ญ์ โ ์ฌ๋ฑ๋ก ์์์ ํ์ด๋ฐ ์ฌ์ ํฉ์ |
| ๋กค๋ฐฑ ๊ณํ | ๋ฌธ์ ๋ฐ์ ์ ์๋ ์ค์ ์ผ๋ก ๋๋๋ฆฌ๋ ์ ์ฐจ |
| dig ๋ช ๋ น์ด๋ก ์ฌ์ /์ฌํ ํ์ธ | ์์ ์ ํ๋ก DNS ์ํ๋ฅผ ์ง์ ๊ฒ์ฆ |
๋ง์น๋ฉฐ
์ธ๋ถ ๋๋ฉ์ธ ์ฐ๊ฒฐ์ ๊ธฐ์ ์ ์ผ๋ก๋ ์ด๋ ต์ง ์์ง๋ง, **โ๋๊ฐ ๋ฌด์์ ๋จผ์ ํด์ผ ํ๋๊ฐโ**๋ผ๋ ์์๊ฐ ํต์ฌ์ ๋๋ค. ํนํ ์ ์ฒด ๊ต์ฒด ์ํฉ์์๋ ์ธ ํ์ฌ์ ์์ ์์๊ฐ ์ด๊ธ๋๋ฉด ๋ค์ดํ์์ด ๊ธธ์ด์ง๊ฑฐ๋ ์๋ฌ๊ฐ ํด๊ฒฐ๋์ง ์์ต๋๋ค.
์์
์ ์ ๊ด๋ จ ๋ด๋น์๋ค๊ณผ ์์๋ฅผ ๋ช
ํํ ๊ณต์ ํ๊ณ , dig ๋ช
๋ น์ด๋ก ๊ฐ ๋จ๊ณ์ ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ฆํ๋ฉด์ ์งํํ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.