JVM 시스템 속성을 사용하여 AWS SDK for Java 및 AWS SDK for Kotlin를 글로벌로 구성 - AWS SDK 및 도구

JVM 시스템 속성을 사용하여 AWS SDK for Java 및 AWS SDK for Kotlin를 글로벌로 구성

JVM 시스템 속성은 AWS SDK for Java와 AWS SDK for Kotlin처럼 JVM에서 실행되는 SDK에 대해 구성 옵션과 자격 증명을 지정할 수 있는 또 다른 방법을 제공합니다. SDK에서 지원하는 JVM 시스템 속성 목록은 설정 참조를 확인하세요.

옵션의 우선 순위
  • JVM 시스템 속성을 사용해 설정 값을 지정하면, 환경 변수나 공유 AWS config 및·credentials 파일의 프로파일에서 불러온 어떤 값보다도 우선하여 적용됩니다.

  • 환경 변수를 사용하여 설정을 지정할 경우, 공유 AWS configcredentials 파일의 프로파일에서 로드된 값을 재정의합니다.

JVM 시스템 속성 설정 방법

여러 가지 방법으로 JVM 시스템 속성을 설정할 수 있습니다.

명령줄에서

-D 스위치를 사용해 명령을 호출할 때, java 명령줄에서 JVM 시스템 속성을 설정합니다. 다음 명령은 코드에서 값을 명시적으로 재정의하지 않는 한, 모든 서비스 클라이언트에 대해 AWS 리전을 글로벌로 구성합니다.

java -Daws.region=us-east-1 -jar <your_application.jar> <other_arguments>

여러 JVM 시스템 속성을 설정해야 하는 경우, -D 스위치를 여러 번 지정하면 됩니다.

환경 변수 사용

애플리케이션을 실행하기 위해 JVM을 간접적으로 호출하는 명령줄에 접근할 수 없다면, JAVA_TOOL_OPTIONS 환경 변수를 사용해 명령줄 옵션을 구성할 수 있습니다. 이 방식은 Java 런타임에서 AWS Lambda 함수를 실행하거나, 임베디드 JVM에서 코드를 실행하는 경우 등에 유용합니다.

다음 예제는 코드에서 값을 명시적으로 재정의하지 않는 한, 모든 서비스 클라이언트에 대해 AWS 리전을 글로벌로 구성합니다.

Linux, macOS, or Unix
$ export JAVA_TOOL_OPTIONS="-Daws.region=us-east-1"

환경 변수를 설정하면 사용되는 값이 변경되어 쉘 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다. 쉘의 스타트업 스크립트에서 변수를 설정하면 해당 변수가 향후 세션에서도 영구적으로 적용되도록 할 수 있습니다.

Windows Command Prompt
C:\> setx JAVA_TOOL_OPTIONS -Daws.region=us-east-1

환경 변수를 설정하는 데 set를 사용하면 사용되는 값이 변경되어 현재 명령 프롬프트 세션이 종료될 때까지 또는 변수를 다른 값으로 설정할 때까지 유지됩니다. 환경 변수를 설정하는 데 setx를 사용하면 현재 명령 프롬프트 세션과 명령 실행 후 생성한 모든 명령 프롬프트 세션에서 사용되는 값이 변경됩니다. 명령을 실행하는 시점에 이미 실행 중인 다른 명령 쉘에는 영향을 주지 않습니다.

런타임 시

다음 예제와 같이 System.setProperty 방법을 사용하면, 코드 내에서 런타임 시 JVM 시스템 속성을 설정할 수도 있습니다.

System.setProperty("aws.region", "us-east-1");
중요

SDK 서비스 클라이언트를 초기화하기 에 JVM 시스템 속성을 모두 설정해야 합니다. 그러지 않으면 서비스 클라이언트가 다른 값을 사용할 수 있습니다.