View a markdown version of this page

Configurazione di sottoreti IPv6 per applicazioni EMR Serverless - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di sottoreti IPv6 per applicazioni EMR Serverless

Con Amazon EMR Serverless, puoi eseguire i job di Apache Spark e Apache Hive su IPv6 nel tuo Amazon Virtual Private Cloud (Amazon VPC). Se si forniscono subnet o dual-stack (IPv4 e IPv6), EMR Serverless esegue i job IPv6-only utilizzando la modalità di indirizzamento di tali sottoreti. I tuoi lavori possono quindi raggiungere gli endpoint IPv6 nel tuo VPC e gli endpoint IPv6 esterni. IPv6-only le sottoreti vengono eseguite automaticamente su IPv6. Per le sottoreti dual-stack, si abilita IPv6 con una proprietà di configurazione, come descritto in. Configurazione delle proprietà IPv6

Comprendere i vantaggi principali

L'esecuzione di applicazioni EMR Serverless su IPv6 offre i seguenti vantaggi.

  • Spazio di indirizzamento più ampio: IPv6 offre uno spazio di indirizzi molto più ampio rispetto a IPv4, il che consente di evitare l'esaurimento degli indirizzi IPv4 nei VPC e nelle sottoreti che utilizzano molti lavoratori.

  • Dual-stack e IPv6-only networking: esegui lavori su sottoreti dual-stack che utilizzano sia IPv4 che IPv6 o su sottoreti per soddisfare gli standard di rete e i requisiti di conformità che richiedono IPv6. IPv6-only

  • Connettività agli endpoint IPv6: i job Spark e Hive possono raggiungere gli endpoint e i servizi IPv6 nel tuo VPC e negli endpoint IPv6 esterni.

  • Abilitazione IPv6-only flessibile: le sottoreti vengono eseguite automaticamente su IPv6. Per le sottoreti dual-stack, è possibile abilitare IPv6 con un'unica proprietà di configurazione, in modo da controllare quando si applica IPv6.

In che modo EMR Serverless determina la modalità di indirizzamento

EMR Serverless determina la modalità di indirizzamento dell'applicazione dalle sottoreti fornite.

  • IPv4-only sottoreti: l'applicazione viene eseguita esattamente come prima. IPv4-only Non vi è alcun cambiamento di comportamento per le applicazioni esistenti.

  • Dual-stack sottoreti: l'applicazione viene eseguita IPv4-only a meno che non si abiliti IPv6 con la proprietà di configurazione descritta in. Configurazione delle proprietà IPv6 Quando si abilita IPv6, l'applicazione può utilizzare sia IPv4 che IPv6.

  • IPv6-only sottoreti: l'applicazione viene eseguita. IPv6-only È disponibile in tutte le versioni di rilascio.

Quando si fornisce più di una sottorete, EMR Serverless esegue l'intera applicazione nell'unica modalità di indirizzamento supportata da ogni sottorete del set. Se le sottoreti non condividono alcuna modalità comune, EMR Serverless rifiuta la richiesta. I seguenti casi descrivono i tipi di sottoreti che un set può contenere, in qualsiasi numero e in qualsiasi combinazione.

  • IPv4-only e IPv6-only — EMR Serverless rifiuta il set con un errore di convalida.

  • IPv6-only e dual-stack: il set viene eseguito IPv6-only, incluse tutte le sottoreti dual-stack del set. Assicurati che ogni sottorete del set, incluse le sottoreti dual-stack, soddisfi i prerequisiti di. Soddisfazione dei prerequisiti per VPC e sottorete

  • IPv4-only e dual-stack: il set viene eseguito, incluse tutte le sottoreti dual-stack del set. IPv4-only

EMR Serverless valuta la modalità di indirizzamento dalle sottoreti e dalla configurazione correnti ogni volta che l'applicazione viene avviata. Un'applicazione in esecuzione mantiene la modalità con cui è stata avviata, quindi una modifica non ha effetto fino al successivo avvio.

Per le definizioni di IPv4-only dual-stack e IPv6-only sottoreti, consulta Subnet for your VPC nella Amazon Virtual Private Cloud User Guide.

Soddisfazione dei prerequisiti per VPC e sottorete

Sei responsabile della configurazione del tuo VPC e delle sottoreti in modo che il traffico IPv6 possa raggiungere i tuoi archivi di dati e AWS i servizi utilizzati dai tuoi job. Configura quanto segue nel tuo VPC prima di eseguire i job IPv6.

Utilizza la Amazon Virtual Private Cloud User Guide per le istruzioni dettagliate.

  • Associa un blocco CIDR (Classless Inter-Domain Routing) IPv6 alla sottorete. Ogni dual-stack o sottorete deve avere un blocco CIDR IPv6. IPv6-only Consulta Aggiungere o rimuovere un blocco CIDR IPv6 dalla sottorete e il supporto IPv6 per il tuo VPC nella Amazon Virtual Private Cloud User Guide.

  • Attiva l'assegnazione automatica dell'indirizzo IPv6 per la sottorete. La sottorete deve assegnare automaticamente gli indirizzi IPv6 in modo che l'applicazione riceva la connettività IPv6. Consulta Modificare gli attributi di indirizzamento IP della tua sottorete nella Amazon Virtual Private Cloud User Guide.

  • Abilita DNS64 (DNS-based IPv6-to-IPv4 traduzione) sulla sottorete e fornite un percorso NAT64 (traduzione degli indirizzi di rete da IPv6 a IPv4) in uscita (). IPv6-only Un' IPv6-only applicazione ne ha bisogno per raggiungere gli IPv4-only endpoint (ad esempio, i servizi che non pubblicano ancora un indirizzo IPv6). Abilita DNS64 sulla sottorete e indirizzate il 64:ff9b::/96 traffico sintetizzato attraverso un gateway NAT, che esegue NAT64. Un'applicazione dual-stack può raggiungere gli endpoint tramite IPv4 e non lo richiede. IPv4-only Consulta i gateway DNS64 e NAT64 e NAT nella Amazon Virtual Private Cloud User Guide.

  • Fornisci un gateway Internet solo in uscita per il traffico IPv6 privato in uscita. Per consentire a una sottorete privata di avviare connessioni IPv6 in uscita senza accettare connessioni in entrata da Internet, aggiungi un gateway Internet solo in uscita e un percorso ad esso. ::/0 Consulta Abilitare il traffico IPv6 in uscita utilizzando un gateway Internet di sola uscita nella Guida per l'utente di Amazon Virtual Private Cloud.

  • Consenti il traffico IPv6 in uscita di cui i tuoi lavori hanno bisogno nei tuoi gruppi di sicurezza. Si applicano le regole esistenti del gruppo di sicurezza EMR Serverless. Per la configurazione generale del VPC e del gruppo di sicurezza, consulta. Configurazione dell'accesso VPC per le applicazioni EMR Serverless per la connessione ai dati

Configurazione di IPv6 per l'applicazione

IPv6 viene configurato quando si crea un'applicazione o lo si modifica in un secondo momento aggiornando un'applicazione esistente. In entrambi i casi, EMR Serverless ricava la modalità di indirizzamento dalle sottoreti in, come descritto in. --network-configuration In che modo EMR Serverless determina la modalità di indirizzamento Per le sottoreti dual-stack, si abilita anche IPv6 con la proprietà descritta in; per le sottoreti, non è richiesta alcuna proprietà. Configurazione delle proprietà IPv6 IPv6-only

Come creare un’applicazione

La procedura seguente crea un'applicazione Spark che utilizza sottoreti dual-stack e abilita IPv6. Prima di iniziare, assicurati che ogni sottorete che intendi utilizzare soddisfi i requisiti di. Soddisfazione dei prerequisiti per VPC e sottorete

Il AWS CLI comando seguente crea un'applicazione Spark con sottoreti dual-stack e abilita 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

Sostituisci i valori seguenti:

  • my-application-name— Il nome che vuoi dare all'applicazione.

  • subnet-id-1, subnet-id-2 — Gli ID delle sottoreti dual-stack che desiderate utilizzare.

  • security-group-id— L'ID del gruppo di sicurezza che si desidera allegare.

  • AWS_REGION— Il Regione AWS luogo in cui si desidera creare l'applicazione.

Nelle sottoreti dual-stack, il processo utilizza IPv4 per impostazione predefinita. Per fare in modo che Spark preferisca IPv6, imposta le proprietà engine-preference descritte in. Configurazione delle proprietà IPv6 Per un'applicazione Hive, usa--type HIVE, la classificazione e la proprietà. hive-site hive.emr-serverless.networking.ipv6.enabled

Nota

Per le IPv6-only sottoreti, ometti. --runtime-configuration L'applicazione viene eseguita automaticamente su IPv6 e non vengono impostate le proprietà di abilitazione o preferenza del motore.

Per aggiornare un'applicazione esistente

  1. Arresta l'applicazione se è in esecuzione.

  2. Aggiorna l'applicazione mentre si trova nello STOPPED stato CREATED or. Fornisci le sottoreti che desideri inserire e--network-configuration, per le sottoreti dual-stack, includi la proprietà di abilitazione. --runtime-configuration I parametri che non includi mantengono i valori correnti.

    Il AWS CLI comando seguente aggiorna l'applicazione con le nuove sottoreti e la proprietà enablement:

    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

    Sostituisci i valori seguenti:

    • application-id— L'ID dell'applicazione che si desidera aggiornare.

    • subnet-id-1, subnet-id-2 — Gli ID delle sottoreti che si desidera utilizzare.

    • security-group-id— L'ID del gruppo di sicurezza che si desidera allegare.

    • AWS_REGION— Regione AWS L'applicazione.

  3. Avviare l'applicazione. EMR Serverless applica la modalità di indirizzamento all'avvio.

Configurazione delle proprietà IPv6

Le seguenti proprietà controllano l'IPv6 per l'applicazione e i lavori. Imposta la proprietà di abilitazione a livello di applicazione in. runtimeConfiguration Imposta le proprietà delle preferenze del motore a livello di lavoro, in Spark o con sparkSubmitParameters for Hive. --hiveconf

Motore Proprietà Dove lo imposti Predefinita Si applica a Note
Spark spark.emr-serverless.networking.ipv6.enabled spark-defaults(applicazioneruntimeConfiguration) false Dual-stack Abilita IPv6 su sottoreti dual-stack.
Spark spark.emr-serverless.driverEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(lavoro) false Dual-stack (facoltativo) Fa in modo che il driver Spark preferisca IPv6. Imposta automaticamente sulle sottoreti. IPv6-only Non impostare su IPv4-only sottoreti.
Spark spark.executorEnv.SPARK_PREFER_IPV6 sparkSubmitParameters(lavoro) false Dual-stack (facoltativo) Fa sì che gli esecutori Spark preferiscano IPv6. Imposta automaticamente sulle sottoreti. IPv6-only Non impostare su IPv4-only sottoreti.
Hive hive.emr-serverless.networking.ipv6.enabled hive-site(applicazione) runtimeConfiguration false Dual-stack Uguale alla proprietà di abilitazione Spark, per le applicazioni Hive.
Hive JAVA_TOOL_OPTIONS=-Djava.net.preferIPv6Addresses=true --hiveconf(lavoro) Non impostato Dual-stack (facoltativo) Fa sì che Hive preferisca IPv6. Imposta automaticamente sulle sottoreti. IPv6-only Non impostare su IPv4-only sottoreti.

Nelle sottoreti dual-stack, sono disponibili sia IPv4 che IPv6 e il motore utilizza IPv4 per impostazione predefinita. Per fare in modo che il motore preferisca l'IPv6, imposta le proprietà engine-preference per il tuo motore. Nelle IPv6-only sottoreti, EMR Serverless imposta automaticamente la preferenza IPv6, quindi non è l'utente a impostare queste proprietà. Nelle IPv4-only sottoreti, non è possibile impostare le proprietà di preferenza del motore; non è disponibile alcun IPv6, quindi se si preferisce IPv6 il processo non riesce.

L'esempio seguente imposta il motore Spark in modo che preferisca IPv6 nei job. sparkSubmitParameters

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

Non forzate lo stack IPv4 nella JVM (ad esempio, -Djava.net.preferIPv4Stack=true impostando o) su nessuna modalità di indirizzamento. spark.driver.extraJavaOptions spark.executor.extraJavaOptions

Per ulteriori informazioni sulla dichiarazione runtimeConfiguration a livello di applicazione, vedere Configurazione predefinita dell'applicazione per EMR Serverless. Per ulteriori informazioni sul passaggio delle configurazioni del motore, vedere Utilizzo delle configurazioni Spark quando si eseguono lavori EMR Serverless e Utilizzo delle configurazioni Hive quando si eseguono lavori EMR Serverless.

Considerazioni e limitazioni

  • La modalità di indirizzamento non può essere impostata tramite l'API. Per modificarla, modifica le sottoreti (o la proprietà spark.emr-serverless.networking.ipv6.enabled opt-in per le sottoreti dual-stack) e riavvia l'applicazione.

  • IPv4-only e IPv6-only le sottoreti non possono essere mescolate in un'unica applicazione.

  • Il codice di lavoro e tutti gli SDK, i driver o gli endpoint utilizzati devono supportare IPv6 durante l'esecuzione dell'applicazione. IPv6-only Con EMR Serverless, ottieni la connettività IPv6; non modifica il codice dell'applicazione o gli endpoint di terze parti.

Risoluzione dei problemi

Questo argomento consente di diagnosticare e risolvere i problemi di rete IPv6 più comuni con le applicazioni EMR Serverless, tra cui errori di risoluzione DNS, indirizzi IPv6 assegnati automaticamente mancanti, utilizzo imprevisto di IPv4 ed errori di convalida delle sottoreti. Di seguito sono riportati i sintomi che potresti riscontrare durante l'esecuzione di processi IPv6 e cosa fare per ciascuno di essi.

Errore di risoluzione DNS () UnknownHostException

Ciò può verificarsi in un' IPv6-only applicazione quando nella sottorete manca DNS64 o un percorso NAT64 in uscita, quindi i job non possono raggiungere gli endpoint necessari. Abilita DNS64 e fornisci un gateway NAT per NAT64 su ogni sottorete dell'applicazione, come descritto in precedenza in questo argomento. Soddisfazione dei prerequisiti per VPC e sottorete

Dual-stack la sottorete non assegna automaticamente gli indirizzi IPv6

Ciò può accadere quando una sottorete ha un blocco CIDR IPv6 associato ma non assegna automaticamente gli indirizzi IPv6, quindi l'applicazione non riceve la connettività IPv6 prevista. Attiva l'assegnazione automatica dell'indirizzo IPv6 per la sottorete, come descritto in precedenza in questo argomento, quindi avviate un nuovo processo. L'impostazione si applica solo alle risorse create dopo averla modificata.

Job viene eseguito su IPv4 su un'applicazione dual-stack

Nelle sottoreti dual-stack, ciò può accadere per due motivi. Innanzitutto, non è stato abilitato IPv6 con la proprietà di configurazione, quindi l'applicazione viene eseguita. IPv4-only In secondo luogo, hai abilitato IPv6 ma non hai impostato il motore per preferirlo, quindi il motore ha utilizzato IPv4. Conferma sia la proprietà di enablement che le proprietà engine-preference in. Configurazione delle proprietà IPv6

Job fallisce con UnresolvedAddressException

Questo può accadere quando il job impone lo stack IPv4 nella JVM. Rimuovi -Djava.net.preferIPv4Stack=true (e qualsiasi impostazione equivalente) dalla configurazione del lavoro e invia nuovamente il lavoro. Consulta Configurazione delle proprietà IPv6.

La richiesta ha esito negativo con un errore di convalida delle sottoreti incompatibili

Ciò può verificarsi quando si forniscono sottoreti che non possono funzionare insieme, ad esempio sottoreti miste a IPv4-only sottoreti, o quando la proprietà opt-in è impostata su mentre l'applicazione include una IPv6-only sottorete. spark.emr-serverless.networking.ipv6.enabled true IPv4-only Controllate le sottoretiIn che modo EMR Serverless determina la modalità di indirizzamento, modificatele o modificate la proprietà opt-in e riprovate a eseguire la richiesta.