서버리스 정적 웹사이트 성능 가속화

Chori·2024년 12월 26일
0
post-thumbnail

스스로 구축하는 AWS 클라우드 인프라 - 기본편을 수강하며 AWS 인프라를 Terraform으로 작성한 내용입니다.


  • 콘텐츠가 저장된 서버가 멀리 떨어져있거나 콘텐츠의 크기가 크면 로딩이 지연될 수 있음
  • 콘텐츠 전송 네트워크(CDN)으로 이러한 현상을 개선할 수 있음
  • Amazon CloudFront은 아마존에서 제공하는 콘텐츠 전송 네트워크 서비스
  • CloudFront가 없으면 S3에 담긴 콘텐츠가 직접 사용자들에게 전송되지만 CloudFront가 있다면 콘텐츠가 전 세계의 서버에 캐싱돼서 사용자가 더 가까운 캐싱 서버에서 콘텐츠를 받을 수 있어 웹 서비스 속도가 더 빨라짐
  • cloudfront.tf 파일을 만들고 다음과 같이 작성
# Define local variable
locals {
  s3_origin_id = aws_s3_bucket.main.id
}

resource "aws_cloudfront_distribution" "s3_distribution" {
  origin {
    domain_name = aws_s3_bucket.main.bucket_regional_domain_name
    origin_id = local.s3_origin_id
  }

  enabled = true
  is_ipv6_enabled = true
  default_root_object = "mycar.html"

  default_cache_behavior {
    allowed_methods = ["GET", "HEAD"]
    cached_methods = ["GET", "HEAD"]
    target_origin_id = local.s3_origin_id

    forwarded_values {
      query_string = false

      cookies {
        forward = "none"
      }
    }

    viewer_protocol_policy = "allow-all"
    min_ttl = 0
    default_ttl= 3600
    max_ttl = 86400
  }

  price_class = "PriceClass_All"

  restrictions {
    geo_restriction {
      restriction_type = "none"
    }
  }

  viewer_certificate {
    cloudfront_default_certificate = true
  }
}
profile
전부인 것처럼, 전부가 아닌 것처럼

0개의 댓글