AWS

AWS JAVA sdk 버전 관리에 대하여

와니's(Wani) 2021. 3. 15. 10:46

도입부

우리는 프로젝트를 진행하면서 AWS 대부분 사용합니다.(S3 , SQS 등등)

 

 

Java 개발자다 보니까 Java sdk를 이용하게 되는데, 스프링프레임워크에서 제공되는 Spring cloud aws가 있고,AWS에서 제공하는 Java aws sdk가 있습니다.

 

 

둘중 하나를 선택하셔서 사용해도 무방하지만, 저는 aws sdk를 사용하는게 더 익숙하기에 해당 sdk를 사용하고 있었습니다.

 

 

AWS문서를 보던 도중에 문득 궁금한 점이 생겼습니다. SDK버전 1.x와 2.x가 나뉘어져 있더군요!

 

 

현재 1.x버전을 이용하고 있었는데, "내가 사용하는 버전이 지원이 종료되나?" 라는 의문이 생겼고 바로 질문을 드렸습니다

본문

 

 

 

한국 아마존 유저그룹에 질문을 했는데 다음과 같은 답변을 받을 수 있었습니다.

 

 

만약에 우리가 사용하는 주요 버전이 1버전 이지만 , 언젠가는 지원이 종료될 수도 있는것이고 필요에 따라서 내가 사용하던 API들이 없어질 경우도 생각을 해야합니다.

 

SDK 1.x , 2.x 의 차이점

Java 2.x부터 새로운 기능이 추가되었었는데, 다음과 같은 기능들이 추가가 되었습니다.

  • 고유한 HTTP 클라이언트를 구성할 수 있다.
  • 비동기 클라이언트는 이제 진정한 비 차단이며 CompletableFuture 객체를 반환합니다.
  • 여러 페이지를 반환하는 작업에는 자동 페이지 응답이 있습니다.
  • AWS Lambda 함수의 SDK 시작 시간 성능이 향상되었습니다.

 

JAVA 1.x 및 2.x 용 SDK를 같이 사용하는 방법

프로젝트에서 Java용 AWS Sdk의 두 개의 버전을 모두 사용할수 있는데, 다음과 같이 두개의 버전을 제공할 수있습니다.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-bom</artifactId>
            <version>1.11.428</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
          <groupId>software.amazon.awssdk</groupId>
          <artifactId>bom</artifactId>
          <version>2.1.0</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
      <groupId>com.amazonaws</groupId>
      <artifactId>aws-java-sdk-s3</artifactId>
    </dependency>
    <dependency>
      <groupId>software.amazon.awssdk</groupId>
      <artifactId>dynamodb</artifactId>
    </dependency>
</dependencies>

 

버전 지원 장표 보는법

해당 url을 통해 자신의 언어에 맞는 AWS SDK가 지원되는지 확인할 수 있습니다.

https://docs.aws.amazon.com/ko_kr/credref/latest/refdocs/version-support-matrix.html

 

참고

https://docs.aws.amazon.com/ko_kr/credref/latest/refdocs/maint-policy.html

https://docs.aws.amazon.com/ko_kr/credref/latest/refdocs/version-support-matrix.html

https://docs.aws.amazon.com/ko_kr/sdk-for-java/latest/migration-guide/side-by-side.html