View a markdown version of this page

Menentukan Instans Kontainer Mana yang Digunakan Amazon ECS untuk Tugas - Amazon Elastic Container Service

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

Menentukan Instans Kontainer Mana yang Digunakan Amazon ECS untuk Tugas

Batasan penempatan tugas adalah aturan tentang instance kontainer yang digunakan Amazon ECS untuk menentukan apakah tugas diizinkan untuk dijalankan pada instans. Setidaknya satu instance kontainer harus cocok dengan batasan. Jika tidak ada contoh yang cocok dengan batasan, tugas tetap dalam PENDING status. Saat Anda membuat layanan baru atau memperbarui layanan yang sudah ada, Anda dapat menentukan batasan penempatan tugas untuk tugas layanan.

Anda dapat menentukan batasan penempatan tugas dalam definisi layanan, definisi tugas, atau tugas menggunakan placementConstraint parameter.

"placementConstraints": [ { "expression": "The expression that defines the task placement constraints", "type": "The placement constraint type to use" } ]

Tabel berikut menjelaskan cara menggunakan parameter.

Jenis kendala Dapat ditentukan kapan
distinctInstance

Tempatkan setiap tugas aktif pada instance kontainer yang berbeda.

Amazon ECS melihat status tugas yang diinginkan untuk penempatan tugas. Misalnya, jika status yang diinginkan dari tugas yang ada adalahSTOPPED, (tetapi status terakhir tidak), tugas masuk baru dapat ditempatkan pada instance yang sama meskipun ada batasan pen distinctInstance empatan. Oleh karena itu, Anda mungkin melihat 2 tugas dengan status terakhir RUNNING pada instance yang sama.

penting

Kami menyarankan agar pelanggan yang mencari isolasi yang kuat untuk tugas mereka menggunakan Fargate. Fargate menjalankan setiap tugas di lingkungan virtualisasi perangkat keras. Ini memastikan bahwa beban kerja kontainer ini tidak berbagi antarmuka jaringan, penyimpanan sementara Fargate, CPU, atau memori dengan tugas lain.

memberOf

Tempatkan tugas pada instans kontainer yang memenuhi ekspresi.

Saat Anda menggunakan jenis memberOf kendala, Anda dapat membuat ekspresi menggunakan bahasa kueri cluster yang mendefinisikan instance kontainer tempat Amazon ECS dapat menempatkan tugas. Ekspresi adalah cara bagi Anda untuk mengelompokkan instance kontainer Anda berdasarkan atribut. Ekspresi masuk ke expression parameterplacementConstraint.

Atribut instance kontainer Amazon ECS

Anda dapat menambahkan metadata kustom ke instans kontainer Anda, yang dikenal sebagai atribut. Tiap atribut memiliki nama dan nilai string opsional. Anda dapat menggunakan atribut bawaan yang disediakan oleh Amazon ECS atau menentukan atribut khusus.

Bagian berikut berisi contoh atribut bawaan, opsional, dan kustom.

Built-in atribut

Amazon ECS secara otomatis menerapkan atribut berikut ke instans kontainer Anda.

ecs.ami-id

ID AMI yang digunakan untuk meluncurkan instans. Nilai contoh untuk atribut ini adalah ami-1234abcd.

ecs.availability-zone

Availability Zone untuk instans. Nilai contoh untuk atribut ini adalah us-east-1a.

ecs.instance-type

Jenis instans untuk instans tersebut. Nilai contoh untuk atribut ini adalah g2.2xlarge.

ecs.os-type

Sistem operasi untuk instans. Nilai yang mungkin untuk atribut ini adalah linux dan windows.

ecs.os-family

Versi sistem operasi untuk contoh.

Untuk instance Linux, nilai validnya adalahLINUX. Untuk instans Windows, ECS menetapkan nilai dalam WINDOWS_SERVER_<OS_Release>_<FULL or CORE> format. Nilai yang valid adalahWINDOWS_SERVER_2022_FULL,WINDOWS_SERVER_2022_CORE,WINDOWS_SERVER_20H2_CORE,WINDOWS_SERVER_2019_FULL,WINDOWS_SERVER_2019_CORE, danWINDOWS_SERVER_2016_FULL.

Ini penting untuk wadah Windows dan Windows containers on AWS Fargate karena versi OS dari setiap wadah Windows harus sesuai dengan host. Jika versi Windows dari gambar kontainer berbeda dari host, wadah tidak dimulai. Untuk informasi selengkapnya, lihat Kompatibilitas versi wadah Windows di situs web dokumentasi Microsoft.

Jika cluster Anda menjalankan beberapa versi Windows, Anda dapat memastikan bahwa tugas ditempatkan pada instans EC2 yang berjalan pada versi yang sama dengan menggunakan batasan penempatan:. memberOf(attribute:ecs.os-family == WINDOWS_SERVER_<OS_Release>_<FULL or CORE>) Untuk informasi selengkapnya, lihat Mengambil metadata AMI Amazon ECS-optimized Windows.

ecs.cpu-architecture

Arsitektur CPU untuk instans. Nilai contoh untuk atribut ini adalah x86_64 dan arm64.

ecs.vpc-id

VPC tempat instans diluncurkan. Nilai contoh untuk atribut ini adalah vpc-1234abcd.

ecs.subnet-id

Subnet yang digunakan instans. Nilai contoh untuk atribut ini adalah subnet-1234abcd.

catatan

Instans Terkelola Amazon ECS mendukung subset atribut berikut:

  • ecs.subnet-id

  • ecs.availability-zone

  • ecs.instance-type

  • ecs.cpu-architecture

Atribut opsional

Amazon ECS dapat menambahkan atribut berikut ke instans kontainer Anda.

ecs.awsvpc-trunk-id

Jika atribut ini ada, instans memiliki antarmuka jaringan trunk. Untuk informasi selengkapnya, lihat Meningkatkan antarmuka jaringan instance container Amazon ECS Linux.

ecs.outpost-arn

Jika atribut ini ada, atribut tersebut berisi Nama Sumber Daya Amazon (ARN) dari Outpost. Untuk informasi selengkapnya, lihat Layanan Kontainer Elastis Amazon aktif AWS Outposts.

ecs.capability.external

Jika atribut ini ada, instans diidentifikasi sebagai instans eksternal. Untuk informasi selengkapnya, lihat Cluster Amazon ECS untuk instans eksternal.

Atribut kustom

Anda dapat menerapkan atribut kustom ke instans kontainer Anda. Misalnya, Anda dapat menentukan atribut dengan nama “stack” dan nilai “prod”.

Saat menentukan atribut khusus, Anda harus mempertimbangkan hal berikut.

  • name harus berisi antara 1 hingga 128 karakter dan nama boleh berisi huruf (huruf besar dan huruf kecil), angka, tanda hubung, garis bawah, garis miring ke depan, garis miring belakang, atau titik.

  • value harus berisi antara 1 hingga 128 karakter dan boleh berisi huruf (huruf besar dan huruf kecil), angka, tanda hubung, garis bawah, titik, tanda (@), garis miring ke depan, garis miring belakang, titik dua, atau spasi. Nilai tidak dapat berisi spasi kosong di depan atau di belakang.