View a markdown version of this page

Configurar sub-redes IPv6 para aplicativos EMR Serverless - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar sub-redes IPv6 para aplicativos EMR Serverless

Com o Amazon EMR Serverless, você pode executar suas tarefas do Apache Spark e do Apache Hive via IPv6 na sua Amazon Virtual Private Cloud (Amazon VPC). Se você fornece pilha dupla (IPv4 e IPv6) ou IPv6-only sub-redes, o EMR Serverless executa suas tarefas usando o modo de endereçamento dessas sub-redes. Seus trabalhos podem então alcançar endpoints IPv6 em sua VPC e endpoints IPv6 externos. IPv6-only as sub-redes são executadas automaticamente em IPv6. Para sub-redes de pilha dupla, você ativa o IPv6 com uma propriedade de configuração, conforme descrito em. Configurando propriedades IPv6

Entendendo os principais benefícios

A execução de aplicativos EMR Serverless em IPv6 oferece os seguintes benefícios.

  • Espaço de endereço maior — o IPv6 fornece um espaço de endereço muito maior do que o IPv4, o que ajuda a evitar o esgotamento do endereço IPv4 em VPCs e sub-redes que executam muitos trabalhadores.

  • Dual-stack e IPv6-only rede — execute trabalhos em sub-redes de pilha dupla que usam IPv4 e IPv6, ou em sub-redes, para atender aos padrões de rede e aos requisitos de IPv6-only conformidade que exigem IPv6.

  • Conectividade com endpoints IPv6 — Seus trabalhos do Spark e do Hive podem alcançar endpoints e serviços IPv6 em sua VPC e em endpoints IPv6 externos.

  • Ativação flexível — as IPv6-only sub-redes são executadas automaticamente em IPv6. Para sub-redes de pilha dupla, você ativa o IPv6 com uma única propriedade de configuração, para controlar quando o IPv6 se aplica.

Como o EMR Serverless determina o modo de endereçamento

O EMR Serverless determina o modo de endereçamento do seu aplicativo a partir das sub-redes que você fornece.

  • IPv4-only sub-redes — O aplicativo é executado IPv4-only exatamente como antes. Não há mudança de comportamento nos aplicativos existentes.

  • Dual-stack sub-redes — O aplicativo é executado a IPv4-only menos que você habilite o IPv6 com a propriedade de configuração descrita em. Configurando propriedades IPv6 Quando você ativa o IPv6, o aplicativo pode usar IPv4 e IPv6.

  • IPv6-only sub-redes — O aplicativo é executado. IPv6-only Isso está disponível em todas as versões de lançamento.

Quando você fornece mais de uma sub-rede, o EMR Serverless executa todo o aplicativo no único modo de endereçamento suportado por cada sub-rede do conjunto. Se as sub-redes não compartilharem nenhum modo comum, o EMR Serverless rejeitará a solicitação. Os casos a seguir descrevem os tipos de sub-redes que um conjunto pode conter, em qualquer número e em qualquer combinação.

  • IPv4-only e IPv6-only — O EMR Serverless rejeita o conjunto com um erro de validação.

  • IPv6-only e pilha dupla — O conjunto é executado IPv6-only, incluindo todas as sub-redes de pilha dupla do conjunto. Certifique-se de que todas as sub-redes do conjunto, incluindo todas as sub-redes de pilha dupla, atendam aos pré-requisitos do. Atendendo aos pré-requisitos de VPC e sub-rede

  • IPv4-only e pilha dupla — O conjunto é executado IPv4-only, incluindo todas as sub-redes de pilha dupla do conjunto.

O EMR Serverless avalia o modo de endereçamento das sub-redes e da configuração atuais sempre que o aplicativo é iniciado. Um aplicativo em execução mantém o modo com o qual foi iniciado, portanto, uma alteração não entrará em vigor até a próxima inicialização.

Para obter as definições de IPv4-only pilha dupla e IPv6-only sub-redes, consulte Sub-redes para sua VPC no Guia do usuário da Amazon Virtual Private Cloud.

Atendendo aos pré-requisitos de VPC e sub-rede

Você é responsável por configurar sua VPC e sub-redes para que o tráfego IPv6 possa alcançar seus armazenamentos de dados e AWS os serviços que seus trabalhos usam. Configure o seguinte em sua própria VPC antes de executar trabalhos IPv6.

Use o Guia do usuário da Amazon Virtual Private Cloud para obter instruções passo a passo.

  • Associe um bloco IPv6 Classless Inter-Domain Routing (CIDR) à sub-rede. Cada pilha dupla ou IPv6-only sub-rede deve ter um bloco CIDR IPv6. Consulte Adicionar ou remover um bloco CIDR IPv6 da sua sub-rede e suporte IPv6 para sua VPC no Guia do usuário da Amazon Virtual Private Cloud.

  • Ative a atribuição automática de endereço IPv6 para a sub-rede. A sub-rede deve atribuir automaticamente endereços IPv6 para que seu aplicativo receba conectividade IPv6. Consulte Modificar os atributos de endereçamento IP da sua sub-rede no Guia do usuário da Amazon Virtual Private Cloud.

  • Ative o DNS64 (DNS-based IPv6-to-IPv4 tradução) na sub-rede e forneça um caminho NAT64 de saída (tradução de endereço de rede de IPv6 para IPv4) (). IPv6-only Um IPv6-only aplicativo precisa disso para alcançar IPv4-only endpoints (por exemplo, serviços que ainda não publicam um endereço IPv6). Ative o DNS64 na sub-rede e roteie o 64:ff9b::/96 tráfego sintetizado por meio de um gateway NAT, que executa o NAT64. Um aplicativo de pilha dupla pode alcançar IPv4-only endpoints via IPv4 e não exige isso. Consulte os gateways DNS64 e NAT64 e NAT no Guia do usuário da Amazon Virtual Private Cloud.

  • Forneça um gateway de internet somente de saída para tráfego IPv6 de saída privado. Para permitir que uma sub-rede privada inicie conexões IPv6 de saída sem aceitar conexões de entrada da Internet, adicione um gateway de Internet somente de saída e uma rota para ele. ::/0 Consulte Habilitar tráfego IPv6 de saída usando um gateway de internet somente de saída no Guia do usuário da Amazon Virtual Private Cloud.

  • Permita o tráfego IPv6 de saída de que seus trabalhos precisam em seus grupos de segurança. As regras existentes do grupo de segurança do EMR Serverless se aplicam. Para a configuração geral da VPC e do grupo de segurança, consulte. Configuração do acesso à VPC para que aplicações do EMR Sem Servidor se conectem aos dados

Configurando o IPv6 para seu aplicativo

Você configura o IPv6 ao criar um aplicativo ou o altera posteriormente atualizando um aplicativo existente. Em ambos os casos, o EMR Serverless deriva o modo de endereçamento das sub-redes em, conforme descrito em. --network-configuration Como o EMR Serverless determina o modo de endereçamento Para sub-redes de pilha dupla, você também habilita o IPv6 com a propriedade descrita emConfigurando propriedades IPv6; para IPv6-only sub-redes, nenhuma propriedade é necessária.

Como criar uma aplicação do

O procedimento a seguir cria um aplicativo Spark que usa sub-redes de pilha dupla e ativa o IPv6. Antes de começar, certifique-se de que cada sub-rede que você planeja usar atenda aos requisitos do. Atendendo aos pré-requisitos de VPC e sub-rede

O AWS CLI comando a seguir cria um aplicativo Spark com sub-redes de pilha dupla e ativa o 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

Substitua os valores a seguir:

  • my-application-name— O nome que você deseja dar ao seu aplicativo.

  • subnet-id-1, subnet-id-2 — Os IDs das sub-redes de pilha dupla que você deseja usar.

  • security-group-id— O ID do grupo de segurança que você deseja anexar.

  • AWS_REGION— Região da AWS Onde você deseja criar o aplicativo.

Em sub-redes de pilha dupla, o trabalho usa IPv4 por padrão. Para que o Spark prefira o IPv6, defina as propriedades de preferência do mecanismo descritas em. Configurando propriedades IPv6 Para um aplicativo Hive, use--type HIVE, a hive-site classificação e a hive.emr-serverless.networking.ipv6.enabled propriedade.

nota

Para IPv6-only sub-redes, omita. --runtime-configuration O aplicativo é executado automaticamente no IPv6 e você não define as propriedades de habilitação ou preferência do mecanismo.

Para atualizar um aplicativo existente

  1. Pare o aplicativo se ele estiver em execução.

  2. Atualize o aplicativo enquanto ele estiver no STOPPED estado CREATED ou. Forneça as sub-redes que você deseja acessar e--network-configuration, para sub-redes de pilha dupla, inclua a propriedade de habilitação em. --runtime-configuration Os parâmetros que você não inclui mantêm seus valores atuais.

    O AWS CLI comando a seguir atualiza o aplicativo com as novas sub-redes e a propriedade de habilitação:

    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

    Substitua os valores a seguir:

    • application-id— O ID do aplicativo que você deseja atualizar.

    • subnet-id-1, subnet-id-2 — Os IDs das sub-redes que você deseja usar.

    • security-group-id— O ID do grupo de segurança que você deseja anexar.

    • AWS_REGION— O Região da AWS do aplicativo.

  3. Inicie o aplicativo. O EMR Serverless aplica o modo de endereçamento no início.

Configurando propriedades IPv6

As propriedades a seguir controlam o IPv6 para seus aplicativos e trabalhos. Defina a propriedade de habilitação no nível do aplicativo em. runtimeConfiguration Defina as propriedades de preferência do motor no nível do trabalho, no Spark ou no sparkSubmitParameters Hive. --hiveconf

Mecanismo Propriedade Onde você o configura Padrão Aplica-se a Observações
Spark spark.emr-serverless.networking.ipv6.enabled spark-defaults(aplicativoruntimeConfiguration) false Dual-stack Habilita IPv6 em sub-redes de pilha dupla.
Spark spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(emprego) false Dual-stack (opcional) Faz com que o driver do Spark prefira IPv6. Definido automaticamente em IPv6-only sub-redes. Não defina em IPv4-only sub-redes.
Spark spark.executorEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(emprego) false Dual-stack (opcional) Faz com que os executores do Spark prefiram o IPv6. Definido automaticamente em IPv6-only sub-redes. Não defina em IPv4-only sub-redes.
Hive hive.emr-serverless.networking.ipv6.enabled hive-site(aplicativoruntimeConfiguration) false Dual-stack Igual à propriedade de ativação do Spark, para aplicativos Hive.
Hive JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true --hiveconf(emprego) Não definido Dual-stack (opcional) Faz com que o Hive prefira o IPv6. Definido automaticamente em IPv6-only sub-redes. Não defina em IPv4-only sub-redes.

Em sub-redes de pilha dupla, tanto o IPv4 quanto o IPv6 estão disponíveis e o mecanismo usa IPv4 por padrão. Para que o mecanismo prefira IPv6, defina as propriedades de preferência do motor para seu mecanismo. Em IPv6-only sub-redes, o EMR Serverless define a preferência IPv6 para você, portanto, você não define essas propriedades. Em IPv4-only sub-redes, não defina as propriedades de preferência do mecanismo; não há IPv6 disponível, portanto, preferir IPv6 faz com que o trabalho falhe.

O exemplo a seguir configura o mecanismo Spark para preferir IPv6 em um trabalho. sparkSubmitParameters

--conf spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6=true --conf spark.executorEnv.SPARK_PREFER_IPV6=true
Importante

Não force a pilha IPv4 na JVM (por exemplo, configurando spark.driver.extraJavaOptions ouspark.executor.extraJavaOptions) -Djava.net.preferIPv4Stack=true em nenhum modo de endereçamento.

Para obter mais informações sobre a declaração runtimeConfiguration no nível do aplicativo, consulte Configuração padrão do aplicativo para o EMR Serverless. Para obter mais informações sobre como passar as configurações do mecanismo, consulte Usando as configurações do Spark ao executar tarefas do EMR Serverless e Usando as configurações do Hive ao executar tarefas do EMR Serverless.

Considerações e limitações

  • O modo de endereçamento não pode ser definido por meio da API. Para alterá-lo, altere suas sub-redes (ou a propriedade de spark.emr-serverless.networking.ipv6.enabled aceitação para sub-redes de pilha dupla) e reinicie o aplicativo.

  • IPv4-only e as IPv6-only sub-redes não podem ser misturadas em um aplicativo.

  • Seu código de trabalho e quaisquer SDKs, drivers ou endpoints que ele usa devem suportar IPv6 quando o aplicativo é executado. IPv6-only Com o EMR Serverless, você obtém conectividade IPv6; ela não modifica o código do seu aplicativo nem os endpoints de terceiros.

Solução de problemas

Este tópico ajuda você a diagnosticar e resolver problemas comuns de rede IPv6 com aplicativos EMR Serverless, incluindo falhas na resolução de DNS, ausência de endereços IPv6 atribuídos automaticamente, uso inesperado de IPv4 e erros de validação de sub-rede. A seguir estão os sintomas que você pode ver ao executar trabalhos IPv6 e o que fazer com cada um.

Erro de resolução de DNS () UnknownHostException

Isso pode acontecer em um IPv6-only aplicativo quando a sub-rede não tem um caminho de saída DNS64 ou NAT64, portanto, os trabalhos não podem alcançar os endpoints de que precisam. Habilite o DNS64 e forneça um gateway NAT para NAT64 em cada sub-rede do aplicativo, conforme descrito anteriormente neste tópico abaixo. Atendendo aos pré-requisitos de VPC e sub-rede

Dual-stack a sub-rede não atribui endereços IPv6 automaticamente

Isso pode acontecer quando uma sub-rede tem um bloco CIDR IPv6 associado, mas não atribui endereços IPv6 automaticamente, portanto, o aplicativo não recebe a conectividade IPv6 que espera. Ative a atribuição automática de endereço IPv6 para a sub-rede, conforme descrito anteriormente neste tópico, e inicie um novo trabalho. A configuração se aplica somente aos recursos criados após sua alteração.

Job é executado em IPv4 em um aplicativo de pilha dupla

Em sub-redes de pilha dupla, isso pode acontecer por um dos dois motivos. Primeiro, você não habilitou o IPv6 com a propriedade de configuração, então o aplicativo é executado. IPv4-only Segundo, você habilitou o IPv6, mas não configurou o mecanismo para preferi-lo, então o mecanismo usou IPv4. Confirme a propriedade de habilitação e as propriedades de preferência do mecanismo em. Configurando propriedades IPv6

Job falha com UnresolvedAddressException

Isso pode acontecer quando o trabalho força a pilha IPv4 na JVM. Remova -Djava.net.preferIPv4Stack=true (e qualquer configuração equivalente) da configuração do seu trabalho e reenvie o trabalho. Consulte Configurando propriedades IPv6.

A solicitação falha com um erro de validação de sub-redes incompatíveis

Isso pode acontecer quando você fornece sub-redes que não podem ser executadas juntas, como IPv4-only sub-redes misturadas com IPv6-only sub-redes ou a propriedade spark.emr-serverless.networking.ipv6.enabled opt-in definida como enquanto o aplicativo inclui uma sub-rede. true IPv4-only Analise suas sub-redesComo o EMR Serverless determina o modo de endereçamento, ajuste-as ou a propriedade de aceitação e repita a solicitação.