AWS S3를 활용해 정적 웹 페이지 호스팅 및 도메인 적용방법 (Gabia + Route53 + CloudFront + ACM)

AWS S3를 활용해 정적 웹 페이지 호스팅 및 도메인 적용방법 (Gabia + Route53 + CloudFront + ACM)

요약
S3로 배포한 프로젝트에 CloudFront를 통해 간단하게 CDN과 도메인 적용 feat.Route53
작성일
Jan 22, 2025
태그
AWS
CDN
Domain
Web
WebHosting
저번 포스팅에서 리액트 프로젝트를 AWS S3에 업로드해 정적 웹 호스팅을 하였는데 이번엔 S3에 CloudFront CDN을 적용하려고 합니다. S3로 정적 웹 호스팅을 진행하는 과정이 궁금하시다면 아래 링크를 참고해주시기 바랍니다. 먼저 간단하게 CDN에 대해 알아보고 CloudFront를 생성하는 방법을 확인하겠습니다.
 

CDN은 무엇인가?

CDN(Content Delivery Network)은 전 세계에 분산된 서버 네트워크를 통해 사용자에게 콘텐츠를 빠르게 전달하는 기술입니다. 사용자가 접근하는 서버에서 물리적으로 멀리 떨어져 있다면 웹 사이트 이미지 또는 대용량 파일을 로드하는데 많은 시간이 소요됩니다. 대신 웹 사이트 콘텐츠는 지리적으로 가까운 CDN 서버에 저장된 콘텐츠를 가져와 로드 시간을 줄일 수 있습니다.
💡
아래와 같이 src를 통해 js파일을 로드하는 것 또한 CDN을 통해 js파일을 로드하는 것이다.
<script src="https://code.jquery.com/jquery-3.6.1.js"></script>

CDN의 장점

  • 페이지 로드 시간 단축
    • 웹 페이지 컨텐츠를 본래 서버에서 받아 미리 캐싱하기 때문에 페이지 로드 시간을 단축합니다.
  • 대역폭 비용 절감
    • 캐싱된 데이터를 제공하여 오리진 서버가 제공해야 하는 데이터의 양이 줄어들어 웹 사이트 소유자의 호스팅 비용을 절감할 수 있습니다.
  • 서버 부하 감소 및 안정성 향상
    • 많은 트래픽을 처리하여 웹 서버의 로드를 줄여 오리진 서버의 부하가 감소됩니다.
  • 웹 사이트 보안 강화
    • 서버 간에 로드를 분산하여 오리진 서버에 미치는 영향을 줄여 트래픽 급증에 인한 디도스 공격을 방지할 수 있습니다.

CloudFront 구축하기

먼저 AWS 콘솔에 로그인하여 CloudFront를 검색하여 아래 페이지로 들어와 CloudFront 배포 생성 버튼을 누릅니다.
notion image

원본 도메인 설정

origin damain에 미리 생성된 S3 오리진을 선택해줍니다.
notion image
notion image
S3에 CloudFront에서만 접근할 수 있도록 원본 엑세스 제어를 선택합니다. Creat new OAC 를 클릭하여 새로운 OAC를 생성합니다.
notion image
notion image
새로운 OAC를 생성하면 아래와 같이 표시되고 배포 후 S3 정책을 업데이트 해야합니다.
notion image

기본 캐시 설정

필요한 캐시 설정을 수정합니다. 변경할 내용이 없다면 기본 입력값으로 진행하면 됩니다.
notion image

도메인 및 SSL 인증서 설정

도메인과 SSL인증서가 있다면 대체 도메인에 도메인을 입력합니다.
💡
CloudFront에 적용할 SSL 인증서의 경우에는 미국 동부(버지니아 북부) 리전에 생성된 인증서만 사용가능합니다. 인증서가 아직 없다면 아래 문서를 참고하여 인증서를 생성합니다.
notion image
 

참고문헌