작업 시작(POST jobs) - Amazon S3 Glacier

Amazon Simple Storage Service(S3)의 아카이브 스토리지를 처음 사용하는 경우, 먼저 Amazon S3의 S3 Glacier 스토리지 클래스, S3 Glacier Instant Retrieval, S3 Glacier Flexible RetrievalS3 Glacier Deep Archive에 대해 자세히 알아보는 것을 권장합니다. 자세한 내용은 Amazon S3 사용 설명서의 S3 Glacier 스토리지 클래스 및 객체 보관용 스토리지 클래스를 참조하십시오.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

작업 시작(POST jobs)

이 작업은 다음 유형의 Amazon S3 Glacier(S3 Glacier) 작업을 시작합니다.

  • archive-retrieval: 아카이브 검색

  • inventory-retrieval: 볼트 인벤토리 작성

아카이브 또는 볼트 인벤토리 가져오기 작업 시작

아카이브 또는 볼트 인벤토리 가져오기는 비동기식 작업이기 때문에 먼저 작업을 시작해야 합니다. 일단 시작되면 작업을 취소할 수 없습니다. 가져오기 작업은 2단계 프로세스로 구성됩니다.

  1. 작업 시작(POST jobs) 작업을 사용하여 가져오기 작업을 시작합니다.

    중요

    데이터 가져오기 정책으로 인해 가져오기 작업 시작 요청이 PolicyEnforcedException과 함께 실패할 수 있습니다. 데이터 가져오기 정책에 대한 자세한 내용은 S3 Glacier 데이터 검색 정책 단원을 참조하십시오. PolicyEnforcedException 예외에 대한 자세한 내용은 오류 응답 단원을 참조하십시오.

  2. 작업이 완료된 후 작업 출력 가져오기(GET output) 작업을 사용하여 바이트를 다운로드합니다.

검색 요청은 비동기식으로 실행됩니다. 검색 작업을 시작하면 S3 Glacier가 작업을 생성한 후 응답으로 작업 ID를 반환합니다. S3 Glacier가 검색 작업을 마치면 작업 출력(아카이브 또는 인벤토리 데이터)을 가져올 수 있습니다. 작업 출력 다운로드에 대한 자세한 내용은 작업 출력 가져오기(GET output) 작업을 참조하십시오.

작업 출력을 다운로드하려면 작업을 먼저 마쳐야 합니다. 작업 완료 시기는 다음과 같은 옵션으로 알 수 있습니다.

  • Amazon SNS 알림 사용: 작업이 완료된 후 사용자는 S3 Glacier가 알림 메시지를 게시할 수 있는 Amazon SNS 토픽을 지정할 수 있습니다. 작업 요청 1건당 SNS 주제 1개를 지정할 수 있습니다. 알림 메시지는 S3 Glacier가 작업을 마친 후에만 전송됩니다. 작업 요청 1건당 SNS 주제를 1개 지정하는 것 외에도 모든 가져오기 작업에서 작업 알림 메시지를 전송할 수 있도록 볼트 알림을 구성하는 방법도 있습니다. 자세한 내용은 볼트 알림 구성 설정(PUT notification-configuration) 섹션을 참조하세요.

  • 작업 세부 정보 가져오기: 작업이 진행 중일 때 작업 설명(GET JobID) 요청을 통해 작업 상태 정보를 가져올 수 있습니다. 그러나 Amazon SNS 알림을 사용하여 작업 완료 시점을 확인하는 방법이 더욱 효율적입니다.

참고

알림 메시지를 통해 가져오는 정보나 작업 설명(GET JobID)을 호출하여 가져오는 정보 모두 동일합니다.

특정 이벤트에 대해 볼트에 알림 구성을 추가하고 작업 시작을 요청할 때 SNS 토픽까지 지정한다면 S3 Glacier는 두 알림 메시지를 모두 전송합니다. 자세한 내용은 볼트 알림 구성 설정(PUT notification-configuration) 섹션을 참조하세요.

볼트 인벤토리

S3 Glacier는 아카이브를 볼트에 처음 업데이트한 날짜부터 대략 하루에 한 번씩 볼트 인벤토리를 업데이트합니다. 마지막 인벤토리 이후 볼트에 대한 아카이브 추가 또는 삭제가 없는 경우에는 인벤토리 데이터가 업데이트되지 않습니다. 볼트 인벤토리 작업이 시작되면 S3 Glacier는 마지막으로 작성한 인벤토리, 즉 실시간 데이터가 아닌 특정 시점 스냅샷을 반환합니다.

S3 Glacier가 볼트를 위한 첫 번째 인벤토리를 생성한 뒤, 인벤토리 검색이 가능해지기까지는 일반적으로 0.5~1일이 걸립니다.

아카이브를 업로드할 때마다 볼트 인벤토리를 가져오는 것이 불필요하다고 생각할 수도 있습니다. 그러나 S3 Glacier에 업로드하는 아카이브에 대한 메타데이터를 연결하여 클라이언트 측에서 데이터베이스를 관리한다고 가정해보자. 볼트 인벤토리가 필요에 따라 데이터베이스 정보와 실제 볼트 인벤토리를 서로 조정하는 데 얼마나 유용한지 알게 될 것입니다. 인벤토리 작업 출력으로 반환되는 데이터 필드에 대한 자세한 내용은 응답 본문 단원을 참조하십시오.

범위가 지정된 인벤토리 가져오기

아카이브 생성 날짜를 기준으로 필터링하거나 제한을 설정하여 가져오는 인벤토리 항목 수를 제한할 수 있습니다.

아카이브 생성 날짜에 따른 필터링

아카이브가 StartDateEndDate 사이에서 생성되었을 때 작업 시작 요청에서 두 파라미터 값을 지정하여 인벤토리 항목을 가져올 수 있습니다. 그러면 StartDate 당일 또는 이후 EndDate 이전에 생성된 아카이브가 반환됩니다. StartDate 없이 EndDate만 입력하면 StartDate 당일 또는 이후에 생성된 모든 아카이브의 인벤토리를 가져옵니다. 반대로 EndDate 없이 StartDate만 입력하면 EndDate 이전에 생성된 모든 아카이브의 인벤토리를 가져옵니다.

가져오기 1건당 인벤토리 항목 수 제한

작업 시작 요청에서 Limit 파라미터를 설정하여 반환되는 인벤토리 항목 수를 제한할 수 있습니다. 그러면 지정된 Limit까지 인벤토리 항목이 인벤토리 작업 출력에 포함됩니다. 인벤토리 항목이 더 있는 경우에는 결과에 페이지가 매겨집니다. 작업을 마친 후 작업 설명(GET JobID)을 통해 후속 작업 시작 요청에서 사용하는 마커를 확인할 수 있습니다. 마커는 다음 인벤토리 항목을 가져오는 시작점을 나타냅니다. 이전 작업 설명 출력의 마커로 작업 시작 요청을 반복 생성해 전체 인벤토리를 페이지별로 살펴볼 수 있습니다. null을 반환하는 작업 설명 마커를 얻을 때까지 이를 계속합니다. null은 사용할 수 있는 인벤토리 항목이 더 이상 없음을 나타냅니다.

Limit 파라미터는 날짜 범위 파라미터와 함께 사용할 수 있습니다.

범위가 지정된 아카이브 가져오기

아카이브 가져오기는 아카이브 전체 또는 범위로 시작할 수 있습니다. 범위를 지정하여 아카이브를 가져올 때는 반환할 바이트 범위를 지정합니다. 지정하는 범위는 메가바이트(MB)로 정렬되어야 합니다. 다시 말해 범위의 시작 값이 1MB로 나누어져야 하고, 범위의 종료 값 + 1이 1MB로 나누어지거나 아카이브의 끝과 같아야 합니다. 범위가 지정된 아카이브 가져오기가 메가바이트 정렬을 따르지 않으면 400 응답이 반환됩니다. 그 밖에 작업 출력 가져오기(작업 출력 가져오기(GET output))를 사용해 다운로드하는 데이터의 체크섬 값을 가져오려면 범위가 트리-해시로 정렬되어야 합니다. 트리-해시 정렬 범위에 대한 자세한 내용은 데이터 다운로드 시 체크섬 수신 단원을 참조하십시오.

신속, 표준, 벌크 계층

아카이브 검색 작업을 시작할 때 요청 본문의 Tier 필드에서 다음 옵션 중 하나를 지정할 수 있습니다.

  • Expedited: 신속 계층을 사용하면 아카이브 복원에 대한 긴급 요청이 필요한 경우, 빠르게 데이터에 액세스할 수 있습니다. 가장 큰 아카이브(250MB+)를 제외하고 신속 계층을 사용하여 액세스되는 데이터는 일반적으로 1~5분 안에 사용할 수 있습니다.

  • Standard: 표준 계층을 사용하면 몇 시간 내에 모든 아카이브에 액세스할 수 있습니다. 표준 계층을 사용하여 액세스하는 데이터는 일반적으로 3~5시간 안에 사용할 수 있습니다. 이 옵션은 계층 옵션을 지정하지 않는 작업 요청의 기본 옵션입니다.

  • Bulk: 벌크 계층은 S3 Glacier에서 가장 저렴한 계층으로서 페타바이트 단위의 대용량 데이터도 저렴한 비용으로 하루 만에 검색할 수 있습니다. 벌크 계층을 사용하여 액세스하는 데이터는 일반적으로 5~12시간 안에 사용할 수 있습니다.

신속 및 벌크 가져오기에 대한 자세한 내용은 AWS Console을 사용하여 S3 Glacier 아카이브 검색하기 단원을 참조하십시오.

요청

작업을 시작하려면 HTTP POST 메서드를 사용하여 작업 요청을 볼트의 jobs 하위 리소스로 전송합니다. 또한 요청의 JSON 문서에서 작업 요청에 대한 세부 정보를 지정합니다. 작업 유형은 Type 필드로 지정됩니다. 필요하다면 SNSTopic 필드를 지정하여 S3 Glacier가 작업 완료 후 알림 메시지를 게시할 수 있는 Amazon SNS 토픽을 나타낼 수 있습니다.

참고

토픽이 존재하지 않는 경우, 알림 메시지를 Amazon SNS에 게시하려면 토픽을 직접 생성해야 합니다. S3 Glacier는 사용자를 위해 토픽을 생성하지 않습니다. 토픽에는 반드시 S3 Glacier 볼트의 발행물을 수신할 권한이 있어야 합니다. S3 Glacier는 볼트가 토픽을 게시할 권한이 있는지 확인하지 않습니다. 권한이 올바로 구성되어 있지 않으면 작업이 완료되더라도 알림 메시지가 수신되지 않을 수도 있습니다.

조건

다음은 작업 시작을 위한 요청 구문입니다.

POST /AccountId/vaults/VaultName/jobs HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue x-amz-glacier-version: 2012-06-01 { "jobParameters": { "ArchiveId": "string", "Description": "string", "Format": "string", "InventoryRetrievalParameters": { "EndDate": "string", "Limit": "string", "Marker": "string", "StartDate": "string" }, "OutputLocation": { "S3": { "AccessControlList": [ { "Grantee": { "DisplayName": "string", "EmailAddress": "string", "ID": "string", "Type": "string", "URI": "string" }, "Permission": "string" } ], "BucketName": "string", "CannedACL": "string", "Encryption": { "EncryptionType": "string", "KMSContext": "string", "KMSKeyId": "string" }, "Prefix": "string", "StorageClass": "string", "Tagging": { "string" : "string" }, "UserMetadata": { "string" : "string" } } }, "RetrievalByteRange": "string", "SelectParameters": { "Expression": "string", "ExpressionType": "string", "InputSerialization": { "csv": { "Comments": "string", "FieldDelimiter": "string", "FileHeaderInfo": "string", "QuoteCharacter": "string", "QuoteEscapeCharacter": "string", "RecordDelimiter": "string" } }, "OutputSerialization": { "csv": { "FieldDelimiter": "string", "QuoteCharacter": "string", "QuoteEscapeCharacter": "string", "QuoteFields": "string", "RecordDelimiter": "string" } } }, "SNSTopic": "string", "Tier": "string", "Type": "string" } }
참고

AccountId값은 볼트를 소유한 계정의 AWS 계정 ID입니다. AWS 계정 ID 또는 선택적으로 하나의 '-'(하이픈)을 지정할 수 있습니다. 이 경우에 Amazon S3 Glacier는 요청 서명에 사용된 보안안 인증 정보와 연결된 AWS 계정 ID를 사용합니다. 계정 ID를 사용하는 경우 ID에 하이픈('-')을 포함할 수 없습니다.

요청 본문

요청은 요청 본문에서 JSON 형식의 다음 데이터를 받습니다.

jobParameters

작업 정보를 지정하기 위한 옵션을 제공합니다.

유형: jobParameters 객체

필수 항목 여부: 예

응답

S3 Glacier가 작업을 생성합니다. 응답으로 작업 URI를 반환합니다.

조건

HTTP/1.1 202 Accepted x-amzn-RequestId: x-amzn-RequestId Date: Date Location: location x-amz-job-id: jobId x-amz-job-output-path: jobOutputPath

응답 헤더

헤더 설명
Location

작업의 상대적 URI 경로입니다. 이 URI 경로를 사용해 작업 상태를 알아볼 수 있습니다. 자세한 내용은 작업 설명(GET JobID) 섹션을 참조하세요.

유형: 문자열

기본값: None

x-amz-job-id

작업 ID입니다. 이 값은 Location 헤더에도 포함됩니다.

유형: 문자열

기본값: None

x-amz-job-output-path

선택 결과가 저장되는 위치까지의 경로입니다.

유형: 문자열

기본값: None

응답 본문

이 작업은 응답 본문을 반환하지 않습니다.

오류

이 작업에는 모든 S3 Glacier 작업에 일반적으로 발생할 수 있는 오류 외에 다음 오류도 포함됩니다. 오류에 대한 자세한 내용과 오류 코드 목록은 단원을 참조하십시오.

코드 설명 HTTP 상태 코드 유형
InsufficientCapacityException 신속 요청을 처리할 수 있는 용량이 부족한 경우에 반환됩니다. 이 오류는 신속 가져오기에만 적용될 뿐 표준 또는 벌크 가져오기에는 적용되지 않습니다. 503 Service Unavailable 서버

예시

요청 예제: 아카이브 가져오기 작업 시작

POST /-/vaults/examplevault/jobs HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2 { "Type": "archive-retrieval", "ArchiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId", "Description": "My archive description", "SNSTopic": "arn:aws:sns:us-west-2:111111111111:Glacier-ArchiveRetrieval-topic-Example", "Tier" : "Bulk" }

다음은 요청 본문의 RetrievalByteRange 필드에서 가져올 아카이브 범위를 지정하는 예제입니다.

{ "Type": "archive-retrieval", "ArchiveId": "NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId", "Description": "My archive description", "RetrievalByteRange": "2097152-4194303", "SNSTopic": "arn:aws:sns:us-west-2:111111111111:Glacier-ArchiveRetrieval-topic-Example", "Tier" : "Bulk" }

응답의 예

HTTP/1.1 202 Accepted x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID x-amz-job-id: HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID

요청 예제: 인벤토리 가져오기 작업 시작

다음은 인벤토리 가져오기 작업을 시작하여 examplevault 볼트에서 아카이브 목록을 가져오는 요청 예제입니다. 요청 본문에서 FormatCSV로 설정되어 있으므로 인벤토리가 CSV 형식으로 반환된다는 것을 의미합니다.

POST /-/vaults/examplevault/jobs HTTP/1.1 Host: glacier.us-west-2.amazonaws.com x-amz-Date: 20170210T120000Z Content-Type: application/x-www-form-urlencoded x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2 { "Type": "inventory-retrieval", "Description": "My inventory job", "Format": "CSV", "SNSTopic": "arn:aws:sns:us-west-2:111111111111:Glacier-InventoryRetrieval-topic-Example" }

응답의 예

HTTP/1.1 202 Accepted x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID x-amz-job-id: HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID

요청 예제: 한도가 설정된 날짜 필터링을 사용하여 인벤토리 가져오기 작업을 시작하고, 다음 인벤토리 항목 페이지를 가져오기 위한 후속 요청을 시작합니다.

다음은 날짜 필터링을 사용하고 최대 수를 설정하여 볼트 인벤토리 가져오기 작업을 시작하는 요청 예제입니다.

{ "ArchiveId": null, "Description": null, "Format": "CSV", "RetrievalByteRange": null, "SNSTopic": null, "Type": "inventory-retrieval", "InventoryRetrievalParameters": { "StartDate": "2013-12-04T21:25:42Z", "EndDate": "2013-12-05T21:25:42Z", "Limit" : "10000" }, }

다음은 작업 설명(GET JobID)에서 가져온 마커를 사용하여 다음 인벤토리 항목 페이지를 가져오는 후속 요청의 예제입니다.

{ "ArchiveId": null, "Description": null, "Format": "CSV", "RetrievalByteRange": null, "SNSTopic": null, "Type": "inventory-retrieval", "InventoryRetrievalParameters": { "StartDate": "2013-12-04T21:25:42Z", "EndDate": "2013-12-05T21:25:42Z", "Limit": "10000", "Marker": "vyS0t2jHQe5qbcDggIeD50chS1SXwYMrkVKo0KHiTUjEYxBGCqRLKaiySzdN7QXGVVV5XZpNVG67pCZ_uykQXFMLaxOSu2hO_-5C0AtWMDrfo7LgVOyfnveDRuOSecUo3Ueq7K0" }, }

응답의 예

HTTP/1.1 202 Accepted x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID x-amz-job-id: HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID x-amz-job-output-path: test/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID/

관련 단원