๐ŸŒ AWS๋กœ ๋„๋ฉ”์ธ๊ณผ ์ •์  ์›น์‚ฌ์ดํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ

๐ŸŒ AWS๋กœ ๋„๋ฉ”์ธ๊ณผ ์ •์  ์›น์‚ฌ์ดํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ

์ด ๊ธ€์—์„œ๋Š” AWS์˜ S3 + CloudFront + Route 53์„ ์ด์šฉํ•ด์„œ ์ •์  ์›น์‚ฌ์ดํŠธ๋ฅผ ๋„๋ฉ”์ธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

1๏ธโƒฃ S3 ๋ฒ„ํ‚ท์œผ๋กœ ์ •์  ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…

  1. S3 ๋ฒ„ํ‚ท ์ƒ์„ฑ (๋ฒ„ํ‚ท ์ด๋ฆ„ = ๋„๋ฉ”์ธ๋ช…, ์˜ˆ: www.example.com)
  2. ์ •์  ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ… ์„ค์ •
    • index ๋ฌธ์„œ: index.html
    • ์˜ค๋ฅ˜ ๋ฌธ์„œ: error.html (์„ ํƒ)
  3. ํผ๋ธ”๋ฆญ ์ ‘๊ทผ ํ—ˆ์šฉ: ํผ๋ธ”๋ฆญ ์•ก์„ธ์Šค ์ฐจ๋‹จ ํ•ด์ œ
  4. ๋ฒ„ํ‚ท ์ •์ฑ… ์ถ”๊ฐ€:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublicReadGetObject",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::www.example.com/*"
    }
  ]
}

2๏ธโƒฃ CloudFront ๋ฐฐํฌ ์ƒ์„ฑ

  1. Origin Domain: S3 ์›น์‚ฌ์ดํŠธ ์—”๋“œํฌ์ธํŠธ ์ž…๋ ฅ
  2. Origin Access Control(OAC) ์„ค์ • โ†’ ์—ฐ๊ฒฐ
  3. Viewer Protocol Policy: Redirect HTTP to HTTPS
  4. Default Root Object: index.html
  5. OAC ๊ถŒํ•œ์„ S3์— ๋ถ€์—ฌ:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudfront.amazonaws.com"
      },
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::www.example.com/*",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:cloudfront::ACCOUNT_ID:distribution/DISTRIBUTION_ID"
        }
      }
    }
  ]
}

3๏ธโƒฃ Route 53์—์„œ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ

  1. Route 53์—์„œ ํ˜ธ์ŠคํŒ… ์˜์—ญ ์ƒ์„ฑ (๋„๋ฉ”์ธ: example.com)
  2. ์™ธ๋ถ€ ๋„๋ฉ”์ธ์ด๋ผ๋ฉด NS ๋ ˆ์ฝ”๋“œ Route 53 ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
  3. A ๋ ˆ์ฝ”๋“œ (Alias) ์ถ”๊ฐ€:
    • ํƒ€์ž…: A โ€“ Alias
    • Alias ๋Œ€์ƒ: CloudFront ๋ฐฐํฌ ์„ ํƒ

โœ… ์ ‘์† ํ…Œ์ŠคํŠธ

๋ธŒ๋ผ์šฐ์ €์—์„œ https://www.example.com ์ž…๋ ฅ โ†’ ์ •์  ์›น์‚ฌ์ดํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋œจ๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค!

๐Ÿ“Œ ๋งˆ๋ฌด๋ฆฌ

AWS์˜ ๋„๋ฉ”์ธ ์—ฐ๊ฒฐ ํ๋ฆ„์€ ํ•œ๋ฒˆ ์„ธํŒ…ํ•ด๋‘๋ฉด ๋งค์šฐ ์•ˆ์ •์ ์ด๊ณ  ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ CI/CD๋‚˜ GitHub Actions๋กœ ์ž๋™ ๋ฐฐํฌํ•˜๋Š” ๋‚ด์šฉ๋„ ์ด์–ด์„œ ํฌ์ŠคํŒ…ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ๋‹ฌ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค

์œ„๋กœ ์Šคํฌ๋กค