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
Parameterdevices
,sharedMemorySize
, dantmpfs
tidak didukung. Untuk informasi selengkapnya, lihat Parameter Linux. -
volumes
— Tugas Fargate hanya mendukung volume host bind mount, sehinggadockerVolumeConfiguration
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 modeawsvpc
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) catatanOpsi ini membutuhkan platform Linux |
Antara 16 GB dan 60 GB dalam peningkatan 4 GB | Linux |
16384 (16vCPU) catatanOpsi ini membutuhkan platform Linux |
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:
-
Volume Amazon EBS menyediakan penyimpanan blok yang hemat biaya, tahan lama, dan berkinerja tinggi untuk beban kerja kontainer intensif data. Untuk informasi selengkapnya, lihat Gunakan volume Amazon EBS dengan Amazon ECS.
-
Volume Amazon EFS untuk penyimpanan persisten. Untuk informasi selengkapnya, lihat Gunakan volume Amazon EFS dengan Amazon ECS.
-
Bind mount untuk penyimpanan sementara. Untuk informasi selengkapnya, lihat Gunakan bind mount dengan Amazon ECS.
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
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.