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 λΉλ μμ :
λ€μ λ¨κ³
Storage Manager
μ¬λ¬ λμ€ν¬ κ΄λ¦¬νκΈ°
μ€ν λ¦¬μ§ λλΌμ΄λ²
fs, S3 λλΌμ΄λ² μ€μ
νμΌ μ μ₯ λ° μ‘°ν
νμΌ μ
λ‘λ λ° λ€μ΄λ‘λ