서비스별 엔드포인트 - AWS SDKs 및 도구

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

서비스별 엔드포인트

서비스별 엔드포인트 구성은 API 요청에 대해 사용자가 선택한 엔드포인트를 사용하고 선택을 유지할 수 있는 옵션을 제공합니다. 이러한 설정은 로컬 엔드포인트, VPC 엔드포인트 및 타사 로컬 AWS 개발 환경을 지원할 수 있는 유연성을 제공합니다. 테스트 환경과 프로덕션 환경에 서로 다른 엔드포인트를 사용할 수 있습니다. 개별 AWS 서비스서비스에 대한 엔드포인트 URL을 지정할 수 있습니다.

다음을 사용하여 이 기능을 구성하십시오.

endpoint_url - 공유 AWS config 파일 설정
AWS_ENDPOINT_URL - 환경 변수
aws.endpointUrl - JVM 시스템 속성: Java/Kotlin만 해당

프로파일 내에서 직접 지정하거나 환경 변수로 지정하는 경우 이 설정은 모든 서비스 요청에 사용되는 엔드포인트를 지정합니다. 이 엔드포인트는 구성된 모든 서비스별 엔드포인트에 의해 재정의됩니다.

공유 AWS config 파일의 services 섹션 내에서이 설정을 사용하여 특정 서비스에 대한 사용자 지정 엔드포인트를 설정할 수도 있습니다. services 섹션에서 사용할 모든 서비스 식별자 키 목록은 서비스별 엔드포인트 식별자 섹션을 참조하십시오.

기본값: none

유효한 값: 엔드포인트의 스키마와 호스트가 포함된 URL. URL에는 하나 이상의 경로 세그먼트가 포함된 경로 구성 요소가 선택적으로 포함될 수 있습니다.

AWS_ENDPOINT_URL_<SERVICE> - 환경 변수
aws.endpointUrl<ServiceName> - JVM 시스템 속성: Java/Kotlin만 해당

AWS_ENDPOINT_URL_<SERVICE>, 여기서 <SERVICE>는 AWS 서비스 식별자이며,는 특정 서비스에 대한 사용자 지정 엔드포인트를 설정합니다. 모든 서비스별 환경 변수 목록은 서비스별 엔드포인트 식별자을 참조하십시오.

이 서비스별 엔드포인트는 AWS_ENDPOINT_URL에 설정된 모든 글로벌 엔드포인트보다 우선합니다.

기본값: none

유효한 값: 엔드포인트의 스키마와 호스트가 포함된 URL. URL에는 하나 이상의 경로 세그먼트가 포함된 경로 구성 요소가 선택적으로 포함될 수 있습니다.

ignore_configured_endpoint_urls - 공유 AWS config 파일 설정
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - 환경 변수
aws.ignoreConfiguredEndpointUrls - JVM 시스템 속성: Java/Kotlin만 해당

이 설정은 모든 사용자 지정 엔드포인트 구성을 무시하는 데 사용됩니다.

코드에 설정되거나 서비스 클라이언트 자체에 설정된 명시적 엔드포인트는 이 설정과 상관없이 사용된다는 점에 유의하십시오. 예를 들어 --endpoint-url 명령줄 파라미터를 AWS CLI 명령과 함께 포함하거나 엔드포인트 URL을 클라이언트 생성자에 전달하는 것은 항상 적용됩니다.

기본값: false

유효값:

  • true— SDK 또는 도구는 공유 config 파일 또는 환경 변수에서 엔드포인트 URL 설정을 위한 사용자 지정 구성 옵션을 읽지 않습니다.

  • false— SDK 또는 도구는 공유 config 파일 또는 환경 변수에서 사용 가능한 사용자 제공 엔드포인트를 사용합니다.

환경 변수를 사용한 엔드포인트 구성

모든 서비스에 대한 요청을 사용자 지정 엔드포인트 URL로 라우팅하려면 AWS_ENDPOINT_URL 글로벌 환경 변수를 설정하십시오.

export AWS_ENDPOINT_URL=http://localhost:4567

특정에 대한 요청을 사용자 지정 엔드포인트 URL AWS 서비스 로 라우팅하려면 AWS_ENDPOINT_URL_<SERVICE> 환경 변수를 사용합니다.의 Amazon DynamoDB 는 serviceId입니다DynamoDB. 이 서비스의 경우 엔드포인트 URL 환경 변수는 AWS_ENDPOINT_URL_DYNAMODB입니다. 이 엔드포인트는 이서비스에 대해 AWS_ENDPOINT_URL에 설정된 글로벌 엔드포인트보다 우선합니다.

export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678

또 다른 예로의 AWS Elastic Beanstalk 는 serviceId입니다Elastic Beanstalk. AWS 서비스 식별자는 모든 공백을 밑줄로 바꾸고 모든 문자를 대문자serviceId로 하여 API 모델의를 기반으로 합니다. 이 서비스에 대한 엔드포인트를 설정하려면 해당 환경 변수는 AWS_ENDPOINT_URL_ELASTIC_BEANSTALK입니다. 모든 서비스별 환경 변수 목록은 서비스별 엔드포인트 식별자을 참조하십시오.

export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:5567

공유 config 파일을 사용하여 엔드포인트를 구성합니다.

공유 config 파일에서는 다양한 기능을 위해 여러 위치에서 endpoint_url이 사용됩니다.

  • profile 내에서 직접 지정된 endpoint_url은 해당 엔드포인트를 글로벌 엔드포인트로 만듭니다.

  • services 섹션 내의 서비스 식별자 키 아래에 중첩된 endpoint_url은 해당 엔드포인트가 해당 서비스에 대한 요청에만 적용되로고 만듭니다. 공유 config 파일에서 services 섹션을 정의하는 방법에 대한 자세한 내용은 구성 파일 형식를 참조하십시오.

다음 예제에서는 services 정의를 사용하여 Amazon S3에 대한 서비스별 엔드포인트 URL과 다른 모든 서비스에 사용되는 사용자 지정 글로벌 엔드포인트를 구성합니다.

[profile dev-s3-specific-and-global] endpoint_url = http://localhost:1234 services = s3-specific [services s3-specific] s3 = endpoint_url = https://play.min.io:9000

단일 프로파일로 여러 서비스에 대한 엔드포인트를 구성할 수 있습니다. 이 예제에서는 Amazon S3 및 AWS Elastic Beanstalk 에 대한 서비스별 엔드포인트 URLs 동일한 프로파일에 설정하는 방법을 보여줍니다.의 AWS Elastic Beanstalk 는 serviceId 입니다Elastic Beanstalk. AWS 서비스 식별자는 모든 공백을 밑줄로 바꾸고 모든 문자를 소문자로 표시serviceId하여 API 모델의를 기반으로 합니다. 따라서 서비스 식별자 키가 elastic_beanstalk이(가)되고 이 서비스에 대한 설정이 elastic_beanstalk = 줄에서 시작됩니다. services 섹션에서 사용할 모든 서비스 식별자 키 목록은 서비스별 엔드포인트 식별자을 참조하십시오.

[services testing-s3-and-eb] s3 = endpoint_url = http://localhost:4567 elastic_beanstalk = endpoint_url = http://localhost:8000 [profile dev] services = testing-s3-and-eb

서비스 구성 섹션은 여러 프로파일에서 사용할 수 있습니다. 예를 들어 두 프로파일이 동일한 services 정의를 사용하면서 다른 프로파일 속성을 변경할 수 있습니다.

[services testing-s3] s3 = endpoint_url = https://localhost:4567 [profile testing-json] output = json services = testing-s3 [profile testing-text] output = text services = testing-s3

역할 기반 보안 인증을 사용하여 프로파일의 엔드포인트 구성

프로파일에 역할 기반 보안 인증 정보가 IAM 가정 역할 기능에 대한 source_profile 파라미터를 통해 구성된 경우 SDK는 지정된 프로파일에 대한 서비스 구성만 사용합니다. 역할이 연결된 프로파일은 사용하지 않습니다. 예를 들어 다음과 같은 공유 config 파일을 사용합니다.

[profile A] credential_source = Ec2InstanceMetadata endpoint_url = https://profile-a-endpoint.aws/ [profile B] source_profile = A role_arn = arn:aws:iam::123456789012:role/roleB services = profileB [services profileB] ec2 = endpoint_url = https://profile-b-ec2-endpoint.aws

프로파일 B를 사용하고 코드에서 Amazon EC2로 호출하는 경우 엔드포인트는 https://profile-b-ec2-endpoint.aws로 확인됩니다. 코드에서 다른 서비스에 요청을 하는 경우 엔드포인트 확인은 사용자 지정 로직을 따르지 않습니다. 엔드포인트는 프로파일 A에 정의된 글로벌 엔드포인트로 확인되지 않습니다. 글로벌 엔드포인트가 프로파일 B에 적용되려면 프로파일 B 내에서 직접 endpoint_url을 설정해야 합니다. source_profile 설정에 대한 자세한 내용은 역할 보안 인증 제공자 수임 단원을 참조하십시오.

설정의 우선 순위

이 기능의 설정은 동시에 사용할 수 있지만 서비스당 하나의 값만 우선합니다. 지정된에 대한 API 호출 AWS 서비스의 경우 다음 순서가 값을 선택하는 데 사용됩니다.

  1. 코드나 서비스 클라이언트 자체에 설정된 모든 명시적 설정은 다른 모든 설정보다 우선합니다.

    • 의 경우 AWS CLI명령--endpoint-url줄 파라미터에서 제공하는 값입니다. SDK의 경우 명시적 할당은 AWS 서비스 클라이언트 또는 구성 객체를 인스턴스화할 때 설정한 파라미터의 형태를 취할 수 있습니다.

  2. 서비스별 환경 변수에서 제공하는 값(예: AWS_ENDPOINT_URL_DYNAMODB).

  3. AWS_ENDPOINT_URL 글로벌 엔드포인트 환경 변수에 의해 제공되는 값입니다.

  4. 공유 config 파일의 services 섹션 내에 서비스 식별자 키 아래 중첩된 endpoint_url 설정에서 제공하는 값.

  5. 공유 config 파일의 profile 내에서 직접 지정된 endpoint_url 설정에 의해 제공되는 값.

  6. 각의 기본 엔드포인트 URL AWS 서비스 이 마지막으로 사용됩니다.

AWS SDKs와의 호환성

다음 SDK는 이 주제에서 설명하는 기능 및 설정을 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 AWS SDK for Java 및 AWS SDK for Kotlin 에서만 지원됩니다.