Perbedaan definisi tugas Amazon ECS untuk jenis peluncuran Fargate - Amazon Elastic Container Service

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

Perbedaan definisi tugas Amazon ECS untuk jenis peluncuran Fargate

Untuk menggunakan Fargate, Anda harus mengonfigurasi definisi tugas Anda untuk menggunakan jenis peluncuran Fargate. Ada pertimbangan tambahan saat menggunakan Fargate.

Parameter ketentuan tugas

Tugas yang menggunakan tipe peluncuran Fargate tidak mendukung semua parameter definisi tugas Amazon ECS yang tersedia. Beberapa parameter tidak didukung sama sekali, dan yang lain berperilaku berbeda untuk tugas Fargate.

Parameter definisi tugas berikut tidak valid dalam tugas Fargate:

  • disableNetworking

  • dnsSearchDomains

  • dnsServers

  • dockerSecurityOptions

  • extraHosts

  • gpu

  • ipcMode

  • links

  • placementConstraints

  • privileged

  • maxSwap

  • swappiness

Parameter definisi tugas berikut valid dalam tugas Fargate, tetapi memiliki batasan yang harus diperhatikan:

  • linuxParameters— Saat menentukan opsi khusus Linux yang diterapkan ke wadah, satu-satunya kemampuan yang dapat Anda tambahkan adalah. capabilities CAP_SYS_PTRACE Parameter devices, sharedMemorySize, dan tmpfs tidak didukung. Untuk informasi selengkapnya, lihat Parameter Linux.

  • volumes— Tugas Fargate hanya mendukung volume host bind mount, sehingga dockerVolumeConfiguration parameternya tidak didukung. Untuk informasi selengkapnya, lihat Volume.

  • cpu- Untuk wadah Windows aktif AWS Fargate, nilainya tidak boleh kurang dari 1 vCPU.

  • networkConfiguration- Tugas Fargate selalu menggunakan mode awsvpc jaringan.

Untuk memastikan bahwa definisi tugas Anda memvalidasi untuk digunakan dengan Fargate, Anda dapat menentukan hal berikut saat mendaftarkan definisi tugas:

  • Di bidang AWS Management Console, untuk Memerlukan Kompatibilitas, tentukan. FARGATE

  • Dalam AWS CLI, tentukan --requires-compatibilities opsi.

  • Di Amazon ECS API, tentukan requiresCompatibilities flag.

Sistem Operasi dan Arsitektur

Saat Anda mengonfigurasi definisi tugas dan wadah untuk AWS Fargate, Anda harus menentukan Sistem Operasi yang dijalankan kontainer. Sistem Operasi berikut didukung untuk AWS Fargate:

  • Amazon Linux 2

    catatan

    Kontainer Linux hanya menggunakan konfigurasi kernel dan kernel dari Sistem Operasi host. Misalnya, konfigurasi kernel mencakup kontrol sysctl sistem. Gambar kontainer Linux dapat dibuat dari gambar dasar yang berisi file dan program dari distribusi Linux apa pun. Jika arsitektur CPU cocok, Anda dapat menjalankan container dari image container Linux apa pun di Sistem Operasi apa pun.

  • Windows Server 2019 Full

  • Windows Server 2019 Core

  • Windows Server 2022 Lengkap

  • Windows Server 2022 Inti

Saat Anda menjalankan kontainer Windows di AWS Fargate, Anda harus memiliki arsitektur CPU X86_64.

Saat Anda menjalankan wadah Linux di AWS Fargate, Anda dapat menggunakan arsitektur CPU X86_64, atau ARM64 arsitektur untuk aplikasi berbasis ARM Anda. Untuk informasi selengkapnya, lihat Definisi tugas Amazon ECS untuk beban kerja ARM 64-bit.

CPU dan memori tugas

Definisi tugas Amazon ECS untuk AWS Fargate mengharuskan Anda menentukan CPU dan memori di tingkat tugas. Meskipun Anda juga dapat menentukan CPU dan memori pada tingkat kontainer untuk tugas Fargate, ini opsional. Sebagian besar kasus penggunaan terpenuhi dengan hanya menentukan sumber daya ini pada tingkat tugas. Tabel berikut menunjukkan kombinasi yang valid antara CPU dan memori tingkat tugas. Anda dapat menentukan nilai memori dalam definisi tugas sebagai string di MiB atau GB. Misalnya, Anda dapat menentukan nilai memori baik seperti 3072 di MiB atau 3 GB GB. Anda dapat menentukan nilai CPU dalam file JSON sebagai string dalam unit CPU atau virtual CPUs (vCPUs). Misalnya, Anda dapat menentukan nilai CPU baik seperti 1024 dalam unit CPU atau 1 vCPU di vCPUs.

Nilai CPU Nilai memori Sistem operasi yang didukung untuk AWS Fargate
256 (.25 vCPU) 512 MiB, 1 GB, 2 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 peningkatan 1 GB Linux, Windows
4096 (4 vCPU) Antara 8 GB dan 30 GB dalam peningkatan 1 GB Linux, Windows
8192 (8 vCPU)
catatan

Opsi ini membutuhkan platform Linux 1.4.0 atau yang lebih baru.

Antara 16 GB dan 60 GB dalam peningkatan 4 GB Linux
16384 (16vCPU)
catatan

Opsi ini membutuhkan platform Linux 1.4.0 atau yang lebih baru.

Antara 32 GB dan 120 GB dalam peningkatan 8 GB Linux

Jaringan tugas

Tugas Amazon ECS untuk AWS Fargate memerlukan mode awsvpc jaringan, yang menyediakan setiap tugas dengan elastic network interface. Ketika Anda menjalankan tugas atau membuat layanan dengan mode jaringan ini, Anda harus menentukan satu subnet atau lebih untuk melampirkan antarmuka jaringan dan satu grup keamanan atau lebih untuk diterapkan ke antarmuka jaringan.

Jika Anda menggunakan subnet publik, putuskan apakah Anda ingin untuk memberikan alamat IP publik untuk antarmuka jaringan atau tidak. Untuk tugas Fargate di subnet publik untuk menarik gambar kontainer, alamat IP publik perlu ditetapkan ke antarmuka network elastis tugas, dengan rute ke internet atau gateway NAT yang dapat merutekan permintaan ke internet. Untuk tugas Fargate di subnet pribadi untuk menarik gambar kontainer, Anda memerlukan gateway NAT di subnet untuk merutekan permintaan ke internet. Saat Anda meng-host gambar penampung Anda di Amazon ECR, Anda dapat mengonfigurasi Amazon ECR untuk menggunakan titik akhir VPC antarmuka. Dalam hal ini, IPv4 alamat pribadi tugas digunakan untuk penarikan gambar. Untuk informasi selengkapnya tentang titik akhir antarmuka Amazon ECR, lihat Titik akhir VPC antarmuka Amazon ECR ()AWS PrivateLink di Panduan Pengguna Registri Amazon Elastic Container.

Berikut ini adalah contoh networkConfiguration bagian untuk layanan Fargate:

"networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-12345678" ], "subnets": [ "subnet-12345678" ] } }

Batas sumber daya tugas

Definisi tugas Amazon ECS untuk wadah Linux di AWS Fargate mendukung ulimits parameter untuk menentukan batas sumber daya yang akan ditetapkan untuk wadah.

Definisi tugas Amazon ECS untuk Windows aktif AWS Fargate tidak mendukung ulimits parameter untuk menentukan batas sumber daya yang akan ditetapkan untuk wadah.

Tugas Amazon ECS yang dihosting di Fargate menggunakan nilai batas sumber daya default yang ditetapkan oleh sistem operasi dengan pengecualian parameter batas sumber daya. nofile Batas nofile sumber daya menetapkan batasan pada jumlah file terbuka yang dapat digunakan wadah. Di Fargate, batas nofile lunak default adalah 65535 dan batas keras adalah. 65535 Anda dapat mengatur nilai dari kedua batas hingga1048576.

Berikut ini adalah contoh potongan ketentuan tugas yang menunjukkan cara untuk menentukan batas nofile kustom yang telah dilipatgandakan:

"ulimits": [ { "name": "nofile", "softLimit": 2048, "hardLimit": 8192 } ]

Untuk informasi lebih lanjut tentang batas sumber daya lain yang dapat disesuaikan, lihat Batas sumber daya.

Pencatatan log

Pencatatan peristiwa

Amazon ECS mencatat tindakan yang diperlukan. EventBridge Anda dapat menggunakan acara Amazon ECS EventBridge untuk menerima notifikasi hampir real-time mengenai status klaster, layanan, dan tugas Amazon ECS Anda saat ini. Selain itu, Anda dapat mengotomatiskan tindakan untuk menanggapi peristiwa ini. Untuk informasi selengkapnya, lihat Otomatiskan tanggapan terhadap kesalahan Amazon ECS menggunakan EventBridge.

Pencatatan siklus hidup tugas

Tugas yang berjalan di Fargate menerbitkan stempel waktu untuk melacak tugas melalui status siklus hidup tugas. Anda dapat melihat stempel waktu dalam detail tugas di AWS Management Console dan dengan menjelaskan tugas di dan. AWS CLI SDKs Misalnya, Anda dapat menggunakan stempel waktu untuk mengevaluasi berapa banyak waktu yang dihabiskan tugas untuk mengunduh gambar kontainer dan memutuskan apakah Anda harus mengoptimalkan ukuran gambar kontainer, atau menggunakan indeks OCI Seekable. Untuk informasi selengkapnya tentang praktik gambar kontainer, lihatPraktik terbaik untuk gambar kontainer Amazon ECS.

Pencatatan aplikasi

Definisi tugas Amazon ECS untuk AWS Fargate mendukungawslogs,splunk, dan awsfirelens log driver untuk konfigurasi log.

Driver awslogs log mengonfigurasi tugas Fargate Anda untuk mengirim informasi log ke Amazon CloudWatch Logs. Berikut ini menunjukkan potongan ketentuan tugas di tempat driver log 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 penggunaan driver awslogs log dalam definisi tugas untuk mengirim log kontainer Anda ke CloudWatch Log, lihatKirim log Amazon ECS ke CloudWatch .

Untuk informasi selengkapnya tentang driver log awsfirelens dalam ketentuan tugas, lihat Kirim log Amazon ECS ke AWS layanan atau AWS Partner.

Untuk informasi selengkapnya tentang penggunaan driver log splunk dalam ketentuan tugas, lihat splunkdriver log.

Penyimpanan tugas

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

Lazy loading gambar kontainer menggunakan Seekable OCI (SOCI)

Tugas Amazon ECS di Fargate yang menggunakan 1.4.0 versi platform Linux dapat menggunakan Seekable OCI (SOCI) untuk membantu memulai tugas lebih cepat. Dengan SOCI, kontainer hanya menghabiskan beberapa detik pada penarikan gambar sebelum mereka dapat memulai, menyediakan waktu untuk pengaturan lingkungan dan instantiasi aplikasi saat gambar diunduh di latar belakang. Ini disebut lazy loading. Saat Fargate memulai tugas Amazon ECS, Fargate secara otomatis mendeteksi apakah indeks SOCI ada untuk gambar dalam tugas dan memulai penampung tanpa menunggu seluruh gambar diunduh.

Untuk kontainer yang berjalan tanpa indeks SOCI, gambar kontainer diunduh sepenuhnya sebelum penampung dimulai. Perilaku ini sama pada semua versi platform Fargate lainnya dan pada AMI yang dioptimalkan Amazon ECS di instans Amazon. EC2

Indeks OCI yang dapat dicari

Seekable OCI (SOCI) adalah teknologi open source yang dikembangkan oleh AWS yang dapat meluncurkan kontainer lebih cepat dengan malas memuat gambar kontainer. SOCI bekerja dengan membuat indeks (Indeks SOCI) dari file dalam gambar kontainer yang ada. Indeks ini membantu meluncurkan kontainer lebih cepat, memberikan kemampuan untuk mengekstrak file individual dari gambar kontainer sebelum mengunduh seluruh gambar. Indeks SOCI harus disimpan sebagai artefak di repositori yang sama dengan gambar dalam registri kontainer. Anda hanya boleh menggunakan indeks SOCI dari sumber tepercaya, karena indeks adalah sumber otoritatif untuk konten gambar. Untuk informasi selengkapnya, lihat Memperkenalkan OCI yang Dapat Dicari untuk memuat gambar kontainer yang lambat.

Pertimbangan

Jika Anda ingin Fargate menggunakan indeks SOCI untuk memuat gambar kontainer dengan malas dalam suatu tugas, pertimbangkan hal berikut:

  • Hanya tugas yang berjalan pada versi platform Linux yang 1.4.0 dapat menggunakan indeks SOCI. Tugas yang menjalankan kontainer Windows di Fargate tidak didukung.

  • Tugas yang berjalan di X86_64 atau ARM64 Arsitektur CPU didukung.

  • Gambar kontainer dalam definisi tugas harus memiliki indeks SOCI di registri kontainer yang sama dengan gambar.

  • Gambar kontainer dalam definisi tugas harus disimpan dalam registri gambar yang kompatibel. Berikut ini daftar registri yang kompatibel:

    • Pendaftar pribadi Amazon ECR.

  • Hanya gambar kontainer yang menggunakan gzip kompresi atau tidak dikompresi didukung. Gambar kontainer yang menggunakan zstd kompresi tidak didukung.

  • Kami menyarankan Anda mencoba lazy loading dengan gambar kontainer yang lebih besar dari 250 MiB dikompresi dalam ukuran. Anda cenderung tidak melihat pengurangan waktu untuk memuat gambar yang lebih kecil.

  • Karena lazy loading dapat mengubah berapa lama tugas Anda dimulai, Anda mungkin perlu mengubah berbagai timeout seperti masa tenggang pemeriksaan kesehatan untuk Elastic Load Balancing.

  • Jika Anda ingin mencegah gambar kontainer dimuat lambat, hapus indeks SOCI dari registri kontainer. Jika gambar kontainer dalam tugas tidak memenuhi salah satu pertimbangan, gambar kontainer tersebut diunduh dengan metode default.

Membuat indeks OCI Seekable

Agar gambar kontainer dimuat lambat, diperlukan indeks SOCI (file metadata) yang dibuat dan disimpan di repositori gambar kontainer di sepanjang sisi gambar kontainer. Untuk membuat dan mendorong indeks SOCI, Anda dapat menggunakan alat CLI soci-snapshotter open source. GitHub Atau, Anda dapat menerapkan CloudFormation AWS SOCI Index Builder. Ini adalah solusi tanpa server yang secara otomatis membuat dan mendorong indeks SOCI saat gambar kontainer didorong ke Amazon ECR. Untuk informasi selengkapnya tentang solusi dan langkah-langkah penginstalan, lihat Pembuat Indeks CloudFormation AWS SOCI di GitHub. CloudFormation AWS SOCI Index Builder adalah cara untuk mengotomatisasi memulai dengan SOCI, sementara alat soci open source memiliki lebih banyak fleksibilitas seputar pembuatan indeks dan kemampuan untuk mengintegrasikan pembuatan indeks dalam pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda.

catatan

Agar indeks SOCI dibuat untuk gambar, gambar harus ada di containerd toko gambar di komputer yang sedang berjalansoci-snapshotter. Jika gambar ada di Docker toko gambar, gambar tidak dapat ditemukan.

Memverifikasi bahwa tugas menggunakan pemuatan lambat

Untuk memverifikasi bahwa tugas dimuat dengan malas menggunakan SOCI, periksa titik akhir metadata tugas dari dalam tugas. Saat Anda menanyakan titik akhir metadata tugas versi 4, ada Snapshotter bidang di jalur default untuk wadah yang Anda kueri. Selain itu, ada Snapshotter bidang untuk setiap kontainer di /task jalur. Nilai default untuk bidang ini adalahoverlayfs, dan bidang ini diatur ke soci jika SOCI digunakan.