Web Hosting?
๐ก์น ์ฌ์ดํธ๋ฅผ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ํ์ผ์ ๋ค์ํ ๋๋ฐ์ด์ค์์ ์์ธ์คํ ์ ์๋๋ก ํ๋ ์๋น์ค
์น์ฌ์ดํธ์ ์์ธ์คํ๋ ๊ณผ์ ๊ณผ ์๋ฆฌ
๐ก์น์ฌ์ดํธ๋ฅผ ๋ณธ๋ค === IP ์ฃผ์๋ฅผ ํตํด ์๋ฒ์ ํ์ด์ง๋ฅผ ์์ฒญํ๋ค
ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ณดํต IP ์ฃผ์๋ฅผ ์ ๋ ฅํ์ฌ ์น์ฌ์ดํธ์ ์ ๊ทผํ์ง ์๋๋ค.
1. ์ ์ ๊ฐ ๋ธ๋ผ์ฐ์ URL ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ค.
๐กURL์ 2๊ฐ์ง ํํ
- ๋๋ฉ์ธ (ex. naver.com)
- IP ์ฃผ์ (ex. 172.0.0.1) </aside>
๊ฑฐ์ ๋๋ถ๋ถ์ ์๋น์ค๋ค์ URL ์ฃผ์๋ก IP๋ฅผ ์ง์ ๋ ธ์ถ์ํค์ง ์๋๋ค.
์ฌ์ฉ์์ ํธ์์ฑ์ ์ํ์ฌ, ์ธ์ํ๊ธฐ ์ฌ์ด naver.com๊ณผ ๊ฐ์ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ค.
๋๋ฉ์ธ์ผ๋ก ์น์ฌ์ดํธ์ ์ ๊ทผํ๋ ์๋ฆฌ
- ๋๋ฉ์ธ์ IP ์ฃผ์์ ๋งค์นญ๋์ด์๋ค.
- DNS ์๋ฒ๋ฅผ ํตํด ํด๋น ๋๋ฉ์ธ๊ณผ ๋งค์นญ๋๋ IP ์ฃผ์๋ฅผ ์ฐพ์ ์ ์๋ค.
DNS(๋๋ฉ์ธ ๋ค์ ์์คํ )
DNS ์ฟผ๋ฆฌ๊ฐ ์บ์๋์ด ์์ง ์๋ค๋ฉด, IP ํ์์ Root ์์ญ์ผ๋ก๋ถํฐ ์์๋๋ค.
Root ์์ญ์์๋ถํฐ ์ฐจ๋ก๋ก ๋ด๋ ค๊ฐ๋ฉฐ, ์ต์ข ์ ์ผ๋ก ํด๋น ๋๋ฉ์ธ๊ณผ ๋งค์นญ๋๋ IP ์ฃผ์๋ฅผ ์ฐพ๋๋ค.
์ฐพ์ IP ์ฃผ์๋ ์ต์ข ์ ์ผ๋ก ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐํ๋๋ฉฐ, ๋ฐํ๋ IP ์ฃผ์๋ก ์น ์ฌ์ดํธ๋ฅผ ์์ฒญํ๋ค.
๊ฐ๋น์, ๊ณ ๋๋์ ๊ฐ์ด ๋๋ฉ์ธ ๊ฑฐ๋ ์๋น์ค ์ ์ฒด์์ ํน์ ๋๋ฉ์ธ ์ด๋ฆ์ ๊ตฌ๋งคํ ์ ์๋ค.
DNS ์ค์
DNS๋ ๋ฑ๋ก๋ ๋ ์ฝ๋ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก IP๋ฅผ ํ์ํ๋ค.
๐ก์ฐธ๊ณ - ๋ ์ฝ๋ ์ข ๋ฅ๋ณ ์ ๋ณด
- A ๋ ์ฝ๋ - ๋๋ฉ์ธ์ IP ์ฃผ์๋ฅผ ๊ฐ๊ณ ์๋ ๋ ์ฝ๋. A ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- AAAA ๋ ์ฝ๋ - ๋๋ฉ์ธ์ IPv6 ์ฃผ์๋ฅผ ํฌํจํ๋ ๋ ์ฝ๋(IPv4 ์ฃผ์๋ฅผ ๋์ดํ๋ A ๋ ์ฝ๋์ ๋ฐ๋).AAAA ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- CNAME ๋ ์ฝ๋ - ํ๋์ ๋๋ฉ์ธ์ด๋ ํ์ ๋๋ฉ์ธ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก ์ ๋ฌํ๋ฉฐ, IP ์ฃผ์๋ฅผ ์ ๊ณตํ์ง๋ ์์ต๋๋ค. CNAME ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- MX ๋ ์ฝ๋ - ์ด๋ฉ์ผ์ ์ด๋ฉ์ผ ์๋ฒ๋ก ์ ์กํฉ๋๋ค. MX ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- TXT ๋ ์ฝ๋ - ๊ด๋ฆฌ์๊ฐ ๋ ์ฝ๋์ ํ ์คํธ ๋ฉ๋ชจ๋ฅผ ์ ์ฅํ ์ ์์ต๋๋ค.์ด ๋ ์ฝ๋๋ ์ข ์ข ์ด๋ฉ์ผ ๋ณด์์ ์ฌ์ฉ๋ฉ๋๋ค.TXT ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- NS ๋ ์ฝ๋ - DNS ํญ๋ชฉ์ ์ด๋ฆ ์๋ฒ๋ฅผ ์ ์ฅํฉ๋๋ค. NS ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- SOA ๋ ์ฝ๋ - ๋๋ฉ์ธ์ ๋ํ ๊ด๋ฆฌ์ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค. SOA ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- SRV ๋ ์ฝ๋ - ํน์ ์๋น์ค์ ๋ํ ํฌํธ๋ฅผ ์ง์ ํฉ๋๋ค. SRV ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
- PTR ๋ ์ฝ๋ - ๋ฆฌ๋ฒ์ค ์กฐํ์์ ๋๋ฉ์ธ ์ด๋ฆ์ ์ ๊ณตํฉ๋๋ค. PTR ๋ ์ฝ๋์ ๋ํด ์์ธํ ์์๋ณด์ธ์.
NS / A ๋ ์ฝ๋๋ฅผ ํตํ IP ํ์ ํ๋ฆ
1 NS ๋ ์ฝ๋ → ๋ค์์๋ฒ ์ ๋ณด ์์ฒญ
2 | ๋๋ฉ์ธ์ ๋ํ DNS ์์ฒญ๊ถํ์ ๊ฐ์ง ๋ค์์๋ฒ ์ ๋ณด ํ๋ |
3 | ๋ค์์๋ฒ ์ ๋ณด → A ๋ ์ฝ๋ ์ ๋ณด ์์ฒญ |
4 | A ๋ ์ฝ๋์ ๋ํ IP ์ฃผ์ ํ๋ |
CNAME์ ์ญํ
ํ์ ๋๋ฉ์ธ์ ์ด๋ฆ๊ณผ ๋งค์นญ๋๋ ์ ๋ณด
CNAME์ ํตํด ํ์ด์ง๋ฅผ ์์ฒญํ๋ค๋ฉด, ์ฐ๊ฒฐ๋ ๋๋ฉ์ธ์ ๋จผ์ ํ์ํ ํ์ NS / A ๋ ์ฝ๋๋ฅผ ํตํ IP ํ์์ ์์ํ๋ค.
2. URL ์ฃผ์์ ์ฐ๊ฒฐ๋์ด ์๋ ์๋ฒ์ ํ์ด์ง๋ฅผ ์์ฒญํ๋ค.
๐ก์๋ฒ์ ์ข ๋ฅ
- ์์ฒด์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ด๋ถ์๋ฒ
- ํด๋ผ์ฐ๋๋ฅผ ํตํด ์๋ํ๋ ์ธ๋ถ์๋ฒ
ํด๋ผ์ฐ๋ ์๋ฒ์ ์ฅ์
- ์๋ฒ์ ๋ฌผ๋ฆฌ์ ์ธ ์ ์ง๋ณด์๋ฅผ ํ ํ์๊ฐ ์์
- ๋๊ท๋ชจ ํธ๋ํฝ์ ๋ํ์ฌ ์์ ์ ์ด๊ณ ์ผ๊ด์ฑ ์๋ ๋์์ด ๊ฐ๋ฅํจ
ํด๋ผ์ฐ๋ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์ ๋ฆฌ์์ค๋ก ์์ ์ ์ด๊ณ ์ ๋ขฐ์ฑ์๋ ์๋น์ค ์ ๊ณต์ด ๊ฐ๋ฅํ๋ค.
- ์ฐธ๊ณ ) ์ํ์จ์์ ์ฌ์ฉํ๋ ํด๋ผ์ฐ๋GCP: Cloud Functions, Authentication
- AWS: ์น ํธ์คํ , S3 ๋ฒํท
AWS๋ก ์น ํธ์คํ ํ๊ธฐ
S3 Bucket ์์ฑ
ํด๋ผ์ด์ธํธ์๊ฒ ์น ์ฌ์ดํธ๋ฅผ ๋ณด์ฌ์ฃผ๋ ค๋ฉด,
์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ๋ณด๋ผ ์น ์ฌ์ดํธ ๊ตฌ์ฑ ํ์ผ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค.
S3 > ๋ฒํท ๋ง๋ค๊ธฐ
๐ก๋ฒํท ์ ๋ณด ์ ๋ ฅ
- ๋ฒํท ์ด๋ฆ : CloudFront, Route53์์ ์์ฑํ ์ด๋ฆ๊ณผ ๋์ผํ๊ฒ ์ง์
- ACL ํ์ฑํ ๋ฒํท ์์ ์ : ๋ฒํท์ ์์ ํ ๊ณ์ ์๊ฒ ๋ฒํท์ ์๋ ๋ชจ๋ ๊ฐ์ฒด(ํ์ผ๋ค)์ ๋ํ ๋ชจ๋ ๊ถํ์ด ์์ : ๋ฒํท ์์ ์๊ฐ ์๋ ์ฌ๋์ด ํด๋น ๋ฒํท์ ๊ฐ์ฒด ์ ๋ก๋๋ฅผ ํ๋ ๊ฒฝ์ฐ, ๋ฒํท ์์ ์์๊ฒ ๋ชจ๋ ๊ถํ์ ์ด์ ํ๋ ์ถ๊ฐ ์ค์ ์ด ํ์ํจ (--acl bucket-owner-full-control) ๊ฐ์ฒด ๋ผ์ดํฐ : ๋ฒํท์ ์ ๋ก๋ํ ๊ฐ์ฒด์ ๊ถํ์, ํด๋น ๊ฐ์ฒด๋ฅผ ์ ๋ก๋ํ ์ฌ๋์๊ฒ ์์
- ํผ๋ธ๋ฆญ ์์ธ์ค ์ฐจ๋จ ์ค์ : ๋ฒํท์ ๊ฐ์ฒด์ ์ ๊ทผํ ์ ์๋ ์์ธ์ค ๊ถํ ์ค์ : CloudFront๋ฅผ ํตํด์๋ง S3 ๋ฒํท์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ์์ธ์ค ์ฐจ๋จ์ ํ์ด์ค
์ ์ ์น ์ฌ์ดํธ ํธ์คํ
๋ฒํท > ๋ฒํท ์ด๋ฆ > ์์ฑ > ์ ์ ์น ์ฌ์ดํธ ํธ์คํ > ํธ์ง
์ ์ ์น ์ฌ์ดํธ ํธ์คํ ์ ํ์ฑํ
→ ์ง์ ํ ์ธ๋ฑ์ค ๋ฌธ์์ ๋ํ ์๋ณธ ์ฃผ์๋ฅผ ์ป์ ์ ์์
CloudFront ๋ฐฐํฌํ๊ธฐ ( + ๊ธฐ์กด ์บ์๋ ํ์ผ ๋ฌดํจํ )
๐กCloudFront > ๋ฐฐํฌ ์์ฑ
- ์๋ณธ Origin Domain : S3 Bucket์ ์ฃผ์
- ์๋ณธ ์์ธ์ค Legacy access Identities : ์๋ณธ ์์ธ์ค ID๋ฅผ ์ฌ์ฉํ์ฌ Bucket์ ์ ๊ทผ : ์ OAI ์์ฑ์ผ๋ก ID ๋ฑ๋ก
- ๊ธฐ๋ณธ ์บ์ ๋์ ๋ทฐ์ด > ํ๋กํ ์ฝ ์ ์ฑ > Redirect HTTP to HTTPS : weperson์์๋ ์ฌ์ฉ์ ํธ์์ฑ์ ์ํด ๋ฆฌ๋ค์ด๋ ํธ ์ต์ ์ฌ์ฉ์ค ๋ทฐ์ด > ํ์ฉ๋ HTTP ๋ฐฉ๋ฒ > GET, HEAD : weperson์ SPA ์๋น์ค์ด๊ธฐ ๋๋ฌธ์, ์ต์ ํ์ฉ ์ต์ ์ฌ์ฉ์ค
- ์ค์ Custom SSL certificate - optional : HTTPS ๋ณด์ ์ธํ ์ ์ํ SSL ํ์ผ ๋ฑ๋ก
์์ฑ ํ
aws cli๋ฅผ ํตํด ๋น๋ํ ํ์ผ์ ์ ๋ก๋ / ์บ์ ๋ฌดํจํ ํ ์ ์๋ค.
// ๋น๋
yarn build
// ๊ธฐ์กด dist/spa ์ ๊ฑฐ ํ ์๋กญ๊ฒ ๋น๋๋ dist/spa ํ์ผ ์
๋ก๋
aws s3 sync --acl public-read --delete dist/spa s3://์๋ธ๋๋ฉ์ธ.com
// ์กด์ฌํ๋ CDN ์บ์ํ์ผ ๋ฌดํจํ
aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_PROD_CLOUDFRONT_ID }} --paths "/*"
์บ์ ๋ฌดํจํ ์ง์ ํด๋ณด๊ธฐ
CloudFront > ๋ฐฐํฌ > ๋ฐฐํฌID > ๋ฌดํจํ ์์ฑ
๊ฒฝ๋ก ํจํด์ ํตํด ํ์ ํ์ผ๋ค์ ํ๊ฒํ ํ์ฌ ๋ฌดํจํ ์์ฑ → ์บ์ ๋ฌดํจํ
Route53 ์ฐ๊ฒฐ
๐กRoute53 > ํธ์คํ ์์ญ > ๋ ์ฝ๋ ์์ฑ
- ๋ ์ฝ๋ ์ด๋ฆ : ์ ์ ๊ฐ ์ ๋ ฅํ ๋๋ฉ์ธ ์ด๋ฆ ๋ ์ฝ๋ ์ ํ
- CloudFront ์ฐ๊ฒฐ์ ํ ๋ → CloudFront์ ๋๋ฉ์ธ ์ด๋ฆ ๋๋ IP ์ฃผ์
- ์ ์ ์น ํธ์คํ ์ ํ ๋ → S3 Bucket์ ์ธ๋ฑ์ค ๋ฌธ์์ ์ฃผ์
'IT > Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ ํ๋ก์ ํธ ๊ธฐ๋ก] webpack, web-dev-server, cors, proxy ์ฝ์ง๊ธฐ (0) | 2022.02.09 |
---|---|
์บ๋ฆฐ๋ ๋ง๋ค๊ธฐ (0) | 2021.06.04 |
๊นํ๋ธ (0) | 2021.06.02 |
๋ฐ๋๋ผ์ฝ๋ฉ ์ฌ์ ํ์ต ๊ฐ์ด๋ - google ํํ์ด์ง ํด๋ก ์ฝ๋ฉ (0) | 2021.05.05 |
ํด๋ก ์ฝ๋ฉ ์ ํ๋ธ ์ฌ์ดํธ ๋ฐ๋ผ ๋ง๋ค๊ธฐ ๋๋ฆผ์ฝ๋ฉ by ์๋ฆฌ ์์ ์ฐธ๊ณ (0) | 2021.05.01 |