AWS SDK for Java 2.x에서 싱글톤 서비스 클라이언트 인스턴스 사용 - AWS SDK for Java 2.x

AWS SDK for Java 2.x에서 싱글톤 서비스 클라이언트 인스턴스 사용

AWS SDK for Java 2.x의 서비스 클라이언트는 스레드에서 안전합니다. 각 서비스 클라이언트의 인스턴스 하나를 만들고 애플리케이션 전체에서 재사용할 수 있습니다. 이 접근 방식은 성능을 개선하고 리소스를 보다 효율적으로 관리합니다.

싱글톤 서비스 클라이언트의 이점

연결 풀링

서비스 클라이언트는 내부 HTTP 연결 풀을 유지합니다. 이러한 풀을 만들고 삭제하는 데는 비용이 많이 듭니다. 클라이언트를 재사용하면 이러한 풀이 요청 간에 효율적으로 공유됩니다.

초기화 오버헤드 감축

클라이언트를 만들려면 구성을 로드하고, 자격 증명을 설정하고, 내부 구성 요소를 초기화해야 합니다. 싱글톤 인스턴스는 이러한 오버헤드를 없앱니다.

리소스 활용 향상

싱글톤 클라이언트는 많은 클라이언트 인스턴스를 만들 때 발생할 수 있는 리소스 소진을 방지합니다.

싱글톤 서비스 클라이언트 만들기 및 사용

다음 예제 코드에서는 싱글톤 서비스 클라이언트를 만들고 사용하는 방법을 보여줍니다.

// Create one instance and use it throughout the application. public class ServiceClientSource { private static final S3Client s3Client = S3Client.create(); public static S3Client getS3Client() { return s3Client; } }

각 작업에 대해 새 클라이언트를 만들지 않습니다.

// This approach creates unnecessary overhead. public void badExample() { try (S3Client s3 = S3Client.create()) { s3.listBuckets(); } }

중요 고려 사항

  • 서비스 클라이언트는 스레드에서 안전합니다. 여러 스레드에서 안전하게 공유할 수 있습니다.

  • 애플리케이션이 종료되거나 클라이언트가 더 이상 필요하지 않은 경우에만 클라이언트를 닫습니다. 애플리케이션 수준에서 client.close() 리소스 또는 try-with-resources를 사용합니다.

  • 리전 또는 자격 증명 등의 다른 구성이 필요한 경우 각 구성에 대해 별도의 싱글톤 인스턴스를 만듭니다.

Spring 등의 종속성 주입 프레임워크를 사용하는 경우 서비스 클라이언트를 싱글톤 bean으로 구성합니다. 이렇게 하면 적절하게 수명 주기를 관리할 수 있습니다.