Amazon Simple Storage Service

강재민·2022년 11월 28일
0

Amazon S3란 무엇인가요?

Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안성능을 제공하는 객체 스토리지 서비스입니다. 모든 규모와 업종의 고객은 Amazon S3를 사용하여 데이터 레이크, 웹 사이트, 모바일 애플리케이션, 백업 및 복원, 아카이브, 엔터프라이즈 애플리케이션, IoT 디바이스, 빅 데이터 분석 등 다양한 사용 사례에서 원하는 양의 데이터를 저장하고 보호할 수 있습니다. Amazon S3는 특정 비즈니스, 조직 및 규정 준수 요구 사항에 맞게 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공합니다.


Amazon S3의 기능

스토리지 클래스

Amazon S3는 여러 사용 사례에 맞춰 설계된 다양한 스토리지 클래스를 제공합니다. 예를 들어 자주 액세스하기 위해 미션 크리티컬 프로덕션 데이터를 S3 Standard에 저장하고, 액세스 빈도가 낮은 데이터를 S3 Standard-IA 또는 S3 One Zone-IA에 저장하여 비용을 절감하고, S3 Glacier Flexible RetrievalS3 Glacier Deep Archive가장 낮은 비용으로 데이터를 보관할 수 있습니다.

액세스 패턴이 변경되거나 알 수 없는 액세스 패턴이 있는 데이터를 S3 Intelligent-Tiering에 저장할 수 있습니다. 이렇게 하면 액세스 패턴이 변경될 때 4개의 액세스 계층 간에 데이터를 자동으로 이동하여 스토리지 비용을 최적화할 수 있습니다. 4개의 액세스 계층에는 빈번한 액세스와 간헐적인 액세스에 최적화된 2개의 대기 시간이 짧은 액세스 계층과, 비동기 액세스용으로 설계되어 드문 액세스에 최적화된 2개의 옵트인 아카이브 액세스 계층이 포함되어 있습니다.

S3 Intelligent-Tiering 액세스 계층
Frequent Access 계층(자동)
S3 Intelligent-Tiering에서 생성하거나 전환한 객체가 수명 주기를 시작하는 기본 액세스 계층입니다. 객체가 액세스되는 동안 이 계층에 남아 있습니다. Frequent Access 계층은 짧은 지연 시간 및 높은 처리량 성능을 제공합니다.

Infrequent Access 계층(자동)
30일 연속으로 객체에 액세스하지 않으면 객체가 Infrequent Access 계층으로 이동합니다. Infrequent Access 계층은 짧은 지연 시간 및 높은 처리량 성능을 제공합니다.

Archive Instant Access 계층(자동)
90일 연속으로 객체에 액세스하지 않으면 객체가 Archive Instant Access 계층으로 이동합니다. Archive Instant Access 계층은 짧은 대기 시간과 높은 처리량 성능을 제공합니다.

Archive Access 계층(선택 사항)
S3 Intelligent-Tiering은 비동기식으로 액세스할 수 있는 데이터에 대해 Archive Access 계층을 활성화하는 옵션을 제공합니다. 활성화 후 Archive Access 계층은 최소 연속 90일 동안 액세스하지 않은 객체를 자동으로 아카이브합니다. 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장할 수 있습니다. Archive Access 계층의 성능은 S3 Glacier Flexible Retrieval 스토리지 클래스와 동일합니다. 이 액세스 계층의 표준 검색 시간은 3~5시간입니다.

Deep Archive Access 계층(선택 사항)
S3 Intelligent-Tiering은 비동기식으로 액세스할 수 있는 데이터에 대해 Deep Archive Access 계층을 활성화하는 옵션을 제공합니다. 활성화 후 Deep Archive Access 계층은 최소 연속 180일 동안 액세스하지 않은 객체를 자동으로 아카이브합니다. 아카이브에 대한 마지막 액세스 시간을 최대 730일로 연장할 수 있습니다. Deep Archive Access 계층의 성능은 S3 Glacier Deep Archive 스토리지 클래스와 동일합니다. 이 액세스 계층에 있는 객체의 표준 검색은 12시간 이내에 발생합니다.


스토리지 관리

Amazon S3에는 비용 관리, 규정 요구 사항 충족, 대기 시간 단축, 규정 준수 요구 사항에 맞게 여러 개의 개별 데이터 복제본 저장을 수행할 수 있는 스토리지 관리 기능이 포함되어 있습니다.

S3 수명 주기 - 수명 주기 정책을 구성하여 객체를 관리하고 수명 주기 동안 객체를 비용 효율적으로 저장할 수 있습니다. 객체를 다른 S3 스토리지 클래스로 전환하거나 수명이 다한 객체를 만료시킬 수 있습니다.

S3 객체 잠금 - 고정된 시간 동안 또는 무기한으로 Amazon S3 객체의 삭제 또는 덮어쓰기를 방지할 수 있습니다. 객체 잠금을 사용하면 WORM(write-once-read-many) 스토리지가 필요한 규제 요구 사항을 충족하거나 객체 변경 및 삭제에 대한 보호 계층을 추가하는 데 도움이 됩니다.

S3 복제 - 대기 시간 단축, 규정 준수, 보안 및 기타 사용 사례를 위해 객체, 객체의 각 메타데이터, 객체 태그를 동일하거나 다른 AWS 리전에 있는 하나 이상의 대상 버킷에 복제합니다.

S3 배치 작업 - Amazon S3 콘솔에서 단일 S3 API 요청이나 몇 번의 클릭만으로 수십억 개의 객체를 대규모로 관리할 수 있습니다. 배치 작업(Batch Operations)을 사용하여 수백만 또는 수십억 개의 객체에 대해 복사, AWS Lambda 함수 호출 및 복원 등의 작업을 수행할 수 있습니다.


액세스 관리

Amazon S3는 버킷 및 객체에 대한 액세스 감사 및 관리 기능을 제공합니다. 기본적으로 S3 버킷 및 객체는 프라이빗입니다. 생성한 S3 리소스에만 액세스할 수 있습니다. 특정 사용 사례를 지원하는 세분화된 리소스 권한을 부여하거나 Amazon S3 리소스의 권한을 감사하기 위해 다음 기능을 사용할 수 있습니다.

S3 퍼블릭 액세스 차단 - S3 버킷과 객체에 대한 퍼블릭 액세스를 차단합니다. 기본적으로 퍼블릭 액세스 차단 설정은 계정 및 버킷 수준에서 켜져 있습니다.

AWS Identity and Access Management(IAM) - AWS 계정용 IAM 사용자를 생성하여 Amazon S3 리소스에 대한 액세스를 관리합니다. 예를 들어 IAM을 Amazon S3와 함께 사용하여 사용자 또는 사용자 그룹이 AWS 계정에 속한 S3 버킷에 대해 보유한 액세스 유형을 제어할 수 있습니다.

버킷 정책 - IAM 기반 정책 언어를 사용하여 S3 버킷과 그 안에 있는 객체에 대한 리소스 기반 권한을 구성합니다.

Amazon S3 액세스 포인트 – Amazon S3의 공유 데이터터 집합에 대한 데이터 액세스를 대규모로 관리하기 위해 전용 액세스 정책이 포함된 명명된 네트워크 엔드포인트를 구성합니다.

액세스 제어 목록(ACL) - 인증된 사용자에게 개별 버킷 및 객체에 대한 읽기 및 쓰기 권한을 부여합니다. 일반적으로 ACL 대신 액세스 제어를 위해 S3 리소스 기반 정책(버킷 정책 및 액세스 포인트 정책) 또는 IAM 정책을 사용하는 것이 좋습니다. ACL은 리소스 기반 정책과 IAM보다 먼저 적용되는 액세스 제어 메커니즘입니다. 리소스 기반 정책 또는 IAM 정책 대신 ACL을 사용하는 시기에 대한 자세한 내용은 액세스 정책 지침 섹션을 참조하세요.

S3 객체 소유권 - ACL을 사용 중지하고 버킷의 모든 객체에 대한 소유권을 가져와서 Amazon S3에 저장된 데이터에 대한 액세스 관리를 간소화합니다. 버킷 소유자는 버킷의 모든 객체를 자동으로 소유하고 완전히 제어할 수 있으며 데이터에 대한 액세스 제어는 정책을 기반으로 합니다.

Access Analyzer for S3 - S3 버킷 액세스 정책을 평가 및 모니터링하여 정책이 S3 리소스에 대한 의도된 액세스만 제공하는지 확인합니다.


동시 애플리케이션

이 섹션에서는 여러 클라이언트가 동일한 항목에 쓸 때 Amazon S3에서 예상되는 동작의 예제를 제공합니다.

이 예제에서는 W1(쓰기 1)과 W2(쓰기 2) 모두 R1(읽기 1) 및 R2(읽기 2)가 시작되기 전에 완료됩니다. S3는 매우 일관적이기 때문에 R1과 R2는 모두 color = ruby을(를) 반환합니다.

다음 예제에서 W2는 R1이 시작되기 전에 완료되지 않습니다. 따라서 R1은 color = ruby 또는 color = garnet을(를) 반환할 수 있습니다. 그러나 R2가 시작되기 전에 W1과 W2가 완료되므로 R2는 color = garnet을(를) 반환합니다.

마지막 예제에서, W1이 승인을 받기 전에 W2가 시작되었습니다. 따라서 이러한 쓰기는 동시에 이루어진 것으로 간주됩니다. Amazon S3는 내부적으로 최종 작성자 인정(last-writer-wins) 의미를 사용하여 어떤 쓰기가 우선하는지 결정합니다. 그러나 Amazon S3가 요청을 수신하는 순서와 애플리케이션이 승인을 받는 순서는 네트워크 대기 시간 등의 다양한 요인으로 인해 예측할 수 없습니다. 예를 들어, W2는 동일한 리전의 Amazon EC2 인스턴스에 의해 시작되고 W1은 멀리 떨어진 호스트에 의해 시작될 수 있습니다. 최종 값을 결정하는 가장 좋은 방법은 두 쓰기가 모두 승인된 후 읽기를 수행하는 것입니다.

0개의 댓글