

 **이 페이지는 볼트와 2012년부터 원래 REST API를 사용하는 Amazon Glacier 서비스의 기존 고객만 사용할 수 있습니다.**

아카이브 스토리지 솔루션을 찾고 있다면 Amazon S3의 Amazon Glacier 스토리지 클래스, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive를 사용하는 것이 좋습니다. 이러한 스토리지 옵션에 대한 자세한 내용은 [Amazon Glacier 스토리지 클래스](https://aws.amazon.com/s3/storage-classes/glacier/)를 참조하세요.

Amazon Glacier(기존 독립 실행형 볼트 기반 서비스)는 더 이상 신규 고객을 받지 않습니다. Amazon Glacier는 데이터를 볼트에 저장하고 Amazon S3 및 Amazon S3 Glacier 스토리지 클래스와 구별되는 자체 API를 갖춘 독립 실행형 서비스입니다. 기존 데이터는 Amazon Glacier에서 무기한으로 안전하게 보관되며 액세스 가능합니다. 마이그레이션은 필요하지 않습니다. 저비용 장기 아카이브 스토리지의 경우는 [S3 버킷 기반 API, 전체 가용성, 저렴한 비용 및 서비스 통합을 통해 우수한 고객 경험을 제공하는 Amazon S3 Glacier 스토리지 클래스](https://aws.amazon.com/s3/storage-classes/glacier/)를 AWS 권장합니다. S3 APIs AWS 리전 AWS 향상된 기능을 원하는 경우 [Amazon Glacier 볼트에서 Amazon S3 Glacier 스토리지 클래스로 데이터를 전송하기 위한AWS 솔루션 지침](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)을 사용하여 Amazon S3 Glacier 스토리지 클래스로 마이그레이션하는 것이 좋습니다.

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

# 4단계: 아카이브를 Amazon Glacier의 볼트에서 다운로드
<a name="getting-started-download-archive"></a>

이 단계에서는 이전에 [3단계: 아카이브를 Amazon Glacier의 볼트에 업로드](getting-started-upload-archive.md)에 업로드한 샘플 아카이브를 다운로드합니다.

 

**중요**  
Amazon Glacier는 콘솔을 제공합니다. 그러나 업로드, 다운로드 또는 삭제와 같은 아카이브 작업을 수행하려면 AWS Command Line Interface (CLI) 또는 쓰기 코드를 사용해야 합니다. 콘솔은 아카이브 작업을 지원하지 않습니다. 예를 들어 사진, 비디오 및 기타 문서와 같은 데이터를 업로드하려면 AWS CLI 를 사용하거나 REST API를 직접 사용하거나 AWS SDKs를 사용하여 요청 코드를 작성해야 합니다.  
를 설치하려면 단원을 AWS CLI참조하십시오[AWS Command Line Interface](https://aws.amazon.com/cli/). 에서 Amazon Glacier를 사용하는 방법에 대한 자세한 내용은 Amazon Glacier 참조 AWS CLI를 참조하세요. [AWS CLI Amazon Glacier](https://docs.aws.amazon.com/cli/latest/reference/glacier/index.html) 를 사용하여 Amazon Glacier AWS CLI 에 아카이브를 업로드하는 예제는 [에서 Amazon Glacier 사용을 참조하세요 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-glacier.html).

일반적으로 Amazon Glacier에서 데이터를 가져오는 작업은 2단계 프로세스로 구성됩니다.

1. 검색 작업을 시작합니다.

1. 작업이 완료되면 데이터 바이트를 다운로드합니다.

아카이브를 Amazon Glacier에서 가져오려면 먼저 작업을 시작합니다. 이후 작업이 끝나면 데이터를 다운로드합니다. 아카이브 가져오기에 대한 자세한 내용은 [Amazon Glacier 아카이브 가져오기](downloading-an-archive-two-steps.md) 섹션을 참조하세요.

요청의 액세스 시간은 신속, 표준 또는 벌크 중 사용자가 선택하는 검색 옵션에 따라서 결정됩니다. 매우 큰 아카이브(250MB\$1)를 제외한 모든 경우, 신속 검색을 사용하여 액세스된 데이터는 일반적으로 1\$15분 안에 사용할 수 있습니다. 표준 옵션으로 아카이브를 검색할 때는 일반적으로 작업을 마치는 데 3\$15시간이 걸립니다. 벌크 가져오기는 보통 5\$112시간 안에 완료됩니다. 여러 가져오기 옵션에 대한 자세한 내용은 [Amazon Glacier FAQ](https://aws.amazon.com/glacier/faqs/#Data-retrievals)를 참조하세요. 데이터 가져오기 요금에 대한 자세한 내용은 [Amazon Glacier 요금 페이지](https://aws.amazon.com/s3/glacier/pricing/)를 참조하세요.

다음 토픽의 코드 예시는 작업을 시작하여 끝날 때까지 기다린 후 아카이브의 데이터를 다운로드합니다.

**Topics**
+ [를 사용하여 Amazon Glacier의 볼트에서 아카이브 다운로드 AWS SDK for Java](getting-started-download-archive-java.md)
+ [를 사용하여 Amazon Glacier의 볼트에서 아카이브 다운로드 AWS SDK for .NET](getting-started-download-archive-dotnet.md)

# 를 사용하여 Amazon Glacier의 볼트에서 아카이브 다운로드 AWS SDK for Java
<a name="getting-started-download-archive-java"></a>

다음 Java 코드 예제에서는의 상위 수준 API AWS SDK for Java 를 사용하여 이전 단계에서 업로드한 아카이브를 다운로드합니다. 코드 예제에서 다음 사항에 유의합니다.
+ 코드 예제는 `AmazonGlacierClient` 클래스 인스턴스를 생성합니다.
+ 이 코드는 미국 서부(오레곤) 리전(`us-west-2`)을 사용하여 [2단계: Amazon Glacier에서 볼트 생성](getting-started-create-vault.md)에서 볼트를 만든 위치와 일치하도록 합니다.
+ 이 예시는 AWS SDK for Java의 하이레벨 API에서 `ArchiveTransferManager` 클래스의 `download` API 작업을 사용합니다. 이 예시에서는 Amazon Simple Notification Service(SNS) 토픽 및 해당 토픽을 구독하는 Amazon Simple Queue Service(Amazon SQS) 대기열을 생성합니다. 의 지침에 따라 AWS Identity and Access Management (IAM) 관리자 사용자를 생성한 경우 [1단계: Amazon Glacier를 시작하기 전에](getting-started-before-you-begin.md)사용자는 Amazon SNS 주제 및 Amazon SQS 대기열을 생성하고 사용하는 데 필요한 IAM 권한을 가집니다.

이 예제의 실행 방법에 대한 단계별 지침은 [Eclipse를 사용하여 Amazon Glacier의 Java 예 실행](using-aws-sdk-for-java.md#setting-up-and-testing-sdk-java) 섹션을 참조하세요. 반드시 [3단계: 아카이브를 Amazon Glacier의 볼트에 업로드](getting-started-upload-archive.md)에서 업로드한 파일의 아카이브 ID를 사용하여 아래와 같이 코드를 업데이트해야 합니다.

**Example -를 사용하여 아카이브 다운로드 AWS SDK for Java**  <a name="GS_ExampleDownloadArchiveJava"></a>

```
import java.io.File;
import java.io.IOException;

import com.amazonaws.auth.profile.ProfileCredentialsProvider;
import com.amazonaws.services.glacier.AmazonGlacierClient;
import com.amazonaws.services.glacier.transfer.ArchiveTransferManager;
import com.amazonaws.services.sns.AmazonSNSClient;
import com.amazonaws.services.sqs.AmazonSQSClient;

public class AmazonGlacierDownloadArchive_GettingStarted {
    public static String vaultName = "examplevault";
    public static String archiveId = "*** provide archive ID ***";
    public static String downloadFilePath  = "*** provide location to download archive ***";
    
    public static AmazonGlacierClient glacierClient;
    public static AmazonSQSClient sqsClient;
    public static AmazonSNSClient snsClient;
    
    public static void main(String[] args) throws IOException {
        
        
    	ProfileCredentialsProvider credentials = new ProfileCredentialsProvider();
    	
        glacierClient = new AmazonGlacierClient(credentials);        
        sqsClient = new AmazonSQSClient(credentials);
        snsClient = new AmazonSNSClient(credentials);
        
        glacierClient.setEndpoint("glacier.us-west-2.amazonaws.com");
        sqsClient.setEndpoint("sqs.us-west-2.amazonaws.com");
        snsClient.setEndpoint("sns.us-west-2.amazonaws.com");

        try {
            ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);
            
            atm.download(vaultName, archiveId, new File(downloadFilePath));
            
        } catch (Exception e)
        {
            System.err.println(e);
        }
    }
}
```

# 를 사용하여 Amazon Glacier의 볼트에서 아카이브 다운로드 AWS SDK for .NET
<a name="getting-started-download-archive-dotnet"></a>

다음 C\$1 코드 예제에서는의 상위 수준 API AWS SDK for .NET 를 사용하여 이전에에 업로드한 아카이브를 다운로드합니다[를 사용하여 Amazon Glacier의 볼트에 아카이브 업로드 AWS SDK for .NET](getting-started-upload-archive-dotnet.md). 코드 예제에서 다음 사항에 유의합니다.

 
+ 이 예는 지정된 Amazon Glacier 리전 엔드포인트에 대한 `ArchiveTransferManager` 클래스 인스턴스를 생성합니다.
+ 이 코드 예시는 미국 서부(오리건) 리전(`us-west-2`)을 사용하여 이전에 [2단계: Amazon Glacier에서 볼트 생성](getting-started-create-vault.md)에서 볼트를 생성한 위치와 일치하도록 합니다.
+ 이 예시에서는 `ArchiveTransferManager` 클래스의 `Download` API 작업을 사용하여 사용자의 아카이브를 다운로드합니다. 이 예시에서는 Amazon Simple Notification Service(SNS) 토픽 및 해당 토픽을 구독하는 Amazon Simple Queue Service(Amazon SQS) 대기열을 생성합니다. 의 지침에 따라 AWS Identity and Access Management (IAM) 관리자 사용자를 생성한 경우 [1단계: Amazon Glacier를 시작하기 전에](getting-started-before-you-begin.md)사용자는 Amazon SNS 주제 및 Amazon SQS 대기열을 생성하고 사용하는 데 필요한 IAM 권한을 가집니다.
+ 이제 이 예제에서는 아카이브 가져오기 작업을 시작하고, 그 아카이브 대기열을 사용할 수 있도록 폴링합니다. 아카이브를 사용할 수 있게 되면 다운로드가 시작됩니다. 검색 시간에 대한 자세한 내용은 [아카이브 검색 옵션](downloading-an-archive-two-steps.md#api-downloading-an-archive-two-steps-retrieval-options) 섹션을 참조하세요.

이 예제의 실행 방법에 대한 단계별 지침은 [코드 예제 실행](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet) 섹션을 참조하세요. 반드시 [3단계: 아카이브를 Amazon Glacier의 볼트에 업로드](getting-started-upload-archive.md)에서 업로드한 파일의 아카이브 ID를 사용하여 아래와 같이 코드를 업데이트해야 합니다.

**Example -의 상위 수준 API를 사용하여 아카이브 다운로드 AWS SDK for .NET**  <a name="GS_ExampleDownloadArchiveDotNet"></a>

```
using System;
using Amazon.Glacier;
using Amazon.Glacier.Transfer;
using Amazon.Runtime;

namespace glacier.amazon.com.rproxy.govskope.us.docsamples
{
    class ArchiveDownloadHighLevel_GettingStarted
    {
        static string vaultName = "examplevault";
        static string archiveId = "*** Provide archive ID ***";
        static string downloadFilePath = "*** Provide the file name and path to where to store the download ***";

        public static void Main(string[] args)
        {
            try
            {
                var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);

                var options = new DownloadOptions();
                options.StreamTransferProgress += ArchiveDownloadHighLevel_GettingStarted.progress;
                // Download an archive.
                Console.WriteLine("Intiating the archive retrieval job and then polling SQS queue for the archive to be available.");
                Console.WriteLine("Once the archive is available, downloading will begin.");
                manager.Download(vaultName, archiveId, downloadFilePath, options);
                Console.WriteLine("To continue, press Enter");
                Console.ReadKey();
            }
            catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
            catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
            catch (Exception e) { Console.WriteLine(e.Message); }
            Console.WriteLine("To continue, press Enter");
            Console.ReadKey();
        }

        static int currentPercentage = -1;
        static void progress(object sender, StreamTransferProgressArgs args)
        {
            if (args.PercentDone != currentPercentage)
            {
                currentPercentage = args.PercentDone;
                Console.WriteLine("Downloaded {0}%", args.PercentDone);
            }
        }
    }
}
```