Skip to content

Latest commit

 

History

History
196 lines (158 loc) · 6.04 KB

s3.md

File metadata and controls

196 lines (158 loc) · 6.04 KB

AWS S3

Amazon Simple Storage Service

Table of Contents

Bucket

Reference: docs.aws

버킷 : 객체를 담아두는 통
버킷에 저장할 수 있는 객체는 무제한이다.

  • 버킷 내에 버킷을 만들 수는 없다.

버킷은 세 가지 상태중 하나에 속한다.

  • Unversioned (Default) 버전 관리 비사용 상태
  • Versioning-enabled 버전 관리 사용 상태
  • Versioning-suspended 버전 관리가 일시 중지된 상태

Limit

S3

  • 객체 크기: 최대 5TB
  • 업로드, 복사: 단일 PUT 요청시 최대 5GB

S3 Glacier

  • 개별 아카이브 저장 가능 총량: 최대 40TB

Create Bucket

버킷은 생성한 자의 소유이며 타인에게 양도 불가하다.
버킷을 생성할 때는 두 가지를 선택하게 된다.

  • 버킷의 이름 | Bucket Name

  • 버킷이 속할 리전 | Bucket Region

    create bucket

계정 당 생성 가능한 최대 버킷 수

  • 일반적으로 100개의 버킷 생성 가능.
    • 만약 100개 이상의 버킷을 만들고 싶다면 서비스 한도 증가를 함으로써 추가 가능하다.
    • 한도가 증가 된다면 최대 1,000 버킷까지 사용 가능.
  • 버킷의 개수는 성능면에서 차이를 가져다 주지 않는다.

↑ return to TOC

Naming Bucket

Bucket naming rules

버킷 이름짓기에 관해서는 아래와 같은 규칙이 존재한다.

  • 3-63 자의 이름.
  • alphanumeric 으로 시작하거나 끝나야 한다.
  • 대문자를 사용하지 않는다.
  • 숫자, 점, 하이픈만 사용 가능.
    • 단, Amazon S3 Transfer Acceleration에서 사용되는 버킷일 시 dot(.) 사용 불가
  • IP 주소 형식을 사용하지 않도록 한다. (127.0.0.1)
  • xn--으로 시작할 수 없다.
  • 버킷 이름은 파티션 내에서 유일해야 한다. 모든 Amazon S3 내에서 중복된 이름이 존재하면 안된다.
    • 파티션 == 리전 그룹
      AWS 에서는 3가지 파티션이 존재한다.
      • aws
      • aws-cn
      • aws-us-gov

↑ return to TOC

Object

객체와 관련된 작업은 총 두가지 업로드복사 로 나뉜다.
업로드와, 복사 가능한 최대 사이즈는 5GB 이다. 멀티파트 업로드는 최대 5TB 까지 사용 가능.

Uploading Objects

객체 업로드 : 버킷에 객체 업로드 하기.

Single uploadMultipart upload, 두 가지 업로드 방법이 존재한다. 업로드 하고자 하는 객체 크기가 100MB 이상일 경우 보통 multipart upload 방법을 사용한다.

  • Single Upload: 단일 객체를 한번에(한 파트로) 업로드

  • Multipart Upload: 단일 객체를 여러 파트로 나누어 업로드
    각각의 파트의 크기는 5MB-5GB 정도.

    • 높은 처리량 → 조각 조각 나눠진 객체의 파트는 병렬로 업로드 된다.
    • 빠른 복구 → 조각난 파트가 오류로 인해 업로드에 실패하더라도 크기가 작기에 빠르게 복구된다.
    • Max parts: 한 객체 업로드시 나눠질 수 있는 최대 개수는 10,000 개
    • 권한: Multipart upload 를 진행할 수 있는 권한이 부여되어 있어야 한다.

Copying Objects

객체 복사: 버킷에 저장되어 있는 객체의 복사본 만들기.

S3 객체는 Data, Key, and Metadata 이 세 가지로 구성되어 있다.

Object Key

객체 키는 버킷 내의 객체의 유일성을 보장한다.
이로인해 버킷안에 저장되어 있는 객체를 고유하게 식별할 수 있다.

  • Max Length : 1,024 bytes
  • UTF-8 인코딩을 사용
    • 하지만 모든 문자를 사용 가능한 것은 아니다. (아래 규칙을 참고)

객체 키 명명 규칙

객체 키에 사용 가능한 문자는 아래와 같다.

  • 영숫자
    • 0~9
    • a-z
    • A-Z
  • 특수 문자
    • !
    • -
    • _
    • .
    • *
    • '
    • (
    • )
  • 특별 처리가 필요한 문자

    아래에 해당되는 문자들은 추가 처리```(URL 인코딩 하거나, HEX로 참조하기 등)``를 진행해야 한다.

    • 앰퍼샌드
      ("&")
    • 달러
      ("$")
    • ASCII 문자 범위
      16진수 00~1F(10진수: 0~31)7F(10진수: 127)
    • 'At' 기호
      ("@")
    • 등호
      ("=")
    • 세미콜론
      (";")
    • 콜론
      (":")
    • 더하기
      ("+")
    • 공백
      (" ")
    • 쉼표
      (",")
    • 물음표
      ("?")

사용 금지 문자

  • 사용하지 말아야 하는 문자.
    • 백슬래시
      ("\")
    • 인쇄되지 않는 ASCII 문자
      (128~255 10진수)
    • 캐럿
      ("^")
    • 왼쪽 중괄호
      ("{")
    • 오른쪽 중괄호
      ("}")
    • Percentage
      ("%")
    • backtick
      ("`")
    • 왼쪽 대괄호
      ("[")
    • 오른쪽 대괄호
      ("]")
    • 인용 부호
    • '보다 큼' 기호
      (">")
    • '보다 작은' 기호
      ("<")
    • 물결표
      ("~")
    • '파운드' 문자
      ("#")
    • 세로 막대/파이프
      ("|")

↑ return to TOC