Category: Amazon Glacier*


Amazon S3 Select 및 Glacier Select – 원하는 객체 기반 데이터 질의 기능 출시

Amazon S3(Simple Storage Service)는 다양한 기업들이 사용하는 수백만 애플리케이션을 위한 대용량 데이터를 저장하며, 대부분 고객은 안전하고 지속성이 우수하며 경제적인 백업 아카이브 스토리지를 위해 Amazon Glacier를 사용하고 있습니다. S3를 사용하면 원하는 만큼 많은 객체를 저장할 수 있으며, 개별 객체의 크기는 5테라바이트까지 가능합니다. 객체 스토리지의 데이터는 일반적으로 하나의 완전한 개체로 액세스되었습니다. 즉, 5기가바이트 객체를 한 개 요청하면 5기가바이트를 모두 받게 됩니다. 이것은 객체 스토리지의 속성입니다.

오늘 Amazon S3 및 Glacier를 위한 두 가지 새로운 기능을 발표하여 새로운 데이터 분석 패러다임을 제공합니다. 표준 SQL 질의를 사용하여 여기에 저장된 객체에서 필요한 정보만 가져올 수 있는 기능입니다. 이렇게 하면 S3 또는 Glacier의 객체를 액세스하는 모든 애플리케이션 성능이 근본적으로 향상됩니다.

Amazon S3 Select 미리 보기

Amazon S3 Select는 간단한 SQL 식을 사용하여 애플리케이션이 객체에서 일부 데이터만 가져올 수 있도록 하는 서비스입니다. S3 Select를 사용하여 애플리케이션에서 필요한 데이터만 가져옴으로써, 상당한 성능 향상을 이룰 수 있습니다. 대부분의 경우 이러한 성능 향상은 최대 400%에 이릅니다.

대형 소매 기업의 개발자가 한 매장의 주간 판매 데이터를 분석해야 하는데, 매일 200개 매장 모두의 데이터가 새로운 GZIP 압축 CSV로 저장되고 있는 상황을 생각해 보십시오. S3 Select가 없으면 전체 CSV를 다운로드하여 압축을 풀고 처리하여 필요한 데이터를 가져와야 합니다. S3 Select를 사용하면, 전체 객체를 가져오는 대신 해당 매장의 데이터만 반환하는 간단한 SQL 식을 사용할 수 있습니다. 즉, 최소한의 데이터만 처리하면 되며 결과적으로 기반 애플리케이션의 성능이 향상됩니다.

Python 예제를 간단히 살펴보겠습니다.

import boto3
from s3select import ResponseHandler

class PrintingResponseHandler(ResponseHandler):
    def handle_records(self, record_data):
        print(record_data.decode('utf-8'))

handler = PrintingResponseHandler()
s3 = boto3.client('s3')
response = s3.select_object_content(
    Bucket="super-secret-reinvent-stuff",
    Key="stuff.csv",
    SelectRequest={
        'ExpressionType': 'SQL',
     'Expression': 'SELECT s._1 FROM S3Object AS s'',
        'InputSerialization': {
            'CompressionType': 'NONE',
            'CSV': {
                'FileHeaderInfo': 'IGNORE',
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        },
        'OutputSerialization': {
            'CSV': {
                'RecordDelimiter': '\n',
                'FieldDelimiter': ',',
            }
        }
    }
)
handler.handle_response(response['Body'])

이렇게 하기 위해 S3 Select는 이진 유선 프로토콜을 사용하여 객체를 반환합니다. 현재 이를 위해서는 역직렬화를 지원하는 작은 라이브러리를 추가로 사용해야 합니다.

고객들은 S3 Select를 사용하여 모든 종류의 애플리케이션 속도를 향상시킬 수 있을 것으로 기대됩니다. 예를 들어 일부 데이터를 가져오는 이 기능은 AWS Lambda를 사용하여 만든 서버리스 애플리케이션에 특히 유용합니다. 서버리스 MapReduce 참조 아키텍처를, S3 Select를 사용하여 필요한 데이터 가져오도록 수정했을 때, 성능은 2배 향상했고 비용은 80% 감소했습니다.

또한, S3 Select 팀은 쿼리를 변경하지 않고 Amazon EMR에 대한 성능을 즉시 높일 수 있는 Presto 커넥터를 개발했습니다. S3에서 가져온 데이터의 약 99%를 필터링하는 복합 쿼리를 실행하여 이 커넥터를 테스트했습니다. S3 Select를 사용하지 않을 경우 Presto는 S3의 전체 객체를 스캔하여 필터링해야 했지만, S3 Select를 사용하면 S3 Select를 통해 쿼리에 필요한 데이터만 가져왔습니다.

[hadoop@ip-172-31-19-123 ~]$ time presto-cli --catalog hive --schema default --session hive.s3_optimized_select_enabled=false -f query.sql
"31.965496","127178","5976","70.89902","130147","6996","37.17715","138092","8678","135.49536","103926","11446","82.35177","116816","8484","67.308304","135811","10104"
 
real  0m35.910s
user  0m2.320s
sys   0m0.124s
[hadoop@ip-172-31-19-123 ~]$ time presto-cli --catalog hive --schema default --session hive.s3_optimized_select_enabled=true -f query.sql
"31.965496","127178","5976","70.89902","130147","6996","37.17715","138092","8678","135.49536","103926","11446","82.35177","116816","8484","67.308304","135811","10104"
 
real  0m6.566s
user  0m2.136s
sys   0m0.088s

S3 Select를 사용하지 않은 경우 이 쿼리는 35.9초 걸렸고, S3 Select를 사용했을 때는 6.5초밖에 걸리지 않았습니다. 5배 빠른 속도입니다.

알아둘 사항

  • S3 Select 프리뷰 버전은 GZIP으로 압축되거나 압축되지 않은 CSV 또는 JSON 파일을 지원합니다. 프리뷰 버전에서는 저장 시 암호화된 객체를 지원하지 않습니다.
  • S3 Select 프리뷰 버전은 무료입니다.
  • Amazon Athena, Amazon Redshift, Amazon EMR을 비롯하여 Cloudera, DataBricks, Hortonworks 등의 파트너들은 모두 S3 Select를 지원합니다.

Glacier Select 정식 출시

금융 서비스, 의료 등 규제가 엄격한 업종의 일부 기업에서는 SEC 규정 17a-4 또는 HIPAA 등과 같은 규정을 준수하기 위해 Amazon Glacier에 직접 데이터를 쓰고 있습니다. 많은 S3 사용자들은 더 이상 정기적으로 액세스하지 않는 데이터를 Glacier로 옮김으로써 스토리지 비용을 절약하도록 설계된 수명 주기 정책을 사용합니다. 온프레미스 테이프 라이브러리 등과 같은 기존의 아카이브 솔루션은 대부분 데이터 검색 처리량에 제한이 많아서 신속한 분석이나 처리에는 부적합합니다. 이러한 테이프 중 하나에 저장된 데이터를 사용하려면 유용한 결과를 얻기까지 몇 주씩 기다려야 할 수도 있습니다. 반면에 Glacier에 저장된 콜드 데이터는 단 몇 분만에 쉽게 쿼리할 수 있습니다.

따라서 아카이브된 데이터를 활용하여 새롭고 가능성 있는 비즈니스 가치를 창출할 수 있습니다. Glacier Select를 사용하면 표준 SQL 문을 사용하여 Glacier 객체에 대해 직접 필터링을 수행할 수 있습니다.

Glacier Select는 다른 검색 작업과 마찬가지로 수행되지만 다른 점은 초기 작업 요청에 전달할 수 있는 SelectParameters 파라미터 집합을 제공한다는 사실입니다.

다음은 간단한 예제입니다.

import boto3
glacier = boto3.client("glacier")

jobParameters = {
    "Type": "select", "ArchiveId": "ID",
    "Tier": "Expedited",
    "SelectParameters": {
        "InputSerialization": {"csv": {}},
        "ExpressionType": "SQL",
        "Expression": "SELECT * FROM archive WHERE _5='498960'",
        "OutputSerialization": {
            "csv": {}
        }
    },
    "OutputLocation": {
        "S3": {"BucketName": "glacier-select-output", "Prefix": "1"}
    }
}

glacier.initiate_job(vaultName="reInventSecrets", jobParameters=jobParameters)

알아둘 사항

Glacier Select는 모든 상용 리전에서 오늘 부터 사용할 수 있습니다. Glacier는 3가지 측정량으로 요금이 책정됩니다.

  • 스캔한 데이터량(GB)
  • 반환된 데이터량(GB)
  • Select 요청 수

각 측정량에 대한 요금은 원하는 결과 반환 속도에 따라 정해지며, 고속(1-5분), 일반(3-5시간), 대량(5-12시간)으로 구분됩니다. 곧 다가오는 2018년에 Athena는 Glacier Select를 사용하여 Glacier와 통합됩니다.

이러한 기능을 활용하여 애플리케이션 속도를 높이거나 새로운 성과를 달성하시기 바랍니다.

Randall;

이 글은 AWS re:Invent 2017 신규 서비스 소식으로 S3 Select and Glacier Select – Retrieving Subsets of Objects 의 한국어 번역입니다.

AWS 스토리지 업데이트 – S3 및 Glacier 가격 인하 및 Glacier 추가 추출 옵션

2006년 Amazon S3 공개를 통해 “사용한 만큼 지불한다”는 비용 모델과 함께 1GB당 월 15센트의 가격 체계를 처음 공개하였습니다. 10년 동안 처음 가격에서 80% 인하 되어 글로벌 전체 리전에 적용되었습니다. 또한, 정적 웹 호스팅, VPC 연동, IPv6 지원, S3 Infrequent Access 옵션 등의 기능을 추가했습니다.

많은 AWS 고객이 법적 혹은 업무 규정에 따라 중요한 데이터를 지속적으로 보관해야 하는 요구 사항에 맞추어 2012년 Glacier를 공개하고, 데이터 생명 주기에 따라 저장 및 백업 방법을 선택할 수 있게 되었습니다.

이를 기반으로 오늘 S3 표준 스토리지와 Glacier 스토리지의 가격 인하 소식과 Glacier의 새로운 데이터 추출 옵션을 소개합니다.

S3 및 Glacier 가격 할인
AWS 고객들은 이미 잘 알고 있듯이 지속적으로 인프라 비용을 절감하고, 이를 고객에게 돌려 드리는 AWS 가격 인하를 지속하고 있습니다. 아래와 같이 2016년 12월 1일 부터 Amazon S3의 표준 스토리지에 대해 GB당 가격을 리전 마다 인하합니다. 12월 영수증에 자동으로 인하된 가격에 따라 비용이 낮아져서 반영됩니다.

리전 별 0-50 TB
($ / GB / 월)
51 – 500 TB
($ / GB / 월)
500+ TB
($ / GB / 월)
  • US East (Northern Virginia)
  • US East (Ohio)
  • US West (Oregon)
  • EU (Ireland)

(할인 폭 23.33% – 23.64%)

$0.0230 $0.0220 $0.0210
  • US West (Northern California)

(할인 폭 20.53% – 21.21%)

$0.0260 $0.0250 $0.0240
  • EU (Frankfurt)

(할인 폭 24.24% – 24.38%)

$0.0245 $0.0235 $0.0225
  • Asia Pacific (Singapore)
  • Asia Pacific (Tokyo)
  • Asia Pacific (Sydney)
  • Asia Pacific (Seoul)
  • Asia Pacific (Bombay)

(할인 폭 16.36% – 28.13%)

$0.0250 $0.0240 $0.0230

위의 표에서 보시다시피 6개의 요금 범위를 3개로 단순화 시켰습니다. 또한, Glacier 스토리지에 대해서도 가격 인하를 단행하여, 서울 및 도쿄 리전의 경우, 월별 $0.0050로 기존 $0.007과 비교했을 때 28% 인하하였습니다. (이는 2012년 처음 서비스 공개 시 $0.010를 30% 인하한 후 두 번째입니다.)

리전 별 GB당 저장 요금
  • US East (Northern VA)
  • US West (Oregon)
  • US East (Ohio)
  • EU (Dublin)
$0.0040
  • EU (Frankfurt)
$0.0045
  • US West (Northern CA)
  • APAC (Tokyo)
  • APAC (Sydney)
  • APAC (Seoul)
  • APAC (Bombay)
  • China (Beijing)
$0.0050
  • GovCloud
$0.0060

이러한 낮은 가격은 고객 여러분께서 저희 스토리지 서비스를 신뢰해 주셔서 수 조(兆)개의 객체를 저장해 주신 결과입니다.  새로운 기능을 추가 할 때마다 얻은 고객 피드백을 바탕으로 클라우드 스토리지 플랫폼의 진정한 가치는 빠르고 꾸준하게 발전하고 있습니다. 고객 여러분의 피드백을 기반으로 새로운 기능을 출시하는 것에 대해 매우 만족하고 있다고 말해 주시기도 합니다.

신규 Glacier 추출 옵션
많은 AWS 고객 여러분께서 Amazon Glacier를 계층형 스토리지 아키텍처 저장용 구성 요소로 사용합니다. Glacier는 데이터를 처리 및 가치를 추출하기 대용량 클라우드 기반 컴퓨팅 성능을 사용하면서도 규정 준수 요구 사항 (조직 또는 규정)을 충족 할 수 있도록 합니다.

오늘 우리는 Glacier에 저장한 데이터를 위한 두 가지 새로운 검색 옵션을 추가합니다. 비용을 조금 더 내고 데이터 검색을 신속하게 처리하거나 속도가 중요하지 않을 경우 추출 비용을 낮출 수 있습니다. Glacier는 저장한 데이터의 양과 추출한 데이터 속도에 기초하여 가격 모델을 가지고 있습니다. 하지만, 이를 고객에게 쉽게 설명하기 어려운 부분이 있어서, 이를 GB 기반의 데이터 추출 비용 방식으로 대체합니다.

미디어 및 엔터테인먼트 고객사 예를 들어 TV 동영상 저장 같은 경우, 필요 시 빠르게 파일을 찾아야 할 필요가 있습니다. 또한 헬스케어 분야에서도 특정 상황에서 메디컬 영상이나 게놈 데이터를 빠르게 받아야 합니다.  또는, 어떤 고객은 시간과 상관 없이 5-12시간 이내에 데이터를 완벽하게 다시 얻을 수 있기만 하면 되기도 합니다.

여러분의 요구 사항에 맞추어 아래 3가지 데이터 추출 옵션을 선택하실 수 있습니다. (원래 비율 기반의 추출 모델은 더 이상 유효하지 않습니다.)

표준(Standard) : Glacier가 이미 제공하고 있던 것의 새로운 이름입니다. 데이터를 몇 시간(대개 3-5시간)에 GB당 $0.01 가격으로 매 1,000회 요청 당 $0.05 입니다.

신속(Expedited) : 빠른 시간 내에 데이터를 추출 할 수 있는 신규 옵션으로  1- 5 분 내에 데이터 추출 가능합니다. 만약 Glacier에서 100TB 이상을 저장하면서 자주 꺼내게 되신다면, 현재 모델이 최상의 조건입니다. (만약 그 이하라면, S3의 Infrequent Access storage class 가 최적의 선택입니다.) 추출 요금은 GB당 $0.03 이고 요청당 $0.01 입니다.

대량(Bulk) : 추출 시간이 그렇게 중요하지 않는 일반적인 경우에 해당되며, 평균 5-12시간 정도가 걸리고 가격은 GB당 $0.0025 per GB (표준 대비 75% 저렴함) 및 1,000회 요청당   $0.025입니다. 대량 추출은 대용량 데이터를 하루 내에 꺼내야 할 때 최적의 모델입니다.

특정 옵션을 선택하기 곤란할 때, InitiateJob 요청을 하면 먼저 표준 방식으로 시작된 후, 작업 상황을 보면서 새로운 추출 모델로 바뀌게 됩니다.  더 자세한 사항은  Glacier FAQ의 데이터 추출 방식 을 참고하시기 바랍니다.
– Jeff;

이 글은 AWS Storage Update – S3 & Glacier Price Reductions + Additional Retrieval Options for Glacier의 한국어 요약본입니다.

AWS 스토리지 업데이트 – 신규 저가형 S3스토리지 옵션 및 Glacier 가격 인하

AWS의 모든 서비스처럼 Amazon S3팀은 고객의 요구사항을 더 잘 이해하기 위해서 고객의 목소리에 항상 귀기울이고 있습니다. 그동안 해 주신 많은 피드백과 사용자 접근 유형 분석을 한 결과 S3팀은 자주 사용하지 않는 객체 및 파일에 잘 맞는 새로운 스토리지 옵션을 제공할 필요성을 알게되었습니다.

즉, 저희팀은 많은 AWS 고객들이 자주 접근하지 않는 백업이나 로그 파일들을 S3에 저장하고 있다는 것을 발견했습니다. 다른 회사들은 공유 문서 또는 즉각적인 분석을 위한 RAW 데이터도 업로드합니다. 이 파일들은 대게 업로드가 된 직후에는 자주 사용을 하지만, 시간이 지남에 따라서 사용률이 급격히 떨어집니다. 물론 이 데이터들은 여전히 중요하며 높은 내구성을 요구합니다. 이러한 스토리지 모델은 자주 접근하지 않는 경우에 특화되어 있더라도, 고객들은 파일에 빠른 접근을 요구하기 때문에 검색 성능 역시 중요합니다.

새로운 스토리지 옵션, 저빈도 접근(Infrequent Access)
많은 고객의 요구사항에 부합하기 위해서 접근 빈도가 낮은 데이터를 위한 새로운 스토리지 클래스를 추가합니다. 새로운 S3 Standard – Infrequent Access (Standard – IA) 스토리지 클래스는 S3 Standard와 같이 높은 내구성, 낮은 지연 시간, 높은 처리량을 제공합니다. 여러분은 이제 99.999999999%의 내구성을 지닌 세 개의 S3 스토리지 클래스(Standard, Standard – IA, Glacier) 중 하나를 선택할 수 있습니다. Standard – IA의 SLA는 99%입니다.

새로운 스토리지 클래스는 여러분이 알고있는(선호하시듯) 안전한 보안과 접근관리, 데이터 생명주기 정책, 리전간(cross-region) 복제, 그리고 이벤트 알림을 포함한 기존 S3 기능을 모두 가지고 있습니다.

Standard – IA의 가격은 최소 30일 이상 유지시 기가바이트당 월 $0.0125부터 시작하며 일반적인 데이터 전송과 요청 요금을 제외한 검색(retrieval)은 기가바이트당 $0.01의 비용이 발생합니다. 과금을 위해서 128 킬로바이트보다 작은 객체들은 128 킬로바이트로 과금됩니다. 이러한 비용 모델이 매우 경제적이면서도 필요한 경우 오래된 데이터를 빠르게 검색하는데 도움을 줄것입니다. 새로나온 스토리지 클래스를 장기 보관 스토리지, 백업, 그리고 재해 복구용으로 사용할 수 있습니다.

S3 스토리지 클래스간 데이터 이동 생명주기 정책을 정의할 수 있습니다. 예를 들어, 새로 업로드된 데이터를 Standard 스토리지 클래스를 사용해서 저장할 수 있고, 이 데이터가 업로드된지 30일이 지난 후에 Standard – IA로 이동하고, 60일이 지난 후에는 Amazon Glacier로 이동하도록 설정할 수 있습니다.

새로운 Standard – IA 스토리지 클래스는 단순히 S3의 각 객체와 연관된 속성들 중 하나입니다. 객체들이 같은 S3 버킷에 있고 Standard – IA로 이행될 때 같은 URL로 접근할 수 있기 때문에 애플리케이션 코드 변경을 하지 않아도 생명주기 정책을 통해서 Standard – IA를 바로 사용할 수 있습니다. 즉 여러분은 어플리케이션 변경이나 성능에 영향없이 즉시 정책을 적용하고 S3 비용을 줄일 수 있습니다.

AWS 관리 콘솔을 통해서 새로운 객체를 업로드할 때 새로운 스토리지 클래스를 선택할 수 있고, 이는 모든 리전에 바로 적용됩니다.

또한, 각 S3 버킷별 생명주기 룰을 설정할 수 있습니다. 다음은 위에서 설명한 정책 구성 방법입니다.

이 기능은 AWS Command Line Interface (CLI), the AWS Tools for Windows PowerShellAWS SDKs, S3 API를 통해서도 적용 가능합니다.

아래는 이 기능을 초기에 써 보신 고객의 피드백입니다.

“13년 이상 SmugMug는 고객에게 무제한 사진 저장 서비스를 해왔습니다. 페타바이트급 데이터가 Amazon S3에 저장되어 있고 저희 사용자들이 예전에 올린 사진이라 하더라도 바로 빠르게 데이터를 접근하는 것이 매우 중요합니다. Amazon S3 Standard – IA를 통해 높은 내구성과 성능을 가진 Amazon S3 기본 기능을 계속 활용하면서도 저희 고객들에게 더 빠르고 고품질의 사진 및 동영상을 제공할 수 있게 되었습니다.”

Don MacAskill, CEO & Chief Geek
SmugMug

“저희는 많은 동영상을 제공하는데 대부분 Amazon S3에 사용자 동영상의 복제본을 저장합니다. 즉, 내구성이 매우 중요하다는 것을 의미하는데 Amazon S3 Standard – IA를 통해 스토리지 비용도 낮추면서 내구성도 확보하는 것이 가능해졌습니다. 몇 번의 클릭으로 스토리지 생명 주기를 설정할 수 있어서 쉽게 전환이 가능합니다. 이를 통해 새로운 버킷을 만들어 이동하는 등 사용자 경험에 영향을 주는 걱정이 없어졌습니다.”

Brian Kaiser, CTO
Hudl

새로운 스토리지 클래스의 전체 가격에 대한 정보는 S3 가격 페이지에서 확인 가능합니다.

Glacier 스토리지 가격 인하
2015년 9월 1일부터 Amazon Glacier에 저장된 데이터 가격을 기가 바이트당 월 $0.01에서 $0.007로 인하합니다. 여느 때와 같이 가격 인하는 자동으로 적용될 것이며 여러분이 가격 인하를 받기 위해서 하실 건 없습니다. 이 가격은 US East(Northern Virginia), US West(Oregon), Europe(Ireland) 지역에 해당하는 것으로 다른 지역에 대한 가격 정보는 Glacier 가격 페이지에서 확인하시기 바랍니다.

Jeff;

이 글은 AWS Storage Update – New Lower Cost S3 Storage Option & Glacier Price Reduction의 한국어 번역으로 AWS 코리아의 기술 지원 엔지니어로 근무하는 이범석(Beomseok Lee)님이 번역해 주셨습니다.