ABOUT ME

쉬운거 하나없다

Today
Yesterday
Total
  • [AWS] CloudFront 실습
    AWS 2024. 2. 13. 23:57

    S3 버킷 새로운 버킷 만들기

    AWS 리전 : 현재 있는 지역에서 조금 멀리 떨어져 있는 곳으로 선택

    eg. 미국 동부 오하이오 혹은 서부 오레곤 지역

    버킷 이름 : awslearner-cloudfront-practice

    객체 소유권 : ACL 활성화됨 체크

    객체 소유권 : 버킷 소유자 선호

     

    이 버킷의 퍼블릭 액세스 차단 설정 : 

    모든 퍼블릭 액세스 차단 : 체크 해제

    그 이외 : default

     

     

    버킷 만들기 click

     

     

     

     


    버킷에 사진 업로드하기

     

    사진을 올리는 이유는 다른 지역에 있는 버킷에 들어있는 사진을 여는 과정을 확인해보기 위해서.

    예를들면 사는 곳은 한국인데 버킷지역이 미국으로 되어 있다면?

    권한 : 

    ACL(액세스 제어 목록)

    미리 정의된 ACL : 

    퍼블릭 읽기 액세스 권한 부여 선택

    ⭢ 버킷 레벨뿐만 아니라 오브젝트 레벨에서도 Public 권한이 생기는 것 (바람직한 방법 X 보안이슈)

    실제 프로덕션에서는 이 파일을 업로드 및 삭제할 수 있는 권한을 지닌 사람, 파일 읽기만 가능한 사람. 이런식으로 사용자와 그룹을 따로 나눠서 관리해야하는 것

     

     

     

     

     

    업로드 Click

     

     

     

     

    객체 URL click

     

     

    이미지가 로딩되는 과정에서 약간의 버퍼링

    ⮕ 버킷의 리젼과 살고있는 지역이랑 가깝다면 속도는 빨랐을 것이다. 

    지역이 달라도 업로드, 다운로드 속도를 향상시킬수있는 방법은? Clouldfront CDN


     

    CloudFront 대시보드로 들어가준다

     

    새로운 CloudFront 배포 생성 click

    여기서 배포 : 새로운 분산 네트워크를 하나 만든다는 뜻

     

    Cloudfront 배포 생성

     

    원본

    Origin domain : S3 버킷 뿐만아니라 ELB 다양한 오리진을 선택할 수 있다.

    아까 만들어준 S3 버킷을 찾아서 선택해준다. ⭢ 그러면 자동으로 이름이 입력이 된다.

    Origin path - optional : 선택사항. 복잡한 폴더 구조로 이루어져있는 버킷 안에서 특정 폴더만 선택해서 사용하고 싶을 때 정의

     

    공개 : 제한을 두지 않고 아무나 네트워크에 접근 권한이 생기게 된다.

    버킷 또한 퍼블락 액세스가 차단이 되어있어야한다. 보안적인 측면에서 바람직 X 옵션

    원본 액세스 제어 설정(권장) : 버킷 안에 있는 콘텐츠는 클라우드 프론트를 통해서만 접근 가능

    Legacy access identities : OAI라고 불리는 원본 액세스 id를 사용해서 버킷에 접근한다

    OAI? 클라우드 프론트에 존재하는 가상 유저. 컨텐츠 접근 권한을 가지고 있다.

    새 OAI 생성 버튼을 누르게 되면, 이미 OAI 이름이 정의가 되어서 나온다.

    버킷 정책 : 읽기 권한을 사용자에게 부여할지 안할지에 대한 권한을 묻는 것

    예, 버킷 정책 업데이트 선택

    오리진으로 보내는 요청에 사용자 지정 헤드를 추가할 때 필요하다. 필요없음으로 PASS

    Enable Origin Shield : 원본의 부하를 줄이고 가형성을 보호하는데 도움이 추가되는 캐싱 계층이라 설명이 되어있음.

    캐시 적정률 샹상을 통해서 더 효울적인 콘텐츠 로딩을 위해 사용되어 질 수 있다. 그렇지만 사용시 추가 요금 발생 default는 아니오

    기본 캐시 동작

    경로 패턴 : 사용자가 변경 불가

    기본값(*) : 여기서 *는 정규 표현식 값중 하나. 모든 것을 의미

    자동으로 객체 압축 : 컨텐츠를 오리진으로 보낼 때 압축해서 보낼지 아닐지에 대한 여부 

    HTTP 헤더중 하나인 Accept-Encoding 헤더에 지정된 대로 뷰어가 지원하는 경우에만 파일을 압축합니다.

    뷰어

    뷰어 프로토콜 정책 : 

    HTTP란? HyperText Transfer Protocol의 약자

    HTTPS의 S는 Secure의 약자. 안전한. HTTP보다 보안적인 측면에서 뛰어나다.

    Redirect HTTP to HTTPS 선택

    요청이 HTTP로 올지 HTTPS로올지 모르며 두 종류의 요청이 오더라도 모두 HTTPS로 규결시킬 수 있는 방법인 두 번째 옵션을 사용하자는 것

    첫번째 옵션은 HTTP를 허용하고 있고

    세번째 옵션은 HTTP를 거부하고 있다.

     

     

    허용된 HTTP 방법 :

    API 요청을 할 때 발생할 수 있는 GET HEAD와 같은 상활 중 무엇을 허용할지를 묻는 것

    디폴트로 선택된 GET, HEAD 선택

     

    뷰어 액세스 제한 : No 선택

    Yes할 경우 클라우드 프론트에 서명된 URL 또는 서명된 쿠키를 사용해야함

    이는 EC2 인스턴스에 접속할 때 썻던 PEM 파일과 비슷한 개념. 액세스 권한을 부여받은 사용자만 콘텐츠에 접근할 있게 하는 것.

    캐시 키 및 원본 요청

    AWS에서는 캐시 정책과 오리진 요청 정책 사용을 권장하고 있지만, Legacy cache 사용할 수도 있다.

    본 실습에서는 권장하고 있는 첫번째 옵션 선택

     

     

    캐시 정책 : 현재 캐시 정책에 대해 자세히 알고 싶다면 정책 보기 클릭

    Managed-CachingOptimized에 대한 세부 정보를 볼 수 있다.

    최소 TTL(초)은 1초

    최대 TTL(초)는 31536000 (365일 1년)

    기본 TTL(초)은 86400 (24시간)

     

    압축방식은 Gzip 또는 Brotli를 지원하고 있다.

     

    함수 연결 - 선택 사항

    클라우드 프론트를 사용할 때 일어날 수 있는 다양한 상황에서 클라우드 프론트 함수 및 람다 엣지 이 둘 중 하나를 사용할 수 있다.

    개발자가 구현한 코드에 근거하여 이벤트가 발생할 경우 이 함수를 실행하라는 것

    함수에 ARN을 넣고 함수를 사용할 수 있다.

     

    웹 애플리케이션 방화벽(WAF)

    설정

    가격 분류 : 이옵션에 따라 엣지 로케이션이 얼마나 많이 전 세계에 생성될지 결정된다.

    엣지 로케이션이 많아질수록 속도는 비약적으로 향상될 것. 단점 :  추가 비용 발생

    전 세계 사용자들을 위해서라면 첫 번째 옵션을 사용하는 것이 맞으나 실습이므로 최선의 비용으로 클라우드 프론트를 구축할 것이므로 두번째 혹은 세번째 옵션을 사용할 것 ⭢ 본실습 두번째 옵션 선택

    대체 도메인 이름(CNAME) - 선택 사항 : 만약 도메닌 주소를 이미 구매했다면 여기서 사용할 수 있다.

    클라우드 프론트를 구축할 때 필요한 것은 아니지만 도메인 주소를 제공하지 않으면 사용자를 위해 클라우드 프론트는 이밎 도메인 주소를 생성해준다.

    사용자 정의 SSL 인증서 - 선택 사항 : 이건 버지니아 지역에서 생성한 것이어야만한다.

    SSL 인증서는 버지니아 지역에서만 생성 가능.

    인증서 요청 버튼을 누르면 새창이 뜬다. AWS로부터 Public SSL 인증서를 생성할 수 있다.

    인증서를 사용하는 이유 중 하나는 HTTP 요청을 HTTPS로 리다이렉트 할 때 사용되어진다. 우린 인증서 없이 진행할 수 있다.

    리전이 버지니아 북부로 바뀐는 것을 확인할 수 있다.

    지원되는 HTTP 버전 :

    기존 버전인 1.0과 1.1이 포함되어 2를 사용할지 아니면 최근에 추가된 3을 사용할지를 선택

    빠른 네트워크 처리 및 안정적인 네트워크 연결을 위해 가장 최신 버전을 사용하는 것을 권장

    따라서 3 선택

     

     

    기본값 루트 객체 - 선택 사항 : PASS

    표준 로깅 : PASS

     

    IPv6 : zurl

    IPv에 비해서 더욱 다양한 IP 주소를 포함한다. 그만큼 복잡도는 ⭡⭡⭡

     

     

    배포 생성 click

    배포 도메인 이름 : 클라우드 프런트에서 직접 생성된 URL

     

    원본

    이는 콘텐츠가 들어있는 S3 버킷과 동일

     

    원본 액세스 Id도 있음

    경로 패턴 : 기본값으로 되어있는 데 이는 앞서 경로값을 정의 하지 않았기 때문에

    모든 요청을 HTTPS로 바꿔주는 옵션을 선택했지 때문에 이렇게 보임

    캐시 정책 이름 : Managed Chaching Optimized를 선택했기 때문에 이렇게 보임

    배포 도메인 이름 URL을 복사해서 새탭으로 열어보자.

    맨앞은 HTTP로 바꿔서. 맨끝에는 파일명을 넣어준다.

    처음 벅속시 버퍼링이 생길 수 있으나 재차 방문할 경우 가장 가까운 엣지 로케이션에서 콘텐츠를 가져오기 때문에 속도가 향상될 것이다.

    접속시 http로 접속을 했는데 https로 리다이렉트 된것도 확인할 수있었다.

    'AWS' 카테고리의 다른 글

    [AWS] DynamoDB - Index  (0) 2024.02.14
    [AWS] DynamoDB  (0) 2024.02.14
    [AWS] CloudFront  (0) 2024.02.13
    [AWS] Lambda 실습2 (Lambda 함수 실행 / cloudwatch)  (1) 2024.02.13
    [AWS] Lambda 실습 (Lambda 함수 생성, test)  (1) 2024.02.13
Designed by Tistory.