S3,CloundFront,EC2

Amazon S3란?

아마존 S3 (Simpe Storage Service)는 아마존 웹 서비스에서 제공하는 온라인 스토리지 웹서비스이다. 파일 저장소 및 파일 서버의 역할을 한다. 안정성이 뛰어나고 가용성이 높으며 무제한으로 확장 가능한 데이터 스토리지 인프라를 매우 저렴한 비용으로 제공하는 간단한 스토리지 서비스이다.

S3가 가지고 있는 특징

  • s3는 저장 용량이 무한대이고 파일 저장에 최적화되어있다. 용량을 추가하거나 성능을 높이는 작업이 필요없다.
  • 비용은 EC2와 EBS로 구축하는 것보다 훨씬 저렴하다.
  • S3자체가 매우 성능이 좋은 웹 서버로 되어 있다.
  • 동적 웹페이지와 정적 웹페이지가 섞여있을 때 동적 웹페이지만 EC2에서 서비스하고 정적 웹페이지는 S3를 이용하면 성능도 높이고 비용도 절감된다.
  • S3자체로 정적 웹 서비스가 가능하다
  • S3의 버킷은 무한대의 객체를 저장할 수 있으므로 스토리지의 요구를 미리 추정하여 관리할 필요가 없어 확장/축소에 신경쓰지 않아도 된다.

S3 기본 개념

객체(object)

  • S3에 데이터가 저장되는 기본 단위로 파일과 메타데이터로 이루어져있다. 객체 하나의 크기는 1Byte부터 5TB까지 허용되며 메타데이터는 MIME형식으로 파일 확장자를 통해 자동으로 설정되며 사용자 임의로도 지정가능하다.

버킷(Bucket)

  • S3에서 생성할 수 있는 최상위 디렉토리의 개념으로 이름은 S3리전 중에서 유일해야 한다. 계정 별로 100개까지 가능하며 버킷에 저장할 수 있는 객체 수와 용량은 무제한이다.

표준스토리지

  • S3 서비스 수준 계약으로 객체에 대해 높은 내구성을 보장하며 높은 가용성을 제공한다. 그러나 높은 내구성을 보장해야 하는 만큼 비용이 높으므로 유실되면 안되는 원본 데이터, 민감정보, 개인정보 등의 중요한 데이터를 저장하는 것이 알맞다.

RRS(Reduced Redundancy Storage)

  • 표준 스토리지보다 저렴한 비용으로 데이터를 저장할 수 있다. RRS 옵션은 여러 시설 전반에 다양한 디바이스에 객체를 저장하며 일반 디스크 드라이브의 400배에 달하는 내구성을 제공하나 표준 스토리지만큼 많이 객체를 복제하지는 않으므로 원본을 복제한 데이터나 가공한 데이터의 저장에 알맞다.

Amazon EC2(Elastic Compute Cloud)란?

아마존 EC2는 클라우드에서 안전하고 크기 조정 가능한 컴퓨팅 용량을 제공하는 웹 서비스이다. 아마존의 웹 서비스 중 하나로, 가장 범용적으로 사용되고 있다. EC2는 독립된 컴퓨터 한대를 임대해서 사용할 수 있게 해주는 서비스이다.

EC2 장점

  • 마우스 클릭 몇 번만으로 컴퓨터 한 대를 구성할 수 있다.
  • 원하는 스펙의 가상 서버를 구축하고 스펙을 사용한만큼의 비용만 지불합니다.
  • 스펙을 줄이거나 높이는 것이 가능하며 방법 또한 쉽다.

EC2 리전이란 무엇인가?

그럼 어디에서 컴퓨터를 임대하는 걸까? AWS는 나라(리전)별로 데이터 센터를 가지고 있다. 데이터 센터는 컴퓨터들이 많이 모여있는 공간이라고 생각하면 된다. 사용자는 어느나라 데이터에 있는 컴퓨터를 쓸 것인지 지정한 후, PC를 임대하면 된다.

EC2와 S3의 차이점은 무엇인가?

EC2 instance는 데이터베이스 서버나 웹서버를 포함해 설치할 수 있는 원하는 모든 소프트웨어를 윈도우 또는 Linux로 실행하는 원격 컴퓨터와 같은 반면, S3는 storage 서비스로 대용량 파일을 저장하는데 사용된다.

CloudFront란?

CloundFront는 s3와 함께 자주 사용되는 AWS의 CDN(Content Delivery Network)이다. 데이터의 캐싱을 통해 AWS의 글로벌 인프라를 기반으로 실 사용자와 가장 가까운 서버에서 데이터를 전송해주는 글로벌 서비스이다.
전 세계에 있는 AWS데이터 센터마다 CloudFront의 Edge Server가 배치되어 있고, 사용자가 데이터를 요청할 때, 해당 사용자의 위치와 가장 가까운 Edge Server에서 데이터를 전달한다.

일반적으로 Origin (EC2 또는 S3)의 데이터를 캐싱하여 Edge Server에 캐싱하고, 캐싱된 데이터를 실 사용자에게 반환하는 구조로 사용된다. S3나 EC2에서 데이터를 직접 제공하는 방식에 비해 훨씬 저렴한 비용으로 이용이 가능하다.

S3와 CloundFront

CF는 심플하게 또는 복잡하게 사용 가능한 CDN으로 단순한 구조의 정적 웹사이트 배포에도 활용하지만, 글로벌 서비스 운영에 필수적인 기능이다. 대부분의 경우 S3에 저장되는 파일이 내부에서만 쓰는 문서가 아니라면 S3는 대부분 CloudFront와 함께한다.

S3와 CloudFront를 함께 사용하면 콘텐츠 전달 속도와 관리 편의성은 개발자의 여러 걱정을 크게 덜어주는 중요한 경험이 된다. S3와 CloudFront는 대량 사용하더라도 다양한 방식으로 비용 절감이 가능하고 매달 50GB의 데이터 전송 이용료는 무료로 사용가능하다.

참고


Written by@
기록하는 것을 좋아하는 프론트엔드 개발자👩🏻‍💻

GitHubLinkedIn