

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Konfigurasikan subnet IPv6 untuk aplikasi EMR Tanpa Server
<a name="ipv6-subnets"></a>

Dengan Amazon EMR Serverless, Anda dapat menjalankan pekerjaan Apache Spark dan Apache Hive melalui IPv6 di Amazon Virtual Private Cloud (Amazon VPC). Jika Anda menyediakan dual-stack (IPv4 dan IPv6) atau subnet IPv6-only , EMR Serverless menjalankan pekerjaan Anda menggunakan mode pengalamatan subnet tersebut. Pekerjaan Anda kemudian dapat mencapai titik akhir IPv6 di VPC dan titik akhir IPv6 eksternal Anda. IPv6-only subnet berjalan melalui IPv6 secara otomatis. Untuk subnet dual-stack, Anda mengaktifkan IPv6 dengan properti konfigurasi, seperti yang dijelaskan dalam. [Mengkonfigurasi properti IPv6](#ipv6-properties)

## Memahami manfaat utama
<a name="ipv6-key-benefits"></a>

Menjalankan aplikasi EMR Tanpa Server melalui IPv6 memberikan manfaat berikut.
+ **Ruang alamat yang lebih besar** — IPv6 menyediakan ruang alamat yang jauh lebih besar daripada IPv4, yang membantu Anda menghindari kelelahan alamat IPv4 di VPC dan subnet yang menjalankan banyak pekerja.
+ **Dual-stack dan IPv6-only jaringan** — Jalankan pekerjaan pada subnet dual-stack yang menggunakan IPv4 dan IPv6, atau pada IPv6-only subnet, untuk memenuhi standar jaringan dan persyaratan kepatuhan yang membutuhkan IPv6.
+ **Konektivitas ke titik akhir IPv6** — Pekerjaan Spark dan Hive Anda dapat mencapai titik akhir dan layanan IPv6 di VPC dan titik akhir IPv6 eksternal Anda.
+ **Pengaktifan fleksibel** — IPv6-only subnet berjalan melalui IPv6 secara otomatis. Untuk subnet dual-stack, Anda mengaktifkan IPv6 dengan properti konfigurasi tunggal, sehingga Anda mengontrol kapan IPv6 berlaku.

## Bagaimana EMR Tanpa Server menentukan mode pengalamatan
<a name="ipv6-addressing-mode"></a>

EMR Tanpa Server menentukan mode pengalamatan aplikasi Anda dari subnet yang Anda berikan.
+ **IPv4-only subnet** — Aplikasi berjalan IPv4-only, persis seperti sebelumnya. Tidak ada perubahan perilaku untuk aplikasi yang ada.
+ **Dual-stack subnet** — Aplikasi berjalan IPv4-only kecuali Anda mengaktifkan IPv6 dengan properti konfigurasi yang dijelaskan dalam. [Mengkonfigurasi properti IPv6](#ipv6-properties) Saat Anda mengaktifkan IPv6, aplikasi dapat menggunakan IPv4 dan IPv6.
+ **IPv6-only subnet** — Aplikasi berjalan IPv6-only. Ini tersedia di semua versi rilis.

Ketika Anda menyediakan lebih dari satu subnet, EMR Serverless menjalankan seluruh aplikasi dalam satu mode pengalamatan yang didukung oleh setiap subnet dalam set. Jika subnet tidak memiliki mode umum, EMR Tanpa Server menolak permintaan. Kasus-kasus berikut menjelaskan jenis subnet yang dapat dikandung satu set, dalam jumlah berapa pun dan dalam kombinasi apa pun.
+ **IPv4-only dan IPv6-only** - EMR Tanpa Server menolak set dengan kesalahan validasi.
+ **IPv6-only dan dual-stack** — Set berjalan IPv6-only, termasuk subnet dual-stack apa pun di set. Pastikan setiap subnet dalam set, termasuk subnet dual-stack, memenuhi prasyarat di. [Memenuhi prasyarat VPC dan subnet](#ipv6-prerequisites)
+ **IPv4-only dan dual-stack** — Set berjalan IPv4-only, termasuk subnet dual-stack apa pun di set.

EMR Tanpa Server mengevaluasi mode pengalamatan dari subnet dan konfigurasi saat ini setiap kali aplikasi dimulai. Aplikasi yang sedang berjalan menjaga mode yang dimulai, sehingga perubahan tidak berlaku sampai awal berikutnya.

Untuk definisi IPv4-only, dual-stack, dan IPv6-only subnet, lihat [Subnet untuk VPC Anda di Panduan Pengguna *Amazon* Virtual](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html) Private Cloud.

## Memenuhi prasyarat VPC dan subnet
<a name="ipv6-prerequisites"></a>

Anda bertanggung jawab untuk mengonfigurasi VPC dan subnet Anda sehingga lalu lintas IPv6 dapat mencapai penyimpanan data Anda dan AWS layanan yang digunakan pekerjaan Anda. Konfigurasikan yang berikut ini di VPC Anda sendiri sebelum Anda menjalankan pekerjaan IPv6.

Gunakan *Panduan Pengguna Amazon Virtual Private Cloud* untuk petunjuk langkah demi langkah.
+ **Kaitkan blok IPv6 Classless Inter-Domain Routing (CIDR) dengan subnet.** Setiap dual-stack atau IPv6-only subnet harus memiliki blok CIDR IPv6. Lihat [Menambahkan atau menghapus blok IPv6 CIDR dari subnet](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-associate-ipv6-cidr.html) dan [dukungan IPv6 untuk VPC Anda](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) di Panduan Pengguna Amazon Virtual *Private* Cloud.
+ **Aktifkan auto-assign alamat IPv6 untuk subnet.** Subnet harus secara otomatis menetapkan alamat IPv6 sehingga aplikasi Anda menerima konektivitas IPv6. Lihat [Memodifikasi atribut pengalamatan IP subnet Anda](https://docs.aws.amazon.com/vpc/latest/userguide/subnet-public-ip.html) di *Panduan Pengguna Amazon Virtual Private Cloud*.
+ **Aktifkan DNS64 (DNS-based IPv6-to-IPv4 terjemahan) pada subnet dan berikan jalur keluar NAT64 (terjemahan alamat jaringan dari IPv6 ke IPv4) (). IPv6-only** IPv6-only Aplikasi membutuhkan ini untuk mencapai IPv4-only titik akhir (misalnya, layanan yang belum mempublikasikan alamat IPv6). Aktifkan DNS64 pada subnet dan rutekan `64:ff9b::/96` lalu lintas yang disintesis melalui gateway NAT, yang melakukan NAT64. Aplikasi dual-stack dapat mencapai IPv4-only titik akhir melalui IPv4 dan tidak memerlukan ini. Lihat gateway [DNS64 dan NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html) dan [NAT di Panduan Pengguna *Amazon* Virtual](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) Private Cloud.
+ **Menyediakan gateway internet khusus egres untuk lalu lintas IPv6 keluar pribadi.** Untuk memungkinkan subnet pribadi memulai koneksi IPv6 keluar tanpa menerima koneksi masuk dari internet, tambahkan gateway internet khusus egres dan rute ke sana. `::/0` Lihat [Mengaktifkan lalu lintas IPv6 keluar menggunakan gateway internet khusus egres di Panduan Pengguna *Amazon* Virtual](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html) Private Cloud.
+ **Izinkan lalu lintas IPv6 keluar yang dibutuhkan pekerjaan Anda di grup keamanan Anda.** Aturan grup keamanan EMR Tanpa Server yang ada berlaku. Untuk pengaturan VPC dan grup keamanan umum, lihat. [Mengkonfigurasi akses VPC untuk aplikasi EMR Tanpa Server untuk terhubung ke data](vpc-access.md)

## Mengkonfigurasi IPv6 untuk aplikasi Anda
<a name="ipv6-configure"></a>

Anda mengonfigurasi IPv6 saat membuat aplikasi, atau mengubahnya nanti dengan memperbarui aplikasi yang ada. Dalam kedua kasus, EMR Tanpa Server memperoleh mode pengalamatan dari subnet di, seperti yang dijelaskan dalam. `--network-configuration` [Bagaimana EMR Tanpa Server menentukan mode pengalamatan](#ipv6-addressing-mode) Untuk subnet dual-stack, Anda juga mengaktifkan IPv6 dengan properti yang dijelaskan dalam[Mengkonfigurasi properti IPv6](#ipv6-properties); untuk IPv6-only subnet, tidak diperlukan properti.

### Untuk membuat aplikasi
<a name="ipv6-create-app"></a>

Prosedur berikut membuat aplikasi Spark yang menggunakan subnet dual-stack dan mengaktifkan IPv6. Sebelum Anda mulai, pastikan bahwa setiap subnet yang Anda rencanakan untuk digunakan memenuhi persyaratan di[Memenuhi prasyarat VPC dan subnet](#ipv6-prerequisites).

 AWS CLI Perintah berikut membuat aplikasi Spark dengan subnet dual-stack dan mengaktifkan 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}}
```

Ganti nilai-nilai berikut:
+ **`my-application-name`**— Nama yang ingin Anda berikan pada aplikasi Anda.
+ **`subnet-id-1`, `subnet-id-2`** — ID dari subnet dual-stack yang ingin Anda gunakan.
+ **`security-group-id`**— ID grup keamanan yang ingin Anda lampirkan.
+ **`AWS_REGION`**— Wilayah AWS Tempat Anda ingin membuat aplikasi.

Pada subnet dual-stack, pekerjaan menggunakan IPv4 secara default. Agar Spark lebih memilih IPv6, atur properti preferensi mesin yang dijelaskan dalam. [Mengkonfigurasi properti IPv6](#ipv6-properties) Untuk aplikasi Hive, gunakan`--type HIVE`, `hive-site` klasifikasi, dan `hive.emr-serverless.networking.ipv6.enabled` properti.

**catatan**  
Untuk IPv6-only subnet, hilangkan`--runtime-configuration`. Aplikasi berjalan melalui IPv6 secara otomatis, dan Anda tidak mengatur properti enablement atau engine-preference.

### Untuk memperbarui aplikasi yang ada
<a name="ipv6-update-app"></a>

1. Hentikan aplikasi jika sedang berjalan.

1. Perbarui aplikasi saat berada di `STOPPED` negara bagian `CREATED` atau. Sediakan subnet yang Anda inginkan`--network-configuration`, dan untuk subnet dual-stack sertakan properti enablement di. `--runtime-configuration` Parameter yang tidak Anda sertakan mempertahankan nilainya saat ini.

    AWS CLI Perintah berikut memperbarui aplikasi dengan subnet baru dan properti 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}}
   ```

   Ganti nilai-nilai berikut:
   + **`application-id`**— ID aplikasi yang ingin Anda perbarui.
   + **`subnet-id-1`, `subnet-id-2`** — ID subnet yang ingin Anda gunakan.
   + **`security-group-id`**— ID grup keamanan yang ingin Anda lampirkan.
   + **`AWS_REGION`**— Aplikasi. Wilayah AWS 

1. Mulai aplikasi. EMR Tanpa Server menerapkan mode pengalamatan di awal.

## Mengkonfigurasi properti IPv6
<a name="ipv6-properties"></a>

Properti berikut mengontrol IPv6 untuk aplikasi dan pekerjaan Anda. Tetapkan properti enablement di tingkat aplikasi di`runtimeConfiguration`. Tetapkan properti preferensi mesin di tingkat pekerjaan, di `sparkSubmitParameters` untuk Spark atau dengan untuk Hive. `--hiveconf`



| Engine | Properti | Di mana Anda mengaturnya | Default | Berlaku untuk | Catatan | 
| --- | --- | --- | --- | --- | --- | 
| Spark | spark.emr-serverless.networking.ipv6.enabled | spark-defaults(aplikasiruntimeConfiguration) | false | Dual-stack | Mengaktifkan IPv6 pada subnet dual-stack. | 
| Spark | spark.emr-serverless.driverEnv.SPARK\_PREFER\_IPV6 | sparkSubmitParameters(pekerjaan) | false | Dual-stack (opsional) | Membuat driver Spark lebih memilih IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet. | 
| Spark | spark.executorEnv.SPARK\_PREFER\_IPV6 | sparkSubmitParameters(pekerjaan) | false | Dual-stack (opsional) | Membuat pelaksana Spark lebih suka IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet. | 
| Hive | hive.emr-serverless.networking.ipv6.enabled | hive-site(aplikasiruntimeConfiguration) | false | Dual-stack | Sama seperti properti pemberdayaan Spark, untuk aplikasi Hive. | 
| Hive | JAVA\_TOOL\_OPTIONS=-Djava.net.preferIPv6Addresses=true | --hiveconf(pekerjaan) | Tidak diatur | Dual-stack (opsional) | Membuat Hive lebih suka IPv6. Atur secara otomatis pada IPv6-only subnet. Jangan diatur pada IPv4-only subnet. | 

Pada subnet dual-stack, IPv4 dan IPv6 tersedia dan mesin menggunakan IPv4 secara default. Agar mesin lebih menyukai IPv6, atur properti preferensi mesin untuk mesin Anda. Pada IPv6-only subnet, EMR Serverless menetapkan preferensi IPv6 untuk Anda, sehingga Anda tidak mengatur properti ini. Pada IPv4-only subnet, jangan atur properti preferensi mesin; tidak ada IPv6 yang tersedia, jadi memilih IPv6 menyebabkan pekerjaan gagal.

Contoh berikut menetapkan mesin Spark untuk memilih IPv6 dalam pekerjaan. `sparkSubmitParameters`

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

**penting**  
Jangan memaksa tumpukan IPv4 di JVM (misalnya, dengan mengatur `spark.driver.extraJavaOptions` atau`spark.executor.extraJavaOptions`) pada mode `-Djava.net.preferIPv4Stack=true` pengalamatan apa pun.

Untuk informasi selengkapnya tentang mendeklarasikan `runtimeConfiguration` di tingkat aplikasi, lihat [Konfigurasi aplikasi default untuk EMR Tanpa Server](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/default-configs.html). Untuk informasi selengkapnya tentang meneruskan konfigurasi engine, lihat [Menggunakan konfigurasi Spark saat menjalankan pekerjaan EMR Tanpa Server dan Menggunakan [konfigurasi Hive](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-hive.html) saat menjalankan pekerjaan EMR Tanpa](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/jobs-spark.html) Server.

## Pertimbangan dan batasan
<a name="ipv6-considerations"></a>
+ Mode pengalamatan tidak dapat diatur melalui API. Untuk mengubahnya, ubah subnet Anda (atau properti `spark.emr-serverless.networking.ipv6.enabled` opt-in untuk subnet dual-stack) dan restart aplikasi.
+ IPv4-only dan IPv6-only subnet tidak dapat dicampur dalam satu aplikasi.
+ Kode pekerjaan Anda dan SDK, driver, atau titik akhir apa pun yang digunakannya harus mendukung IPv6 saat aplikasi berjalan. IPv6-only Dengan EMR Tanpa Server, Anda mendapatkan konektivitas IPv6; itu tidak mengubah kode aplikasi Anda atau titik akhir pihak ketiga.

## Pemecahan masalah
<a name="ipv6-troubleshooting"></a>

Topik ini membantu Anda mendiagnosis dan menyelesaikan masalah jaringan IPv6 umum dengan aplikasi EMR Tanpa Server, termasuk kegagalan resolusi DNS, alamat IPv6 yang ditetapkan secara otomatis yang hilang, penggunaan IPv4 yang tidak terduga, dan kesalahan validasi subnet. Berikut ini adalah gejala yang mungkin Anda lihat saat menjalankan pekerjaan IPv6, dan apa yang harus dilakukan untuk masing-masing pekerjaan.

### Kesalahan resolusi DNS () UnknownHostException
<a name="ipv6-ts-dns"></a>

Ini dapat terjadi pada IPv6-only aplikasi ketika subnet kehilangan DNS64 atau jalur keluar NAT64, sehingga pekerjaan tidak dapat mencapai titik akhir yang mereka butuhkan. Aktifkan DNS64 dan sediakan gateway NAT untuk NAT64 di setiap subnet dalam aplikasi, seperti yang dijelaskan sebelumnya dalam topik ini di bawah. [Memenuhi prasyarat VPC dan subnet](#ipv6-prerequisites)

### Dual-stack subnet tidak menetapkan alamat IPv6 secara otomatis
<a name="ipv6-ts-no-autoassign"></a>

Ini dapat terjadi ketika subnet memiliki blok CIDR IPv6 terkait tetapi tidak secara otomatis menetapkan alamat IPv6, sehingga aplikasi tidak menerima konektivitas IPv6 yang diharapkannya. Aktifkan auto-assign alamat IPv6 untuk subnet, seperti yang dijelaskan sebelumnya dalam topik ini, dan kemudian mulai pekerjaan baru. Pengaturan hanya berlaku untuk sumber daya yang dibuat setelah Anda mengubahnya.

### Job berjalan melalui IPv4 pada aplikasi dual-stack
<a name="ipv6-ts-ran-ipv4"></a>

Pada subnet dual-stack, ini bisa terjadi karena salah satu dari dua alasan. Pertama, Anda tidak mengaktifkan IPv6 dengan properti konfigurasi, sehingga aplikasi berjalan. IPv4-only Kedua, Anda mengaktifkan IPv6 tetapi tidak mengatur mesin untuk memilihnya, sehingga mesin menggunakan IPv4. Konfirmasikan properti pemberdayaan dan properti preferensi mesin di. [Mengkonfigurasi properti IPv6](#ipv6-properties)

### Job gagal dengan UnresolvedAddressException
<a name="ipv6-ts-unresolved"></a>

Ini bisa terjadi ketika pekerjaan memaksa tumpukan IPv4 di JVM. Hapus `-Djava.net.preferIPv4Stack=true` (dan setelan setara apa pun) dari konfigurasi pekerjaan Anda, dan kirimkan kembali pekerjaan tersebut. Lihat [Mengkonfigurasi properti IPv6](#ipv6-properties).

### Permintaan gagal dengan kesalahan validasi subnet yang tidak kompatibel
<a name="ipv6-ts-validation"></a>

Ini dapat terjadi ketika Anda menyediakan subnet yang tidak dapat berjalan bersama, seperti IPv4-only subnet yang dicampur dengan IPv6-only subnet, atau properti `spark.emr-serverless.networking.ipv6.enabled` opt-in yang disetel ke `true` sementara aplikasi menyertakan subnet. IPv4-only Tinjau subnet Anda[Bagaimana EMR Tanpa Server menentukan mode pengalamatan](#ipv6-addressing-mode), sesuaikan atau properti keikutsertaan, dan coba lagi permintaan.