[Cloud] Severless 정적 웹 구축하기

Sora·2022년 5월 2일
0

☁️ [Cloud]

목록 보기
6/6
post-thumbnail

S3와 CloudFront

CloudFront란?

📌 CloudFront는 콘텐츠 전송 네트워크(CDN) 서비스이다.

CloudFront의 역할

📌 사용자의 콘텐츠 요청 -> 가장 가까운 엣지 로케이션 라우팅
if) 캐시 사본 == True:
빠르게 응답하여 사본을 사용자에게 전송

CloudFront의 장점

  • 서버 부하 감소 및 전송 효과적
  • 💵 돈을 아낄 수 있다. (요청 수수료 + CloudFront에서 인터넷으로 전송되는 콘텐츠 만 요금 지불)
  • 정적/동적 콘텐츠의 전송 성능을 높힌다. (월드와이드 네트워크가 아닌 AWS 글로벌 프라이빗 네트워크를 이용하기 때문)

콘텐츠를 S3 버킷에 저장하는 것에 대한 장점

  • S3 버킷이 자동으로 확장 및 축소되기 때문에 스토리지 공간을 계획할 필요가 없다.
  • S3는 Serverless서비스이기 때문에 서버를 관리하거나 패치할 필요없이 콘텐츠를 저장하고 가져오기만 하면 된다.
  • 동적 어플리케이션에 서버가 필요하더라도 서버 크기를 줄일 수 있다.

그림으로 CloudFront 이해하기

기본적인 구조

1. S3만을 이용한 경우

위에 그림은 S3 버킷이 유럽의 위치한 리전에 콘텐츠가 저장되어 있고, 전 세계 사용자가 이 콘텐츠에 액세스하고 있는 모습을 보여준다. 화살표에서 알 수 있 듯 사용자가 콘텐츠를 요청할 때마다 요청은 퍼블릭 인터넷을 통해 버킷으로 전송된다.

이 경우 발생할 수 있는 문제점
1. 시간이 지연되어 일부 사용자 요청이 반송된다.
2. 위에 이유로 인해 오류를 반환할 수 있다.

2. S3와 CloudFront를 함께 이용한 경우

위에 그림은 S3 버킷과 함께 CloudFront를 설정한 그림이다. 해당 경우에는 사용자의 콘텐츠 요청이 지연시간을 최소화하는 가장 가까운 엣지 로케이션으로 라우팅 된다.

초록색 화살표는 CloudFront가 가까운 거리에서 요청한 사용자에게 케싱된 콘텐츠를 제공하는 것을 나타낸다.


실습

1) 콘솔에 로그인한 다음 아래 있는 Launch Stack 버튼을 클릭하여 AWS 계정에서 CloudFormation 스택을 시작한다.

2) CloudFormation 상태가 CREATE_COMPLETE로 바뀌면 출력창에서 S3 버킷 이름과 CloudFront 도메인 이름을 기록한다.
도메인 이름: d1swfysgq1c88q.cloudfront.net

3) S3 콘솔을 열고 이미지 파일을 CloudFormation에서 생성한 S3 버킷에 업로드한다.
이미지 파일 이름 : sora.jpeg

4) 파일 업로드를 하고 2)의 도메인으로 접속하면 위와 같은 에러 메시지가 뜬다.

CloudFormation은 OAI 기능을 설정하기 때문에 버킷에 업로드되는 파일은 S3에서 직접 공개적으로 액세스할 수 없기 때문이다.

해당 도메인으로 접속하여 해결 d1swfysgq1c88q.cloudfront.net/sora.jpeg

☁️ 참고자료

AWS 간단한 CloudFront 배포 시작하기

실전 Amazon S3와 CloudFront로 정적 파일 배포하기

0개의 댓글