URL ๋น๋๋?
URL ๋น๋๋ ํ์ผ ํค(key)๋ฅผ URL๋ก ๋ณํํ๋ ํจ์์ ๋๋ค.fs ๋๋ผ์ด๋ฒ URL ๋น๋
fs ๋๋ผ์ด๋ฒ๋ ๋ฐ๋์ urlBuilder ์ค์ ์ด ํ์ํฉ๋๋ค.๊ธฐ๋ณธ ์ค์
์ปค์คํ ๋๋ฉ์ธ
์ ์ ํ์ผ ์๋น
fs ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ ๋๋ Fastify static ํ๋ฌ๊ทธ์ธ์ด ํ์ํฉ๋๋ค.S3 ๋๋ผ์ด๋ฒ URL ๋น๋
S3 ๋๋ผ์ด๋ฒ๋ ๊ธฐ๋ณธ์ ์ผ๋ก S3 URL์ ์์ฑํ์ง๋ง, urlBuilder๋ก ์ปค์คํฐ๋ง์ด์ง ๊ฐ๋ฅํฉ๋๋ค.๊ธฐ๋ณธ ๋์ (urlBuilder ์์)
CloudFront CDN
CDN์ ํตํด ํ์ผ์ ์๋นํ๋ ค๋ฉด:- ๋น ๋ฅธ ์ ์ก ์๋ (์ฃ์ง ๋ก์ผ์ด์ )
- ๋์ญํญ ๋น์ฉ ์ ๊ฐ
- ์บ์ฑ
์ปค์คํ ๋๋ฉ์ธ
- CloudFront ๋ฐฐํฌ ์์ฑ
- Origin: S3 ๋ฒํท
- CNAME: cdn.example.com
- DNS: cdn.example.com โ CloudFront
๋์ URL ์์ฑ
URL ๋น๋์์ ํ๊ฒฝ๋ณ์๋ ๋ก์ง์ ์ฌ์ฉํ ์ ์์ต๋๋ค.ํ๊ฒฝ๋ณ URL
๊ฒฝ๋ก ๋ณํ
๋ฒ์ ๊ด๋ฆฌ
Signed URL (S3)
S3๋ ์์ ์ ๊ทผ URL์ ์์ฑํ ์ ์์ต๋๋ค.getSignedUrl()
- Private ํ์ผ ์์ ๊ณต์
- ๋ณด์์ด ํ์ํ ๋ค์ด๋ก๋
- ์๊ฐ ์ ํ ์ก์ธ์ค
UploadedFile์ signedUrl
์ค์ ์์
1. CDN + ๋ฒ์ ๊ด๋ฆฌ
2. ๋ค์ค CDN
3. ํด์ ๊ธฐ๋ฐ URL
4. ์กฐ๊ฑด๋ถ URL
5. ๋ฆฌ์ฌ์ด์ง ์๋น์ค
URL ํ์
Sonamu Storage๋ ๋ ๊ฐ์ง URL ํ์ ์ ์ ๊ณตํฉ๋๋ค.Unsigned URL
์ผ๋ฐ ๊ณต๊ฐ URL- ์๊ตฌ์
- ๋ง๋ฃ ์์
- Public ํ์ผ์ฉ
Signed URL (S3)
์๋ช ๋ ์์ URL- ์์์ (๋ง๋ฃ ์๊ฐ ์ค์ )
- ์๋ช ์ผ๋ก ๋ณดํธ๋จ
- Private ํ์ผ์ฉ
์ฃผ์์ฌํญ
CloudFront ์ค์
CloudFront๋ฅผ URL ๋น๋์ ํจ๊ป ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.1. CloudFront ๋ฐฐํฌ ์์ฑ
- AWS Console โ CloudFront
- โCreate Distributionโ ํด๋ฆญ
- Origin:
- Origin Domain:
my-bucket.s3.ap-northeast-2.amazonaws.com - Origin Path: (๋น์๋ )
- Origin Domain:
- Default Cache Behavior:
- Viewer Protocol Policy: Redirect HTTP to HTTPS
- Allowed HTTP Methods: GET, HEAD, OPTIONS
- Create Distribution
2. Domain ํ์ธ
๋ฐฐํฌ ์์ฑ ํ Domain Name ํ์ธ:3. URL ๋น๋ ์ค์
4. ์ปค์คํ ๋๋ฉ์ธ (์ ํ)
-
Route 53์์ CNAME ๋ ์ฝ๋ ์์ฑ:
-
CloudFront ๋ฐฐํฌ ์ค์ :
- Alternate Domain Names (CNAMEs):
cdn.example.com - SSL Certificate: ์ธ์ฆ์ ์ถ๊ฐ
- Alternate Domain Names (CNAMEs):
-
URL ๋น๋ ์์ :