본문으로 건너뛰기

Storage-Classes

1 S3 Storage Classes

  • 레퍼런스
  • Amazon S3에서는 다양한 스토리지 클래스를 제공하여 데이터 스토리지 비용을 절감하고, 데이터 액세스 패턴에 따라 데이터를 최적화하며, 데이터 보관 요구 사항을 충족시킬 수 있습니다.
  • 각 스토리지 클래스는 특정 사용 사례에 맞게 설계되었으며, 필요한 경우 자동으로 전환할 수 있습니다.

S3 내구성과 가용성

  • 내구성
    • 여러 가용 영역(AZ)에서 객체의 높은 내구성 (99.999999999%, 즉 11 9’s)을 보장합니다.
    • Amazon S3에 10,000,000개의 객체를 저장하면 평균적으로 10,000년마다 단일 객체를 잃을 수 있습니다.
    • 모든 스토리지 클래스에 동일하게 적용됩니다.
  • 가용성
    • 서비스가 얼마나 쉽게 접근 가능한지를 측정합니다.
    • 스토리지 클래스에 따라 다릅니다.
    • 예: S3 표준은 99.99% 가용성을 가지며, 이는 연간 53분 동안 사용 불가능한 시간을 의미합니다.

1.1 S3 Standard

  • 기본 저장 클래스로, 자주 액세스되는 데이터에 대한 일반적인 사용 사례에 적합합니다.
  • 이 클래스에서는 다른 모든 저장 클래스로 데이터를 전환할 수 있습니다.
  • 자주 접근하지 않는 파일을 저장하는 비용이 상대적으로 높습니다.
  • 99.99%의 가용성을 보장합니다.

1.2 S3 Standard-IA (Infrequent Access)

  • 자주 액세스되지 않는 데이터를 대상으로 합니다.
  • 드물게 접근되지만 빠른 액세스가 필요한 데이터에 적합합니
  • 이 클래스에서는 S3 Intelligent-Tiering, S3 One Zone-IA, 그리고 S3 Glacier의 여러 버전으로 데이터를 전환할 수 있습니다.
  • 다.
  • 비용은 S3 Standard보다 낮지만, 데이터 검색에 대한 비용이 발생합니다.
  • 접근 패턴이 예측할 수 없는 상황에서는 적합하지 않습니다.
  • 99.9%의 가용성을 보장합니다.
  • 용도: 재해 복구, 백업

1.3 S3 Intelligent-Tiering

  • S3 Intelligent-Tiering 클래스는 자주 액세스되는 데이터와 자주 액세스되지 않는 데이터 모두를 대상으로 합니다.
  • S3 Intelligent-Tiering은 접근 패턴을 예측할 수 없는 파일에 적합합니다.
  • 접근 빈도에 기반하여 데이터를 자동으로 여러 계층(Tiers)으로 이동시켜 스토리지 비용을 절감해줍니다.
  • S3 Intelligent-Tiering 스토리지 클래스는 3개의 액세스 계층에 객체를 자동으로 저장합니다:
    • Frequent Access 계층: 자주 접근되는 데이터는 이 계층에 저장됩니다.
    • Infrequent Access 계층: 30일 연속으로 접근하지 않은 데이터는 이 계층으로 이동됩니다.
    • Archive Instant Access 계층: 90일 연속으로 접근하지 않은 데이터는 이 계층으로 이동됩니다.
  • 아카이빙 기능을 활성화하여 추가 계층을 사용할 수 있습니다:
    • Archive Access 계층: 90일 연속으로 접근하지 않은 데이터를 이 계층으로 이동합니다.
    • Deep Archive Access 계층: 180일 연속으로 접근하지 않은 데이터를 이 계층으로 이동합니다.
  • 이러한 계층 전환은 성능에 영향을 주지 않으며, 운영 오버헤드를 최소화합니다.
  • 이 클래스에서는 S3 One Zone-IA, 그리고 S3 Glacier의 여러 버전으로 데이터를 전환할 수 있습니다.

1.4 S3 One Zone-IA

  • 이 클래스는 단일 가용 영역에 저장되는 자주 액세스되지 않는 데이터를 대상으로 합니다.
  • 이 클래스에서는 S3 Glacier의 Flexible Retrieval 또는 Deep Archive로 데이터를 전환할 수 있습니다.
  • 데이터를 단일 가용 영역에만 저장하므로 가용 영역 손실에 대한 내구성을 요구하는 시나리오에는 적합하지 않습니다.
  • 99.5%의 가용성을 보장합니다.
  • 용도: 온프레미스 데이터의 2차 백업 사본 또는 다시 생성할 수 있는 데이터 저장

1.5 S3 Glacier Instant Retrieval

  • 이 저장 클래스는 보관 데이터에 사용되며, S3 Glacier Flexible Retrieval 또는 Deep Archive로 전환할 수 있습니다.
  • S3 Glacier Instant Retrieval은 밀리초 단위의 접근 시간을 제공하여 즉시 접근성이 있습니다.
    • 주로 분기별로 한 번 정도 접근이 필요한 데이터에 적합합니다.
  • S3 Standard-IA보다 저장 비용이 낮지만, 데이터 접근 비용은 더 높습니다.
  • 최소 저장 기간은 90일입니다.
  • S3 Standard와 비교
    • S3 Standard보다 저장 비용이 저렴하지만, 데이터 조회 비용이 더 높음
    • 자주 접근해야 하는 데이터를 S3 Glacier Instant Retrieval로 저장하면, 조회 비용이 많이 발생하여 전체 비용이 증가할 수 있습니다.
    • 반면, S3 Standard는 자주 접근하는 데이터를 위한 최적의 선택으로, 높은 저장 비용을 제공하지만 조회 비용이 낮아 전체 비용을 절감할 수 있습니다.
    • 따라서, 드물게 접근하는 데이터는 S3 Glacier Instant Retrieval을, 자주 접근하는 데이터는 S3 Standard를 사용하는 것이 비용 효율적입니다.

1.6 S3 Glacier Flexible Retrieval

  • 아카이브 데이터를 위한 클래스로, Deep Archive로 전환할 수 있습니다.
  • Glacier Flexible Retrieval은 몇 분에서 몇 시간 내에 데이터를 복구할 수 있어 즉시 접근성은 떨어집니다.
    • 주로 반기별로 1-2회 접근이 필요한 데이터에 적합합니다.
  • 복구 시간
    • 아래와 같은 복구 옵션을 제공합니다:
      • Expedited(1-5분)
      • Standard(3-5시간)
      • Bulk(5-12시간)
  • 최소 저장 기간은 90일입니다.

1.7 S3 Glacier Deep Archive

  • 가장 오래 보관되는 데이터를 위한 최저 비용의 저장 클래스입니다.
    • 데이터 복구 시간이 긴 대신, 장기 보관을 위한 비용이 매우 저렴합니다.
  • 다른 모든 저장 클래스에서 이 클래스로 전환할 수 있습니다.
  • S3 Glacier Deep Archive는 데이터 복구 시간이 12시간에서 48시간 정도 걸리므로 즉시 접근성이 매우 낮습니다.
    • 주로 연간 한 번 이하로 접근이 필요한 데이터에 적합합니다.
  • 복구 시간
    • 아래와 같은 복구 옵션을 제공합니다:
      • Standard(12시간)
      • Bulk(48시간)
  • 최소 저장 기간은 180일입니다.

2 Transitioning Objects

  • Amazon S3에서 파일 라이프사이클 관리를 사용하면 데이터 스토리지 비용을 절감하고, 데이터 액세스 패턴에 따라 데이터를 최적화하며, 데이터 보관 요구 사항을 충족시킬 수 있습니다.
  • 특정 기간이 지난 후에 데이터를 더 비용 효율적인 스토리지 클래스로 자동 전환할 수 있습니다.
  • 예를 들어, 자주 액세스되는 데이터는 S3 Standard에 저장할 수 있으며, 접근 빈도가 줄어들면 자동으로 S3 Standard-IA(Infrequent Access) 또는 S3 Intelligent-Tiering으로 이동될 수 있습니다.
  • 더 이상 자주 액세스되지 않는 데이터는 S3 Glacier 또는 S3 Glacier Deep Archive와 같은 장기 보관 솔루션으로 전환될 수 있습니다.
  • 이러한 전환은 Amazon S3의 라이프사이클 정책을 통해 설정되며, 데이터의 보관 기간, 액세스 빈도 및 비용 요구 사항에 따라 사용자 지정할 수 있습니다.

3 Amazon S3 Glacier

  • Amazon S3 Glacier는 데이터 아카이빙과 장기 백업을 위한 안전하고 내구성 있는 저장소 서비스입니다.

3.1 Amazon S3 Glacier Operations

3.1.1 Vault Operations

  • Vault는 Glacier에서 아카이브를 저장하는 컨테이너입니다.
  • Vault와 관련된 주요 작업은 다음과 같습니다:
  • 생성 및 삭제:
    • Vault를 생성하고 삭제할 수 있습니다.
    • 단, Vault 삭제는 해당 Vault 내에 아카이브가 없을 때만 가능합니다.
  • 메타데이터 조회:
    • Vault의 생성 날짜, 아카이브 수, 모든 아카이브의 총 크기 등의 정보를 조회할 수 있습니다.
  • 인벤토리 다운로드:
    • Vault 내의 아카이브 목록을 다운로드할 수 있습니다.
    • 이 목록에는 각 아카이브의 ID, 생성 날짜, 크기 등의 정보가 포함됩니다.

3.1.2 Glacier Operations

  • Glacier에서 아카이브와 관련된 주요 작업은 다음과 같습니다:
  • 업로드:
    • 단일 작업으로 아카이브를 업로드하거나, 대용량 아카이브의 경우 멀티파트 업로드를 사용할 수 있습니다.
  • 다운로드:
    • 아카이브 다운로드는 두 단계로 이루어집니다:
      1. 먼저 아카이브에 대한 검색 작업을 시작합니다.
      2. Glacier가 다운로드를 위해 데이터를 준비하면, 사용자는 제한된 시간 내에 스테이징 서버에서 데이터를 다운로드할 수 있습니다.
    • 선택적으로 아카이브의 특정 범위나 일부 바이트만 검색하도록 지정할 수 있습니다.
  • 삭제:
    • Glacier REST API 또는 AWS SDK를 사용하여 아카이브 ID를 지정하여 아카이브를 삭제할 수 있습니다.
  • 복원 링크:
    • 복원된 데이터에 대한 접근 링크는 만료 날짜가 있습니다.

3.1.3 검색 옵션

  • Glacier는 데이터 검색에 대해 다음과 같은 옵션을 제공합니다
  • Expedited (1-5분):
    • 가장 빠른 검색 옵션입니다.
    • 비용: GB당 $0.03, 1,000 요청당 $10
  • Standard (3-5시간):
    • 일반적인 검색 옵션입니다.
    • 비용: GB당 $0.01, 1,000 요청당 $0.03
  • Bulk (5-12시간):
    • 가장 경제적인 검색 옵션입니다.
    • 비용: GB당 $0.0025, 1,000 요청당 $0.025

3.2 S3 Glacier Vault Policies & Vault Lock

  • S3 Glacier는 Vault에 대한 액세스 제어 및 규정 준수를 위해 Vault Policies와 Vault Lock 기능을 제공합니다.

3.2.1 Vault Policies

  • 각 Vault는 다음과 같은 정책을 가집니다:
    • 하나의 Vault Access Policy
    • 하나의 Vault Lock Policy
  • Vault Policies는 JSON 형식으로 작성됩니다.

3.2.2 Vault Access Policy

  • S3 버킷 정책과 유사하게 작동합니다.
  • 사용자나 계정의 권한을 제한하는 데 사용됩니다.

3.2.3 Vault Lock Policy

  • 규제 및 규정 준수 요구 사항을 충족하기 위해 사용되는 정책입니다.
  • Vault Lock Policy의 특징:
    • 정책이 불변성을 가집니다. 즉, 한 번 설정되면 변경할 수 없습니다.
    • 이러한 특성 때문에 'LOCK'이라고 불립니다
  • Vault Lock Policy의 예시:
    • 예시 1: 1년 미만의 아카이브 삭제 금지
    • 예시 2: WORM(Write Once Read Many) 정책 구현

3.3 Glacier - Restore Operations를 위한 알림

  • Glacier는 아카이브 복원 작업에 대한 알림 기능을 제공합니다.

3.3.1 Vault Notification Configuration

  • Vault에 대한 알림을 구성하여 작업 완료 시 SNS(Simple Notification Service)로 메시지를 보낼 수 있습니다.
  • 선택적으로 작업 시작 시 SNS 토픽을 지정할 수 있습니다.

3.3.2 S3 Event Notifications

  • S3는 S3 Glacier 스토리지 클래스로 아카이브된 객체의 복원을 지원합니다.
  • 다음과 같은 이벤트에 대한 알림을 설정할 수 있습니다:
    • s3:ObjectRestore:Post: 객체 복원이 시작되었을 때 알림
    • s3:ObjectRestore:Completed: 객체 복원이 완료되었을 때 알림
  • [[EventNotifications]] 참고