AWS 리전 선택 - AWS SDK for Java 1.x

AWS SDK for Java 1.x는 2024년 7월 31일부터 유지 관리 모드로 전환되었으며 2025년 12월 31end-of-support일에 도달할 예정입니다. 새로운 기능, 가용성 개선 사항 및 보안 업데이트를 AWS SDK for Java 2.x 계속 받으려면 로 마이그레이션하는 것이 좋습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS 리전 선택

리전을 사용하면 특정 지리적 영역에 물리적으로 상주하는 AWS 서비스에 액세스할 수 있습니다. 이는 중복성은 물론, 데이터와 애플리케이션을 고객과 고객의 사용자가 액세스할 위치에 가까운 곳에서 실행 상태로 유지하는 데도 유용할 수 있습니다.

리전에서 서비스 가용성 확인

리전에서 특정 를 AWS 서비스 사용할 수 있는지 확인하려면 사용하려는 리전의 isServiceSupported 메서드를 사용합니다.

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

지정할 수 있는 리전에 대한 Regions 클래스 설명서를 참조하고, 쿼리할 서비스의 엔드포인트 접두사를 사용합니다. 각 서비스의 엔드포인트 접두사는 서비스 인터페이스에 정의되어 있습니다. 예를 들어 DynamoDB 엔드포인트 접두사는 AmazonDynamoDB 에 정의되어 있습니다.

리전 선택

의 버전 1.4부터는 리전 이름을 지정할 수 있으며 AWS SDK for Java SDK가 자동으로 적절한 엔드포인트를 선택합니다. 엔드포인트를 직접 선택하려면 Choosing a Specific Endpoint 단원을 참조하십시오.

리전을 명시적으로 설정하려면 Regions 열거형을 사용하는 것이 좋습니다. 이 열거형은 공개적으로 사용 가능한 모든 리전의 열거 값입니다. 열거형의 리전을 사용하여 클라이언트를 생성하려면 다음 코드를 사용합니다.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

사용할 리전이 Regions 열거형에 없으면 리전 이름을 나타내는 문자열을 사용하여 리전을 설정할 수 있습니다.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
참고

빌더를 사용하여 클라이언트를 빌드한 후에는 클라이언트가 변경 불가능하며 리전을 변경할 수 없습니다. 동일한 서비스에 AWS 리전 대해 여러 을 사용하는 경우 리전당 하나씩 여러 클라이언트를 생성해야 합니다.

특정 엔드포인트 선택

각 AWS 클라이언트는 클라이언트를 생성할 때 withEndpointConfiguration 메서드를 호출하여 리전 내에서 특정 엔드포인트를 사용하도록 구성할 수 있습니다.

예를 들어 유럽(아일랜드) 리전을 사용하도록 Amazon S3 클라이언트를 구성하려면 다음 코드를 사용합니다.

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .build();

현재 리전 목록과 모든 AWS 서비스에 해당하는 엔드포인트는 리전 및 엔드포인트를 참조하세요.

환경에서 리전을 자동으로 결정

중요

이 섹션은 클라이언트 빌더를 사용하여 AWS 서비스에 액세스하는 경우에만 적용됩니다. 클라이언트 구성자를 사용하여 생성된 AWS 클라이언트는 환경에서 리전을 자동으로 결정하지 않고 대신 기본 SDK 리전()을 사용합니다USEast1.

Amazon EC2 또는 Lambda에서 를 실행할 때 코드가 실행 중인 것과 동일한 리전을 사용하도록 클라이언트를 구성할 수 있습니다. 이렇게 하면 실행 중인 환경에서 코드가 분리되므로 낮은 지연 시간과 중복성을 위해 손쉽게 애플리케이션을 여러 리전에 배포할 수 있습니다.

클라이언트 빌더를 사용하여 가 코드가 실행 중인 리전을 SDK 자동으로 감지하도록 해야 합니다.

기본 자격 증명/리전 공급자 체인을 사용하여 환경에서 리전을 결정하려면 클라이언트 빌더의 defaultClient 메서드를 사용합니다.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

이렇게 하면 standard 뒤에 build를 사용할 때와 똑같이 작동합니다.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

withRegion 메서드를 사용하여 리전을 명시적으로 설정하지 않은 경우 는 기본 리전 공급자 체인을 SDK 참조하여 사용할 리전을 결정해 봅니다.

기본 리전 공급자 체인

다음은 리전 조회 프로세스입니다.

  1. 빌더 자체에 대해 withRegion 또는 setRegion을 사용하여 설정한 명시적 리전을 다른 어떤 것보다 우선합니다.

  2. AWS_REGION 환경 변수를 확인합니다. 설정한 경우 클라이언트를 구성하는 데 해당 리전이 사용됩니다.

    참고

    이 환경 변수는 Lambda 컨테이너에 의해 설정됩니다.

  3. 는 AWS 공유 구성 파일(일반적으로 에 위치)을 SDK 확인합니다~/.aws/config. 리전 속성이 있는 경우 는 해당 속성을 SDK 사용합니다.

    • AWS_CONFIG_FILE 환경 변수는 공유 구성 파일의 위치를 사용자 지정하는 데 사용할 수 있습니다.

    • AWS_PROFILE 환경 변수 또는 aws.profile 시스템 속성을 사용하여 에서 로드하는 프로파일을 사용자 지정할 수 있습니다SDK.

  4. 는 Amazon EC2 인스턴스 메타데이터 서비스를 사용하여 현재 실행 중인 Amazon EC2 인스턴스의 리전을 확인하려고 SDK 시도합니다.

  5. 이 시점까지 가 SDK 여전히 리전을 찾지 못한 경우 예외를 제외하고 클라이언트 생성에 실패합니다.

AWS 애플리케이션을 개발할 때 일반적인 접근 방식은 공유 구성 파일(기본 자격 증명 공급자 체인 사용 에 설명됨)을 사용하여 로컬 개발을 위한 리전을 설정하고 AWS 인프라에서 실행될 때 기본 리전 공급자 체인을 사용하여 리전을 결정하는 것입니다. 이렇게 하면 클라이언트 생성 작업이 크게 간소화되며 애플리케이션을 이식 가능한 형태로 유지됩니다.