[AWS CloudFront] 19. S3와 CloudFront

2020. 4. 9. 08:48AWS

반응형

ㅇ CloudFront?

    > 전 세계에 배치된 Edge Location을 이용하여 효율적인 컨텐츠 배포 구조를 제공하는 서비스

 

ㅇ CDN 서비스 이용시 장점

    > CDN을 사용하지 않을 경우, 서버는 수십, 수백만의 유저에의 요청에 하나씩 응답을 해야 하는데, 이는 엄청난 트래픽과 부하를 유발해 장애 발생확률이 높아짐

     하지만 CDN을 사용함으로써, 유저와 가까운 물리적 위치 및 네트워크에서 요청에 응답해 서버의 트래픽 부하를 줄일 수 있게 됨

 

ㅇ S3 버킷 업로드

    > S3 버킷을 생성하고, CloudFront에서 접근이 가능하도록 html파일을 퍼블릭으로 설정

 

        * CloudFront_Test.html 코드

<html>
    <head> <title>CloudFront</title> </head>
    <body>
       This is CloudFront Test HTML Page!
    </body>
</html>

 

ㅇ CloudFront 생성

    > [CloudFront 서비스] - [Distributions] - [Create Distribution] 선택

 

    > web서버를 이용하는 방식과 실시간 스트리밍에 사용하는 RTMP 방식 제공하므로 Web서버의 [Get Started] 선택

 

    > Origin Setting 설정

        * Origin Domain Name : 오리진의 도메인 이름으로, 박스를 선택하면 사용 가능한 항목 목록 표시됨

        Origin Path: Orgin Path로 입력된 디렉토리 명을 실제 접근 시 생략 가능

            ex) Origin Path가 /dev일 경우, test-bucket-20200403/CloudFront-Test.html 으로 접근 시 CloundFront는test-bucket-20200403/dev/CloudFront-Test.html 파일을 제공

        * Origin ID: 오리진을 구분하는 ID

        Restrict Bucket Access: S3 버킷에 CloudFront만 접근할 수 있도록 설정

        * Origin Access Identity: 오리진에 접근 시 사용할 식별자

        Comment: 새로 식별자를 생성 시 사용할 이름

        * Grant Read Permissions on Bucket: CloudFront가 S3에 접근할 수 있는 권한을 버킷의 Policy에 업데이트 설정

 

    > Default Cache Behavior Settings 설정

        Path Pattern: 모든 파일을 오리진으로부터 가져오게 하는 설정

        * Viewer Protocol Policy: CloudFront로 보여질 프로토콜

        * Allowed HTTP Methods: 허용하는 HTTP 메소드 종류

        Object Caching: 캐시의 파일 유지시간

        Forward Cookies: 오리진의 쿠키 전달 여부 설정

        Forward Query Strings: 오리진으로 쿼리 문자열을 전달할 경우 사용

        Smooth Streaming: Microsoft의 Smooth Streaming을 사용하고 싶을 경우 설정

        Restrict Viewer Access: Signed URL을 사용해 CloudFront의 접근을 제한

 

    > Distribution Settings 설정

        Price Class: 요금과 사용 지역 설정

        Alternate Domain Names: 본인 도메인을 이용해 제작

        SSL Certificate: HTTPS 프로토콜 사용을 위한 인증서 설정

        Default Root Object: 기본적으로 보여줄 파일의 이름

        Loggings: CloudFront의 로그를 S3 버킷에 저장 여부 설정

        * Cookie Logging: 쿠키 로깅 설정

        Distribution State: 생성 후 바로 배포를 할 것인지 아니면 생성만 할 것인지 선택

 

    > "in Progress" Status를 통해 CloudFront Distributions가 생성중임을 확인 가능

 

    > CloudFront Distributions를 사용 가능할 때, "Deployed"로 Status가 변경 됨

 

    > CloudFront Distributions에서 제공한 Domain Name을 주소창에 입력하면 다음과 같이, S3에 올려둔 HTML 파일이 출력됨

 

    > 이 정보를 CloudFront에서 가져온 것인지 크롬의 Response Headers에서 확인 가능

   CloudFront에서 정보를 가져온 것이라면 X-Cache에 "Hit from cloudfront"가, 아닐 경우 "Miss from cloudfront"가 출력됨

        * Response Headers 확인하는 법

            1. 크롬에서 F12를 눌러 개발자 도구 시작

            2. Network 탭으로 이동

            3. F5를 통해 페이지 새로고침 수행

            4. name 탭에서 S3에 등록한 html파일 선택

            5. Headers탭을 통해 헤더정보 확인 가능

            6. Response Headers에서 X-Cache 확인 가능

 

반응형