Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configuration de sous-réseaux IPv6 pour les applications EMR sans serveur
Avec Amazon EMR Serverless, vous pouvez exécuter vos tâches Apache Spark et Apache Hive via IPv6 dans votre Amazon Virtual Private Cloud (Amazon VPC). Si vous fournissez une double pile (IPv4 et IPv6) ou des IPv6-only sous-réseaux, EMR Serverless exécute vos tâches en utilisant le mode d'adressage de ces sous-réseaux. Vos tâches peuvent ensuite atteindre les points de terminaison IPv6 de votre VPC et les points de terminaison IPv6 externes. IPv6-only les sous-réseaux s'exécutent automatiquement sur IPv6. Pour les sous-réseaux à double pile, vous activez IPv6 avec une propriété de configuration, comme décrit dans. Configuration des propriétés IPv6
Comprendre les principaux avantages
L'exécution d'applications EMR sans serveur sur IPv6 offre les avantages suivants.
-
Espace d'adressage étendu : IPv6 fournit un espace d'adressage beaucoup plus important que l'IPv4, ce qui vous permet d'éviter l'épuisement des adresses IPv4 dans les VPC et les sous-réseaux qui exécutent de nombreux travailleurs.
-
Dual-stack et IPv6-only mise en réseau — Exécutez des tâches sur des sous-réseaux à double pile utilisant à la fois IPv4 et IPv6, ou sur des IPv6-only sous-réseaux, afin de répondre aux normes réseau et aux exigences de conformité qui nécessitent IPv6.
-
Connectivité aux points de terminaison IPv6 : vos tâches Spark et Hive peuvent atteindre les points de terminaison et les services IPv6 de votre VPC et les points de terminaison IPv6 externes.
-
Activation flexible : les IPv6-only sous-réseaux s'exécutent automatiquement sur IPv6. Pour les sous-réseaux à double pile, vous activez IPv6 à l'aide d'une seule propriété de configuration, ce qui vous permet de contrôler le moment où IPv6 s'applique.
Comment EMR Serverless détermine le mode d'adressage
EMR Serverless détermine le mode d'adressage de votre application à partir des sous-réseaux que vous fournissez.
-
IPv4-only sous-réseaux — L'application s'exécute IPv4-only exactement comme avant. Il n'y a aucun changement de comportement pour les applications existantes.
-
Dual-stack sous-réseaux : l'application s'exécute IPv4-only sauf si vous activez IPv6 avec la propriété de configuration décrite dansConfiguration des propriétés IPv6. Lorsque vous activez IPv6, l'application peut utiliser à la fois IPv4 et IPv6.
-
IPv6-only sous-réseaux : l'application s'exécute IPv6-only. Ceci est disponible sur toutes les versions.
Lorsque vous fournissez plusieurs sous-réseaux, EMR Serverless exécute l'ensemble de l'application dans le seul mode d'adressage pris en charge par chaque sous-réseau de l'ensemble. Si les sous-réseaux ne partagent aucun mode commun, EMR Serverless rejette la demande. Les cas suivants décrivent les types de sous-réseaux qu'un ensemble peut contenir, quel que soit leur nombre et leur combinaison.
-
IPv4-only et IPv6-only — EMR Serverless rejette l'ensemble avec une erreur de validation.
-
IPv6-only et double pile : l'ensemble s'exécute IPv6-only, y compris tous les sous-réseaux à double pile de l'ensemble. Assurez-vous que chaque sous-réseau de l'ensemble, y compris les sous-réseaux à double pile, répond aux conditions requises dans. Respect des prérequis en matière de VPC et de sous-réseau
-
IPv4-only et double pile : l'ensemble s'exécute IPv4-only, y compris tous les sous-réseaux à double pile de l'ensemble.
EMR Serverless évalue le mode d'adressage à partir des sous-réseaux et de la configuration actuels à chaque démarrage de l'application. Une application en cours d'exécution conserve le mode avec lequel elle a démarré, de sorte qu'une modification ne prend effet qu'au prochain démarrage.
Pour les définitions des IPv4-only termes « double pile » et « IPv6-only sous-réseaux », consultez la section Sous-réseaux pour votre VPC dans le guide de l'utilisateur d'Amazon Virtual Private Cloud.
Respect des prérequis en matière de VPC et de sous-réseau
Vous êtes responsable de la configuration de votre VPC et de vos sous-réseaux afin que le trafic IPv6 puisse atteindre vos magasins de données et les AWS services utilisés par vos tâches. Configurez les éléments suivants dans votre propre VPC avant d'exécuter des tâches IPv6.
Consultez le guide de l'utilisateur d'Amazon Virtual Private Cloud pour obtenir des instructions détaillées.
-
Associez un bloc de Inter-Domain routage sans classe (CIDR) IPv6 au sous-réseau. Chaque double pile ou IPv6-only sous-réseau doit comporter un bloc d'adresse CIDR IPv6. Consultez les sections Ajouter ou supprimer un bloc d'adresse CIDR IPv6 dans votre sous-réseau et support IPv6 pour votre VPC dans le guide de l'utilisateur d'Amazon Virtual Private Cloud.
-
Activez l'attribution automatique de l'adresse IPv6 pour le sous-réseau. Le sous-réseau doit attribuer automatiquement des adresses IPv6 afin que votre application bénéficie d'une connectivité IPv6. Consultez la section Modifier les attributs d'adressage IP de votre sous-réseau dans le guide de l'utilisateur d'Amazon Virtual Private Cloud.
-
Activez DNS64 (DNS-based IPv6-to-IPv4 traduction) sur le sous-réseau et fournissez un chemin sortant NAT64 (traduction d'adresses réseau d'IPv6 en IPv4) (). IPv6-only Une IPv6-only application en a besoin pour atteindre les IPv4-only points de terminaison (par exemple, les services qui ne publient pas encore d'adresse IPv6). Activez DNS64 sur le sous-réseau et acheminez le
64:ff9b::/96trafic synthétisé via une passerelle NAT, qui exécute NAT64. Une application à double pile peut atteindre les IPv4-only points de terminaison via IPv4 et n'en a pas besoin. Consultez les rubriques DNS64 et NAT64 ainsi que les passerelles NAT dans le guide de l'utilisateur Amazon Virtual Private Cloud. -
Fournissez une passerelle Internet de sortie uniquement pour le trafic IPv6 sortant privé. Pour permettre à un sous-réseau privé d'établir des connexions IPv6 sortantes sans accepter les connexions entrantes en provenance d'Internet, ajoutez une passerelle Internet de sortie uniquement et une route vers celle-ci.
::/0Consultez Activer le trafic IPv6 sortant à l'aide d'une passerelle Internet de sortie uniquement dans le guide de l'utilisateur d'Amazon Virtual Private Cloud. -
Autorisez le trafic IPv6 sortant dont vos tâches ont besoin dans vos groupes de sécurité. Les règles existantes du groupe de sécurité EMR Serverless s'appliquent. Pour la configuration générale du VPC et des groupes de sécurité, consultez. Configuration de l'accès VPC pour que les applications EMR sans serveur se connectent aux données
Configuration du protocole IPv6 pour votre application
Vous configurez IPv6 lorsque vous créez une application, ou vous le modifiez ultérieurement en mettant à jour une application existante. Dans les deux cas, EMR Serverless déduit le mode d'adressage à partir des sous-réseaux--network-configuration, comme décrit dans. Comment EMR Serverless détermine le mode d'adressage Pour les sous-réseaux à double pile, vous activez également IPv6 avec la propriété décrite dans Configuration des propriétés IPv6 ; pour les IPv6-only sous-réseaux, aucune propriété n'est requise.
Pour créer une application
La procédure suivante crée une application Spark qui utilise des sous-réseaux à double pile et active IPv6. Avant de commencer, assurez-vous que chaque sous-réseau que vous prévoyez d'utiliser répond aux exigences deRespect des prérequis en matière de VPC et de sous-réseau.
La AWS CLI commande suivante crée une application Spark avec des sous-réseaux à double pile et active 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
Remplacez les valeurs suivantes :
-
my-application-name— Le nom que vous souhaitez attribuer à votre candidature. -
subnet-id-1,subnet-id-2— Les identifiants des sous-réseaux à double pile que vous souhaitez utiliser. -
security-group-id— L'ID du groupe de sécurité que vous souhaitez associer. -
AWS_REGION— L' Région AWS endroit où vous souhaitez créer l'application.
Sur les sous-réseaux à double pile, la tâche utilise IPv4 par défaut. Pour que Spark préfère IPv6, définissez les propriétés de préférence du moteur décrites dans. Configuration des propriétés IPv6 Pour une application Hive--type HIVE, utilisez la hive-site classification et la hive.emr-serverless.networking.ipv6.enabled propriété.
Note
Pour les IPv6-only sous-réseaux, --runtime-configuration omettez. L'application s'exécute automatiquement sur IPv6, et vous ne définissez pas les propriétés d'activation ou de préférence du moteur.
Pour mettre à jour une application existante
-
Arrêtez l'application si elle est en cours d'exécution.
-
Mettez à jour l'application lorsqu'elle est à l'
STOPPEDétatCREATEDou. Fournissez les sous-réseaux que vous souhaitez intégrer--network-configuration, et pour les sous-réseaux à double pile, incluez la propriété d'activation dans.--runtime-configurationLes paramètres que vous n'incluez pas conservent leurs valeurs actuelles.La AWS CLI commande suivante met à jour l'application avec les nouveaux sous-réseaux et la propriété d'activation :
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_REGIONRemplacez les valeurs suivantes :
-
application-id— L'ID de l'application que vous souhaitez mettre à jour. -
subnet-id-1,subnet-id-2— Les identifiants des sous-réseaux que vous souhaitez utiliser. -
security-group-id— L'ID du groupe de sécurité que vous souhaitez associer. -
AWS_REGION— Le Région AWS nom de l'application.
-
-
Lancez l'application. EMR Serverless applique le mode d'adressage au démarrage.
Configuration des propriétés IPv6
Les propriétés suivantes contrôlent le protocole IPv6 pour votre application et vos tâches. Définissez la propriété d'activation au niveau de l'application dansruntimeConfiguration. Définissez les propriétés de préférence du moteur au niveau de la tâche, dans sparkSubmitParameters Spark ou dans Hive--hiveconf.
| Engine | Propriété | Où le définissez-vous | Par défaut | S’applique à | Remarques |
|---|---|---|---|---|---|
| Spark | spark.emr-serverless.networking.ipv6.enabled |
spark-defaults(demanderuntimeConfiguration) |
false |
Dual-stack | Active IPv6 sur les sous-réseaux à double pile. |
| Spark | spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 |
sparkSubmitParameters(emploi) |
false |
Dual-stack (facultatif) | Fait en sorte que le pilote Spark préfère IPv6. Défini automatiquement sur les IPv6-only sous-réseaux. Ne le définissez pas sur des IPv4-only sous-réseaux. |
| Spark | spark.executorEnv.SPARK_PREFER_IPV6 |
sparkSubmitParameters(emploi) |
false |
Dual-stack (facultatif) | Fait en sorte que les exécuteurs Spark préfèrent IPv6. Défini automatiquement sur les IPv6-only sous-réseaux. Ne le définissez pas sur des IPv4-only sous-réseaux. |
| Hive | hive.emr-serverless.networking.ipv6.enabled |
hive-site(demanderuntimeConfiguration) |
false |
Dual-stack | Identique à la propriété d'activation de Spark, pour les applications Hive. |
| Hive | JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true |
--hiveconf(emploi) |
Non défini | Dual-stack (facultatif) | Permet à Hive de préférer IPv6. Défini automatiquement sur les IPv6-only sous-réseaux. Ne le définissez pas sur des IPv4-only sous-réseaux. |
Sur les sous-réseaux à double pile, IPv4 et IPv6 sont disponibles et le moteur utilise IPv4 par défaut. Pour que le moteur préfère IPv6, définissez les propriétés de préférence du moteur pour votre moteur. Sur les IPv6-only sous-réseaux, EMR Serverless définit la préférence IPv6 pour vous. Vous ne définissez donc pas ces propriétés. Sur les IPv4-only sous-réseaux, ne définissez pas les propriétés de préférence du moteur ; le protocole IPv6 n'étant pas disponible, le fait de préférer IPv6 entraîne l'échec de la tâche.
L'exemple suivant définit le moteur Spark pour qu'il préfère IPv6 dans les tâchessparkSubmitParameters.
--conf spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6=true --conf spark.executorEnv.SPARK_PREFER_IPV6=true
Important
Ne forcez pas la pile IPv4 dans la JVM (par exemple, -Djava.net.preferIPv4Stack=true en configurant spark.driver.extraJavaOptions ouspark.executor.extraJavaOptions) sur aucun mode d'adressage.
Pour plus d'informations sur la déclaration runtimeConfiguration au niveau de l'application, voir Configuration d'application par défaut pour EMR Serverless. Pour plus d'informations sur la transmission de configurations de moteur, consultez les sections Utilisation de configurations Spark lorsque vous exécutez des tâches EMR sans serveur et Utilisation de configurations Hive lorsque vous exécutez des tâches EMR sans serveur.
Considérations et restrictions
-
Le mode d'adressage ne peut pas être défini via l'API. Pour le modifier, modifiez vos sous-réseaux (ou la propriété
spark.emr-serverless.networking.ipv6.enabledopt-in pour les sous-réseaux à double pile) et redémarrez l'application. -
IPv4-only et les IPv6-only sous-réseaux ne peuvent pas être combinés dans une seule application.
-
Votre code de travail et tous les SDK, pilotes ou points de terminaison qu'il utilise doivent prendre en charge le protocole IPv6 lors de l'exécution de l'application. IPv6-only Avec EMR Serverless, vous bénéficiez d'une connectivité IPv6 ; cela ne modifie pas le code de votre application ni les points de terminaison tiers.
Résolution des problèmes
Cette rubrique vous aide à diagnostiquer et à résoudre les problèmes réseau IPv6 courants liés aux applications EMR sans serveur, notamment les échecs de résolution DNS, les adresses IPv6 attribuées automatiquement manquantes, l'utilisation inattendue d'IPv4 et les erreurs de validation de sous-réseau. Vous trouverez ci-dessous les symptômes que vous pouvez rencontrer lors de l'exécution de tâches IPv6, ainsi que les mesures à prendre pour les résoudre.
Erreur de résolution DNS (UnknownHostException)
Cela peut se produire sur une IPv6-only application lorsque le sous-réseau ne dispose pas d'un chemin sortant DNS64 ou NAT64, de sorte que les tâches ne peuvent pas atteindre les points de terminaison dont elles ont besoin. Activez DNS64 et fournissez une passerelle NAT pour NAT64 sur chaque sous-réseau de l'application, comme décrit plus haut dans cette rubrique ci-dessous. Respect des prérequis en matière de VPC et de sous-réseau
Dual-stack le sous-réseau n'attribue pas automatiquement les adresses IPv6
Cela peut se produire lorsqu'un bloc d'adresse CIDR IPv6 est associé à un sous-réseau mais qu'il n'attribue pas automatiquement d'adresses IPv6, de sorte que l'application ne reçoit pas la connectivité IPv6 qu'elle attend. Activez l'attribution automatique d'une adresse IPv6 pour le sous-réseau, comme décrit précédemment dans cette rubrique, puis lancez une nouvelle tâche. Le paramètre s'applique uniquement aux ressources créées une fois que vous l'avez modifié.
Job exécuté sur IPv4 sur une application à double pile
Sur les sous-réseaux à double pile, cela peut se produire pour deux raisons. Tout d'abord, vous n'avez pas activé IPv6 avec la propriété de configuration. L'application s'exécute donc IPv4-only. Ensuite, vous avez activé IPv6 mais n'avez pas configuré le moteur pour qu'il le préfère. Le moteur a donc utilisé IPv4. Confirmez à la fois la propriété d'activation et les propriétés de préférence du moteur dans. Configuration des propriétés IPv6
Job échoue avec UnresolvedAddressException
Cela peut se produire lorsque la tâche force la pile IPv4 à entrer dans la JVM. Supprimez -Djava.net.preferIPv4Stack=true (et tout paramètre équivalent) de la configuration de votre tâche, puis soumettez-la à nouveau. Consultez Configuration des propriétés IPv6.
La demande échoue en raison d'une erreur de validation des sous-réseaux incompatibles
Cela peut se produire lorsque vous fournissez des sous-réseaux qui ne peuvent pas fonctionner ensemble, tels que des IPv4-only sous-réseaux mélangés à des IPv6-only sous-réseaux, ou lorsque la propriété d'spark.emr-serverless.networking.ipv6.enabledopt-in est définie sur true alors que l'application inclut un sous-réseau. IPv4-only Passez en revue vos sous-réseauxComment EMR Serverless détermine le mode d'adressage, ajustez-les ou ajustez-les en fonction de la propriété d'opt-in, puis réessayez la demande.