AWS S3, CloudFront

Nine·2022년 9월 14일
0
post-thumbnail

🤔 왜 공부하나요? S3가 궁금해!

달록 팀에서는

프론트엔드 배포를 AWS EC2 인스턴스를 생성하고 Nginx를 설치해서 진행했습니다.

다양한 클라우딩 서비스들이 있지만 백엔드 크루들과의 통일성을 위해서 EC2를 개설하기로 했습니다.

Github PR -> Merge -> Github Actions -> webhook -> jenkins -> nginx로 이어지는 CI/CD, 배포 과정이 깔끔하게 잘 정리되었기 때문이죠!

하지만 개인적으로는 S3와 CloudFront를 이용하는 것이 설정도 편하고 설치할 것도 없기 때문에 더 좋을 것 같다는 생각이 들긴했습니다. 팀적인 선택은 EC2였지만 저는 S3가 궁금했어요.


AWS S3란?

Simple Storage Service, 웹 호스팅 서비스가 아니라 "저장소" 서비스입니다.

  • 그냥 파일 저장해주는 저장소예요!

따라서
1. 단순히 파일을 저장하거나
2. 다른 AWS 서비스의 로그를 저장하는 등의 기능을 담당합니다.
3. 하지만 웹 호스팅도 가능합니다.

장점😀

  1. 데이터 저장 용량이 무한이예요.
  2. 데이터 다운로드가 가능해요.
  3. 권한이 있는 사람만 접근이 가능해요. (보안 Good🔒)
  4. 표준 inferface를 사용해요. (REST와 SOAP Interface를 사용)

✋ 잠깐, REST와 SOAP이란?

  • 둘 다 온라인 데이터 전송 방식이예요.
    • REST는 프로토콜은 아니지만 많이 통용되고 있어요.
    • SOAP는 프로토콜이라 복잡성과 오버헤드가 발생하지만 프로토콜의 여러 장점이 있어요.

AWS Cloudfront란?

CDN의 일종으로 HTML,CSS,JS,이미지 파일 등의 정적/동적 웹 컨텐츠를 사용자에게 더 빠르게 배포할 수 있도록 지원하는 서비스입니다.

✋ 잠깐, CDN이란?

  • Content Delivery Netwrok / Content Distribution Network
  • 콘텐츠 전송 네트워크
  • 여러 노드를 가진 네트워크에 데이터를 저장해 제공하는 시스템입니다.

CDN의 장점😅

  1. 빠른 데이터를 제공합니다.
  2. 서버의 트래픽 부하 및 비용을 줄여요.

👀 기업의 예를 들어볼까요?

넷플릭스는 전세계적으로 실시간 동영상 스트리밍 서비스를 제공하죠.

넷플릭스는 Cloudfront같은 CDN 서비스를 통해 사용자와 물리적으로 가까운 곳에 위치한 Cache Server를 구축했습니다.

사용자와 S3에서 호스팅하는 페이지 중간에서 사용자에게 빠르게 페이지를 응답할 수 있도록 사용자와 지리적으로 가까운 Cache Server에 페이지를 캐싱을 했어요.

또한 보안 측면에서도 이점이 있다고 해요.

CloudFront는 지리적 제한, 서명된 URL, 서명된 쿠키 등 액세스 제한을 추가할 수 있는데요, 이를 활용하여 유료 회원에게만 어떤 컨텐츠를 제공한다거나 특정 지역의 사람들에게만 제공할 수 있는 컨텐츠 등 다양한 작업을 할 수 있겠죠.

요약하자면

처음에는 캐싱이 되어있지 않은 상태입니다. 그러니 [사용자 <-> Cloudfront <-> S3] 순서로 요청이 되겠죠!

하지만 Cloudfront의 캐싱 이후에는 S3까지 요청이 가지 않고 [사용자 <-> Cloudfront] 사이에서 응답과 요청이 처리되게 됩니다!
게다가 Cloudfront는 사용자와 물리적으로 가까운 위치한 캐시 서버라 더욱 빠른 것이죠.

참고자료

https://aws.amazon.com/ko/blogs/korea/amazon-s3-amazon-cloudfront-a-match-made-in-the-cloud/

profile
함께 웃어야 행복한 개발자 장호영입니다😃

0개의 댓글