Pertimbangan ketentuan tugas Fargate - Amazon ECS

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

Pertimbangan ketentuan tugas Fargate

Tugas yang menggunakan tipe peluncuran Fargate tidak mendukung semua parameter ketentuan tugas Amazon ECS yang tersedia. Beberapa parameter tidak didukung sama sekali, dan parameter lainnya memiliki perilaku yang berbeda untuk tugas Fargate.

Parameter definisi tugas berikut ini tidak valid di tugas Fargate:

  • devices

  • disableNetworking

  • dnsSearchDomains

  • dnsServers

  • dockerSecurityOptions

  • dockerVolumeConfiguration

  • extraHosts

  • host

  • hostname

  • links

  • placementConstraints— Secara default, tugas Fargate tersebar di beberapa Availability Zone.

  • privileged

  • sharedMemorySize

  • tmpfs

penting

Jika salah satu parameter ketentuan tugas tidak didukung, subflag untuk parameter tersebut kemungkinan besar juga tidak didukung.

Parameter ketentuan tugas berikut berperilaku berbeda untuk tugas Fargate:

  • Saat menggunakanlogConfiguration, driver log yang didukung untuk tugas Fargate adalahawslogs,splunk, danawsfirelens log driver.

    Tugas Windows tidak mendukung driverawsfirelens log.

  • Saat menggunakan linuxParameters untuk capabilities, parameter drop dapat digunakan, tetapi parameter add tidak didukung.

  • healthCheckParameter hanya didukung untuk tugas Fargate yang menggunakan platform versi 1.1.0 atau yang lebih baru.

  • Jika Anda menggunakanportMappings parameter, tentukancontainerPort saja. Anda dapat tetaphostPort kosong atau mengaturnya ke nilai yang sama seperticontainerPort.

  • operatingSystemFamilyParameter diperlukan untuk tugas-tugas yang berjalan pada kontainer Linux dan kontainer Windows.

Untuk memastikan bahwa ketentuan tugas Anda valid untuk digunakan dengan tipe peluncuran Fargate, Anda dapat menentukan hal berikut saat mendaftarkan ketentuan tugas:

  • Pada AWS Management Console, untuk bidang Memerlukan kompatibilitas, tentukan FARGATE.

  • Pada AWS CLI, untuk opsi --requires-compatibilities, tentukan FARGATE.

  • Pada API, tentukan bendera requiresCompatibilities.

Mode jaringan

Ketentuan tugas Fargate mengharuskan mode jaringan diatur keawsvpc. Mode jaringan awsvpc menyediakan setiap tugas dengan antarmuka jaringan elastisnya sendiri. Konfigurasi jaringan juga diperlukan ketika membuat layanan atau menjalankan tugas secara manual. Untuk informasi selengkapnya, lihat Fargate Task Networking di Panduan Pengguna Amazon Elastic Container Service untukAWS Fargate.

Tugas CPU dan memori

Untuk ketentuan tugas Fargate, Anda diminta untuk menentukan CPU dan memori pada tingkat tugas. Anda juga dapat menentukan CPU dan memori pada tingkat kontainer untuk tugas Fargate. Namun, melakukan hal itu tidak diperlukan. Untuk sebagian besar kasus penggunaan, Anda dapat menentukan sumber daya ini pada tingkat tugas saja. Tabel berikut menunjukkan kombinasi yang valid dari tingkat tugas CPU dan memori.

Nilai CPU

Nilai memori

Sistem operasi yang didukung untukAWS Fargate

256 (.25 vCPU)

512 MiB, 1 GB

Linux

512 (.5 vCPU)

1 GB, 2 GB, 3 GB, 4 GB

Linux

1024 (1 vCPU)

2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

Linux, Windows

2048 (2 vCPU)

Antara 4 GB dan 16 GB dalam kenaikan 1 GB

Linux, Windows

4096 (4 vCPU)

Antara 8 GB dan 30 GB dalam kenaikan 1 GB

Linux, Windows

8192 (8 vCPU)

catatan

Opsi ini membutuhkan platform Linux1.4.0 atau yang lebih baru.

Antara 16 GB dan 60 GB dalam peningkatan 4 GB

Linux

16384 (16vCPU)

catatan

Opsi ini membutuhkan platform Linux1.4.0 atau yang lebih baru.

Antara 32 GB dan 120 GB dalam peningkatan 8 GB

Linux

Mencatat

Definisi tugas Fargate mendukungawslogs,splunk danawsfirelens log driver hanya untuk konfigurasi log. Kode berikut menunjukkan potongan ketentuan tugas tempat driver pencatatan awslogs dikonfigurasi:

"logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" }

Untuk informasi selengkapnya tentang bagaimana Anda dapat menggunakan driverawslogs log dalam definisi tugas untuk mengirim log kontainer Anda ke CloudWatch Log, lihatMenggunakan driver log awslogs.

Untuk informasi selengkapnya tentang penggunaan driver pencatatan awsfirelens dalam ketentuan tugas, lihat Perutean log kustom.

Peran IAM Eksekusi tugas Amazon ECS

Anda dapat menentukan peran IAM eksekusi tugas opsional dengan Fargate untuk memungkinkan tugas Fargate Anda melakukan panggilan API ke Amazon ECR. API memanggil gambar kontainer tarik. Mereka juga memanggil CloudWatch untuk menyimpan log aplikasi kontainer. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugas ECS.

Contoh ketentuan tugas

Berikut ini adalah contoh ketentuan tugas yang menggunakan kontainer Linux pada tipe peluncuran Fargate untuk mengatur server web:

{ "containerDefinitions": [ { "command": [ "/bin/sh -c \"echo '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p> </div></body></html>' > /usr/local/apache2/htdocs/index.html && httpd-foreground\"" ], "entryPoint": [ "sh", "-c" ], "essential": true, "image": "httpd:2.4", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group" : "/ecs/fargate-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample-fargate-app", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ] } ], "cpu": "256", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family": "fargate-task-definition", "memory": "512", "networkMode": "awsvpc", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "requiresCompatibilities": [ "FARGATE" ] }

Penyimpanan tugas

Untuk tugas Amazon ECS di Fargate, jenis penyimpanan berikut didukung:

  • Amazon EFS untuk penyimpanan tetap. Untuk informasi selengkapnya, lihat Volume Amazon EFS.

  • Penyimpanan sementara untuk penyimpanan nonpersistent.

Ketika disediakan, setiap tugas Amazon ECS yang di-hosting di Fargate menerima penyimpanan sementara berikut. Konfigurasi penyimpanan sementara tergantung pada versi platform yang digunakan tugas. Setelah tugas Fargate berhenti, penyimpanan fana akan dihapus. Untuk informasi lebih lanjut tentang batas standar Amazon ECS, lihatKuota layanan Amazon ECS.

catatan

sourcePathParameterhost dan tidak didukung untuk tugas Fargate.

Versi platform Fargate Linux

Tugas Fargate menggunakan platform 1.4.0 atau yang lebih baru

Semua tugas Amazon ECS di Fargate menggunakan versi1.4.0 1.000 GiB atau yang lebih baru menerima minimal 20 GiB penyimpanan sementara. Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainer Anda dari jumlah total.

Untuk tugas yang menggunakan versi platform1.4.0 atau versi lebih baru yang diluncurkan pada 28 Mei 2020 atau yang lebih baru, penyimpanan sementara dienkripsi dengan algoritme enkripsi AES-256 menggunakan kunci enkripsi yangAWS Fargate dikelola -managed.

Tugas Fargate menggunakan platform 1.3.0 atau lebih lama

Untuk tugas Amazon ECS di Fargate menggunakan 1.3.0 atau lebih lama, setiap tugas menerima penyimpanan sementara berikut.

  • Penyimpanan lapisan Docker 10 GB

    catatan

    Jumlah ini mencakup artifact citra kontainer terkompresi dan tidak terkompresi.

  • Tambahan 4 GB untuk pemasangan volume. Ini dapat dipasang dan dibagi di antara kontainer menggunakan volumes, mountPoints dan parameter volumesFrom dalam ketentuan tugas.

Versi platform Windows Fargate

Tugas Fargate menggunakan platform versi 1.0.0 atau yang lebih baru

Semua tugas Amazon ECS di Fargate menggunakan versi1.0.0 1.000 GiB atau yang lebih baru menerima minimal 20 GiB penyimpanan sementara. Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainer Anda dari jumlah total.

Contoh ketentuan tugas

Dalam contoh ini, Anda memiliki dua kontainer aplikasi yang perlu mengakses lokasi penyimpanan file scratch yang sama.

Untuk menyediakan penyimpanan kosong nonpersistent untuk kontainer dalam tugas Fargate
  1. Dalam ketentuan tugas bagian volumes, tentukan volume dengan nama application_scratch.

    "volumes": [ { "name": "application_scratch", "host": {} } ]
  2. DicontainerDefinitions bagian ini, buat aplikasi ketentuan kontainer sehingga mereka memasang penyimpanan nonpersistent.

    "containerDefinitions": [ { "name": "application1", "image": "my-repo/application", "cpu": 100, "memory": 100, "essential": true, "mountPoints": [ { "sourceVolume": "application_scratch", "containerPath": "/var/scratch" } ] }, { "name": "application2", "image": "my-repo/application", "cpu": 100, "memory": 100, "essential": true, "mountPoints": [ { "sourceVolume": "application_scratch", "containerPath": "/var/scratch" } ] } ]