The AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 31일에 end-of-support
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
서비스 클라이언트 생성
요청을 하려면 Amazon Web Services먼저 서비스 클라이언트 객체를 생성합니다. 권장 방법은 서비스 클라이언트 빌더를 사용하는 것입니다.
각 AWS 서비스 에는 서비스 API의 각 작업에 대한 메서드가 있는 서비스 인터페이스가 있습니다. 예를 들어 DynamoDB의 서비스 인터페이스 이름은 AmazonDynamoDBClient입니다. 각 서비스 인터페이스마다 서비스 인터페이스의 구현을 생성하는 데 사용할 수 있는 해당하는 클라이언트 빌더가 있습니다. 의 클라이언트 빌더 클래스 이름은 AmazonDynamoDBClientBuilder DynamoDB 입니다.
클라이언트 빌더 가져오기
클라이언트 빌더의 인스턴스를 가져오려면 다음 예에서처럼 정적 팩토리 메서드인 standard
를 사용합니다.
AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard();
빌더가 있으면 빌더 API에서 여러 유용한 setter를 사용하여 클라이언트의 속성을 사용자 지정할 수 있습니다. 예를 들면 다음과 같이 사용자 지정 리전 및 사용자 지정 자격 증명 공급자를 설정할 수 있습니다.
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
참고
유용한 withXXX
메서드는 builder
객체를 반환하므로 보다 읽기 쉽고 편리하도록 메서드 호출을 묶을 수 있습니다. 원하는 속성을 구성한 후에는 build
메서드를 호출하여 클라이언트를 생성할 수 있습니다. 클라이언트는 한 번 생성되고 나면 변경할 수 없으며 setRegion
또는 setEndpoint
호출이 실패합니다.
빌더는 동일한 구성을 사용하여 여러 클라이언트를 생성할 수 있습니다. 애플리케이션을 작성할 때는 빌더가 변경 가능하며 스레드 세이프가 아님에 주의해야 합니다.
다음 코드에서는 빌더가 클라이언트 인스턴스의 팩토리로 사용됩니다.
public class DynamoDBClientFactory { private final AmazonDynamoDBClientBuilder builder = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")); public AmazonDynamoDB createClient() { return builder.build(); } }
빌더는 ClientConfiguration 및 RequestMetricCollector의 유용한 setter와, RequestHandler2의 사용자 지정 목록도 표시합니다.
다음은 모든 구성 가능한 속성을 재정의하는 전체 예제입니다.
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .withClientConfiguration(new ClientConfiguration().withRequestTimeout(5000)) .withMetricsCollector(new MyCustomMetricsCollector()) .withRequestHandlers(new MyCustomRequestHandler(), new MyOtherCustomRequestHandler) .build();
비동기 클라이언트 생성
AWS SDK for Java 에는 모든 서비스(예외)에 대한 비동기(또는 비동기) 클라이언트 Amazon S3와 모든 서비스에 대한 해당 비동기 클라이언트 빌더가 있습니다.
기본 ExecutorService를 사용하여 비동기 DynamoDB 클라이언트를 생성하려면
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withRegion(Regions.US_WEST_2) .withCredentials(new ProfileCredentialsProvider("myProfile")) .build();
동기(또는 동기화) 클라이언트 빌더가 지원하는 구성 옵션 외에도, 비동기 클라이언트를 사용할 때 사용자 지정 ExecutorFactory를 설정하여 비동기 클라이언트가 사용하는 ExecutorService
을 변경할 수 있습니다. ExecutorFactory
는 함수형 인터페이스이므로 Java 8 Lambda 표현식 및 메서드 참조와 상호 운용됩니다.
사용자 지정 executor를 사용하여 비동기 클라이언트를 생성하려면
AmazonDynamoDBAsync ddbAsync = AmazonDynamoDBAsyncClientBuilder.standard() .withExecutorFactory(() -> Executors.newFixedThreadPool(10)) .build();
DefaultClient 사용
동기 및 비동기 클라이언트 빌더에는 모두 defaultClient
라는 또 다른 팩토리 메서드가 있습니다. 이 메서드는 기본 구성을 사용하여 서비스 클라이언트를 생성하며, 기본 공급자 체인을 사용하여 자격 증명 및 AWS 리전을 로드합니다. 자격 증명 또는 리전을 애플리케이션이 실행 중인 환경에서 확인할 수 없으면 defaultClient
호출이 실패합니다. AWS 자격 증명 및 리전 결정 방법에 대한 자세한 내용은 자격 증명 및 선택 작업을 참조하세요. AWS 리전
기본 서비스 클라이언트를 생성하려면
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient();
클라이언트 수명 주기
SDK의 서비스 클라이언트는 스레드 세이프이며, 성능을 최대화하려면 서비스 클라이언트를 수명이 긴 객체로 다루어야 합니다. 각 클라이언트마다 고유한 연결 풀 리소스가 있습니다. 더 이상 필요하지 않은 경우 리소스 누수를 방지하기 위해 클라이언트를 명시적으로 종료하십시오.
클라이언트를 명시적으로 종료하려면 shutdown
메서드를 호출합니다. shutdown
을 호출한 후에는 모든 클라이언트 리소스가 해제되고 클라이언트를 사용할 수 없습니다.
클라이언트를 종료하려면
AmazonDynamoDB ddb = AmazonDynamoDBClientBuilder.defaultClient(); ddb.shutdown(); // Client is now unusable