Amazon Web Services 한국 블로그

Amazon S3 Express One Zone 고성능 스토리지 클래스 정식 출시

Amazon S3 Express One Zone 스토리지 클래스는 S3 Standard 스토리지 클래스보다 최대 10배 더 나은 성능을 제공하는 동시에 일관된 한 자리 밀리초의 지연 시간으로 초당 수십만 건의 요청을 처리하도록 설계되었으므로 가장 자주 액세스하는 데이터와 가장 까다로운 애플리케이션에 적합합니다. 객체는 단일 AWS 가용 영역 내의 특수 설계된 하드웨어에 저장 및 복제되므로 스토리지 및 컴퓨팅(Amazon EC2, Amazon ECS 및 Amazon EKS) 리소스를 함께 배치하여 지연 시간을 더욱 줄일 수 있습니다.

Amazon S3 Express One Zone
Amazon S3 Express One Zone 스토리지 클래스는 컴퓨팅과 스토리지 간의 지연 시간이 매우 짧기 때문에 데이터 집약적인 애플리케이션, 특히 AI/ML 교육, 재무 모델링, 미디어 처리, 실시간 광고 배치, 고성능 컴퓨팅 등을 위해 대량의 데이터를 처리하기 위해 수백 또는 수천 개의 병렬 컴퓨팅 노드를 사용하는 애플리케이션의 런타임을 크게 줄이는 데 도움이 될 수 있습니다. 이러한 애플리케이션은 일반적으로 비교적 짧은 기간 동안 데이터를 보관하지만 그 기간 동안에는 매우 자주 액세스합니다.

이 새로운 스토리지 클래스는 모든 크기의 객체를 처리할 수 있지만 특히 작은 객체에 적합합니다. 작은 객체의 경우 첫 바이트까지의 시간이 마지막 바이트에 걸리는 시간과 매우 비슷하기 때문입니다. 모든 스토리지 시스템에서 대형 객체는 전송하는 동안 다운로드할 데이터가 더 많기 때문에 스트리밍하는 데 시간이 더 오래 걸리며, 따라서 스토리지 지연 시간이 객체를 읽는 데 걸리는 총 시간에 미치는 영향이 적습니다. 따라서 크기가 작은 객체일수록 대형 객체에 비해 스토리지 지연 시간이 짧아져 큰 이점을 얻을 수 있습니다. S3 Express One Zone은 일관되게 지연 시간이 매우 짧기 때문에 S3 Standard에 비해 소형 객체를 최대 10배 더 빠르게 읽을 수 있습니다.

Amazon S3 Express One Zone이 제공하는 매우 짧은 지연 시간과 S3 Standard 스토리지 클래스보다 50% 저렴한 요청 비용을 결합하면 스팟온디맨드 컴퓨팅 리소스가 더 효율적으로 사용되고 더 일찍 종료될 수 있어 전반적인 처리 비용이 절감됩니다.

각 Amazon S3 Express One Zone 디렉터리 버킷은 사용자가 선택한 단일 가용 영역에 존재하며, 일반적인 S3 API 함수 세트(CreateBucket, PutObject, GetObject, ListObjectsV2 등)를 사용하여 액세스할 수 있습니다. 또한 버킷은 바이트 범위 가져오기, 다중 부분 업로드, 다중 부분 복사, 미리 서명된 URL, S3용 Access Analyzer를 포함하여 엄선된 S3 기능 세트를 지원합니다. 객체를 직접 업로드하거나, CopyObject를 사용하는 코드를 작성하거나, S3 Batch Operations를 사용할 수 있습니다.

지연 시간을 줄이고 이 스토리지 클래스를 최대한 효율적이고 확장 가능하게 만들기 위해 새로운 버킷 유형, 새로운 인증 모델 및 버킷 명명 규칙을 도입했습니다.

새 버킷 유형 – 새 디렉터리 버킷은 이 스토리지 클래스에만 적용되며 초당 수십만 개의 요청을 지원합니다. 이들은 계층적 네임스페이스를 가지며 디렉터리와 유사한 방식으로 객체 키 이름을 저장합니다. 경로 구분 기호는 “/”여야 하며 ListObjectsV2에 제공하는 모든 접두사는 구분 기호로 끝나야 합니다. 또한 목록 작업은 결과를 먼저 정렬하지 않고 반환하므로 “시작 후” 검색을 수행할 수 없습니다.

새 인증 모델 – 새로운 CreateSession 함수는 5분 동안 특정 버킷에 대한 액세스 권한을 부여하는 세션 토큰을 반환합니다. IAM 자격 증명이 필요한 CopyObject를 제외하고 버킷 또는 버킷의 객체에서 작동하는 다른 S3 API 함수에 대한 요청에 이 토큰을 포함해야 합니다. 최신 버전의 AWS SDK는 세션 생성을 자동으로 처리합니다.

버킷 이름 지정 – 디렉터리 버킷 이름은 해당 AWS 리전 내에서 고유해야 하며 특수 형식의 접미사에 가용 영역 ID를 지정해야 합니다. 내 기본 버킷 이름이 jbarr이고 해당 버킷 이름이 가용 영역 use1-az5(미국 동부(버지니아 북부) 지역의 가용 영역 5)에 있는 경우 CreateBucket에 제공하는 이름은 jbarr--use1-az5--x-s3입니다. 버킷이 특정 가용 영역 내에 존재하더라도 해당 지역의 다른 영역에서 액세스할 수 있으며, 한 가용 영역의 컴퓨팅 리소스에서 동일한 지역의 다른 가용 영역에 있는 디렉터리 버킷으로의 요청에 대한 데이터 전송 요금이 부과되지 않습니다.

Amazon S3 Express One Zone 운영
이 새 스토리지 클래스를 사용해 보겠습니다. 여기서는 명령줄에 집중하겠지만 AWS Management Console과 API 액세스도 사용할 수 있습니다.

내 EC2 인스턴스가 내 us-east-1f 가용 영역에서 실행되고 있습니다. jq를 사용하여 이 값을 가용 영역 ID에 매핑합니다.

$ aws ec2 describe-availability-zones --output json | \
  jq -r  '.AvailabilityZones[] | select(.ZoneName == "us-east-1f") | .ZoneId'
use1-az5

버킷 구성(s3express-bucket-config.json)을 만들고 ID를 포함시킵니다.

{
        "Location" :
        {
                "Type" : "AvailabilityZone",
                "Name" : "use1-az5"
        },
        "Bucket":
        {
                "DataRedundancy" : "SingleAvailabilityZone",
                "Type"           : "Directory"
        }
}

최신 버전의 AWS Command Line Interface(AWS CLI)를 설치한 후 디렉터리 버킷을 생성합니다.

$ aws s3api create-bucket --bucket jbarr--use1-az5--x-s3 \
  --create-bucket-configuration file://s3express-bucket-config.json \
  --region us-east-1
-------------------------------------------------------------------------------------------
|                                       CreateBucket                                      |
+----------+------------------------------------------------------------------------------+
|  Location|  https://jbarr--use1-az5--x-s3.s3express-use1-az5.us-east-1.amazonaws.com/   |
+----------+------------------------------------------------------------------------------+

그런 다음, 평소처럼 디렉터리 버킷을 다른 CLI 명령의 대상으로 사용할 수 있습니다(두 번째 aws는 AWS CLI의 압축을 푼 디렉터리임).

$ aws s3 sync aws s3://jbarr--use1-az5--x-s3

디렉터리 버킷의 내용을 나열하면 StorageClassEXPRESS_ONEZONE인 것을 볼 수 있습니다.

$ aws s3api list-objects-v2 --bucket jbarr--use1-az5--x-s3 --output json | \
  jq -r '.Contents[] | {Key: .Key, StorageClass: .StorageClass}'
...
{
  "Key": "install",
  "StorageClass": "EXPRESS_ONEZONE"
}
...

S3용 관리 콘솔은 범용 버킷과 디렉터리 버킷을 별도의 탭에 표시합니다.

위와 같이 Import 버튼을 사용하여 기존 버킷의 콘텐츠(또는 접두사가 붙은 콘텐츠 하위 집합)를 디렉터리 버킷으로 가져올 수 있습니다. 원본 버킷을 선택하고 Import를 클릭한 다음, 원본 버킷의 인벤토리를 생성하고 S3 Batch Operations 작업을 생성하는 데 사용할 파라미터를 입력합니다.

작업이 생성되고 실행되기 시작합니다.

알아야 할 사항
이 새로운 S3 스토리지 클래스에 대해 알아야 할 몇 가지 중요한 사항은 다음과 같습니다.

리전 – Amazon S3 Express One Zone은 미국 동부(버지니아 북부), 미국 서부(오레곤), 아시아 태평양(도쿄) 및 유럽(스톡홀름) 리전에서 사용할 수 있으며 향후 다른 리전으로도 확장할 계획입니다.

기타 AWS 서비스 – Amazon S3 Express One Zone을 Amazon SageMaker Model Training, Amazon Athena, Amazon EMRAWS Glue 데이터 카탈로그를 비롯한 다른 AWS 서비스와 함께 사용하여 기계 학습 및 분석 워크로드를 가속화할 수 있습니다. 또한 Mountpoint for Amazon S3를 사용하여 파일 지향 방식으로 S3 객체를 처리할 수 있습니다.

요금 – 요금은 다른 S3 스토리지 클래스와 마찬가지로 사용한 만큼 지불합니다. 미국 동부(버지니아 북부) 리전에서는 월 0.16 USD/GB를 지불하며, 각 객체에 대한 최소 청구 시간은 1시간이며, 특정 요청 유형에 대해서는 추가 요금이 부과됩니다. 요청 중 512KB를 초과하는 부분에 대해서는 GB당 추가 요금을 지불해야 합니다. 자세한 내용은 Amazon S3 요금 페이지를 참조하세요.

내구성 – 드물게 AWS 가용 영역 전체 또는 일부가 손실되거나 손상되는 경우 One Zone 스토리지 클래스의 데이터가 손실될 수 있습니다. 예를 들어 화재 및 침수 피해와 같은 이벤트로 인해 데이터가 손실될 수 있습니다. 이러한 유형의 이벤트 외에도 One Zone 스토리지 클래스는 지역 스토리지 클래스와 유사한 엔지니어링 설계를 사용하여 독립 디스크, 호스트 및 랙 수준 장애로부터 객체를 보호하며, 각 클래스는 99.999999999%의 데이터 내구성을 제공하도록 설계되었습니다.

SLA – Amazon S3 Express One Zone은 99.9%의 가용성 SLA와 함께 99.95%의 가용성을 제공하도록 설계되었습니다. 자세한 내용은 Amazon S3 서비스 수준 계약 페이지를 참조하세요.

이 새로운 스토리지 클래스는 지금 이용 가능하며 오늘부터 사용할 수 있습니다.

자세히 알아보기
Amazon S3 Express One Zone

Jeff;