aws - S3, CloudFront

» BE

인프런 JSCODE 박재성님 비전공자도 이해할 수 있는 AWS 입문/실전 강의를 듣고 정리한 내용입니다
https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-%EC%9D%B4%ED%95%B4%ED%95%A0%EC%88%98%EC%9E%88%EB%8A%94-aws-%EC%9E%85%EB%AC%B8%EC%8B%A4%EC%A0%84/dashboard

웹 서비스를 배포할 때 사용하는 S3, CloudFront

S3

  • 파일 저장 서비스 뿐만 아니라 정적 웹 사이트 호스팅 기능도 함

  • 웹 서비스를 다른 사용자들도 쓸 수 있게 인터넷에 배포

CloudFront란?

  • 컨텐츠(파일, 동영상 등)를 빠르게 전송하게 해주는 서비스

  • CDN(Content Delivery Network)이라고도 함

  • 전세계 곳곳에 컨텐츠(파일, 동영상)의 복사본을 저장해놓을 수 있는 임시 저장소를 구축해놓고 가장 가까운 임시 저장소에서 컨텐츠를 가져오면 훨씬 속도가 빨라짐

  • 컨텐츠를 전송 받는 성능을 향상시키기 위해 사용

  • HTTPS를 적용하려면 CloudFront를 사용해야 함(S3에는 HTTPS를 적용시키는 기능을 제공x)

  • 보안 강화


S3 버킷 생성하고 IAM 키 발급 받는 것 까진 동일

S3에 업로드하기 / 웹 호스팅 설정하기
  1. S3에 배포할 웹 서비스 파일 업로드

  2. S3에 정적 웹 사이트 호스팅 설정

    버킷 > 속성 > 정적 웹 사이트 호스팅 > 편집

    • 정적 웹 사이트 호스팅: 활성화
    • 호스팅 유형: 정적 웹 사이트 호스팅
    • 인덱스 문서: 업로드 한 파일
  3. 잘 배포됐는 지 체크

    • 밑에 링크


CloudFront 생성하기

AWS > CloudFront > CloudFront 배포 생성

  1. 원본 도메인 입력
    • 아까 만든 도메인 선택
    • 웹 사이트 엔드포인트 사용 클릭
    • S3 버킷 엔드포인트(static-practice.s3.ap-northeast-2.amazonaws.com)를 사용하지 말고 S3 정적 호스팅 웹 사이트의 엔드포인트(static-practice.s3-website.ap-northeast-2.amazonaws.com)를 사용
  2. HTTP, HTTPS에 대한 정책 선택

    • 기본 캐시 동작 > 뷰어 프로토콜 정책: Redirect HTTP to HTTPS
    • HTTP로 들어오는 거 강제로 HTTPS로 변환
  3. WAF 설정

    • 웹 애플리케이션 방화벽(WAF): 보안 보호 비활성화
  4. 설정

    • 가격 분류: 북미, 유럽, 아시아, 중동 및 아프리카에서 사용

    • 기본값 루트 객체

      • 루트 url을 요청할 때 반환할 객체
      • 여기선 아까 업로드한 파일명
  5. 잘 배포됐는 지 확인

    • 배포 도메인 이름 = CloudFront 주소


도메인 연결하기, HTTPS 적용하기
  1. ACM에서 SSL/TLS 인증서 발급

    AWS > Certificate Manager

    • Cloudfront는 HTTPS를 적용하려면 인증서를 미국 동부(버지니아 북부)에서 발급받아야 함

    • 리전: 버지니아 북부

    • 인증서 요청
      • 도메인 이름은 내가 가지고 있는 도메인 이름 입력
    • Route 53에서 레코드 생성
  2. CloudFront 설정에서 SSL 인증서 추가

    AWS > CloudFront

    • 편집
      • Alternative domain name (CNAMEs) - optional: 내가 인증서 요청한 도메인 이름

      • Custom SSL certificate - optional: 아까 만든 인증서 선택

  3. Route53에서 CloudFront에 도메인 연결

    AWS > Route53 > 호스팅 영역 > 레코드 생성

    • 별칭

      • CloudFront 배포에 대한 별칭 선택

      • 배포 선택

      • 레코드 생성

  4. 잘 접속되는 지, https 적용되는지 체크


비용 나가지 않게 S3, CloudFront 깔끔하게 종료하기
  1. S3 종료

    • 안에 있는 파일 삭제

    • 버킷 삭제

  2. CloudFront 비활성화

  3. CloudFront 삭제