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::/96trá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.
::/0Consulte 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 \ --namemy-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" } } ]' \ --regionAWS_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
-
Pare o aplicativo se ele estiver em execução.
-
Atualize o aplicativo enquanto ele estiver no
STOPPEDestadoCREATEDou. 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-configurationOs 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-idapplication-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" } } ]' \ --regionAWS_REGIONSubstitua 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.
-
-
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.enabledaceitaçã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.