Skip to content

๐Ÿฅƒ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ์ •์  ์›น ํ˜ธ์ŠคํŒ… ํ”„๋กœ์ ํŠธ

Notifications You must be signed in to change notification settings

jihoon55/Static_Web_Hosting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

โœจ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

  • ์ •์ ์›นํ˜ธ์ŠคํŒ…์„ ์ด์šฉํ•œ HTTPS ์‚ฌ์ดํŠธ ๊ตฌ์ถ•

    • ์ •์  ์›น ํ˜ธ์ŠคํŒ…์„ ์ด์šฉํ•ด ๋ณต์žกํ•œ ์„œ๋ฒ„ ์ธก ์ฒ˜๋ฆฌ ์—†์ด ํŒŒ์ผ์„ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • HTTPS๋ฅผ ์ด์šฉํ•ด ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— ์ „์†ก๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜์—ฌ ๋ณด์•ˆ๊ณผ ์‹ ๋ขฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๐ŸŒ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ

image

๐Ÿ“Œ ์„œ๋น„์Šค ๊ตฌ์„ฑ

AWS S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ ํ›„ ์ •์  ์›น ํ˜ธ์ŠคํŒ… ์„ค์ •
  • ๋ฒ„์ปท ์ƒ์„ฑ ํ›„ ํ•˜๋‹จ ๋ถ€๋ถ„์— ์ •์  ์›น ์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์„ค์ •

  • ์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฒ„ํ‚ท ์—”๋“œํฌ์ธํŠธ URL์ด ์ƒ์„ฑ๋จ

  • ์ •์  ์›น ํ˜ธ์ŠคํŒ… ์‚ฌ์šฉ ์ด์œ 

    • ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—‘์„ธ์Šค๊ฐ€ ์—†๋Š” ์ •์ ์ธ ์›น html์ผ ๊ฒฝ์šฐ, ์‚ฌ์šฉํ•œ ๋งŒํผ๋งŒ ์ง€๋ถˆํ•˜๋Š” S3์— ๋„ฃ์–ด ํ˜ธ์ŠคํŒ…ํ•˜๋Š”๊ฒƒ์ด ์ €๋ ดํ•˜๋‹ค
    • ํ•œ๊บผ๋ฒˆ์— ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๋ชฐ๋ ค๋„ S3 ์ž์ฒด๊ฐ€ ๋‚ด๊ตฌ์„ฑ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ์˜คํ† ์Šค์ผ€์ผ๋ง, ๋กœ๋“œ๋ฐธ๋Ÿฐ์„œ ์ž‘์—…์ด ํ•„์š”์—†๋‹ค.
ACM์„ ํ†ตํ•œ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ ๋ฐ ์ ์šฉ
  • Route53์—์„œ ๊ตฌ๋งคํ•œ ๋„๋ฉ”์ธ์„ ๊ธฐ์ค€์œผ๋กœ ACM์—์„œ SSL ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰
  • Route53์— ๋ ˆ์ฝ”๋“œ ์ƒ์„ฑ ๋ฐ ๋„๋ฉ”์ธ CNAME๊ฐ’ ๋“ฑ๋ก
    • ACM์—์„œ ์ธ์ฆ์„œ๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์„ ๋•Œ, ํ•ด๋‹น ๋„๋ฉ”์ธ ์ด๋ฆ„์˜ ์†Œ์œ ์ž์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด DNS ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
CDN ๋ฐ HTTPS ์ ์šฉ
  • ๋ฐฑ์—”๋“œ HTTPS ์ ์šฉ
    • ALB์ƒ์„ฑ ์‹œ ๊ณ„ํš ์„ค์ • ๋ถ€๋ถ„์„ ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ๋กœ ์„ค์ •ํ•˜์—ฌ ์ต์Šคํ„ฐ๋„ LB๋ฅผ ์„ค์ •ํ•œ๋‹ค
    • ๋ฆฌ์Šค๋„ˆ์— 443๋ฒˆ ํฌํŠธ๋ฅผ ์„ค์ •ํ•˜๋ฉฐ SSL ์ธ์ฆ์„œ๋ฅผ ๊ฒŒ์‹œํ•˜์—ฌ SSL Offload๋ฅผ ์‹ค์‹œํ•œ๋‹ค.
  • ํ”„๋ก ํŠธ์—”๋“œ HTTPS/CDN ์ ์šฉ
    • ์›๋ณธ ๋„๋ฉ”์ธ ๋ฐ S3 ์„ค์ •
    • Viewer protocol policy์˜ ์„ค์ •์„ Redirect HTTP to HTTPS๋กœ ์ง€์ •
    • ๋Œ€์ฒด๋„๋ฉ”์ธ(CNAME)๊ณผ ์ธ์ฆ ๋ฐ›์€ ๋„๋ฉ”์ธ์˜ ์ด๋ฆ„์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
Route 53์„ ์ด์šฉํ•œ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ
  • ๋ฐฑ์—”๋“œ์™€ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๋ณ„์นญ ๋ ˆ์ฝ”๋“œ๋ฅผ Route53 ํ˜ธ์ŠคํŒ… ์˜์—ญ์— ์ƒ์„ฑํ•œ๋‹ค
  • ๋ ˆ์ฝ”๋“œ ์ด๋ฆ„์— CloudFront์—์„œ ์„ค์ •ํ•œ CNAME์„ ์ž…๋ ฅํ•ด์ค€๋‹ค. (์ „์ฒด ๋ ˆ์ฝ”๋“œ์ด๋ฆ„ = ๋ฐฐํฌํ•  ์ฃผ์†Œ)
  • ํŠธ๋ž˜ํ”ฝ ๋ผ์šฐํŒ… ๋Œ€์ƒ์€ CloudFront ๋ฐฐํฌ์— ๋Œ€ํ•œ ๋ณ„์นญ ํด๋ฆญ
  • CloudFront ๋ฐฐํฌ ์ฃผ์†Œ๋ฅผ Route 53์—์„œ ์—ฐ๊ฒฐํ•œ๋‹ค.

๐Ÿ’ช ๋ฌด์—‡์„ ๋ฐฐ์› ๋Š”๊ฐ€?

  • ์ •์  ์›น ํ˜ธ์ŠคํŒ… ์‚ฌ๋ก€์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ๋“ค์–ด, ์ด๋ฒคํŠธ ํŽ˜์ด์ง€๋‚˜ ์‚ฌ์ „๋“ฑ๋ก ํŽ˜์ด์ง€ ์ฒ˜๋Ÿผ ์‚ฌ๋žŒ๋“ค์ด ํ•œ๊บผ๋ฒˆ์— ๋ชฐ๋ ธ๋‹ค๊ฐ€ ๋น ์ง€๋Š” ํŽ˜์ด์ง€๋ฅผ ์›น์„œ๋ฒ„๋กœ ํ˜ธ์ŠคํŒ… ํ•˜๋ฉด ๊ทธ๊ฒƒ์— ๋Œ€๋น„ํ•˜์—ฌ ๋ฏธ๋ฆฌ ์„œ๋ฒ„๋ฅผ ์‚ฌ๋‘๊ฑฐ๋‚˜ ์˜คํ† ์Šค์ผ€์ผ๋ง์œผ๋กœ EC2๋ฅผ ๋Š˜๋ ค์•ผ ํ•˜์ง€๋งŒ S3๋กœ ํ˜ธ์ŠคํŒ… ํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” ํ•„์š”์—†๋‹ค. ํ•˜์ง€๋งŒ ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—‘์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, S3๋Š” ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํ˜ธ์ŠคํŒ… ์˜ต์…˜์„ ๊ณ ๋ คํ•ด์•ผ ํ•จ.
  • S3 Presigned URL๊ณผ ๊ฐ™์ด S3 ๋ฒ„ํ‚ท ์ •์ฑ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณผ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    • ๋ฒ„ํ‚ท ๋ฐ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ด€๋ฆฌ์— ๋Œ€ํ•ด ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • S3 Presigned URL์€ S3 ๋ฒ„ํ‚ท์— ์žˆ๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ž„์‹œ์ ์ธ URL์„ ์ƒ์„ฑํ•˜์—ฌ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œํ•œ์ ์œผ๋กœ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž„
  • ์„œ๋ธŒ๋„ท๋ง์— ๋”ฐ๋ฅธ ELB์˜ ์„ค์ •๊ณผ ๋ฆฌ์Šค๋„ˆ, ๊ทœ์น™, ํƒ€๊ฒŸ ๊ทธ๋ฃน ์„ค์ •์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ๋‚ด๋ถ€ํ†ต์‹ ์„ ์œ„ํ•œ ์ธํ„ฐ๋„๊ณผ ์™ธ๋ถ€ํ†ต์‹ ์„ ์œ„ํ•œ ์ต์Šคํ„ฐ๋„์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜์—ˆ์Œ.
  • S3์™€ Cloudfront๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉฐ oac, acm, ๋ฒ„ํ‚ท์ •์ฑ…์„ ํ†ตํ•œ ๋ณด์•ˆ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    • S3๊ฐ€ ํผ๋ธ”๋ฆญํ•œ ํ™˜๊ฒฝ์— ์žˆ์„ ๊ฒฝ์šฐ ๋ณด์•ˆ์ƒ ์•ˆ์ „ํ•˜์ง€ ์•Š๊ณ  ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผํ•จ.
      • Cloudfront์— oac๋ฅผ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ๋‹จ์ผ ํŠธ๋ž˜ํ”ฝ ๊ฒฝ๋กœ๋ฅผ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Œ.
      • CloudFront์— Signed Cookies๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ƒ์„ฑํ•œ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์ด ์˜ค๋ฆฌ์ง„์—์„œ ์ƒ์„ฑ๋œ ๊ฒƒ์ธ์ง€ ํ™•์ธ ๊ฐ€๋Šฅํ•จ.

๐Ÿšจ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  • ๋ฌธ์ œ ์ƒํ™ฉ
    • ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํŒŒ์ผ์ด ์ •์ƒ์ ์œผ๋กœ ์—…๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Œ.
  • ์›์ธ ํŒŒ์•…
    • CloudFront ์บ์‹œ๋Š” ํŒŒ์ผ์ด๋‚˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘” ๊ฒƒ์œผ๋กœ, ์ƒˆ๋กœ์šด ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋”๋ผ๋„ ์ด๋ฏธ ์บ์‹œ๋œ ํŒŒ์ผ์ด ์—ฌ์ „ํžˆ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๊ฒƒ์„ ์•Œ๊ฒŒ ๋จ.
    • Cloudfront์—์„œ ์บ์‹œ ์ง€์†์‹œ๊ฐ„์€ TTL์€ ๊ธฐ๋ณธ๊ฐ’์ด 24์‹œ๊ฐ„์ด๋ฉฐ ์˜ค๋ฆฌ์ง„ ์„œ๋ฒ„์˜ ์‘๋‹ต ํ—ค๋”์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ.
    • ์บ์‹œ์˜ ๊ฐœ๋…์€ ์•Œ๊ณ  ์žˆ์—ˆ์ง€๋งŒ TTL์ด ์ง€๋‚˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ธฐ์กด ์บ์‹œ๊ฐ€ ๋ฐ˜ํ™˜๋˜๋Š” ๊ฒƒ์„ ์ƒ๊ฐํ•˜์ง€ ๋ชป ํ–ˆ์Œ.
    • ์ด๋Ÿฐ ๊ฒฝ์šฐ ์บ์‹œ๊ฐ€ ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ๊ธฐ์กด์˜ ์บ์‹œ๋œ ํŒŒ์ผ์„ ๋ฌดํšจํ™”ํ•ด์•ผ ํ•จ.
  • ๋ฌธ์ œ ํ•ด๊ฒฐ
    • Cloudfront ๋ฌดํšจํ™” ์„ค์ •์„ ์ด์šฉํ•ด ๋‚จ์•„ ์žˆ๋Š” ์บ์‹œ๋ฅผ ์‚ญ์ œ ์‹œํ‚ด

๐Ÿ“‹ ๋ธ”๋กœ๊น… & ๋ ˆํผ๋Ÿฐ์Šค

About

๐Ÿฅƒ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  ์ •์  ์›น ํ˜ธ์ŠคํŒ… ํ”„๋กœ์ ํŠธ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published