View a markdown version of this page

EMR Serverless 애플리케이션을 위한 IPv6 서브넷 구성 - Amazon EMR

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

EMR Serverless 애플리케이션을 위한 IPv6 서브넷 구성

Amazon EMR Serverless를 사용하면 Amazon Virtual Private Cloud(Amazon VPC)에서 IPv6를 통해 Apache Spark 및 Apache Hive 작업을 실행할 수 있습니다. 듀얼 스택(IPv4 및 IPv6) 또는 IPv6-only 서브넷을 제공하는 경우 EMR Serverless는 해당 서브넷의 주소 지정 모드를 사용하여 작업을 실행합니다. 그러면 작업이 VPC의 IPv6 엔드포인트와 외부 IPv6 엔드포인트에 도달할 수 있습니다. IPv6-only 서브넷은 IPv6를 통해 자동으로 실행됩니다. 듀얼 스택 서브넷의 경우에 설명된 대로 구성 속성을 사용하여 IPv6를 활성화합니다IPv6 속성 구성.

주요 이점 이해

IPv6를 통해 EMR Serverless 애플리케이션을 실행하면 다음과 같은 이점이 있습니다.

  • 더 큰 주소 공간 - IPv6는 IPv4보다 훨씬 큰 주소 공간을 제공하므로 많은 작업자를 실행하는 VPCs 및 서브넷에서 IPv4 주소 소진을 방지하는 데 도움이 됩니다.

  • 듀얼 스택 및 IPv6-only 네트워킹 - IPv4 및 IPv6를 모두 사용하는 듀얼 스택 서브넷 또는 IPv6-only 서브넷에서 작업을 실행하여 IPv6를 호출하는 네트워킹 표준 및 규정 준수 요구 사항을 충족합니다.

  • IPv6 엔드포인트에 연결 - Spark 및 Hive 작업은 VPC 및 외부 IPv6 엔드포인트의 IPv6 엔드포인트 및 서비스에 도달할 수 있습니다.

  • 유연한 활성화 IPv6-only 서브넷은 IPv6를 통해 자동으로 실행됩니다. 듀얼 스택 서브넷의 경우 단일 구성 속성으로 IPv6를 활성화하므로 IPv6 적용 시기를 제어할 수 있습니다.

EMR Serverless가 주소 지정 모드를 결정하는 방법

EMR Serverless는 사용자가 제공하는 서브넷에서 애플리케이션의 주소 지정 모드를 결정합니다.

  • IPv4-only 서브넷 - 애플리케이션은 이전과 정확히 동일하게 IPv4-only을 실행합니다. 기존 애플리케이션에 대한 동작 변경은 없습니다.

  • 듀얼 스택 서브넷 - 애플리케이션은에 설명된 구성 속성으로 IPv6를 활성화하지 않는 한 IPvIPv4-only 실행합니다IPv6 속성 구성. IPv6를 활성화하면 애플리케이션이 IPv4와 IPv6를 모두 사용할 수 있습니다.

  • IPv6-only 서브넷 - 애플리케이션이 IPv6-only을 실행합니다. 모든 릴리스 버전에서 사용할 수 있습니다.

둘 이상의 서브넷을 제공하면 EMR Serverless는 집합의 모든 서브넷이 지원하는 하나의 주소 지정 모드에서 전체 애플리케이션을 실행합니다. 서브넷이 공통 모드를 공유하지 않으면 EMR Serverless는 요청을 거부합니다. 다음 사례에서는 집합에 포함할 수 있는 서브넷의 종류를 숫자와 조합에 관계없이 설명합니다.

  • IPv4-only 및 IPv6-only EMR Serverless는 검증 오류와 함께 세트를 거부합니다.

  • IPv6-only 및 듀얼 스택 - 집합은 집합의 모든 듀얼 스택 서브넷을 포함하여 IPv6-only을 실행합니다. 듀얼 스택 서브넷을 포함하여 세트의 모든 서브넷이의 사전 조건을 충족하는지 확인합니다VPC 및 서브넷 사전 조건 충족.

  • IPv4-only 및 듀얼 스택 - 집합은 집합의 모든 듀얼 스택 서브넷을 포함하여 IPv4-only을 실행합니다.

EMR Serverless는 애플리케이션이 시작될 때마다 현재 서브넷 및 구성에서 주소 지정 모드를 평가합니다. 실행 중인 애플리케이션은 시작된 모드를 유지하므로 다음 시작까지 변경 사항이 적용되지 않습니다.

IPv4-only, 듀얼 스택 및 IPv6-only 서브넷의 정의는 Amazon Virtual Private Cloud 사용 설명서의 VPC용 서브넷을 참조하세요.

VPC 및 서브넷 사전 조건 충족

IPv6 트래픽이 데이터 스토어와 작업이 사용하는 AWS 서비스에 도달할 수 있도록 VPC와 서브넷을 구성하는 것은 사용자의 책임입니다. IPv6 작업을 실행하기 전에 자체 VPC에서 다음을 구성합니다.

step-by-step 지침은 Amazon Virtual Private Cloud 사용 설명서를 참조하세요.

  • IPv6 Classless Inter-Domain Routing(CIDR) 블록을 서브넷과 연결합니다. 각 듀얼 스택 또는 IPv6-only 서브넷에는 IPv6 CIDR 블록이 있어야 합니다. Amazon Virtual Private Cloud 사용 설명서의 서브넷에서 IPv6 CIDR 블록 추가 또는 제거 및 VPC에 대한 IPv6 지원을 참조하세요.

  • 서브넷에 IPv6 주소 자동 할당을 켭니다. 서브넷은 애플리케이션이 IPv6 연결을 수신하도록 IPv6 주소를 자동으로 할당해야 합니다. Amazon Virtual Private Cloud 사용 설명서의 서브넷의 IP 주소 지정 속성 수정을 참조하세요.

  • 서브넷에서 DNS64(DNS 기반 IPv6-to-IPv4 변환)를 활성화하고 아웃바운드 NAT64(IPv6에서 IPv4로의 네트워크 주소 변환) 경로(IPv6 전용)를 제공합니다. IPv6-only 엔드포인트(예: IPv4-only 애플리케이션에이 값이 필요합니다. IPv6 서브넷에서 DNS64를 활성화하고 NAT64를 수행하는 NAT 게이트웨이를 통해 합성된 64:ff9b::/96 트래픽을 라우팅합니다. 듀얼 스택 애플리케이션은 IPv4-only 엔드포인트에 도달할 수 있으며이 작업이 필요하지 않습니다. IPv4 Amazon Virtual Private Cloud 사용 설명서의 DNS64 및 NAT64 및 NAT 게이트웨이를 참조하세요.

  • 프라이빗 아웃바운드 IPv6 트래픽을 위한 외부 전용 인터넷 게이트웨이를 제공합니다. 프라이빗 서브넷이 인터넷의 인바운드 연결을 수락하지 않고 아웃바운드 IPv6 연결을 시작하도록 허용하려면 외부 전용 인터넷 게이트웨이와 ::/0 경로를 추가합니다. Amazon Virtual Private Cloud 사용 설명서의 송신 전용 인터넷 게이트웨이를 사용하여 아웃바운드 IPv6 트래픽 활성화를 참조하세요.

  • 작업에 필요한 아웃바운드 IPv6 트래픽을 보안 그룹에 허용합니다. 기존 EMR Serverless 보안 그룹 규칙이 적용됩니다. 일반 VPC 및 보안 그룹 설정은 섹션을 참조하세요데이터에 연결하도록 EMR Serverless 애플리케이션에 대한 VPC 액세스 구성.

애플리케이션에 IPv6 구성

애플리케이션을 생성할 때 IPv6를 구성하거나 나중에 기존 애플리케이션을 업데이트하여 변경합니다. 두 경우 모두 EMR Serverless는에 설명된 --network-configuration대로의 서브넷에서 주소 지정 모드를 도출합니다EMR Serverless가 주소 지정 모드를 결정하는 방법. 듀얼 스택 서브넷의 경우에 설명된 속성으로 IPv6도 활성화합니다. IPv6-only 서브넷의 IPv6 속성 구성경우 속성이 필요하지 않습니다.

애플리케이션을 생성하는 방법

다음 절차에서는 듀얼 스택 서브넷을 사용하고 IPv6를 활성화하는 Spark 애플리케이션을 생성합니다. 시작하기 전에 사용하려는 각 서브넷이의 요구 사항을 충족하는지 확인합니다VPC 및 서브넷 사전 조건 충족.

다음 AWS CLI 명령은 듀얼 스택 서브넷이 있는 Spark 애플리케이션을 생성하고 IPv6를 활성화합니다.

aws emr-serverless create-application \ --type SPARK \ --name my-application-name \ --release-label emr-7.14.0 \ --network-configuration '{ "subnetIds": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"] }' \ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.emr-serverless.networking.ipv6.enabled": "true" } } ]' \ --region AWS_REGION

다음 값을 교체합니다.

  • my-application-name - 애플리케이션에 부여할 이름입니다.

  • subnet-id-1, subnet-id-2 - 사용하려는 듀얼 스택 서브넷의 IDs입니다.

  • security-group-id - 연결하려는 보안 그룹의 ID입니다.

  • AWS_REGION - 애플리케이션을 생성할 AWS 리전 입니다.

듀얼 스택 서브넷에서 작업은 기본적으로 IPv4를 사용합니다. Spark가 IPv6를 선호하도록 하려면에 설명된 엔진 기본 설정 속성을 설정합니다IPv6 속성 구성. Hive 애플리케이션의 경우 , --type HIVE hive-site 분류 및 hive.emr-serverless.networking.ipv6.enabled 속성을 사용합니다.

참고

IPv6-only 서브넷의 경우를 생략합니다--runtime-configuration. 애플리케이션은 IPv6를 통해 자동으로 실행되며 활성화 또는 엔진 기본 설정 속성을 설정하지 않습니다.

기존 애플리케이션을 업데이트하려면

  1. 애플리케이션이 실행 중인 경우 중지합니다.

  2. CREATED 또는 STOPPED 상태인 동안 애플리케이션을 업데이트합니다. 에서 원하는 서브넷을 제공하고 듀얼 스택 서브넷의 --network-configuration경우의 활성화 속성을 포함합니다--runtime-configuration. 포함하지 않는 파라미터는 현재 값을 유지합니다.

    다음 AWS CLI 명령은 새 서브넷과 활성화 속성으로 애플리케이션을 업데이트합니다.

    aws emr-serverless update-application \ --application-id application-id \ --network-configuration '{ "subnetIds": ["subnet-id-1", "subnet-id-2"], "securityGroupIds": ["security-group-id"] }' \ --runtime-configuration '[ { "classification": "spark-defaults", "properties": { "spark.emr-serverless.networking.ipv6.enabled": "true" } } ]' \ --region AWS_REGION

    다음 값을 교체합니다.

    • application-id - 업데이트하려는 애플리케이션의 ID입니다.

    • subnet-id-1, subnet-id-2 - 사용하려는 서브넷의 IDs입니다.

    • security-group-id - 연결하려는 보안 그룹의 ID입니다.

    • AWS_REGION - 애플리케이션의 AWS 리전 입니다.

  3. 애플리케이션을 시작합니다. EMR Serverless는 시작 시 주소 지정 모드를 적용합니다.

IPv6 속성 구성

다음 속성은 애플리케이션 및 작업에 대한 IPv6를 제어합니다. 의 애플리케이션 수준에서 활성화 속성을 설정합니다runtimeConfiguration. 엔진 기본 설정 속성을 작업 수준에서, Spark의 sparkSubmitParameters 경우에서 또는 Hive의 --hiveconf 경우에서 설정합니다.

Engine 속성 설정 위치 기본값 적용 대상 참고
Spark spark.emr-serverless.networking.ipv6.enabled spark-defaults (애플리케이션runtimeConfiguration) false 듀얼 스택 듀얼 스택 서브넷에서 IPv6를 활성화합니다.
Spark spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 sparkSubmitParameters (작업) false 듀얼 스택(선택 사항) Spark 드라이버가 IPv6를 선호하도록 합니다. IPv6-only 서브넷에서 자동으로 설정합니다. IPv4-only 서브넷에는를 설정하지 마십시오.
Spark spark.executorEnv.SPARK_PREFER_IPV6 sparkSubmitParameters (작업) false 듀얼 스택(선택 사항) Spark 실행기가 IPv6를 선호하도록 합니다. IPv6-only 서브넷에서 자동으로 설정합니다. IPv4-only 서브넷에는를 설정하지 마십시오.
Hive hive.emr-serverless.networking.ipv6.enabled hive-site (애플리케이션runtimeConfiguration) false 듀얼 스택 Hive 애플리케이션의 경우 Spark 활성화 속성과 동일합니다.
Hive JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true --hiveconf (작업) 설정되지 않음 듀얼 스택(선택 사항) Hive가 IPv6를 선호하도록 합니다. IPv6-only 서브넷에서 자동으로 설정합니다. IPv4-only 서브넷에는를 설정하지 마십시오.

듀얼 스택 서브넷에서는 IPv4와 IPv6를 모두 사용할 수 있으며 엔진은 기본적으로 IPv4를 사용합니다. 엔진이 IPv6를 선호하도록 하려면 엔진의 엔진 기본 설정 속성을 설정합니다. IPv6-only 서브넷에서 EMR Serverless는 IPv6 기본 설정을 지정하므로 이러한 속성을 설정하지 않습니다. IPv4-only 서브넷에서는 엔진 기본 설정 속성을 설정하지 마십시오. 사용 가능한 IPv6가 없으므로 IPv6를 선호하면 작업이 실패합니다.

다음 예제에서는 Spark 엔진이 작업의에서 IPv6를 선호하도록 설정합니다sparkSubmitParameters.

--conf spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6=true --conf spark.executorEnv.SPARK_PREFER_IPV6=true
중요

주소 지정 모드에서 JVM의 IPv4 스택을 강제로 적용하지 마십시오(예: spark.driver.extraJavaOptions 또는 -Djava.net.preferIPv4Stack=true에서 설정spark.executor.extraJavaOptions).

애플리케이션 수준에서 선언하는 runtimeConfiguration 방법에 대한 자세한 내용은 EMR Serverless의 기본 애플리케이션 구성을 참조하세요. 엔진 구성 전달에 대한 자세한 내용은 EMR Serverless 작업을 실행할 때 Spark 구성 사용 및 EMR Serverless 작업을 실행할 때 Hive 구성 사용을 참조하세요.

고려 사항 및 제한 사항

  • 주소 지정 모드는 API를 통해 설정할 수 없습니다. 이를 변경하려면 서브넷(또는 듀얼 스택 서브넷의 spark.emr-serverless.networking.ipv6.enabled옵트인 속성)을 변경하고 애플리케이션을 다시 시작합니다.

  • IPv4-only 서브넷과 IPv6-only 서브넷은 하나의 애플리케이션에서 혼합할 수 없습니다.

  • 애플리케이션이 IPv6 전용을 실행할 때 작업 코드와 작업 코드에서 사용하는 모든 SDKs, 드라이버 또는 엔드포인트가 IPv6를 지원해야 합니다. IPv6-only EMR Serverless를 사용하면 IPv6 연결이 가능합니다. 애플리케이션 코드 또는 타사 엔드포인트는 수정되지 않습니다.

문제 해결

이 주제는 DNS 확인 실패, 자동 할당된 IPv6 주소 누락, 예상치 못한 IPv4 사용, 서브넷 검증 오류 등 EMR Serverless 애플리케이션의 일반적인 IPv6 네트워킹 문제를 진단하고 해결하는 데 도움이 됩니다. 다음은 IPv6 작업을 실행할 때 나타날 수 있는 증상과 각각에 대해 수행할 작업입니다.

DNS 확인 오류(UnknownHostException)

이는 서브넷에 DNS64IPv6-only 애플리케이션에서 발생할 수 있으므로 작업이 필요한 엔드포인트에 도달할 수 없습니다. NAT64 DNS64를 활성화하고의이 주제 앞부분에서 설명한 대로 애플리케이션의 모든 서브넷에서 NAT64용 NAT 게이트웨이를 제공합니다VPC 및 서브넷 사전 조건 충족.

듀얼 스택 서브넷이 IPv6 주소를 자동 할당하지 않음

이는 서브넷에 연결된 IPv6 CIDR 블록이 있지만 IPv6 주소를 자동으로 할당하지 않아 애플리케이션이 예상한 IPv6 연결을 수신하지 못하는 경우에 발생할 수 있습니다. 이 주제의 앞부분에서 설명한 대로 서브넷에 IPv6 주소 자동 할당을 켠 다음 새 작업을 시작합니다. 설정은 변경 후 생성된 리소스에만 적용됩니다.

듀얼 스택 애플리케이션의 IPv4를 통해 실행되는 작업

듀얼 스택 서브넷에서는 두 가지 이유 중 하나로 발생할 수 있습니다. 먼저 구성 속성으로 IPv6를 활성화하지 않았으므로 애플리케이션이 IPv4-only 실행합니다. 둘째, IPv6를 활성화했지만 엔진을 선호하도록 설정하지 않았으므로 엔진은 IPv4를 사용했습니다. 에서 활성화 속성과 엔진 기본 설정 속성을 모두 확인합니다IPv6 속성 구성.

UnresolvedAddressException으로 작업이 실패함

이는 작업이 JVM에서 IPv4 스택을 강제로 실행할 때 발생할 수 있습니다. 작업 구성에서 -Djava.net.preferIPv4Stack=true (및 이에 상응하는 설정)를 제거하고 작업을 다시 제출합니다. IPv6 속성 구성 섹션을 참조하세요.

호환되지 않는 서브넷 검증 오류와 함께 요청이 실패함

이는 IPvIPv6-only IPv4-only 전용 서브넷 또는 애플리케이션에 IPv4 전용 서브넷이 포함된 true 동안 로 설정된 spark.emr-serverless.networking.ipv6.enabled옵트인 속성과 같이 함께 실행할 수 없는 서브넷을 제공할 때 발생할 수 IPv4-only 있습니다. 에 대해 서브넷을 검토하고EMR Serverless가 주소 지정 모드를 결정하는 방법, 서브넷 또는 옵트인 속성을 조정하고, 요청을 다시 시도합니다.