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

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

서비스별 엔드포인트

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

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

endpoint_url- 공유 AWS config파일 설정
AWS_ENDPOINT_URL - 환경 변수
aws.endpointUrl- JVM 시스템 속성: 자바/코틀린 전용

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

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

기본값: none

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

AWS_ENDPOINT_URL_<SERVICE> - 환경 변수
aws.endpointUrl<ServiceName>- JVM 시스템 속성: 자바/코틀린만 해당

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

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

기본값: none

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

ignore_configured_endpoint_urls- 공유 AWS config파일 설정
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS - 환경 변수
aws.ignoreConfiguredEndpointUrls- JVM 시스템 속성: 자바/코틀린 전용

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

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

기본값: false

유효한 값:

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

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

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

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

export AWS_ENDPOINT_URL=http://localhost:4567

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

export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678

또 다른 예로, AWS Elastic Beanstalk a가 serviceId 있습니다 Elastic Beanstalk. 그 AWS 서비스 식별자는 API 모델을 기반으로 모든 공백을 serviceId 밑줄로 바꾸고 모든 문자를 대문자로 표시합니다. 이 서비스에 대한 엔드포인트를 설정하려면 해당 환경 변수는 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 URL S3에 사용할 서비스별 엔드포인트와 다른 모든 서비스에 사용할 사용자 지정 글로벌 엔드포인트를 구성합니다.

[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의 URLs 서비스별 엔드포인트를 설정하는 방법을 보여줍니다. AWS Elastic Beanstalk 동일한 프로필에서. AWS Elastic Beanstalk 가 serviceId 있습니다 Elastic Beanstalk. 그 AWS 서비스 식별자는 API 모델을 기반으로 모든 공백을 serviceId 밑줄로 바꾸고 모든 문자를 소문자로 바꿉니다. 따라서 서비스 식별자 키가 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

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

역할 수임 기능을 위한 source_profile IAM 매개 변수를 통해 구성된 역할 기반 자격 증명이 프로필에 있는 경우 는 지정된 프로필에 대한 서비스 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

Bprofile을 사용하고 코드를 EC2 Amazon에 호출하면 엔드포인트는 다음과 같이 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

다음은 이 항목에 설명된 기능 및 설정을 SDKs 지원합니다. 모든 일부 예외가 기록됩니다. 모든 JVM 시스템 속성 설정은 에서 지원됩니다. AWS SDK for Java 그리고 AWS SDK for Kotlin 오직.