

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
<a name="ipv6-subnets"></a>

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](#ipv6-properties)

## Entendendo os principais benefícios
<a name="ipv6-key-benefits"></a>

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
<a name="ipv6-addressing-mode"></a>

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](#ipv6-properties) 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](#ipv6-prerequisites)
+ **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](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) Virtual Private Cloud.*

## Atendendo aos pré-requisitos de VPC e sub-rede
<a name="ipv6-prerequisites"></a>

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](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-associate-ipv6-cidr.html) [VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) 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](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-public-ip.html) 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](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html) e NAT no Guia do usuário](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) 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](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html) 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](vpc-access.md)

## Configurando o IPv6 para seu aplicativo
<a name="ipv6-configure"></a>

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](#ipv6-addressing-mode) Para sub-redes de pilha dupla, você também habilita o IPv6 com a propriedade descrita em[Configurando propriedades IPv6](#ipv6-properties); para IPv6-only sub-redes, nenhuma propriedade é necessária.

### Como criar uma aplicação do
<a name="ipv6-create-app"></a>

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](#ipv6-prerequisites)

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](#ipv6-properties) 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
<a name="ipv6-update-app"></a>

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

1. 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.

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

## Configurando propriedades IPv6
<a name="ipv6-properties"></a>

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` ou`spark.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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/default-configs.html). 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](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-hive.html) ao executar tarefas do EMR Serverless](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html).

## Considerações e limitações
<a name="ipv6-considerations"></a>
+ 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
<a name="ipv6-troubleshooting"></a>

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
<a name="ipv6-ts-dns"></a>

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](#ipv6-prerequisites)

### Dual-stack a sub-rede não atribui endereços IPv6 automaticamente
<a name="ipv6-ts-no-autoassign"></a>

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
<a name="ipv6-ts-ran-ipv4"></a>

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](#ipv6-properties)

### Job falha com UnresolvedAddressException
<a name="ipv6-ts-unresolved"></a>

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](#ipv6-properties).

### A solicitação falha com um erro de validação de sub-redes incompatíveis
<a name="ipv6-ts-validation"></a>

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-redes[Como o EMR Serverless determina o modo de endereçamento](#ipv6-addressing-mode), ajuste-as ou a propriedade de aceitação e repita a solicitação.