AWS 4일차 (S3, CloudFront, Route 53)

최성락·2024년 5월 20일

AWS

목록 보기
4/4

오늘은 S3(정적 웹사이트 호스팅), CloudFront, Route 53을 복습해보자

이전에 S3를 다뤘었는데 이번에는 정적 웹사이트 호스팅을 해보자

S3 정적 웹사이트 호스팅

일단 기본적으로 버킷을 생성한다.
버킷의 이름은 무조건 고유한 이름으로 만들어야한다!
(URL에 버킷의 이름이 포함되기 때문에)

그리고 버킷을 눌러 속성 맨 아래로 가면
정적 웹 사이트 호스팅 편집이 있다.

여기서 인덱스 문서는 index.html로 적어주고

<html>
    <head>
        <title>Hello, AWS!</title>
    </head>
    <body>
        <h1>Hello, S3!</h1>
    </body>
</html>

이렇게 간단하게 만들어주자.

지금은 버킷 안에 index.txt URL로 접속이 안되는데 버킷의 퍼블릭 엑세스를 차단 해제해야 접속이 가능하다.

버킷-권한 접속해 퍼블릭 액세스 차단을 비활성화로 바꿔준다.
그리고 바로 아래에 버킷 정책이 있는데 편집 클릭

arn 주소 복사 후에 정책 생성기 클릭 후
Type은 S3 Bucket Policy
Principal 은 * (모든 사용자에게 권한 부여)
Action은 Get objects 찾아서 클릭 (객체 가져오기)
ARN은 아까 복사한 arn 붙여넣기 후 뒤에 /*(모든 파일에 권한 부여)

설정 후에 버킷 웹사이트 엔드포인트로 접속하면
웹사이트가 잘 나오는 것을 알 수 있다.

CloudFront

CloudFront?

CDN 서비스이며 Content Delivery Network의 약자이며, 컨텐츠 전송 네트워크라고 부른다.
역할은 말 그대로 콘텐츠를 전세계로 빠르게 전송할 수 있게 해준다.(출처 : https://www.frontoverflow.com/document/2/%EC%B2%98%EC%9D%8C%20%EB%A7%8C%EB%82%9C%20AWS/chapter/27/CloudFront/section/193/CloudFront)

기본 용어는 아래와 같다.

이제 직접 만들어보자!
이전에 만들어둔 S3 버킷을 사용할 거라 버킷 사용 단계는 생략했다.

Origin domain은 이전에 만들어둔 버킷을 선택한다. 그리고 설정된 이름을 원하는 이름으로 수정한다.

방화벽을 활성화하면 과금이 되기 때문에 비활성화를 선택했다.
그리고 아래에 기본값 루트 객체에는
이전에 만들어둔 최상위 경로에 있는 hello.txt 를 입력한다.
이 객체는 CloutFront 배포 URL로 접속할 때 나오는 객체를 의미한다.


이렇게 버킷을 Origin으로 하는 CloudFront 배포를 생성했다.

생성하면 위에 알림창에 정책을 복사하는 버튼이 나오면 복사 후에 정책을 업데이트 하려면 S3 버킷 권한으로 이동합니다 를 클릭한다.
그리고
이렇게 붙여넣은 뒤 Resource 에는 버킷 창에 Arn을 복사하여 넣어주고 뒤에 /* 을 꼭!!!! 붙여준다.
아래에 AWS:SourceArn 에는 배포에 들어가 Arn을 복사해 붙여넣어준다.

이렇게 되면 hello.txt URL로는 접근이 안되고
CloudFront 배포에 들어가 도메인을 복사하여
주소에 입력하면 접속이 된다.

접속 후에 개발자 도구에 들어가 네트워크-Doc(문서)에 들어가 저 파일을 눌러주면 위 사진처럼 나오는데
X-Cache 에 Hit from cloudfrontMiss from cloudfront 가 있다.
말 그대로 Miss는 캐시를 가져오지 못 한 것이고 Hit는 가져온 것이다. 새로고침을 누르다보면 Hit로 변한다!

DNS, Route 53

DNS?

Domain Name System 의 약자이며, 도메인 이름을 IP주소로 바꿔주는 시스템이다.
이해를 돕기 위해 사진을 하나 첨부했다.

이름이 도메인이 되고 전화번호가 IP가 되는 것이다.
이렇게 도메인 이름과 IP주소가 매핑된 것을 레코드 라고 부른다.

Route 53?

Route 53dms Cloud에서 사용하는 DNS 이다.
AWS의 서비스들과 쉽게 연동하여 사용할 수 있는 DNS 라고 보면 된다.

Route 53의 기본 개념

먼저 호스팅 영역이 있다.
영어로 Hosted Zone이라고 하며 레코드의 컨테이너로서 두 가지 유형이 존재한다.
퍼블릭 호스팅 영역은 인터넷에서 트래픽을 라우팅하고자 하는 방법을 지정하는 레코드를 포함하는 것이며,
라이빗 호스팅 영역 은 VPC에서 트래픽을 라우팅하고자 하는 방법을 지정하는 레코드를 포함하는 것이다.

DNS 쿼리 가 있다.
도메인 이름을 IP주소로 변환하는 요청을 말한다.

아래에 Route53의 대표적인 레코드 유형이다.

이제 Route 53을 사용해보자

먼저 호스팅 영역을 생성해준다.
기본값으로 사용했다.

그럼 이렇게 두 개의 레코드가 자동 생성된다.
여기에 레코드 생성 버튼을 눌러 A레코드를 생성해주었다.(IPv4 매핑 레코드)
그리고 CNAME 레코드도 생성해주었다.(별칭 레코드, 현재 레코드의 이름에 대한 DNS 쿼리를 다른 도메인 또는 하위 도메인으로 매핑)

이렇게 두 개의 레코드를 만들어보았고, 호스팅 영역을 삭제해보자. 호스팅 영역을 삭제하려면 NS,SOA 유형레코드를 제외한 나머지 레코드를 삭제해야한다.
그래서 CNAME, A 레코드를 삭제해준 후 호스팅 영역을 삭제해주면 된다!

0개의 댓글