

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

# Buat definisi pekerjaan simpul tunggal dengan beberapa kontainer di sumber daya Amazon EC2
<a name="create-job-definition-single-node-multi-container"></a>

Selesaikan langkah-langkah berikut untuk membuat definisi pekerjaan simpul tunggal dengan beberapa kontainer di sumber daya Amazon Elastic Compute Cloud (Amazon EC2).

**Untuk membuat definisi pekerjaan baru di sumber daya Amazon EC2:**

1. Buka AWS Batch konsol di [https://console.aws.amazon.com/batch/](https://console.aws.amazon.com/batch/).

1. Dari bilah navigasi, pilih yang Wilayah AWS akan digunakan.

1. Di panel navigasi kiri, pilih **Definisi Job**.

1. Pilih **Buat**.

1. Untuk **jenis Orkestrasi, pilih** Amazon **Elastic Compute Cloud (Amazon** EC2).

1. Untuk **struktur definisi Job**, matikan **Use legacy containerProperties** structure processing.

1. Untuk **konfigurasi platform EC2**, matikan **Aktifkan pemrosesan paralel multi-node**.

1. Pilih **Berikutnya**.

1. Di bagian **konfigurasi Umum**, masukkan yang berikut ini:

   1. Untuk **Name** (Name), masukkan nama yang unik untuk ketentuan tugas Anda. Nama dapat memiliki panjang hingga 128 karakter. Nama dapat memuat huruf besar dan huruf kecil, angka, tanda hubung (-), dan garis bawah (\_).

   1. Untuk **batas waktu Eksekusi - *opsional***, masukkan nilai batas waktu (dalam detik). Batas waktu eksekusi adalah lamanya waktu sebelum pekerjaan yang belum selesai dihentikan. Jika upaya melebihi durasi batas waktu, upaya dihentikan dan dipindahkan ke `FAILED` status. Untuk informasi selengkapnya, lihat [Batas waktu Job](job_timeouts.md). Nilai minimum adalah 60 detik.

   1. Aktifkan **Prioritas penjadwalan - *opsional***. Masukkan nilai prioritas penjadwalan antara 0 dan 100. Nilai yang lebih tinggi diberikan prioritas yang lebih tinggi.

   1. Perluas **Tag - *opsional*** dan kemudian pilih **Tambahkan tag** untuk menambahkan tag ke sumber daya. Masukkan kunci dan nilai opsional, lalu pilih **Tambah tag**.

   1. Aktifkan **Menyebarkan tag** untuk menyebarkan tag dari definisi pekerjaan dan pekerjaan ke tugas Amazon ECS.

1. Dalam **Strategi coba lagi - bagian *opsional***, masukkan yang berikut ini:

   1. Untuk **upaya Job**, masukkan berapa kali AWS Batch upaya untuk memindahkan pekerjaan ke `RUNNABLE` status. Masukkan angka antara 1 dan 10.

   1. Untuk **kondisi strategi Coba lagi**, pilih **Tambahkan evaluasi saat keluar**. Masukkan setidaknya satu nilai parameter dan kemudian pilih **Action**. Untuk setiap set kondisi, **Tindakan** harus diatur ke **Coba Ulang** atau **Keluar**. Tindakan ini berarti sebagai berikut:
      + **Coba lagi — AWS Batch coba** lagi sampai jumlah upaya pekerjaan yang Anda tentukan tercapai.
      + **Keluar** — AWS Batch berhenti mencoba kembali pekerjaan.
**penting**  
Jika Anda memilih **Tambahkan evaluasi saat keluar**, Anda harus mengonfigurasi setidaknya satu parameter dan memilih **Tindakan** atau memilih **Hapus evaluasi saat keluar**.

1. Di bagian **Properti tugas**, masukkan yang berikut ini:

   1. Untuk **peran Eksekusi - *bersyarat***, pilih peran yang memungkinkan agen Amazon ECS melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya tentang membuat **peran Eksekusi**, lihat[Tutorial: Buat peran eksekusi IAM](create-execution-role.md).

   1. Pilih **Aktifkan perintah eksekusi ECS**, untuk mengaktifkan akses ke shell kontainer Amazon ECS secara langsung dan melewati OS host. Anda harus memilih **peran Tugas**.
**penting**  
Perintah **eksekusi ECS** mengharuskan sistem file dapat ditulis. 

   1. Untuk **peran Task**, pilih peran Amazon ECS Identity and Access Management (IAM) untuk mengizinkan container melakukan panggilan AWS API atas nama Anda. Untuk informasi selengkapnya, lihat [peran IAM tugas Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html) dalam Panduan *Pengembang Layanan Kontainer Elastis Amazon*.

   1. Untuk **mode IPC** pilih`host`,`task`, atau`none`. Jika `host` ditentukan, maka semua kontainer yang berada dalam tugas yang menentukan mode IPC host pada instance kontainer yang sama berbagi sumber daya IPC yang sama dengan instans Amazon EC2 host. Jika tugas ditentukan, semua kontainer yang berada dalam tugas yang ditentukan berbagi sumber daya IPC yang sama. Jika tidak ada yang ditentukan, maka sumber daya IPC dalam wadah tugas bersifat pribadi dan tidak dibagikan dengan wadah lain dalam tugas atau pada instance penampung. Jika tidak ada nilai yang ditentukan, maka berbagi namespace sumber daya IPC tergantung pada pengaturan daemon Docker pada instans kontainer.

   1. Untuk **mode PID** pilih `host` atau`task`. Misalnya, pemantauan sidecar mungkin `pidMode` perlu mengakses informasi tentang kontainer lain yang berjalan dalam tugas yang sama. Jika `host` ditentukan, semua kontainer dalam tugas yang menentukan mode PID host pada instance container yang sama berbagi namespace proses yang sama dengan instans Amazon EC2 host. Jika `task` ditentukan, semua kontainer dalam tugas tertentu berbagi namespace proses yang sama. Jika tidak ada nilai yang ditentukan, defaultnya adalah namespace pribadi untuk setiap kontainer. 

1. Di bagian **Sumber daya habis pakai**, masukkan yang berikut ini:

   1. Masukkan **Nama** unik dan **nilai yang diminta**.

   1. Anda dapat menambahkan lebih banyak sumber daya habis pakai dengan memilih **Tambahkan sumber daya habis pakai**.

1. Di bagian **Penyimpanan**, masukkan yang berikut ini:

   1. Masukkan **jalur **Nama** dan Sumber** untuk volume dan kemudian pilih **Tambahkan volume**. Anda juga dapat memilih untuk mengaktifkan Aktifkan EFS.

   1. Anda dapat menambahkan lebih banyak Volume dengan memilih **Tambah volume**.

1. **Untuk **Parameter**, pilih **Tambahkan parameter** untuk menambahkan placeholder substitusi parameter sebagai pasangan **Kunci dan Nilai** opsional.**

1. Pilih **Halaman berikutnya**.

1. Di bagian **Konfigurasi kontainer**:

   1. Untuk **Nama**, masukkan nama untuk wadah.

   1. Untuk **wadah Essential**, aktifkan jika wadah itu penting.

   1. Untuk **Gambar**, pilih Docker gambar yang akan digunakan untuk pekerjaan Anda. Secara default, gambar dalam Docker Hub registri tersedia. Anda juga dapat menentukan repositori lainnya dengan `{{repository-url}}/{{image}}:{{tag}}`. Namanya bisa mencapai 225 karakter panjangnya. Ini dapat berisi huruf besar dan kecil, angka, tanda hubung (-), garis bawah (\_), titik dua (:), garis miring maju (/), dan tanda angka (\#). Parameter ini sesuai dengan `Image` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan `IMAGE` parameter [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/).
**catatan**  
Arsitektur gambar Docker harus sesuai dengan arsitektur prosesor sumber daya komputasi tempatnya dijadwalkan. Sebagai contoh, gambar Docker berbasis ARM hanya dapat berjalan pada sumber daya komputasi berbasis ARM.
      + Gambar di Amazon ECR Repositori Publik menggunakan konvensi lengkap `registry/repository[:tag]` atau `registry/repository[@digest]` penamaan (misalnya,). `public.ecr.aws/{{registry_alias}}/{{my-web-app}}:{{latest}}`
      + Gambar di repositori Amazon ECR menggunakan konvensi `registry/repository[:tag]` penamaan lengkap (misalnya,). `{{aws_account_id}}.dkr.ecr.{{region}}.amazonaws.com` `/{{my-web-app}}:{{latest}}`
      + Gambar di repositori resmi Docker Hub menggunakan satu nama (misalnya, `ubuntu` atau`mongo`).
      + Gambar di repositori lain di Docker Hub memenuhi syarat dengan nama organisasi (misalnya,`amazon/amazon-ecs-agent`).
      + Gambar di repositori online lainnya memenuhi syarat lebih lanjut berdasarkan nama domain (misalnya, `quay.io/assemblyline/ubuntu`).

   1. Untuk **persyaratan Sumber Daya**, konfigurasikan masing-masing hal berikut:

      1. Untuk **v CPUs**, pilih jumlah CPUs untuk wadah.

      1. Untuk **Memori**, pilih jumlah memori untuk wadah.

      1. Untuk **GPU - *opsional***, pilih jumlah GPUs untuk wadah.

   1. Untuk **User** (Pengguna), masukkan nama pengguna untuk digunakan di dalam kontainer.

   1. **Aktifkan Aktifkan sistem file baca saja** untuk menghapus akses tulis ke volume.

   1. Aktifkan **Privileged** untuk memberikan izin penampung pekerjaan yang lebih tinggi pada instance host, mirip dengan pengguna root. 

   1. Untuk **Command**, masukkan perintah ke dalam bidang sebagai setara dengan array string **JSON** mereka.

      Parameter ini sesuai dengan `Cmd` di bagian [Buat kontainer](https://docs.docker.com/engine/api/v1.38/#operation/ContainerCreate) di [Docker Remote API](https://docs.docker.com/engine/api/v1.38/) dan parameter `COMMAND` untuk [https://docs.docker.com/engine/reference/commandline/run/](https://docs.docker.com/engine/reference/commandline/run/). Untuk informasi selengkapnya tentang Docker `CMD` parameter, lihat [https://docs.docker.com/engine/referensi/builder/ \#cmd](https://docs.docker.com/engine/reference/builder/#cmd).
**catatan**  
Anda dapat menggunakan nilai dan placeholder default untuk substitusi parameter dalam perintah Anda. Untuk informasi selengkapnya, lihat [Parameter](job_definition_parameters.md#parameters).

   1. Untuk **kredensi Repositori - opsional *masukkan*** ARN rahasia yang berisi kredensil Anda.

   1. Untuk **variabel Lingkungan - *opsional***, pilih **Tambahkan variabel lingkungan** untuk menambahkan variabel lingkungan untuk diteruskan ke wadah.

   1. Dalam **parameter Linux - bagian *opsional***:

      1. **Aktifkan proses Aktifkan init** untuk menjalankan proses init di dalam wadah. 

      1. Untuk **ukuran memori Bersama**, masukkan ukuran (dalam MiB) volume /dev/shm

      1. Untuk **ukuran swap Max**, masukkan jumlah total memori swap (dalam MiB) yang dapat digunakan wadah.

      1. Untuk **Swappiness** masukkan nilai antara 0 dan 100 untuk menunjukkan perilaku swappiness wadah. Jika Anda tidak menentukan nilai dan pertukaran diaktifkan, nilai defaultnya menjadi 60. 

      1. Untuk **Perangkat**, pilih **Tambah perangkat** untuk menambahkan perangkat:

         1. Untuk **Container path** (Jalur kontainer), tentukan jalur dalam instans kontainer untuk mengungkap perangkat yang dipetakan ke instans host. Jika Anda mengosongkan ini, jalur host digunakan dalam wadah.

         1. Untuk **Host path** (Jalur host), tentukan jalur perangkat dalam instans host.

         1. Untuk **Izin**, pilih satu atau beberapa izin untuk diterapkan ke perangkat. Izin yang tersedia adalah **BACA**, **TULIS**, dan **MKNOD**.

      1. Untuk **Tmpfs**, pilih **Tambahkan tmpfs** untuk menambahkan mount. `tmpfs`

   1. 
**catatan**  
Firelens logging harus dilakukan dalam wadah khusus. Untuk mengonfigurasi logging Firelens:  
Di setiap kontainer, kecuali kontainer firelens khusus Anda, atur driver **Logging ke** `awsfirelens`
Dalam wadah Firelens Anda, atur Konfigurasi **Firelens - opsional dan konfigurasi Logging - *opsional*** **ke tujuan** pencatatan

      Di **Konfigurasi Firelens - bagian opsional**:
**penting**  
AWS Batch memberlakukan mode `host` jaringan pada pekerjaan Amazon ECS non-MNP dan non-Fargate. [Pengguna root diperlukan](https://github.com/aws/aws-for-fluent-bit/blob/mainline/troubleshooting/debugging.md#amazon-ecs-firelens-root-is-required) untuk Amazon ECS Firelens. [Saat menjalankan tugas yang menggunakan mode `host` jaringan, Amazon ECS menyarankan agar tidak menjalankan container menggunakan root user (UID 0) untuk keamanan yang lebih baik.](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#network_mode) Oleh karena itu, semua pekerjaan non-MNP, non-Fargate ECS dengan Firelens logging tidak akan memenuhi praktik terbaik keamanan.

      1. Untuk **Jenis**, pilih salah satu `fluentd` atau`fluentbit`. 

      1. Untuk **Opsi**, masukkan name/value pasangan opsi. Anda dapat menambahkan lebih banyak **Opsi** menggunakan **opsi Ditambahkan**.

   1.  Dalam **konfigurasi Logging - bagian *opsional***:

      1. Untuk **driver Log**, pilih driver log yang akan digunakan. [Untuk informasi lebih lanjut tentang driver log yang tersedia, LogConfiguration lihat:LogDriver.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-logDriver)
**catatan**  
Secara default, driver log `awslogs` akan digunakan.

      1. Untuk **Opsi**, pilih **Tambahkan opsi** untuk menambahkan opsi. Masukkan pasangan nama-nilai, lalu pilih **Tambah** opsi.

      1. Untuk **Rahasia**, pilih **Tambahkan rahasia**. Masukkan pasangan nama-nilai dan kemudian pilih **Tambahkan rahasia** untuk menambahkan rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Untuk **titik Mount - *opsional***, pilih **Tambahkan titik pemasangan** untuk menambahkan titik pemasangan untuk volume data. Anda harus menentukan volume sumber dan jalur kontainer. 

   1. Untuk **Rahasia - *opsional***, pilih **Tambahkan rahasia** untuk menambahkan rahasia. Kemudian, masukkan pasangan nama-nilai, dan pilih **Tambahkan** rahasia.
**Tip**  
[Untuk informasi lebih lanjut, lihat:SecretOptionsLogConfiguration.](https://docs.aws.amazon.com/batch/latest/APIReference/API_LogConfiguration.html#Batch-Type-LogConfiguration-secretOptions)

   1. Untuk **Ulimits - *opsional***, pilih **Tambahkan ulimit** untuk menambahkan `ulimits` nilai untuk wadah. Masukkan nilai **Name**, **Soft limit**, dan **Hard limit**, lalu pilih **Add ulimit**.

   1. Untuk **Dependensi - *opsional*, pilih Tambahkan dependensi** **kontainer**. Pilih nama wadah dan statusnya untuk menentukan kapan wadah ini dimulai.

1. Jika Anda hanya memiliki satu wadah yang dikonfigurasi maka Anda harus memilih **Tambah wadah** dan selesaikan konfigurasi wadah baru. Jika tidak, pilih **Berikutnya** untuk meninjau. 