기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 AWS 리전 대한 설정 AWS SDK for Java 2.x
SDK 클라이언트는 클라이언트를 생성할 때 AWS 리전 지정한 특정 AWS 서비스 의에 연결합니다. 이 구성을 사용하면 애플리케이션이 해당 지리적 영역의 리소스와 AWS 상호 작용할 수 있습니다. 리전을 명시적으로 설정하지 않고 서비스 클라이언트를 생성하면 SDK는 외부 구성의 기본 리전을 사용합니다.
AWS 리전에 명시적으로 구성
리전을 명시적으로 설정하려면 Regions
클래스에서 열거형 리전을 사용하여 클라이언트를 생성하려면 클라이언트 빌더의 region
메서드를 사용합니다.
Ec2Client ec2 = Ec2Client.builder() .region(Region.US_WEST_2) .build();
사용하려는 리전이 Region
클래스의 열거형에 속하지 않는 경우 of
메서드를 사용하여 새 리전을 만들 수 있습니다. SDK를 업그레이드하지 않고 새 리전에 액세스 할 수 있는 메서드입니다.
Region newRegion = Region.of("us-east-42"); Ec2Client ec2 = Ec2Client.builder() .region(newRegion) .build();
참고
빌더로 클라이언트를 빌드한 후에는 변경할 수 없으며 AWS 리전 변경할 수 없습니다. 동일한 서비스에 AWS 리전 대해 여러를 사용해야 하는 경우 리전당 하나씩 여러 클라이언트를 생성해야 합니다.
SDK가 환경에서 기본값을 자동으로 결정 AWS 리전 하도록 허용
코드가 Amazon EC2 또는에서 실행될 때 코드가 실행 중인 AWS 리전 것과 동일한를 사용하도록 클라이언트를 구성할 AWS Lambda수 있습니다. 이렇게 하면 실행 중인 환경에서 코드를 분리하고 지연 시간이나 중복성을 AWS 리전 줄이기 위해 애플리케이션을 여러에 더 쉽게 배포할 수 있습니다.
기본 AWS 리전 공급자 체인을 사용하여 환경에서 리전을 결정하려면 클라이언트 빌더의 create
메서드를 사용합니다.
Ec2Client ec2 = Ec2Client.create();
다른 방법으로 클라이언트를 구성할 수도 있지만 리전을 설정할 수는 없습니다. SDK는 기본 리전 공급자 체인 AWS 리전 을 사용하여를 선택합니다.
Ec2Client ec2Client = Ec2Client.builder() .credentialsProvider(ProfileCredentialsProvider.builder() .profileName("my-profile") .build()) .build();
region
메서 AWS 리전 드를 사용하여를 명시적으로 설정하지 않으면 SDK는 기본 리전 공급자 체인을 참조하여 사용할 리전을 결정합니다.
기본 AWS 리전 공급자 체인 이해
SDK는 다음 단계를 수행하여 AWS 리전을 찾습니다.
-
빌더 자체에서
region
메서드를 사용하여 설정된 명시적 리전이 다른 리전보다 우선합니다. -
SDK는 JVM 시스템 속성을 찾고 발견된 경우 해당 값을
aws.region
사용합니다. -
AWS_REGION
환경 변수를 확인합니다. 설정한 경우 클라이언트를 구성하는 데 해당 리전이 사용됩니다.참고
Lambda 컨테이너는이 환경 변수를 설정합니다.
-
SDK는 AWS 공유 구성 및 자격 증명 파일에서 활성 프로필을 확인합니다.
region
속성이 있는 경우 SDK는 속성을 사용합니다.default
프로필은AWS_PROFILE
환경 변수 또는aws.profile
JVM 시스템 속성으로 재정의되지 않는 한 활성 프로필입니다. SDK가 동일한 프로필(default
프로필 포함)의 두 파일 모두에서region
속성을 찾으면 SDK는 공유 자격 증명 파일의 값을 사용합니다. -
SDK는 Amazon EC2 인스턴스 메타데이터 서비스(IMDS)를 사용하여 현재 실행 중인 Amazon EC2 인스턴스의 리전을 확인하려고 시도합니다.
-
보안을 강화하려면 SDK가 IMDS 버전 1을 사용하지 않도록 비활성화해야 합니다. IAM 역할 자격 증명을 안전하게 획득 섹션에 설명된 것과 동일한 설정을 사용하여 버전 1을 비활성화합니다.
-
-
이때까지도 SDK에서 여전히 리전을 찾지 못한 경우 클라이언트 생성이 실패하고 예외가 발생합니다.
AWS 애플리케이션을 개발할 때 일반적인 접근 방식은 공유 구성 파일을 사용하여 로컬 개발을 위한 리전을 설정하고 기본 리전 공급자 체인을 사용하여 애플리케이션이 AWS 인프라에서 실행될 때 리전을 결정하는 것입니다. 이렇게 하면 클라이언트 생성 작업이 크게 간소화되며 애플리케이션을 이식 가능한 형태로 유지됩니다.
리전에서 서비스를 사용할 수 있는지 확인합니다.
리전에서 특정를 AWS 서비스 사용할 수 있는지 확인하려면 서비스 클라이언트에서 정적 serviceMetadata
메서드를 사용합니다.
DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);
이전 코드 조각은 DynamoDB 서비스가 있는 긴 AWS 리전 코드 목록을 출력합니다.
af-south-1 ap-east-1 ap-northeast-1 ap-northeast-2 ap-northeast-3 ap-south-1 ap-south-2 ap-southeast-1 ...
코드를 사용하여 서비스 클라이언트가 사용해야 하는 리전의 리전 클래스 열거를
예를 들어 코드를 사용하여 리전에서 DynamoDB로 작업하려면 최소한 다음 구성으로 DynamoDB 클라이언트를 ap-northeast-2
생성합니다.
DynamoDbClient ddb = DynamoDbClient.builder() .region(Region.AP_NORTHEAST_2) .build();
특정 엔드포인트 선택
특정 상황(예: 기능이 일반 사용 가능성으로 전환되기 전에 서비스의 미리 보기 기능을 테스트하는 경우)에서는 리전에서 특정 엔드포인트를 지정해야 할 수도 있습니다. 이러한 상황에서는 endpointOverride
메서드를 호출하여 서비스 클라이언트를 구성할 수 있습니다.
예를 들어 특정 엔드포인트와 함께 유럽(아일랜드) 리전을 사용하도록 Amazon EC2 클라이언트를 구성하려면 다음 코드를 사용합니다.
Ec2Client ec2 = Ec2Client.builder() .region(Region.EU_WEST_1) .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com")) .build();
현재 리전 목록과 모든 AWS 서비스에 해당하는 엔드포인트는 리전 및 엔드포인트를 참조하세요.