Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Configurar subredes IPv6 para aplicaciones EMR Serverless
Con Amazon EMR Serverless, puede ejecutar sus trabajos de Apache Spark y Apache Hive a través de IPv6 en su Amazon Virtual Private Cloud (Amazon VPC). Si suministra IPv6-only subredes o subredes de doble pila (IPv4 e IPv6), EMR Serverless ejecuta sus tareas utilizando el modo de direccionamiento de esas subredes. De este modo, sus trabajos pueden llegar a los puntos de enlace de IPv6 de su VPC y a los puntos de enlace IPv6 externos. IPv6-only las subredes se ejecutan automáticamente a través de IPv6. En el caso de las subredes de doble pila, se habilita IPv6 con una propiedad de configuración, tal y como se describe en. Configuración de las propiedades de IPv6
Comprensión de las principales ventajas
La ejecución de aplicaciones EMR sin servidor a través de IPv6 ofrece las siguientes ventajas.
-
Mayor espacio de direcciones: IPv6 proporciona un espacio de direcciones mucho mayor que IPv4, lo que ayuda a evitar el agotamiento de las direcciones IPv4 en las VPC y subredes en las que trabajan muchos trabajadores.
-
Dual-stack y IPv6-only redes: ejecute los trabajos en subredes de doble pila que utilizan IPv4 e IPv6, o en IPv6-only subredes, para cumplir con los estándares de red y los requisitos de conformidad que exigen IPv6.
-
Conectividad con puntos de enlace IPv6: sus trabajos de Spark y Hive pueden llegar a los puntos de enlace y servicios de IPv6 de su VPC y puntos de enlace IPv6 externos.
-
Habilitación flexible: las subredes se ejecutan automáticamente a través de IPv6. IPv6-only En el caso de las subredes de doble pila, se habilita IPv6 con una única propiedad de configuración, de forma que se pueda controlar cuándo se aplica IPv6.
Cómo determina EMR Serverless el modo de direccionamiento
EMR Serverless determina el modo de direccionamiento de su aplicación a partir de las subredes que suministra.
-
IPv4-only subredes: la aplicación se ejecuta IPv4-only exactamente igual que antes. No se produce ningún cambio de comportamiento en las aplicaciones existentes.
-
Dual-stack subredes: la aplicación se ejecuta IPv4-only a menos que habilite IPv6 con la propiedad de configuración descrita en. Configuración de las propiedades de IPv6 Al habilitar IPv6, la aplicación puede usar IPv4 e IPv6.
-
IPv6-only subredes: la aplicación se ejecuta. IPv6-only Está disponible en todas las versiones de lanzamiento.
Cuando suministra más de una subred, EMR Serverless ejecuta toda la aplicación en el único modo de direccionamiento que admiten todas las subredes del conjunto. Si las subredes no comparten un modo común, EMR Serverless rechaza la solicitud. Los siguientes casos describen los tipos de subredes que puede contener un conjunto, en cualquier número y en cualquier combinación.
-
IPv4-only y IPv6-only — EMR Serverless rechaza el conjunto con un error de validación.
-
IPv6-only y de doble pila: el conjunto se ejecuta IPv6-only, incluidas las subredes de doble pila del conjunto. Asegúrese de que todas las subredes del conjunto, incluidas las subredes de doble pila, cumplan los requisitos previos establecidos en. Cumplimiento de los requisitos previos de VPC y subred
-
IPv4-only y de doble pila: el conjunto se ejecuta IPv4-only, incluidas las subredes de doble pila del conjunto.
EMR Serverless evalúa el modo de direccionamiento de las subredes y la configuración actuales cada vez que se inicia la aplicación. Una aplicación en ejecución mantiene el modo con el que comenzó, por lo que el cambio no surtirá efecto hasta el siguiente inicio.
Para obtener las definiciones de IPv4-only doble pila y IPv6-only subredes, consulte Subredes para su VPC en la Guía del usuario de Amazon Virtual Private Cloud.
Cumplimiento de los requisitos previos de VPC y subred
Usted es responsable de configurar la VPC y las subredes para que el tráfico de IPv6 pueda llegar a sus almacenes de datos y a los AWS servicios que utilizan sus trabajos. Configure lo siguiente en su propia VPC antes de ejecutar trabajos de IPv6.
Usa la Guía del usuario de Amazon Virtual Private Cloud para ver las instrucciones paso a paso.
-
Asocie un bloque de Inter-Domain enrutamiento sin clase (CIDR) de IPv6 a la subred. Cada IPv6-only subred o pila doble debe tener un bloque CIDR de IPv6. Consulte Añadir o eliminar un bloque CIDR de IPv6 de la subred y la compatibilidad con IPv6 para su VPC en la Guía del usuario de Amazon Virtual Private Cloud.
-
Activa la asignación automática de direcciones IPv6 para la subred. La subred debe asignar automáticamente las direcciones IPv6 para que la aplicación reciba conectividad IPv6. Consulte Modificar los atributos de direccionamiento IP de su subred en la Guía del usuario de Amazon Virtual Private Cloud.
-
Habilite DNS64 (DNS-based IPv6-to-IPv4 traducción) en la subred y proporcione una ruta NAT64 (traducción de direcciones de red de IPv6 a IPv4) de salida (). IPv6-only Una IPv6-only aplicación la necesita para llegar a los IPv4-only puntos finales (por ejemplo, los servicios que aún no publican una dirección IPv6). Habilite el DNS64 en la subred y dirija el
64:ff9b::/96tráfico sintetizado a través de una puerta de enlace NAT, que ejecuta NAT64. Una aplicación de doble pila puede llegar a los IPv4-only puntos finales a través de IPv4 y no lo requiere. Consulte las pasarelas DNS64 y NAT64 y NAT en la Guía del usuario de Amazon Virtual Private Cloud. -
Proporcione una puerta de enlace de Internet solo de salida para el tráfico IPv6 saliente privado. Para permitir que una subred privada inicie conexiones IPv6 salientes sin aceptar conexiones entrantes de Internet, añada una puerta de enlace a Internet solo de salida y una ruta hacia ella.
::/0Consulte Habilitar el tráfico IPv6 saliente mediante una puerta de enlace de Internet de solo salida en la Guía del usuario de Amazon Virtual Private Cloud. -
Permita en sus grupos de seguridad el tráfico IPv6 saliente que necesitan sus trabajos. Se aplican las reglas del grupo de seguridad EMR Serverless existentes. Para obtener información sobre la configuración general de VPC y grupos de seguridad, consulte. Configuración del acceso a la VPC para que las aplicaciones EMR sin servidor se conecten a los datos
Configuración de IPv6 para su aplicación
Puede configurar IPv6 al crear una aplicación o cambiarlo posteriormente actualizando una aplicación existente. En ambos casos, EMR Serverless deriva el modo de direccionamiento de las subredes de, como se describe en--network-configuration. Cómo determina EMR Serverless el modo de direccionamiento En el caso de las subredes de doble pila, también se habilita IPv6 con la propiedad descrita enConfiguración de las propiedades de IPv6; en el caso de las subredes, no se requiere ninguna propiedad. IPv6-only
Cómo crear una aplicación de
El siguiente procedimiento crea una aplicación Spark que utiliza subredes de doble pila y habilita IPv6. Antes de empezar, asegúrate de que cada subred que vayas a utilizar cumpla los requisitos establecidos en. Cumplimiento de los requisitos previos de VPC y subred
El siguiente AWS CLI comando crea una aplicación Spark con subredes de doble pila y habilita 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
Reemplace los siguientes valores:
-
my-application-name— El nombre que quieres darle a tu aplicación. -
subnet-id-1,subnet-id-2— Los ID de las subredes de doble pila que desea utilizar. -
security-group-id— El ID del grupo de seguridad que desea adjuntar. -
AWS_REGION— El Región de AWS lugar en el que desea crear la aplicación.
En las subredes de doble pila, el trabajo usa IPv4 de forma predeterminada. Para que Spark prefiera IPv6, defina las propiedades de preferencia del motor que se describen en. Configuración de las propiedades de IPv6 En el caso de una aplicación Hive--type HIVE, utilice la hive-site clasificación y la propiedad. hive.emr-serverless.networking.ipv6.enabled
nota
En el caso de IPv6-only las subredes, omita. --runtime-configuration La aplicación se ejecuta automáticamente en IPv6 y no se establecen las propiedades de habilitación ni de preferencia del motor.
Para actualizar una aplicación existente
-
Detenga la aplicación si está en ejecución.
-
Actualice la aplicación mientras esté en el
STOPPEDestadoCREATEDo. Introduzca las subredes que desee y--network-configuration, en el caso de las subredes de doble pila, incluya la propiedad de activación en.--runtime-configurationLos parámetros que no incluya mantienen sus valores actuales.El siguiente AWS CLI comando actualiza la aplicación con las nuevas subredes y la propiedad de activación:
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_REGIONReemplace los siguientes valores:
-
application-id— El ID de la aplicación que desea actualizar. -
subnet-id-1,subnet-id-2— Los ID de las subredes que desea utilizar. -
security-group-id— El ID del grupo de seguridad que desea adjuntar. -
AWS_REGION— El Región de AWS de la aplicación.
-
-
Inicie la aplicación. EMR Serverless aplica el modo de direccionamiento al inicio.
Configuración de las propiedades de IPv6
Las siguientes propiedades controlan IPv6 para las aplicaciones y los trabajos. Establezca la propiedad de activación en el nivel de aplicación en. runtimeConfiguration Defina las propiedades de preferencia del motor a nivel de trabajo, en el caso de Spark o en el sparkSubmitParameters de Hive. --hiveconf
| Motor | Propiedad | ¿Dónde lo configuraste | Predeterminado | Aplica a | Notas |
|---|---|---|---|---|---|
| Spark | spark.emr-serverless.networking.ipv6.enabled |
spark-defaults(solicitudruntimeConfiguration) |
false |
Dual-stack | Habilita IPv6 en subredes de doble pila. |
| Spark | spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 |
sparkSubmitParameters(trabajo) |
false |
Dual-stack (opcional) | Hace que el controlador Spark prefiera IPv6. Se configura automáticamente en las IPv6-only subredes. No lo configure en IPv4-only subredes. |
| Spark | spark.executorEnv.SPARK_PREFER_IPV6 |
sparkSubmitParameters(trabajo) |
false |
Dual-stack (opcional) | Hace que los ejecutores de Spark prefieran IPv6. Se configura automáticamente en las subredes. IPv6-only No lo configure en IPv4-only subredes. |
| Hive | hive.emr-serverless.networking.ipv6.enabled |
hive-site(aplicaciónruntimeConfiguration) |
false |
Dual-stack | Igual que la propiedad de activación de Spark, para las aplicaciones de Hive. |
| Hive | JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true |
--hiveconf(trabajo) |
No configurado | Dual-stack (opcional) | Hace que Hive prefiera IPv6. Se configura automáticamente en las subredes. IPv6-only No lo configure en IPv4-only subredes. |
En las subredes de doble pila, están disponibles tanto IPv4 como IPv6 y el motor usa IPv4 de forma predeterminada. Para que el motor prefiera IPv6, defina las propiedades de preferencia del motor para su motor. En IPv6-only las subredes, EMR Serverless establece la preferencia de IPv6 por usted, por lo que no debe establecer estas propiedades. En IPv4-only las subredes, no defina las propiedades de preferencia del motor; no hay IPv6 disponible, por lo que preferir IPv6 provocará un error en el trabajo.
En el siguiente ejemplo, se configura el motor Spark para que prefiera IPv6 en el caso de un trabajo. sparkSubmitParameters
--conf spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6=true --conf spark.executorEnv.SPARK_PREFER_IPV6=true
importante
No fuerce la pila IPv4 de la JVM (por ejemplo, configurándola spark.driver.extraJavaOptions ospark.executor.extraJavaOptions) -Djava.net.preferIPv4Stack=true en ningún modo de direccionamiento.
Para obtener más información sobre la declaración runtimeConfiguration a nivel de aplicación, consulte Configuración de aplicaciones predeterminada para EMR Serverless. Para obtener más información sobre cómo transferir configuraciones de motores, consulte Uso de configuraciones de Spark al ejecutar trabajos sin servidor de EMR y Uso de configuraciones de Hive al ejecutar trabajos sin servidor de EMR.
Consideraciones y limitaciones
-
El modo de direccionamiento no se puede configurar a través de la API. Para cambiarlo, cambie las subredes (o la propiedad
spark.emr-serverless.networking.ipv6.enabledopcional para las subredes de doble pila) y reinicie la aplicación. -
IPv4-only y las IPv6-only subredes no se pueden mezclar en una aplicación.
-
Su código de trabajo y cualquier SDK, controlador o punto final que utilice deben ser compatibles con IPv6 cuando se ejecute la aplicación. IPv6-only Con EMR Serverless, obtiene conectividad IPv6; no modifica el código de su aplicación ni los puntos finales de terceros.
Resolución de problemas
Este tema le ayuda a diagnosticar y resolver problemas comunes de redes IPv6 con las aplicaciones EMR Serverless, incluidos los errores de resolución de DNS, la falta de direcciones IPv6 asignadas automáticamente, el uso inesperado de IPv4 y los errores de validación de subred. Los siguientes son los síntomas que puede observar al ejecutar trabajos de IPv6 y qué hacer con cada uno de ellos.
Error de resolución de DNS () UnknownHostException
Esto puede ocurrir en una IPv6-only aplicación cuando a la subred le falta una ruta de salida DNS64 o NAT64, por lo que los trabajos no pueden llegar a los puntos finales que necesitan. Habilite DNS64 y proporcione una puerta de enlace NAT para NAT64 en cada subred de la aplicación, tal y como se describió anteriormente en este tema. Cumplimiento de los requisitos previos de VPC y subred
Dual-stack la subred no asigna automáticamente las direcciones IPv6
Esto puede ocurrir cuando una subred tiene un bloque CIDR de IPv6 asociado, pero no asigna automáticamente las direcciones IPv6, por lo que la aplicación no recibe la conectividad IPv6 que espera. Active la asignación automática de direcciones IPv6 para la subred, tal y como se describió anteriormente en este tema, y, a continuación, inicie una nueva tarea. La configuración solo se aplica a los recursos creados después de cambiarla.
Job se ejecuta sobre IPv4 en una aplicación de doble pila
En las subredes de doble pila, esto puede ocurrir por dos motivos. En primer lugar, no habilitó IPv6 con la propiedad de configuración, por lo que la aplicación se ejecuta. IPv4-only En segundo lugar, habilitó IPv6 pero no configuró el motor para que lo prefiriera, por lo que el motor utilizó IPv4. Confirme la propiedad de activación y las propiedades de preferencia del motor en. Configuración de las propiedades de IPv6
Job falla con UnresolvedAddressException
Esto puede suceder cuando el trabajo fuerza la pila de IPv4 en la JVM. Elimine -Djava.net.preferIPv4Stack=true (y cualquier ajuste equivalente) de la configuración de su trabajo y vuelva a enviar el trabajo. Consulte Configuración de las propiedades de IPv6.
La solicitud falla debido a un error de validación de subredes incompatibles
Esto puede ocurrir cuando se proporcionan subredes que no se pueden ejecutar juntas, como IPv4-only subredes mezcladas con IPv6-only subredes, o se establece la propiedad spark.emr-serverless.networking.ipv6.enabled opcional cuando la aplicación incluye una subred. true IPv4-only Revisa tus subredesCómo determina EMR Serverless el modo de direccionamiento, ajústalas o ajusta la propiedad opcional y vuelve a intentar la solicitud.