

 **이 페이지는 볼트와 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 스토리지 클래스로 마이그레이션하는 것이 좋습니다.

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

# Amazon Glacier와 함께 AWS SDK for .NET 사용
<a name="using-aws-sdk-for-dot-net"></a>

`AWSSDK.dll`에서 AWS SDK for .NET API를 사용할 수 있습니다. AWS SDK for .NET 다운로드에 대한 자세한 내용은 [샘플 코드 라이브러리](https://aws.amazon.com/sdkfornet/)를 참조하세요. [Amazon Glacier에서 AWS SDKs 사용](using-aws-sdk.md)에서 설명한 것과 같이 AWS SDK for .NET은 하이레벨 API와 로우레벨 API를 모두 제공합니다.

**참고**  
로우레벨 API와 하이레벨 API는 Amazon Glacier에 액세스할 수 있도록 스레드 세이프 클라이언트를 제공합니다. 모범 사례로서 애플리케이션에서 클라이언트 하나를 생성한 후 스레드 간에 재사용해야 합니다.

**Topics**
+ [로우레벨 API 사용](#about-low-level-dotnet-api)
+ [하이레벨 API 사용](#about-high-level-dotnet-api)
+ [코드 예제 실행](#setting-up-and-testing-sdk-dotnet)
+ [엔드포인트 설정](#setting-sdk-dot-net-endpoint)

## 로우레벨 API 사용
<a name="about-low-level-dotnet-api"></a>

로우레벨 `AmazonGlacierClient` 클래스는 Amazon Glacier(Amazon Glacier)의 기본 REST 작업을 매핑하는 데 필요한 모든 메서드를 제공합니다([Amazon Glacier를 위한 API 참조](amazon-glacier-api.md)). 이러한 메서드를 직접 호출할 때는 먼저 해당하는 요청 객체를 생성한 후 메서드에서 작업에 대한 Amazon Glacier의 응답을 반환할 수 있도록 응답 객체를 제공해야 합니다.

예를 들어 `AmazonGlacierClient` 클래스는 볼트를 생성할 수 있는 `CreateVault` 메서드를 제공합니다. 이 메서드는 기본적인 볼트 생성 REST 작업에 매핑됩니다([볼트 만들기(PUT vault)](api-vault-put.md) 참조). 이 메서드를 사용하기 위해서는 먼저 다음 C\$1 코드 조각과 같이 `CreateVaultRequest` 및 `CreateVaultResponse` 클래스의 인스턴스를 생성하여 요청 정보를 제공하고 Amazon Glacier 응답을 수신해야 합니다.

 

```
AmazonGlacierClient client;
client = new AmazonGlacierClient(Amazon.RegionEndpoint.USEast1); 

CreateVaultRequest request = new CreateVaultRequest()
{
  AccountId = "-",
  VaultName = "*** Provide vault name ***"
};

CreateVaultResponse response = client.CreateVault(request);
```

이 안내서에서 언급하는 모든 로우레벨 샘플은 이러한 패턴을 사용합니다.

 

**참고**  
요청을 생성할 때는 선행하는 코드 세그먼트가 `AccountId`를 지정합니다. 하지만 AWS SDK for .NET을 사용할 때는 요청에서 `AccountId`가 옵션이기 때문에 이 안내서의 로우레벨 예제에서는 모두 이 값을 설정하지 않습니다. `AccountId`는 AWS 계정 ID입니다. 이 값은 요청 서명에 사용된 자격 증명과 연결된 AWS 계정 ID와 일치해야 합니다. AWS 계정 ID 또는 선택적으로 하나의 하이픈('-')을 지정할 수 있습니다. 이 경우에 Amazon Glacier는 요청 서명에 사용된 자격 증명과 연결된 AWS 계정 ID를 사용합니다. 계정 ID를 지정하는 경우에는 ID에 하이픈('-')을 추가하지 않습니다. AWS SDK for .NET을 사용하면서 계정 ID를 입력하지 않으면 라이브러리가 계정 ID를 '-'으로 설정합니다.

## 하이레벨 API 사용
<a name="about-high-level-dotnet-api"></a>

AWS SDK for .NET은 애플리케이션 배포를 더욱 간소화할 목적으로 로우레벨 API의 일부 메서드에 하이레벨 추상화를 구현할 수 있는 `ArchiveTransferManager` 클래스를 제공합니다. 그 밖에 `Upload`, `Download` 등 아카이브 작업에 유용한 메서드도 있습니다.

예를 들어 다음 C\$1 코드 조각은 하이레벨 메서드인 `Upload`를 사용하여 아카이브를 업로드합니다.

 

```
string vaultName = "examplevault";
string archiveToUpload = "c:\folder\exampleArchive.zip";

var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USEast1);
string archiveId = manager.Upload(vaultName, "archive description", archiveToUpload).ArchiveId;
```

단, 실행하는 모든 작업은 `ArchiveTransferManager` 객체를 생성할 때 지정한 AWS 리전에 적용됩니다. 이 안내서에서 언급하는 하이레벨 예제는 모두 이러한 패턴을 사용합니다.

 

**참고**  
하이레벨 `ArchiveTransferManager` 클래스는 여전히 로우레벨 `AmazonGlacierClient` 클라이언트가 필요하기 때문에 사용자가 명시적으로 전달하거나 `ArchiveTransferManager`가 클라이언트를 생성합니다.

## 코드 예제 실행
<a name="setting-up-and-testing-sdk-dotnet"></a>

.NET 코드 예제를 시작하는 가장 쉬운 방법은 AWS SDK for .NET를 설치하는 것입니다. 자세한 내용은 [Amazon SDK for .NET](https://aws.amazon.com/sdkfornet/)를 참조하세요.

다음은 이 안내서에서 제공되는 코드 예제의 테스트 단계를 간략히 나타낸 절차입니다.


**.NET 코드 생성 예제의 일반 프로세스(Visual Studio 사용)**  

|  |  | 
| --- |--- |
| 1 | Amazon SDK for .NET 토픽 [AWS 자격 증명 구성](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/creds-assign.html)에 설명된 대로 사용자의 AWS 자격 증명에 대한 자격 증명 프로필을 생성합니다.  | 
| 2 |  *AWS 빈 프로젝트* 템플릿을 사용하여 새 Visual Studio 프로젝트를 만듭니다.  | 
| 3 | 프로젝트 파일 `Program.cs`의 코드를 읽고 있는 섹션의 코드로 대체합니다. | 
| 4 |   코드를 실행합니다. AWS Management Console을 사용하여 객체가 생성되었는지 확인합니다. AWS Management Console에 대한 자세한 내용은 [https://aws.amazon.com/console/](https://aws.amazon.com/console/)을 참조하세요.  | 

## 엔드포인트 설정
<a name="setting-sdk-dot-net-endpoint"></a>

기본적으로 AWS SDK for .NET은 엔드포인트를 미국 서부(오레곤) 리전(`https://glacier.us-west-2.amazonaws.com`)으로 설정합니다. 다음 C\$1 코드 조각과 같이 엔드포인트를 다른 AWS 리전으로 설정하는 방법도 있습니다.

다음은 로우레벨 API에서 엔드포인트를 미국 서부(오레곤) 리전(`us-west-2`)으로 설정하는 방법을 나타낸 코드 조각입니다.

**Example**  

```
AmazonGlacierClient client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2);
```

다음은 하이레벨 API에서 엔드포인트를 미국 서부(오레곤) 리전으로 설정하는 방법을 나타낸 코드 조각입니다.

 

```
var manager = new ArchiveTransferManager(Amazon.RegionEndpoint.USWest2);
```

현재 지원되는 AWS 리전 및 엔드포인트 목록은 [Amazon Glacier 액세스](amazon-glacier-accessing.md) 섹션을 참조하세요.