AWS (7) - S3, CloudFront

임재성·7일 전

AWS 기초

목록 보기
8/8

CloudFront

CloudFront란?

  • AWS에서 정적 웹 사이트를 배포할때는 EC2, ELB 대신 S3CloudFront를 사용할 수있음.
  • 두개의 서비스는 정적 콘텐츠를 더 효율적으로 관리하고 제공할 수 있기 때문.
  • 정적 웹사이트 호스팅의 한계점
    - S3를 통해서 웹사이트를 호스팅 할 수 있지만 사용자 위치에 따른 콘텐츠 전송속도가 달라질 수 있다. 만약, 버킷이 한국 리전에 있다면 한국이 아닌 다른 나라에 있는 사용자는 파일을 받기 위해 좀 더 오랜 시간을 기다려야한다.
  • AWS에서는 이러한 문제를 해결하기 위해 전 세계에 파일의 복사본을 저장하는 임시 저장소를 구축했다. 사용자는 가까운 임시 저장소에서 파일을 가져올 수 있어 컨텐츠를 빠르게 받을 수 있다.
  • 이러한 서비스를 CDN(Content Delivery Network)라고 한다.
  • AWS에서 CloudFront라는 CDN 서비스를 제공함.
  • CloudFront는 HTTPS를 사용하여 데이터를 전송할때 암호활르 제공함으로써 보안을 강화할 수 있으며, ACM과 연동하여 SSL/TLS 인증서를 무료로 발급하고 갱신할 수 있다.

정적 웹사이트 호스팅용 S3 버킷 준비

  • S3 버킷 생성
    이전 버킷 생성편을 참고하여
    버킷 이름 : 고유한 이름
    객체 소유권 : ACL 비활성화
    모든 퍼블릭 액세스 차단 : 모두해제
    버킷 버전 관리 : 비활성화
  • 버킷 정책 설정
    서비스 : S3
    작업 : GetObject
    리소스 : 버킷내 모든 객체
    보안주체 : 모든 사용자(*)

S3 정적 웹사이트 호스팅

  • 데스크탑 또는 노트북 로컬 파일 index.html 생성 후 업로드


  • 버킷 상세 페이지로 들어가서 -> 속성 탭 클릭
  • 하단에 정적 웹사이트 호스팅 -> 우측 편집클릭

  • 하단의 변경사항 저장 클릭 후 마무리
  • 다시 버킷 상세 페이지에서 속성 탭 -> 가장 하단의 정적 웹사이트 호스팅에 보면 접속 url이 존재한다.
  • 정상적으로 나오는거 확인

CloudFront 구성

  • cloudFront 콘솔 접속

  • 배포 생성 클릭

  • 요금제 선택(무료가 있으니 무료 선택)

  • 도메인 정보 및 태그 정보 입력(가장 상단의 Distribution name만 입력후 나머지 비워둔 후 진행)

  • Origin Type 우리가 사용할 것은 S3이므로 S3 선택

  • Origin 우측 Browse S3 클릭후 원하는 버킷 선택후 Choose 선택

  • 정상적으로 주소가 입력되는 것 확인후 웹 사이트 엔드포인트 사용 을 눌러서 cloudFront가 웹 사이트 엔드 포인트를 사용해서 버킷에 접근하도록 설정.

  • Next 클릭

  • Enable Security -> 그대로 Next 클릭

  • create distribution 클릭 후 마무리

  • 대표 도메인을 복사해서 접속하면 index.html파일 내용이 정상적으로 뜸.

새로운 도메인 HTTPS 적용

HTTPS 적용을 위한 인증서 발급

  • ACM 콘솔 진입
  • CloudFront에서 HTTPS를 적용하려면 인증서를 버지니아 북부에서 발급 받아야 함.
    리전을 변경
  • 우측의 요청 버튼을 통해서 인증서 요청
    도메인 이름 : 가지고 있는 도메인.
    검증 방법 : DNS
    키 알고리즘 : RSA 2048

CloudFront 인증서 적용

  • CloudFront 콘솔 메뉴에서 배포 -> 배포 ID 클릭
  • 일반 탭의 설정에 있는 편집 클릭
  • Alternative Domain name에 SSl/TLS 인증서를 발급당르 때 썼던 도메인을 그대로 작성.
    이 도메인은 기본으로 제공되는 도메인 대신 사용할 대체 도메인을 의미함.
    그리고 Custom SSL certificate에서는 ACM에서 발급받은 SSL/TLS 인증서를 선택.
  • 나머지는 그대로 두고 우측 하단 변경 사항 저장 클릭
  • CloudFront에 도메인을 연결하기 위해서 Route 53 콘솔에서 해당 도메인의 레코드 목록 화면으로 이동한 뒤 레코드 생성 버튼 클릭.
  • 별칭 옵션 활성화 -> 트래픽 라우팅 대상에서 CloudFront 배포에 대한 별칭 선택 -> 앞에서 만든 CloudFront 선택후 레코드 생성클릭
  • 이렇게 설정하면 CloudFront 의 배포 도메인과 Route53 의 도메인 접속시 동일하게 나오는걸 확인할 수 있다.
profile
조금씩 앞으로

0개의 댓글