[Frontend 배포하기] s3란?

NinjaJuunzzi·2021년 6월 16일
0

배포

목록 보기
2/2

s3의 구성원

버킷

버킷은 Amazon S3에 저장된 객체에 대한 컨테이너입니다. 모든 객체는 어떤 버킷에 포함됩니다.

예를 들어 photos/puppy.jpg로 명명된 객체는 미국 서부(오레곤) 리전의 awsexamplebucket1 버킷에 저장되며 URL https://awsexamplebucket1.s3.us-west-2.amazonaws.com/photos/puppy.jpg를 사용하여 주소를 지정할 수 있습니다.

버킷의 용도

  • AWS S3의 네임스페이스를 최상위 수준으로 구성
  • 스토리지 및 데이터 전송 요금을 담당하는 계정 식별
  • 액세스 제어에 사용
  • 사용량 보고를 위한 집계 단위

객체

객체는 Amazon S3에 저장되는 기본 개체입니다. 객체는 객체 데이터와 메타데이터로 구성됩니다.

데이터 느낌

버킷 내 객체의 고유한 식별자를 말한다. 버킷 내 모든 객체는 정확히 하나의 키를 갖는다.(private)
Amazon S3 내 모든 객체는 웹 서비스 엔드포인트, 버킷 이름, 키, 그리고 선택 사항인 버전의 조합을 통해 고유하게 주소를 지정할 수 있습니다.

지역(Regions)

사용자가 만드는 버킷을 저장할 지리적 AWS 리전을 선택한다. 특정 리전에 저장된 객체는 사용자가 명시적으로 객체를 다른 리전으로 전송하지 않는 한 해당 리전을 벗어나지 않습니다.

계정에 활성화된 AWS 리전에서만 Amazon S3에 액세스하고 해당 기능을 사용할 수 있습니다.

데이터 일관성

  • 단일 키에 대한 업데이트는 원자성(되거나 안되거나 둘 중 하나)

    한 스레드에서 기존 키에 PUT을 수행하고 두 번째 스레드에서 동일한 키에 GET을 동시에 수행하면, 이전 데이터 또는 새 데이터는 얻지만 부분적 데이터나 손상된 데이터는 얻지 못합니다.

  • aws S3에서는 aws 데이터 센터 내의 여러 서버로 데이터를 복제함으로써 고가용성을 구현한다.

    PUT 요청이 성공하면 데이터가 안전하게 저장됩니다. 성공적인 PUT 응답을 받은 후 시작된 모든 읽기(GET 또는 LIST)는 PUT에 의해 쓰여진 데이터를 반환합니다.

다음은 프로세스를 통한 고가용성의 예시이다.

  1. 프로세스가 Amazon S3로 새 객체를 쓰고 해당 버킷 내에 바로 키를 나열합니다.

  2. 새 객체가 목록에 나타납니다.

  3. 프로세스가 기존 객체를 대체하고 바로 읽기를 시도합니다.

  4. Amazon S3가 새 데이터를 반환합니다.

  5. 프로세스가 기존 객체를 삭제하고 바로 읽기를 시도합니다.

  6. 객체가 삭제되었으므로 Amazon S3는 데이터를 반환하지 않습니다.

  7. 프로세스가 기존 객체를 삭제하고 해당 버킷 내에 바로 키를 나열합니다.

  8. 객체가 목록에 나타나지 않습니다.

동시 어플리케이션

일관적임을 다음 사진을 통해 알 수 있다.

Reference

profile
Frontend Ninja

0개의 댓글