본문 바로가기

AWS/S3

[AWS/S3] AWS S3의 기능

스토리지 클래스(Storage class), 버킷(Bucket)

S3는 다양한 스토리지 클래스(Storage class)를 제공합니다. 사용자는 자신의 서비스 운용 환경에 따라서 적절한 스토리지 클래스를 선택하여 사용할 수 있습니다(아마존에서는 RRS 대신 비용 대비 성능이 좋은 S3 Standard 사용을 권장하고 있습니다).

S3에서는 하나의 스토리지 클래스를 선택하며 만들어진 컨테이너를 스토리지 또는 버킷(Bucket)이라고 부릅니다. 버킷에 저장되는 파일 등의 데이터를 다소 추상적인 용어로 객체(Object)라고 부릅니다.

스토리지 클래스 액세스 빈도 요금 속도
S3 Standard 높음 높음 빠름
RRS(Reduced Redundancy Storage)
높음 높음 빠름
S3 Standard-IA 중간 중간 중간
S3 One Zone-IA 중간 중간 중간
S3 Glacier 낮음 낮음 느림
S3 Galcier Deep Archive 낮음 낮음 느림

액세스 패턴이 변경되거나, 또는 예측하기 어려운 데이터는 S3 Intelligent-Tiering에 저장할 수 있습니다. S3 Intelligent-Tiering에서는 데이터에 대한 엑세스 패턴이 변경될 때 다른 액세스 계층에 속한 스토리지 클래스로 자동 이동합니다. 이 기능을 사용하면 스토리지 비용을 액세스 패턴에 맞춰 최적화 할 수 있습니다.

스토리지 관리

S3는 스토리지 내 저장 객체를 관리하거나, 또는 스토리지 간 객체를 복제, 이동 시키는 등의 관리 작업을 지원합니다.

  • 수명 주기
    객체의 수명을 관리하여 수명을 다한 객체를 만료 또는 다른 스토리지 클래스로 전환 할 수 있습니다.
  • 객체 잠금
    고정된 시간 또는 무기한으로 객체의 수정 또는 삭제를 방지 할 수 있습니다.
  • 복제
    객체, 객체의 메타데이터, 객체의 태그를 하나 이상의 다른 버킷(스토리지)에 복제합니다. 대상 버킷은 소스와 동일한 리전에 속하거나, 다른 리전에 속할 수 있습니다.
  • 배치 작업(Batch Operations)
    간단한 요청만으로 객체를 대규모로 관리, 복사, 복원 또는 AWS Lambda 함수 호출 등의 작업을 수행 할 수 있습니다.

스토리지 액세스 관리

S3는 버킷과 객체에 대한 엑세스 감시 및 관리 기능을 제공하며, 기본적인 보안 수준은 프라이빗(Private)입니다. 이는 버킷과 객체를 생성한 리소스에서만 액세스 할 수 있음을 의미합니다.

  • 퍼블릭 액세스 차단
    버킷과 객체에 대한 퍼블릭(Public) 액세스를 차단합니다. 이 설정은 계정과 버킷 수준에서 디폴트로 동작합니다.
  • IAM(Identity and Access Management)
    AWS 계정용 IAM 사용자를 생성하여 S3 리소스에 대한 액세스를 관리합니다. IAM 사용자와 사용자 그룹의 S3 버킷에 대한 엑세스 유형을 제어 할 수 있습니다.
  • 버킷 정책
    IAM 기반 정책 언어를 사용하여 버킷과 객체에 대한 리소스 권한을 구성합니다.
  • 엑세스 제어 목록(ACL, Access Control List)
    인증된 사용자에게 버킷 또는 객체에 대한 읽기/쓰기 권한을 부여합니다. 엑세스 관리를 위해서 ACL 보다는 S3 리소스 기반 정책(버킷 정책 또는 엑세스 포인트 정책)과 IAM 정책을 사용하는 것을 권장합니다. ACL은 리소스 기반 정책과 IAM 보다 먼저 적용되는 엑세스 제어 메커니즘입니다.
  • Access Analyer for S3
    버킷 액세스 정책을 평가하고 모니터링하여 S3 리소스에 대한 의도된 액세스만 제공하고 있는지 검사합니다.

스토리지 로깅 및 모니터링

S3는 S3 리소스가 사용되는 방식을 모니터링하고 제어하는 데 사용 할 수 있는 모니터링 도구를 제공합니다.

자동 모니터링 도구

AWS에서 제공하는 알고리즘으로 S3 리소스가 사용되는 방식을 모니터링 하는 도구입니다.

  • CloudWatch 지표
    S3 리소스의 운영 상태를 추적하고 예상되는 요금이 사용자 정의 임계값에 도달하면 결제 알림을 구성합니다.
  • CloudTail
    S3에서 사용자, 역할 또는 AWS 서비스에 의해 수행된 작업을 기록합니다. ColoudTail 로그는 S3 버킷 수준 및 객체 수준 작업에 대한 자세한 API 추적을 제공합니다.

수동 모니터링 도구

CloudWatch 경보에 포함되지 않는 항목을 수동으로 모니터링 하기 위함입니다.

  • 서버 엑세스 로깅
    버킷에 대해 이루어진 요청에 대한 상세 레코드를 제공합니다.
  • Trusted Advisor
    인프라 최적화, 보안 및 성능 개선, 비용 절감, 서비스 할당량 모니터링 방법을 식별하기 위해 모범 사례를 확인하여 계정을 평가합니다.

분석 및 인사이트

S3는 스토리지 사용량을 파악 할 수 있는 기능을 제공하며, 이를 통해 규모에 따른 스토리지를 분석 및 최적화 할 수 있습니다.

  • Storage Lens
    스토리지 사용량 및 활동 지표와 대화형 대시보드를 제공하여 전체 조직, 특정 계정, 리전, 버킷 또는 접두사에 대한 데이터를 집계합니다.
  • 스토리지 클래스 분석
    스토리지 액세스 패턴을 분석함으로써 데이터를 보다 비용 효율적인 스토리지 클래스로 이전할 시기를 결정할 수 있도록 도와줍니다.
  • 인벤토리
    객체와 해당 메타데이터를 감사 및 보고하고 인벤토리 보고서에서 조치를 취하도록 구성합니다.

강력한 일관성

S3는 모든 리전의 버킷에 걸쳐있는 객체의 PUT 및 DELETE 요청에 대한 강력한 쓰기 후 읽기(read-after-write) 일관성을 제공합니다. 다시 말해, 객체가 갖는 단일 키에 대한 작업은 원자성(Atomic)을 갖고 동작합니다. 

 

'AWS > S3' 카테고리의 다른 글

[AWS/S3] AWS S3 소개  (0) 2022.01.10