Amazon Glacier와 함께 AWS SDK for Java 사용 - Amazon Glacier

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

아카이브 스토리지 솔루션을 찾고 있다면 Amazon S3의 Amazon Glacier 스토리지 클래스, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive를 사용하는 것이 좋습니다. 이러한 스토리지 옵션에 대한 자세한 내용은 Amazon Glacier 스토리지 클래스를 참조하세요.

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

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

Amazon Glacier와 함께 AWS SDK for Java 사용

Amazon Glacier와 함께 AWS SDK 사용에서 설명한 것과 같이 AWS SDK for Java는 Amazon Glacier(Amazon Glacier)에 하이레벨 및 로우레벨 API를 모두 제공합니다. AWS SDK for Java 다운로드에 대한 자세한 내용은 Amazon SDK for Java를 참조하세요.

참고

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

로우레벨 API 사용

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

예를 들어 AmazonGlacierClient 클래스는 볼트를 생성할 수 있는 createVault 메서드를 제공합니다. 이 메서드는 기본적인 볼트 생성 REST 작업에 매핑됩니다(볼트 만들기(PUT vault) 참조). 이 메서드를 사용하려면 먼저 다음 Java 코드 조각과 같이 Amazon Glacier 응답을 수신할 CreateVaultResult 객체 인스턴스를 생성해야 합니다.

AmazonGlacierClient client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-west-2.amazonaws.com/"); CreateVaultRequest request = new CreateVaultRequest() .withAccountId("-") .withVaultName(vaultName); CreateVaultResult result = client.createVault(createVaultRequest);

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

참고

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

하이레벨 API 사용

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

예를 들어 다음 Java 코드 조각은 하이레벨 메서드인 upload를 사용하여 아카이브를 업로드합니다.

String vaultName = "examplevault"; String archiveToUpload = "c:/folder/exampleArchive.zip"; ArchiveTransferManager atm = new ArchiveTransferManager(client, credentials); String archiveId = atm.upload(vaultName, "Tax 2012 documents", new File(archiveToUpload)).getArchiveId();

단, 실행하는 모든 작업은 ArchiveTransferManager 객체를 생성할 때 지정한 AWS 리전에 적용됩니다. AWS 리전을 지정하지 않으면 AWS SDK for Java가 us-east-1을 기본 AWS 리전으로 설정합니다.

이 안내서에서 언급하는 하이레벨 예제는 모두 이러한 패턴을 사용합니다.

참고

하이레벨 ArchiveTransferManager 클래스는 AmazonGlacierClient 인스턴스 또는 AWSCredentials 인스턴스로 작성할 수 있습니다.

Eclipse를 사용하여 Amazon Glacier의 Java 예 실행

Java 코드 예제를 시작하는 가장 쉬운 방법은 최신 AWS Toolkit for Eclipse를 설치하는 것입니다. 최신 toolkit의 설치 및 업데이트 방법에 대한 자세한 내용은 http://aws.amazon.com/eclipse에서 확인할 수 있습니다. 다음은 이 섹션에서 제공하는 Java 코드 예제를 작성 및 테스트할 수 있는 작업에 대한 설명입니다.

Java 코드 생성 예제의 일반적인 프로세스

1

AWS SDK for Java 토픽 Amazon SDK for Java AWS 보안 인증 정보에 설명된대로 사용자의 AWS 보안 인증 정보에 사용할 기본 보안 인증 정보 프로필을 생성합니다.

2

Eclipse에서 새 AWS Java 프로젝트를 생성합니다. 프로젝트는 AWS SDK for Java로 사전 구성되어 있습니다.

3

읽고 있는 섹션에서 코드를 프로젝트로 복사합니다.

4

필요한 데이터를 모두 제공하여 코드를 업데이트합니다. 예를 들어, 파일을 업로드하는 경우 파일 경로 및 버킷 이름을 제공합니다.

5

코드를 실행합니다. AWS Management 콘솔을 사용하여 객체가 생성되었는지 확인합니다. AWS Management 콘솔에 대한 자세한 내용은 http://aws.amazon.com/console/을 참조하세요.

엔드포인트 설정

기본적으로 AWS SDK for Java는 https://glacier.us-east-1.amazonaws.com 엔드포인트를 사용합니다. 다음 Java 코드 조각과 같이 엔드포인트를 명시적으로 설정할 수 있습니다.

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

client = new AmazonGlacierClient(credentials); client.setEndpoint("glacier.us-west-2.amazonaws.com");

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

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"); ArchiveTransferManager atm = new ArchiveTransferManager(glacierClient, sqsClient, snsClient);

지원되는 AWS 리전 목록 및 엔드포인트는 Amazon Glacier 액세스 섹션을 참조하세요.