Amazon ECS - Panduan Pengguna untuk AWS Fargate

493
Amazon ECS Panduan Pengguna untuk AWS Fargate

Transcript of Amazon ECS - Panduan Pengguna untuk AWS Fargate

Amazon ECSPanduan Pengguna untuk AWS Fargate

Amazon ECS Panduan Pengguna untuk AWS Fargate

Amazon ECS: Panduan Pengguna untuk AWS FargateCopyright © Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Merek dagang dan tampilan dagang Amazon tidak boleh digunakan sehubungan dengan produk atau layanan apa punyang bukan milik Amazon, dengan cara apa pun yang dapat menyebabkan kebingungan di antara para pelanggan,atau dengan cara apa pun yang menghina atau mendiskreditkan Amazon. Semua merek dagang lain yang tidakdimiliki oleh Amazon adalah milik dari pemiliknya masing-masing, yang mungkin berafiliasi atau tidak berafiliasidengan, terkait, atau disponsori oleh Amazon.

Amazon ECS Panduan Pengguna untuk AWS Fargate

Table of ContentsApakah AWS Fargate itu? ................................................................................................................... 1

Komponen ................................................................................................................................. 1Klaster .............................................................................................................................. 1Ketentuan tugas ................................................................................................................. 1Tugas ............................................................................................................................... 1Layanan ............................................................................................................................ 2

Sistem Operasi dan arsitektur CPU ............................................................................................... 2Wilayah ..................................................................................................................................... 2Kontainer Windows diAWSPertimbangan Fargate ............................................................................ 2Memulai panduan ....................................................................................................................... 3Harga ....................................................................................................................................... 3

Mulai ................................................................................................................................................ 4Mengatur ................................................................................................................................... 4

Daftar untuk AWS ............................................................................................................... 4Mmebuat pengguna IAM ...................................................................................................... 4Buat virtual private cloud ..................................................................................................... 6Instal AWS CLI .................................................................................................................. 7

Membuat citra kontainer .............................................................................................................. 7Prasyarat ........................................................................................................................... 7Membuat citra Docker ......................................................................................................... 9Dorong citra Anda ke Amazon Elastic Container Registry ........................................................ 10Bersihkan ........................................................................................................................ 11Langkah selanjutnya .......................................................................................................... 11

MenggunakanAWSKopilot .......................................................................................................... 11Prasyarat ......................................................................................................................... 12Deploy aplikasi Anda menggunakan satu perintah .................................................................. 12Deploy aplikasi Anda langkah demi langkah .......................................................................... 12

Menggunakan AWS CDK ........................................................................................................... 16Langkah 1: SiapkanAWS CDKproyek ................................................................................... 17Langkah 2: MenggunakanAWS CDKuntuk menentukan server Web kontainer di Fargate .............. 18Langkah 3: Uji server Web ................................................................................................. 22Langkah 4: Bersihkan ........................................................................................................ 22Langkah selanjutnya .......................................................................................................... 22

Memulai menggunakan konsol klasik ........................................................................................... 23Menggunakan konsol klasik dengan kontainer LinuxAWS Fargate ............................................ 23

Gambaran umum alat developer ......................................................................................................... 27AWS Management Console ........................................................................................................ 27AWS Command Line Interface .................................................................................................... 27AWS CloudFormation ................................................................................................................ 28AWSKopilot CLI ........................................................................................................................ 28AWS CDK ............................................................................................................................... 29App2Container AWS ................................................................................................................. 29Amazon ECS CLI ..................................................................................................................... 29Integrasi Desktop dengan Amazon ECS ....................................................................................... 29AWS SDK ................................................................................................................................ 30Ringkasan ................................................................................................................................ 30MenggunakanAWSKopilot CLI .................................................................................................... 31

MenginstalAWSKopilot CLI ................................................................................................. 31Langkah selanjutnya .......................................................................................................... 37

Menggunakan CLI Amazon ECS ................................................................................................. 37Menginstal CLI Amazon ECS ............................................................................................. 38Mengkonfigurasi Amazon ECS CLI ...................................................................................... 44Memigrasikan File Konfigurasi ............................................................................................ 45Tutorial: Membuat klaster dengan tugas Fargate menggunakan Amazon ECS CLI ....................... 46

iii

Amazon ECS Panduan Pengguna untuk AWS Fargate

Tutorial: Membuat Layanan Amazon ECS yang Menggunakan Penemuan LayananMenggunakan Amazon ECS CLI ......................................................................................... 51

Versi platform ................................................................................................................................... 55Versi platform Linux .................................................................................................................. 55

Pertimbangan versi platform ............................................................................................... 551.4.0 ............................................................................................................................... 551.3.0 ............................................................................................................................... 561.2.0 ............................................................................................................................... 571.1.0 ............................................................................................................................... 571.0.0 ............................................................................................................................... 58Migrasi ke versi 1.4.0 ........................................................................................................ 58Pengusangan versi ........................................................................................................... 58

Versi platform ........................................................................................................................... 59Pertimbangan versi platform ............................................................................................... 591.0.0 ............................................................................................................................... 59

Kontainer Amazon Elastic Container Service ......................................................................................... 60Manajemen klaster di konsol Amazon ECS baru ............................................................................ 60

Membuat klaster untuk jenis peluncuran Fargate menggunakan konsol baru ............................... 60Mengatur penyedia kapasitas default klaster menggunakan konsol baru .................................... 61Menghapus klaster menggunakan konsol baru ...................................................................... 62

Manajemen definisi tugas di konsol Amazon ECS baru ................................................................... 62Membuat ketentuan tugas menggunakan konsol baru ............................................................. 63Memperbarui ketentuan tugas menggunakan konsol baru ....................................................... 66Revisi ketentuan tugas menggunakan konsol baru ................................................................. 67

Pengelolaan tugas di konsol Amazon ECS baru ............................................................................ 68Menjalankan tugas mandiri menggunakan konsol baru ............................................................ 68

Manajemen layanan di konsol Amazon ECS baru .......................................................................... 69Membuat layanan menggunakan konsol baru ........................................................................ 69Memperbarui layanan menggunakan konsol baru ................................................................... 71Menghapus layanan menggunakan konsol baru ..................................................................... 72

Klaster ............................................................................................................................................. 73Konsep klaster ......................................................................................................................... 73Membuat klaster menggunakan konsol klasik ................................................................................ 74Penyedia kapasitas ................................................................................................................... 75

Konsep penyedia kapasitas ................................................................................................ 75Jenis penyedia kapasitas ................................................................................................... 76Pertimbangan penyedia kapasitas ....................................................................................... 76Penyedia kapasitas AWS Fargate ....................................................................................... 77

Memperbarui pengaturan klaster ................................................................................................. 80Menghapus klaster menggunakan konsol klasik ............................................................................. 81Menghentikan tugas menggunakan konsol baru ............................................................................. 81

Ketentuan tugas ............................................................................................................................... 83Pertimbangan ketentuan tugas Fargate ........................................................................................ 83

Mode jaringan .................................................................................................................. 84Tugas CPU dan memori .................................................................................................... 85Mencatat ......................................................................................................................... 85Peran IAM eksekusi tugas Amazon ECS .............................................................................. 85Contoh ketentuan tugas ..................................................................................................... 85Tugas ssiksaan ................................................................................................................ 86

Arsitektur aplikasi ...................................................................................................................... 88Menggunakan jenis peluncuran Fargate ............................................................................... 88

Membuat definisi tugas menggunakan konsol klasik ....................................................................... 89Templat ketentuan tugas .................................................................................................... 91

Parameter ketentuan tugas ........................................................................................................ 95Rangkaian ....................................................................................................................... 95Jenis peluncuran ............................................................................................................... 95Peran eksekusi tugas ........................................................................................................ 96

iv

Amazon ECS Panduan Pengguna untuk AWS Fargate

Mode jaringan .................................................................................................................. 96Platform waktu aktif ........................................................................................................... 96Ukuran tugas ................................................................................................................... 97Ketentuan kontainer .......................................................................................................... 99Konfigurasi proxy ............................................................................................................ 118Volume .......................................................................................................................... 120Tanda ............................................................................................................................ 121Parameter ketentuan tugas lainnya .................................................................................... 122

Jenis peluncuran ..................................................................................................................... 123Jenis peluncuran Fargate ................................................................................................. 123

Bekerja dengan beban kerja ARM 64-bit di Amazon ECS .............................................................. 124Pertimbangan-pertimbangan .............................................................................................. 125Menentukan arsitektur ARM dalam ketentuan tugas Anda ...................................................... 125Antarmuka untuk mengkonfigurasi ARM ............................................................................. 126

Menggunakan volume data dalam tugas ..................................................................................... 126Penyimpanan tugas Fargate ............................................................................................. 127Versi platform kontainer Fargate Linux ............................................................................... 127Versi platform kontainer Fargate Windows .......................................................................... 127Volume Amazon EFS ...................................................................................................... 128Pemasangan terikat ......................................................................................................... 131

Jaringan tugas Fargate ............................................................................................................ 135Pertimbangan jaringan tugas Fargate ................................................................................. 137Menggunakan VPC dalam mode tumpukan dobel ................................................................ 137

Menggunakan driver log awslogs ............................................................................................... 138Mengaktifkan driver log awslogs untuk kontainer Anda .......................................................... 138Membuat grup log ........................................................................................................... 138Tersedia opsi driver log awslogs ....................................................................................... 139Menentukan konfigurasi log dalam ketentuan tugas Anda ...................................................... 141Melihat log kontainer di CloudWatch Beberapa catatan ......................................................... 142

Perutean log kustom ................................................................................................................ 143Pertimbangan-pertimbangan .............................................................................................. 144Izin IAM yang diperlukan .................................................................................................. 144Batas buffer Fluentd ........................................................................................................ 145MenggunakanFluentlogger perpustakaan atau Log4j lebih TCP .............................................. 146MenggunakanAWSuntukFluent Bitgambar ........................................................................... 147Membuat ketentuan tugas yang menggunakanFireLenskonfigurasi .......................................... 148Pemfilteran log menggunakan ekspresi reguler .................................................................... 151Menggabungkan pesan log multiline atau stack-trace ............................................................ 152Ketentuan tugas contoh ................................................................................................... 168

Autentikasi registri privat untuk tugas ......................................................................................... 173Izin IAM yang diperlukan untuk autentikasi registri priv .......................................................... 173Mengaktifkan autentikasi registri privat ............................................................................... 174

Menentukan data sensitif .......................................................................................................... 175Menggunakan Secrets Manager ........................................................................................ 176Menggunakan Systems Manager Parameter Store ............................................................... 182

Menentukan variabel lingkungan ................................................................................................ 186Pertimbangan untuk menentukan file variabel lingkungan ...................................................... 187Izin IAM yang diperlukan .................................................................................................. 188

Contoh ketentuan tugas ........................................................................................................... 188Contoh: Webserver .......................................................................................................... 189Contoh: driver log splunk ............................................................................................... 190Contoh: driver log fluentd .............................................................................................. 191Contoh: driver log gelf ................................................................................................... 191Contoh: Dependensi kontainer .......................................................................................... 192Ketentuan tugas sampel Windows ..................................................................................... 193

Memperbarui ketentuan tugas menggunakan konsol klasik ............................................................ 194Revisi ketentuan tugas ............................................................................................................. 194

v

Amazon ECS Panduan Pengguna untuk AWS Fargate

Pengaturan akun ............................................................................................................................. 196Amazon Resource Name (ARN) dan ID ...................................................................................... 197Lini masa format ARN dan ID sumber daya ................................................................................ 198Melihat pengaturan akun .......................................................................................................... 199Mengubah pengaturan akun ..................................................................................................... 199

Penjadwalan tugas .......................................................................................................................... 202Menjalankan tugas mandiri ....................................................................................................... 203Tugas terjadwal ...................................................................................................................... 205

Membuat tugas terjadwal .................................................................................................. 206Lihat tugas terjadwal Anda ............................................................................................... 209Mengedit tugas terjadwal .................................................................................................. 210

Pemeliharaan tugas ................................................................................................................. 210Memahami pemberitahuan tugas pensiun ........................................................................... 211

Layanan ......................................................................................................................................... 213Konsep penjadwal layanan ....................................................................................................... 213

Replika .......................................................................................................................... 214Konsep layanan tambahan ....................................................................................................... 214Parameter ketentuan layanan .................................................................................................... 214

Tipe peluncuran .............................................................................................................. 214Strategi penyedia kapasitas .............................................................................................. 215Ketentuan tugas .............................................................................................................. 216Sistem operasi platform .................................................................................................... 216Versi platform ................................................................................................................. 216Kluster ........................................................................................................................... 217Nama layanan ................................................................................................................ 217Strategi penjadwalan ....................................................................................................... 217Jumlah yang diinginkan .................................................................................................... 218Konfigurasi deployment .................................................................................................... 218Pengendali deployment .................................................................................................... 220Penempatan tugas .......................................................................................................... 220Tanda ............................................................................................................................ 221Konfigurasi jaringan ......................................................................................................... 222Token klien .................................................................................................................... 226Templat definisi layanan ................................................................................................... 226

Membuat layanan .................................................................................................................... 227Membuat layanan menggunakan konsol Amazon ECS .......................................................... 227

Memperbarui layanan .............................................................................................................. 239Memperbarui layanan menggunakan konsol klasik ............................................................... 241

Menghapus layanan ................................................................................................................ 242Jenis deployment .................................................................................................................... 243

Pembaruan bergulir ......................................................................................................... 243Deployment Biru/Hijau dengan CodeDeploy ........................................................................ 246Deployment .................................................................................................................... 250

Penyeimbangan beban layanan ................................................................................................. 256Pertimbangan penyeimbangan beban layanan ..................................................................... 256Jenis penyeimbang beban ................................................................................................ 257Membuat penyeimbang beban .......................................................................................... 259Mendaftarkan beberapa grup target dengan layanan ............................................................. 265

Penskalaan otomatis layanan .................................................................................................... 267penskalaan otomatis dan deployment layanan ..................................................................... 267Diperlukan izin IAM untuk penskalaan auto layanan .............................................................. 268Kebijakan penskalaan pelacakan target .............................................................................. 269Kebijakan penskalaan langkah .......................................................................................... 274

Penemuan Layanan ................................................................................................................. 276Konsep Penemuan Layanan ............................................................................................. 277Pertimbangan penemuan layanan ...................................................................................... 278Pengalaman konsol Amazon ECS ..................................................................................... 279

vi

Amazon ECS Panduan Pengguna untuk AWS Fargate

Harga Penemuan Layanan ............................................................................................... 279Logika throttle layanan ............................................................................................................. 279

Sumber daya dan tanda ................................................................................................................... 281Menandai Sumber Daya Anda .................................................................................................. 281

Dasar tanda ................................................................................................................... 281Menandai Sumber Daya Anda .......................................................................................... 282Batasan tanda ................................................................................................................ 283Menandai sumber daya Anda untuk penagihan .................................................................... 284Bekerja dengan tanda menggunakan konsol ....................................................................... 284Bekerja dengan tanda menggunakan CLI atau API ............................................................... 285

Kuota layanan ........................................................................................................................ 287Service Quotas Amazon ECS ........................................................................................... 287AWS Fargate service quotas ............................................................................................ 289Mengelola Amazon ECS danAWS FargateService Quotas diAWS Management Console ............ 290

AWSWilayah Fargate ............................................................................................................... 291Daerah yang Didukung untuk kontainer Linux diAWSJauh ..................................................... 291Daerah yang Didukung untuk kontainer Windows diAWSJauh ................................................ 292

Laporan Penggunaan ............................................................................................................... 293Memantau ...................................................................................................................................... 295

Alat pemantauan ..................................................................................................................... 295Alat Otomatis .................................................................................................................. 296Alat Manual .................................................................................................................... 296

Metrik CloudWatch .................................................................................................................. 297Mengaktifkan CloudWatch metrik ....................................................................................... 297Metrik dan dimensi yang tersedia ...................................................................................... 297Pemanfaatan layanan ...................................................................................................... 300Jumlah tugas layanan RUNNING ........................................................................................ 300Melihat metrik Amazon ECS ............................................................................................. 301

Metrik penggunaan .................................................................................................................. 302Membuat CloudWatch alarm untuk memantau metrik penggunaan sumber daya Fargate ............ 303

Kejadian dan EventBridge ........................................................................................................ 303Peristiwa Amazon ECS .................................................................................................... 304Menangani acara ............................................................................................................ 313

Wawasan Kontainer CloudWatch ............................................................................................... 314Pertimbangan Wawasan Kontainer .................................................................................... 315Menyiapkan CloudWatch Wawasan Kontainer untuk metrik tingkat klaster dan layanan ............... 315

Mengumpulkan data pelacakan aplikasi ...................................................................................... 316Izin IAM yang Diperlukan untukAWSDistro untuk OpenTelemetry integrasi denganAWS X-Ray ..... 317MenentukanAWSDistro untuk OpenTelemetry sespan untukAWS X-Rayintegrasi dalamketentuan tugas Anda ...................................................................................................... 318

Mengumpulkan metrik aplikasi ................................................................................................... 319Mengekspor metrik aplikasi ke Amazon CloudWatch ............................................................. 319Mengekspor metrik aplikasi ke Amazon Managed Service untuk Prometheus ............................ 322

Mencatat panggilan API Amazon ECS denganAWS CloudTrail ....................................................... 324Informasi Amazon ECS di CloudTrail ................................................................................. 324Memahami entri file log Amazon ECS ................................................................................ 325

Keamanan ...................................................................................................................................... 327Identity and Access Management .............................................................................................. 327

Penonton ....................................................................................................................... 328Mengautentikasi dengan identitas ...................................................................................... 328Mengelola akses menggunakan kebijakan ........................................................................... 330Bagaimana Amazon Elastic Container Service bekerja dengan IAM ......................................... 332Contoh kebijakan berbasis identitas ................................................................................... 339AWSKebijakan terkelola untuk Amazon ECS ....................................................................... 348Peran tertaut layanan ...................................................................................................... 356Peran eksekusi tugas ...................................................................................................... 363Peran IAM Anywhere ....................................................................................................... 367

vii

Amazon ECS Panduan Pengguna untuk AWS Fargate

IAM role untuk tugas ....................................................................................................... 369Peran IAM CodeDeploy .................................................................................................... 374Peran IAM CloudWatch .................................................................................................... 378Konfigurasi tambahan untuk IAM role Windows untuk tugas ................................................... 381Pemecahan Masalah ....................................................................................................... 382

Pencatatan dan Pemantauan .................................................................................................... 384Validasi Kepatuhan .................................................................................................................. 385Keamanan Infrastruktur ............................................................................................................ 386

Antarmuka VPC endpoint (AWS PrivateLink) ....................................................................... 386Titik akhir metadata tugas ................................................................................................................ 389

Titik akhir metadata tugas v4 .................................................................................................... 389Mengaktifkan titik akhir metadata tugas .............................................................................. 389Jalur titik akhir metadata tugas versi 4 ............................................................................... 390Respons JSON metadata tugas ........................................................................................ 390Contoh ........................................................................................................................... 392

Titik akhir metadata tugas v3 .................................................................................................... 398Mengaktifkan Metadata Tugas ........................................................................................... 398Jalur Titik Akhir Metadata Tugas ....................................................................................... 398Respons JSON Metadata Tugas ....................................................................................... 399Respons Metadata Tugas Contoh ...................................................................................... 401

Bekerja dengan layanan yang lain ..................................................................................................... 403Menggunakan Amazon ECR dengan Amazon ECS ...................................................................... 403

Menggunakan Citra Amazon ECR dengan Amazon ECS ....................................................... 403Membuat sumber daya Amazon ECS denganAWS CloudFormation ................................................ 404

Amazon ECS danAWS CloudFormationtemplat .................................................................... 404Pelajari selengkapnya tentang AWS CloudFormation ............................................................ 404

Menggunakan App Mesh dengan Amazon ECS ........................................................................... 405Tutorial .......................................................................................................................................... 406

Tutorial: Membuat cluster dengan tugas Fargate Linux menggunakanAWS CLI ................................. 406Prasyarat ....................................................................................................................... 406Langkah 1: Buat Klaster ................................................................................................... 407Langkah 2: Mendaftarkan Definisi Tugas Linux .................................................................... 407Langkah 3: Ketentuan Tugas ............................................................................................ 408Langkah 4: Membuat Layanan .......................................................................................... 408Langkah 5: Daftar Layanan .............................................................................................. 409Langkah 6: Jelaskan Layanan yang Berjalan ....................................................................... 409Langkah 7: Pengujian ...................................................................................................... 411Langkah 8: Pembersihan .................................................................................................. 412

Tutorial: Membuat cluster dengan tugas Fargate Windows menggunakanAWS CLI ............................ 412Prasyarat ....................................................................................................................... 412Langkah 1: Buat Klaster ................................................................................................... 413Langkah 2: Mendaftarkan Definisi Tugas Windows ............................................................... 413Langkah 3: Ketentuan tugas ............................................................................................. 414Langkah 4: Membuat layanan ........................................................................................... 415Langkah 5: Daftar layanan ................................................................................................ 415Langkah 6: Jelaskan Layanan yang Berjalan ....................................................................... 415Langkah 7: Pembersihan .................................................................................................. 417

Tutorial: Menentukan data sensitif menggunakan rahasia Secrets Manager ...................................... 417Prasyarat ....................................................................................................................... 418Langkah 1: Buat rahasia Secrets Manager .......................................................................... 418Langkah 2: Memperbarui peran IAM eksekusi tugas ............................................................. 418Langkah 3: Buat definisi tugas Amazon ECS ....................................................................... 419Langkah 4: Membuat klaster Amazon ECS ......................................................................... 420Langkah 5: Menjalankan tugas Amazon ECS ...................................................................... 421Langkah 6: Verifikasi ....................................................................................................... 421Langkah 7: Membersihkan ................................................................................................ 422

Tutorial: Membuat layanan menggunakan Service Discovery .......................................................... 423

viii

Amazon ECS Panduan Pengguna untuk AWS Fargate

Prasyarat ....................................................................................................................... 423Langkah 1: Membuat sumber daya Penemuan Layanan ........................................................ 423Langkah 2: Membuat sumber daya Amazon ECS ................................................................. 424Langkah 3: Verifikasi Penemuan Layanan ........................................................................... 427Langkah 4: Bersihkan ...................................................................................................... 430

Tutorial: Membuat layanan menggunakan deployment biru/hijau ..................................................... 431Prasyarat ....................................................................................................................... 432Langkah 1: Membuat Application Load Balancer .................................................................. 432Langkah 2: Membuat klaster Amazon ECS ......................................................................... 433Langkah 3: Mendaftarkan ketentuan tugas .......................................................................... 433Langkah 4: Membuat layanan Amazon ECS ........................................................................ 434Langkah 5: BuatAWS CodeDeploysumber daya ................................................................... 435Langkah 6: Membuat dan memantau penyebaran CodeDeploy ............................................... 437Langkah 7: Membersihkan ................................................................................................ 439

Tutorial: Mendengarkan Amazon ECS CloudWatch Peristiwa ......................................................... 440Prasyarat: Atur klaster pengujian ....................................................................................... 440Langkah 1: Buat fungsi Lambda ........................................................................................ 440Langkah 2: Mendaftarkan aturan peristiwa .......................................................................... 441Langkah 3: Uji aturan Anda .............................................................................................. 442

Tutorial: Mengirim pemberitahuan Amazon Simple Notification Service untuk peristiwa yang dihentikantugas ..................................................................................................................................... 442

Prasyarat: Atur klaster pengujian ....................................................................................... 442Langkah 1: Membuat dan berlangganan topik Amazon SNS .................................................. 442Langkah 2: Mendaftarkan aturan peristiwa .......................................................................... 443Langkah 3: Uji aturan Anda .............................................................................................. 443

Memecahkan Masalah ..................................................................................................................... 445Menggunakan Amazon ECS Exec untuk melakukan debug ............................................................ 445

Arsitektur ....................................................................................................................... 445Pertimbangan untuk menggunakan ECS Exec ..................................................................... 446Prasyarat untuk menggunakan ECS Exec ........................................................................... 447Mengaktifkan dan menggunakan ECS Exec ........................................................................ 447Pencatatan log dan audit menggunakan ECS Exec .............................................................. 449Menggunakan kebijakan IAM untuk membatasi akses ke ECS Exec ........................................ 452Pemecahan masalah dengan ECS Exec ............................................................................. 454

Memeriksa tugas yang telah dihentikan untuk kesalahan ............................................................... 454Sumber daya tambahan ................................................................................................... 456

Kode kesalahan tugas yang berhenti .......................................................................................... 456Kesalahan pada tugas CannotPullContainer ................................................................................ 460Pesan peristiwa layanan ........................................................................................................... 463

Pesan peristiwa layanan ................................................................................................... 465Penentuan nilai CPU atau memori tidak valid .............................................................................. 466Pemecahan permasalahan terhadap layanan penyeimbang beban .................................................. 467Pemecahan Masalah layanan Auto Scaling ................................................................................. 468AWS Fargatekuota throttling ..................................................................................................... 468

ThrottlingRunTaskAPI ...................................................................................................... 469Menyesuaikan kuota tingkat .............................................................................................. 469

Alasan kegagalan API .............................................................................................................. 469Riwayat dokumen ............................................................................................................................ 471Daftar istilah AWS ........................................................................................................................... 483............................................................................................................................................... cdlxxxiv

ix

Amazon ECS Panduan Pengguna untuk AWS FargateKomponen

Apakah AWS Fargate itu?AWS Fargateadalah teknologi yang dapat Anda gunakan dengan Amazon ECS untukmenjalankankontainertanpa harus mengelola server atau klaster instans Amazon EC2. Dengan Fargate,Anda tidak perlu menyediakan, mengonfigurasi, atau menskalakan klaster mesin virtual untuk menjalankankontainer. Anda tidak perlu memilih jenis server, memutuskan kapan akan menskalakan klaster Anda, ataumengoptimalkan paket klaster.

Saat Anda menjalankan tugas dan layanan Amazon ECS dengan tipe peluncuran Fargate atau penyediakapasitas Fargate, Anda memaketkan aplikasi Anda dalam kontainer, menentukan persyaratan SistemOperasi, CPU, memori, menentukan persyaratan CPU, dan memori, menentukan ketentuan jaringandan memori, menentukan kebijakan jaringan dan memori, menentukan kebijakan jaringan dan memori,menentukan kebijakan jaringan dan memori, menentukan Setiap tugas Fargate memiliki batas isolasitersendiri dan tidak berbagi inti kernel, sumber daya CPU, sumber daya memori, atau elastic networkinterface dengan tugas lain.

Untuk informasi tentang arsitektur Fargate, lihatMenggunakan tipe peluncuran Fargatedalam PanduanPengembang Amazon Elastic Container Service

Topik ini menjelaskan berbagai komponen tugas dan layanan Fargate, dan perlunya pertimbangan khususuntuk menggunakan Fargate dengan Amazon ECS.

KomponenKlasterAmazon ECSguguspengelompokan logis dari tugas atau layanan. Anda dapat menggunakan klaster untukmengisolasi aplikasi Anda. Saat tugas Anda dijalankan di Fargate, sumber daya klaster Anda juga dikelolaoleh Fargate.

Ketentuan tugasSEBUAHdefinisi tugasadalah file teks yang menggambarkan satu atau lebih kontainer yang membentukaplikasi Anda. Dalam format JSON. Anda dapat menggunakannya untuk menggambarkan hinggamaksimum sepuluh kontainer. Ketentuan tugas sebagai cetak biru untuk aplikasi Anda. Ini menentukanberbagai parameter untuk aplikasi Anda. Misalnya, Anda dapat menggunakannya untuk menentukanparameter untuk sistem operasi, kontainer mana yang akan digunakan, port mana yang akan dibuka untukaplikasi Anda, dan volume data apa yang akan digunakan dengan kontainer dalam tugas. Parameterkhusus telah tersedia untuk ketentuan tugas Anda tergantung pada kebutuhan aplikasi spesifik milik Anda.

Seluruh tumpukan aplikasi Anda tidak perlu berada pada ketentuan tugas tunggal. Bahkan, kami sarankanmencakup aplikasi Anda di beberapa definisi tugas. Anda dapat melakukan ini dengan menggabungkankontainer terkait ke ketentuan tugas mereka sendiri, masing-masing mewakili komponen tunggal.

Tugastugas adalah penunjukan hal abstrak dengan instans yang konkret dari ketentuan tugas dalam sebuahklaster. Setelah Anda membuat ketentuan tugas untuk aplikasi Anda dalam Amazon ECS, Anda dapatmenentukan jumlah tugas yang dapat dijalankan di klaster Anda. Anda dapat menjalankan tugas mandiri,atau Anda dapat menjalankan tugas sebagai bagian dari layanan.

1

Amazon ECS Panduan Pengguna untuk AWS FargateLayanan

LayananAnda dapat menggunakan Amazon ECSlayananuntuk menjalankan dan memelihara jumlah tugas yangAnda inginkan secara bersamaan di klaster Amazon ECS. Cara kerjanya, jika ada tugas Anda yanggagal atau berhenti karena alasan apa pun, penjadwal layanan Amazon ECS meluncurkan instanslain berdasarkan ketentuan tugas Anda. Ini melakukan ini untuk menggantinya dan dengan demikianmempertahankan jumlah tugas yang Anda inginkan dalam layanan.

Sistem Operasi dan arsitektur CPUSistem operasi berikut ini didukung:

• Amazon Linux 2• Windows Server 2019 Full• Windows Server 2019 Core

Jika Anda menggunakan kontainer Windows di Fargate, tinjauthe section called “Kontainer WindowsdiAWSPertimbangan Fargate” (p. 2).

Ada 2 arsitektur yang tersedia untuk definisi tugas Amazon ECS, ARM dan X86_64.

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

Ketika Anda menjalankan kontainer Linux di Fargate, Anda dapat menggunakan arsitektur CPU X86_64,atau arsitektur ARM64 untuk aplikasi berbasis ARM Anda. Untuk informasi selengkapnya, lihat the sectioncalled “Bekerja dengan beban kerja ARM 64-bit di Amazon ECS” (p. 124).

WilayahUntuk informasi tentang Wilayah yang mendukung kontainer Linux di Fargate, lihatthe section called“Daerah yang Didukung untuk kontainer Linux diAWSJauh” (p. 291).

Untuk informasi tentang Wilayah yang mendukung kontainer Windows di Fargate, lihatthe section called“Daerah yang Didukung untuk kontainer Windows diAWSJauh” (p. 292).

Kontainer Windows diAWSPertimbangan FargateKontainer Windows diAWSFargate mendukung sistem operasi berikut:

• Windows Server 2019 Full• Windows Server 2019 Core

AWSmenangani manajemen lisensi sistem operasi, sehingga Anda tidak memerlukan lisensi Microsofttambahan.

Kontainer Windows diAWSFargate mendukung pengemudi awslogs. Untuk informasi selengkapnya, lihatthe section called “Menggunakan driver log awslogs” (p. 138).

Tugas Anda dapat menjalankan kontainer Linux atau kontainer Windows. Jika Anda perlu menjalankankedua jenis kontainer, Anda harus membuat tugas terpisah.

2

Amazon ECS Panduan Pengguna untuk AWS FargateMemulai panduan

Fitur berikut tidak didukung pada kontainer Windows di Fargate:

• Akun layanan yang dikelola grup (GMSA)• Amazon FSx• ENI trunking• Layanan App Mesh dan integrasi proxy untuk tugas• Integrasi router log Firelens untuk tugas• Penyimpanan sementara yang dapat dikonfigurasi• volume EFS• Penyedia kapasitas Fargate Spot• Volume gambar

Dockerfilevolumediabaikan. Sebagai gantinya, gunakan mount dalam ketentuan tugas Anda. Untukinformasi selengkapnya, lihat Pemasangan terikat (p. 131).

Memulai panduanPanduan berikut akan membantu Anda memulai menggunakan Amazon ECS di Fargate.

• Memulai dengan konsol klasik menggunakan kontainer LinuxAWS Fargate (p. 23)• ???• Tutorial: Membuat cluster dengan tugas Fargate Linux menggunakanAWS CLI (p. 406)• ???• the section called “Tutorial: Membuat cluster dengan tugas Fargate Windows menggunakanAWS

CLI” (p. 412)

Untuk informasi lebih lanjut tentang Layanan Kontainer Amazon Elastic, lihatApa itu Amazon ECS?.

HargaDengan Amazon ECS padaAWS Fargate, Anda membayar vCPU dan sumber daya memori yang tugasAnda gunakan. Untuk informasi selengkapnya, lihatHarga Fargate.

Fargate juga menawarkan Savings Plans yang memberikan penghematan yang signifikan padaAndaAWSpenggunaan. Untuk informasi selengkapnya, lihat Panduan Pengguna Savings Plans.

Untuk melihat tagihan Anda, buka Dasbor Manajemen Penagihan dan Biaya di konsol AWS Billing andCost Management. Tagihan Anda berisi tautan ke laporan penggunaan yang memberikan detail tentangtagihan Anda. Untuk mempelajari selengkapnya tentang cara penagihan akun AWS, lihat Penagihan AkunAWS.

Jika Anda memiliki pertanyaan tentang penagihan AWS, akun, dan kejadian, hubungi AWS Support.

Gambaran umum tentang Trusted Advisor, suatu layanan yang membantu Anda mengoptimalkan biaya,keamanan, dan performa lingkungan AWS Anda, lihat AWS Trusted Advisor.

3

Amazon ECS Panduan Pengguna untuk AWS FargateMengatur

Memulai dengan Amazon ECSPanduan berikut memberikan panduan alat yang tersedia untuk mengakses Amazon ECS dan pengantarprosedur langkah demi langkah untuk menjalankan kontainer. Docker dasar akan membawa Anda melaluilangkah-langkah dasar untuk membuat citra kontainer Docker dan mengunggahnya ke repositori pribadiAmazon ECR. Panduan memulai memandu Anda melalui menggunakanAWSAntarmuka baris perintahkopilot danAWS Management Consoleuntuk menyelesaikan tugas umum untuk menjalankan kontainerAnda di Amazon ECS danAWS Fargate.

Daftar Isi• Siapkan untuk menggunakan Amazon ECS (p. 4)• Membuat gambar kontainer untuk digunakan di Amazon ECS (p. 7)• Memulai dengan Amazon ECS menggunakanAWSKopilot (p. 11)• Memulai dengan Amazon ECS menggunakanAWS CDK (p. 16)• Memulai Amazon ECS menggunakan konsol klasik (p. 23)

Siapkan untuk menggunakan Amazon ECSJika Anda telah mendaftar untuk Amazon Web Services (AWS) dan telah menggunakan Amazon ElasticCompute Cloud (Amazon EC2), Anda akan segera dapat menggunakan Amazon ECS. Proses pengaturanuntuk kedua layanan ini serupa. Panduan berikut mempersiapkan Anda untuk meluncurkan klaster AmazonECS pertama Anda.

Selesaikan tugas berikut untuk menyiapkan Amazon ECS.

Daftar untuk AWSKetika Anda mendaftarAWS,AWSAkun secara otomatis terdaftar untuk semua layanan, termasuk AmazonEC2 dan Amazon ECS. Anda hanya dikenakan biaya untuk layanan yang Anda gunakan.

Jika Anda sudah memiliki akun AWS, lewati ke tugas berikutnya. Jika Anda belum memiliki akun AWS,gunakan prosedur berikut untuk membuatnya.

Untuk membuat akun AWS

1. Buka https://portal.aws.amazon.com/billing/signup.2. Ikuti petunjuk online.

Bagian dari prosedur pendaftaran adalah menerima panggilan telepon dan memasukkan kodeverifikasi di keypad telepon.

Catat nomor akun AWS Anda, karena Anda akan membutuhkannya di tugas berikutnya.

Mmebuat pengguna IAMLayanan diAWS, seperti Amazon EC2 dan Amazon ECS, mengharuskan Anda memberikan kredensiaketika Anda mengaksesnya, sehingga layanan dapat menentukan apakah Anda memiliki izin untukmengakses sumber dayanya. Konsol tersebut memerlukan kata sandi Anda. Anda dapat membuat kunciakses untuk akun AWS Anda untuk mengakses antarmuka baris perintah atau API. Namun, kami tidakmenyarankan Anda untuk mengakses AWS menggunakan kredensial untuk akun AWS Anda; sebagaigantinya kami sarankan Anda menggunakan AWS Identity and Access Management (IAM). Buat penggunaIAM, lalu tambahkan pengguna ke grup IAM dengan izin administratif atau berikan izin administratif

4

Amazon ECS Panduan Pengguna untuk AWS FargateMmebuat pengguna IAM

kepada pengguna IAM yang Anda buat. Anda kemudian dapat mengakses AWS dengan URL khusus dankredensial untuk pengguna IAM.

Jika Anda mendaftar untuk AWS tetapi belum membuat pengguna IAM untuk Anda sendiri, Anda dapatmembuatnya dengan konsol IAM.

Untuk membuat pengguna administrator untuk diri Anda sendiri dan menambahkan pengguna kegrup administrator (konsol)

1. Masuk ke Konsol IAM sebagai pemilik akun dengan memilih Pengguna akar dan masukkan alamatemail Akun AWS Anda. Di laman berikutnya, masukkan kata sandi Anda.

Note

Kami sangat merekomendasikan agar Anda mematuhi praktik terbaik dalam menggunakanpengguna IAM Administrator yang mengikuti dan mengunci kredensial pengguna rootdengan aman. Masuk sebagai pengguna akar hanya untuk melakukan beberapa tugasmanajemen layanan dan akun.

2. Di panel navigasi, pilih Users (Pengguna) lalu pilih Add users (Tambahkan pengguna).3. Untuk Nama pengguna, masukkan Administrator.4. Pilih kotak centang di samping AWS Management Console akses. Kemudian pilih Kata sandi khusus,

lalu masukkan kata sandi baru Anda di kotak teks.5. (Opsional) Secara default, AWS mengharuskan pengguna baru untuk membuat kata sandi baru saat

pertama kali masuk. Anda dapat mengosongkan kotak centang di samping Pengguna harus membuatkata sandi baru saat masuk berikutnya agar pengguna baru dapat mengatur ulang kata sandi merekasetelah masuk.

6. Pilih Berikutnya: Izin.7. Di Bawah Atur izin, pilih Tambahkan pengguna ke grup.8. Pilih Create group (Buat kelompok).9. Di kotak dialog Buat kelompok, untuk Nama kelompok masukkan Administrators.10. Pilih Filter policies (Kebijakan filter), lalu pilih AWS managed - job function ( terkelola - fungsi tugas)

untuk memfilter isi tabel.11. Dalam daftar kebijakan, pilih kotak centang untuk AdministratorAccess. Lalu, pilih Create group (Buat

grup).

Note

Anda harus mengaktifkan akses pengguna IAM dan peran ke Penagihan sebelum Andadapat menggunakan izin AdministratorAccess untuk mengakses konsol AWS Billingand Cost Management. Untuk melakukannya, ikuti petunjuk di langkah 1 dari tutorial tentangpendelegasian akses ke konsol penagihan.

12. Kembali ke daftar grup, pilih kotak centang untuk grup baru Anda. Pilih Segarkan jika diperlukan untukmelihat kelompok dalam daftar.

13. Pilih Berikutnya: Tanda.14. (Opsional) Tambahkan metadata ke pengguna dengan melampirkan tag sebagai pasangan nilai kunci.

Untuk informasi selengkapnya tentang penggunaan tag di IAM, lihat Menandai entitas IAM dalamPanduan Pengguna IAM.

15. Pilih Berikutnya: Peninjauan untuk melihat daftar keanggotaan grup yang akan ditambahkan kepengguna baru. Saat Anda siap untuk melanjutkan, pilih Create user (Buat pengguna).

Anda dapat menggunakan proses yang sama untuk membuat lebih banyak grup dan penggunaserta memberi pengguna Anda akses ke sumber daya Akun AWS Anda. Untuk mempelajari tentangmenggunakan kebijakan yang membatasi izin pengguna untuk sumber daya AWS khusus, lihatManajemen akses dan Contoh kebijakan.

5

Amazon ECS Panduan Pengguna untuk AWS FargateBuat virtual private cloud

Untuk masuk sebagai pengguna IAM baru ini, keluar dari konsol AWS, kemudian gunakan URL berikut,di mana your_aws_account_id adalah nomor akun AWS Anda tanpa tanda hubung (misalnya, jika nomorakun AWS Anda adalah 1234-5678-9012, ID akun AWS Anda adalah 123456789012):

https://your_aws_account_id.signin.aws.amazon.com/console/

Masukkan nama pengguna dan kata sandi IAM yang baru saja Anda buat. Saat Anda masuk, bilah navigasimenampilkan "nama_pengguna_Anda @ id_akun_aws_Anda".

Jika Anda tidak ingin URL tersebut agar halaman masuk Anda berisi ID akun AWS Anda, Anda dapatmembuat alias akun. Dari atas dasbor IAM, di sebelah kanan tautan masuk Anda, pilihMenyesuaikandanmasukkan alias, seperti nama perusahaan Anda. Untuk masuk setelah membuat alias akun, gunakan URLberikut:

https://your_account_alias.signin.aws.amazon.com/console/

Untuk memverifikasi tautan masuk pengguna IAM untuk akun Anda, buka konsol IAM dan periksa diTautan masuk pengguna IAM di dasbor.

Untuk informasi selengkapnya tentang IAM, lihatAWSPanduan Pengguna Identity and AccessManagement.

Buat virtual private cloudAmazon Virtual Private Cloud (Amazon VPC) memungkinkan Anda untuk meluncurkan sumber daya AWSke dalam jaringan virtual yang telah Anda tentukan.

Note

Konsol Amazon ECS yang dijalankan pertama membuat VPC untuk klaster Anda, jadi jika Andaberniat untuk menggunakan konsol Amazon ECS, Anda dapat melewati ke bagian berikutnya.

Jika Anda memiliki VPC default, Anda juga dapat melewati bagian ini dan beralih ke tugas berikutnya, InstalAWS CLI (p. 7). Untuk menentukan apakah Anda memiliki VPC default, lihat Platform yang Didukungdi Konsol Amazon EC2 di Panduan Pengguna Amazon EC2 untuk Instans Linux. Jika tidak, Anda dapatmembuat VPC non-default di akun Anda menggunakan langkah-langkah di bawah ini.

Important

Jika akun Anda mendukung Amazon EC2 Classic di suatu wilayah, Anda tidak memiliki VPCdefault di wilayah tersebut.

Untuk informasi tentang cara membuat VPC, lihatMembuat VPC sajadiPanduan Pengguna AmazonVPCdan gunakan tabel berikut untuk menentukan pilihan apa yang harus dipilih.

Opsi Nilai

Sumber daya untuk membuat Hanya VPC

Nama Secara opsional berikan namauntuk VPC Anda.

Blok CIDR IPv4 Masukan manual IPv4

Ukuran blok CIDR harus memilikiukuran antara /16 dan /28.

Blok CIDR IPv6 Tidak ada blok CIDR IPv6

Tenancy Default

6

Amazon ECS Panduan Pengguna untuk AWS FargateInstal AWS CLI

Untuk informasi lebih lanjut tentang Amazon VPC, lihat Apa itu Amazon VPC? dalam Panduan PenggunaAmazon VPC.

Instal AWS CLIParameterAWS Management Consoledapat digunakan untuk mengelola semua operasi secara manualdengan Amazon ECS. Namun, memasangAWS CLIdi desktop lokal atau kotak developer memungkinkanAnda membuat skrip yang dapat mengotomatisasi tugas manajemen umum di Amazon ECS.

Untuk menggunakanAWS CLIdengan Amazon ECS, instal terbaruAWS CLIversi. Untuk informasi tentangmenginstal AWS CLI atau meningkatkannya ke versi terbaru, lihat Menginstal AWS Command LineInterface dalam Panduan Pengguna AWS Command Line Interface.

Membuat gambar kontainer untuk digunakan diAmazon ECS

Amazon ECS menggunakan gambar Docker dalam definisi tugas untuk meluncurkan kontainer. Dockeradalah sebuah teknologi yang menyediakan alat bagi Anda untuk membangun, menjalankan, menguji, danmen-deploy aplikasi terdistribusi di kontainer. Docker menyediakan panduan tentang men-deploy kontainerdi Amazon ECS. Untuk informasi selengkapnya, lihatMenerapkan kontainer Docker di Amazon ECS.

Tujuan dari langkah-langkah yang diuraikan di sini adalah untuk memandu Anda melalui pembuatangambar Docker pertama Anda dan mendorong gambar itu ke Amazon ECR, yang merupakan registrikontainer, untuk digunakan dalam definisi tugas Amazon ECS Anda. Panduan ini mengasumsikan bahwaAnda memiliki pemahaman dasar tentang apa itu Docker dan cara kerjanya. Untuk informasi selengkapnyatentang Docker, lihat Apa itu Docker? dan Gambaran umum Docker.

Important

AWSDocker telah berkolaborasi untuk membuat pengalaman developer yang disederhanakanyang memungkinkan Anda men-deploy dan mengelola kontainer di Amazon ECS secara langsungmenggunakan alat Docker. Anda sekarang dapat membangun dan menguji kontainer secara lokalmenggunakan Docker Desktop dan Docker Compose, lalu men-deploynya ke Amazon ECS diFargate. Untuk memulai dengan integrasi Amazon ECS dan Docker, unduh Docker Desktop dansecara opsional mendaftar untuk ID Docker. Untuk informasi selengkapnya, lihat Docker Desktopdan Pendaftaran ID Docker.

PrasyaratSebelum memulai, pastikan prasyarat berikut terpenuhi.

• Pastikan Anda telah menyelesaikan langkah-langkah pengaturan Amazon ECR. Untuk informasiselengkapnya, lihatMenyiapkan Amazon ECRdiPanduan Pengguna Amazon Elastic Container Registry.

• Pengguna Anda memiliki izin IAM yang diperlukan untuk mengakses dan menggunakan layananAmazon ECR. Untuk informasi selengkapnya, lihatKebijakan Amazon ECR.

• Anda memiliki Docker diinstal. Untuk langkah-langkah instalasi Docker untuk Amazon Linux 2,lihatMenginstal Docker di Amazon Linux 2 (p. 8). Untuk semua sistem operasi lainnya, lihatdokumentasi Docker diIkhtisar Docker Desktop.

• Anda telah menginstal dan mengonfigurasi AWS CLI. Untuk informasi selengkapnya, lihat MenginstalAWS Command Line Interface dalam Panduan Pengguna AWS Command Line Interface.

Jika Anda tidak memiliki lingkungan pengembangan lokal dan Anda lebih suka menggunakan instansAmazon EC2 untuk menggunakan Docker, kami menyediakan langkah-langkah berikut untuk meluncurkaninstans Amazon EC2 menggunakan Amazon Linux 2 dan menginstal Docker Engine dan Docker CLI.

7

Amazon ECS Panduan Pengguna untuk AWS FargatePrasyarat

Menginstal Docker di Amazon Linux 2

Docker Desktop adalah easy-to-install aplikasi untuk lingkungan Mac atau Windows yang memungkinkanAnda untuk membangun dan berbagi aplikasi dan layanan mikro yang terkontainer. Docker Desktopmencakup Docker Engine, klien Docker Compose, Docker Compose, dan alat lain yang membantu saatmenggunakan Docker dengan Amazon ECS. Untuk informasi selengkapnya tentang cara menginstalDocker Desktop di sistem operasi pilihan Anda, lihat Gambaran umum Docker Desktop.

Untuk menginstal Docker pada instans Amazon EC2

1. Luncurkan instans dengan Amazon Linux 2 AMI. Untuk informasi selengkapnya, lihatMeluncurkaninstansdiPanduan Pengguna Amazon EC2 untuk Instans Linux.

2. Connect ke instans Anda. Untuk informasi lebih lanjut, lihat Connect ke Instans Linux Anda dalamPanduan Pengguna Amazon EC2 untuk Instans Linux.

3. Memperbarui paket yang terinstal dan cache paket pada instans Anda.

sudo yum update -y

4. Instal paket Docker Engine yang terbaru.

sudo amazon-linux-extras install docker

Important

Langkah ini mengasumsikan Anda menggunakan Amazon Linux 2 AMI untuk instans Anda.Untuk semua sistem operasi lainnya, lihatIkhtisar Docker Desktop.

5. Mulai layanan Docker.

sudo service docker start

(Opsional) Untuk memastikan bahwa daemon Docker dimulai setelah setiap reboot sistem, jalankanperintah berikut:

sudo systemctl enable docker

6. Tambahkan ec2-user ke grup docker sehingga Anda dapat menjalankan perintah Docker tanpamenggunakan sudo.

sudo usermod -a -G docker ec2-user

7. Keluar dan masuk kembali untuk mengambil izin grup docker yang baru. Anda dapat melakukannyadengan menutup jendela terminal SSH Anda saat ini dan menghubungkan kembali ke instans Andayang baru. Sesi SSH baru Anda akan memiliki izin grup docker yang sesuai.

8. Verifikasi bahwa Anda dapat menjalankan perintah Docker tanpasudo.

docker info

Note

Dalam beberapa kasus, Anda mungkin perlu melakukan booting ulang pada instans Andauntuk memberikan izin bagi ec2-user untuk mengakses daemon Docker. Coba bootingulang instans Anda jika Anda melihat kesalahan berikut ini:

Cannot connect to the Docker daemon. Is the docker daemon running on this host?

8

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat citra Docker

Membuat citra DockerDefinisi tugas Amazon ECS menggunakan citra Docker untuk meluncurkan kontainer pada contohkontainer di klaster Anda. Pada bagian ini, Anda membuat citra Docker dari aplikasi web sederhana,dan mengujinya pada sistem lokal atau instans Amazon EC2, dan kemudian mendorong citra ke registrikontainer Amazon ECR sehingga Anda dapat menggunakannya dalam definisi tugas Amazon ECS.

Untuk membuat citra Docker dari aplikasi web sederhana

1. Buat file bernama Dockerfile. Dockerfile adalah manifes yang menjelaskan citra dasar yang akandigunakan untuk citra Docker Anda dan apa yang ingin Anda instal dan jalankan di atasnya. Untukinformasi selengkapnya tentang Dockerfiles, buka Referensi Dockerfile.

touch Dockerfile

2. Edit Dockerfile yang baru saja Anda buat dan tambahkan konten berikut.

FROM ubuntu:18.04

# Install dependenciesRUN apt-get update && \ apt-get -y install apache2

# Install apache and write hello world messageRUN echo 'Hello World!' > /var/www/html/index.html

# Configure apacheRUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh

EXPOSE 80

CMD /root/run_apache.sh

Dockerfile ini menggunakan citra Ubuntu 18.04. Instruksi RUN memperbarui cache paket, menginstalbeberapa paket perangkat lunak untuk server web, dan kemudian menulis "Hello World!" konten keroot dokumen server web. Instruksi EXPOSE mengekspos port 80 pada kontainer, dan instruksi CMDmemulai server web.

3. Membangun citra Docker dari Dockerfile Anda.

Note

Beberapa versi Docker mungkin memerlukan jalur lengkap ke Dockerfile Anda dalam perintahberikut, bukan jalur relatif yang ditunjukkan di bawah ini.

docker build -t hello-world .

4. Jalankan docker images untuk memverifikasi bahwa citra telah dibuat dengan benar.

docker images --filter reference=hello-world

Output:

REPOSITORY TAG IMAGE ID CREATED SIZE

9

Amazon ECS Panduan Pengguna untuk AWS FargateDorong citra Anda ke Amazon Elastic Container Registry

hello-world latest e9ffedc8c286 4 minutes ago 241MB

5. Jalankan citra yang baru dibuat. Opsi -p 80:80 memetakan port 80 yang terbuka pada kontainer keport 80 pada sistem host. Untuk informasi lebih lanjut tentang docker run, buka Referensi menjalankanDocker.

docker run -t -i -p 80:80 hello-world

Note

Output dari server web Apache ditampilkan di jendela terminal. Anda dapat mengabaikanpesan “Could not reliably determine the server's fully qualified domainname“.

6. Buka peramban dan arahkan ke server yang menjalankan Docker dan meng-host kontainer Anda.

• Jika Anda menggunakan instans EC2, nilai ini adalah nilai DNS Publik untuk server, yangmerupakan alamat yang sama yang Anda gunakan untuk terhubung ke instans dengan SSH.Pastikan bahwa grup keamanan untuk instans Anda mengizinkan lalu lintas masuk pada port 80.

• Jika Anda menjalankan Docker secara lokal, arahkan peramban Anda ke http://localhost/.• Jika Anda menggunakandocker-machinepada komputer Windows atau Mac, temukan alamat

IP VirtualBox VM yang hosting Docker dengandocker-machine ipperintah, menggantikannamamesindengan nama mesin docker yang Anda gunakan.

docker-machine ip machine-name

Anda akan melihat halaman web dengan pernyataan “Hello World!” .7. Hentikan kontainer Docker dengan mengetik Ctrl + c.

Dorong citra Anda ke Amazon Elastic ContainerRegistryAmazon ECR adalah dikelolaAWSLayanan registri Docker. Anda dapat menggunakan Docker CLI untukmendorong, menarik, dan mengelola citra di repositori Amazon ECR Anda. Untuk detail produk AmazonECR, studi kasus pelanggan unggulan, dan FAQ, lihat.Halaman detail produk Amazon Elastic ContainerRegistry.

Untuk menandai citra Anda dan mendorongnya ke Amazon ECR

1. Membuat repositori Amazon ECR untuk menyimpanhello-worldcitra. Perhatikan repositoryUripada outputnya.

Penggantiregion, denganWilayah AWS, misalnya,us-east-1.

aws ecr create-repository --repository-name hello-repository --region region

Output:

{ "repository": { "registryId": "aws_account_id", "repositoryName": "hello-repository", "repositoryArn": "arn:aws:ecr:region:aws_account_id:repository/hello-repository",

10

Amazon ECS Panduan Pengguna untuk AWS FargateBersihkan

"createdAt": 1505337806.0, "repositoryUri": "aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository" }}

2. Tandai citra hello-world dengan nilai repositoryUri dari langkah sebelumnya.

docker tag hello-world aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository

3. Jalankan perintah aws ecr get-login-password. Tentukan URI registri yang ingin Anda autentikasi.Untuk informasi selengkapnya, lihat Autentikasi Registri dalam Panduan Pengguna Amazon ElasticContainer Registry.

aws ecr get-login-password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com

Output:

Login Succeeded

Important

Jika Anda menerima kesalahan, instal atau perbarui ke versi terbaru AWS CLI. Untukinformasi selengkapnya, lihat Menginstal AWS Command Line Interface dalam PanduanPengguna Amazon EKSAWS Command Line Interface.

4. Dorong citra ke Amazon ECR denganrepositoryUrinilai dari langkah sebelumnya.

docker push aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository

BersihkanUntuk melanjutkan pembuatan definisi tugas Amazon ECS dan meluncurkan tugas dengan gambarkontainer Anda, lewati keLangkah selanjutnya (p. 11). Setelah selesai bereksperimen dengan citraAmazon ECR Anda, Anda dapat menghapus repositori sehingga Anda tidak dikenakan biaya untukpenyimpanan citra.

aws ecr delete-repository --repository-name hello-repository --region region --force

Langkah selanjutnyaSetelah membuat dan mendorong citra kontainer Anda ke Amazon ECR, Anda harus mempertimbangkanlangkah-langkah selanjutnya berikut.

• Memulai Amazon ECS menggunakan konsol klasik (p. 23)• Tutorial: Membuat cluster dengan tugas Fargate Linux menggunakanAWS CLI (p. 406)

Memulai dengan Amazon ECSmenggunakanAWSKopilot

Memulai dengan Amazon ECS menggunakanAWSCopilot dengan menerapkan aplikasi Amazon ECS.

11

Amazon ECS Panduan Pengguna untuk AWS FargatePrasyarat

PrasyaratSebelum memulai, pastikan Anda memenuhi persyaratan berikut:

• Siapkan akun AWS. Untuk informasi selengkapnya, lihatSiapkan untuk menggunakan AmazonECS (p. 4).

• InstalAWSCLI. Rilis saat ini mendukung sistem Linux dan macOS. Untuk informasi selengkapnya, lihatMenginstalAWSKopilot CLI (p. 31).

• Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat AWS Command Line Interface.• Jalankanaws configureuntuk mengatur profil default yangAWSCopilot CLI akan digunakan untuk

mengelola aplikasi dan layanan Anda.• Instal dan jalankan Docker. Untuk informasi selengkapnya, lihat Memulai dengan Docker.

Deploy aplikasi Anda menggunakan satu perintahPastikan bahwa Anda sudah menginstal alat baris perintah AWS terinstal dan menjalankan awsconfigure sebelum Anda memulai.

Deploy aplikasi menggunakan perintah berikut.

git clone https://github.com/aws-samples/amazon-ecs-cli-sample-app.git demo-app && \ cd demo-app && \copilot init --app demo \ --name api \ --type 'Load Balanced Web Service' \ --dockerfile './Dockerfile' \ --port 80 \ --deploy

Deploy aplikasi Anda langkah demi langkahLangkah 1: Konfigurasikan kredensial AndaJalankanaws configureuntuk mengatur profil default yangAWSCopilot CLI menggunakan untukmengelola aplikasi dan layanan Anda.

aws configure

Langkah 2: Kloning aplikasi demoKloning aplikasi Flask sederhana dan Dockerfile.

git clone https://github.com/aws-samples/amazon-ecs-cli-sample-app.git demo-app

Langkah 3: Siapkan aplikasi Anda1. Dari dalam direktori aplikasi demo, jalankan perintah init.

copilot init

12

Amazon ECS Panduan Pengguna untuk AWS FargateDeploy aplikasi Anda langkah demi langkah

AWSCopilot memandu Anda melalui pengaturanaplikasi pertama dan layanandengan serangkaianpetunjuk terminal, dimulai denganlangkah selanjutnya. Jika Anda sudah menggunakanAWSCopilotuntuk menyebarkan aplikasi, Anda akan diminta untuk memilih salah satu dari daftar nama aplikasi.

2. Beri nama aplikasi Anda.

What would you like to name your application? [? for help]

Enter demo.

Langkah 4: Mengatur Layanan ECS di Aplikasi “demo”1. Anda diminta untuk memilih tipe layanan. Anda sedang membangun aplikasi Flask sederhana yang

melayani API kecil.

Which service type best represents your service's architecture? [Use arrows to move, type to filter, ? for more help] > Load Balanced Web Service Backend Service Scheduled Job

Choose Load Balanced Web Service .2. Berikan nama untuk layanan Anda.

What do you want to name this Load Balanced Web Service? [? for help]

Enter api untuk nama layanan Anda.3. Pilih Dockerfile.

Which Dockerfile would you like to use for api? [Use arrows to move, type to filter, ? for more help] > ./Dockerfile Use an existing image instead

Choose Dockerfile.4. Tentukan port.

Which port do you want customer traffic sent to? [? for help] (80)

Enter 80 atau terima default.5. Anda akan melihat log yang menunjukkan sumber daya aplikasi sedang dibuat.

Creating the infrastructure to manage services under application demo.

6. Setelah sumber daya aplikasi dibuat, deploy lingkungan pengujian.

Would you like to deploy a test environment? [? for help] (y/N)

Enter y.

Proposing infrastructure changes for the test environment.

13

Amazon ECS Panduan Pengguna untuk AWS FargateDeploy aplikasi Anda langkah demi langkah

7. Anda akan melihat log menampilkan status deployment aplikasi Anda.

Note: It's best to run this command in the root of your Git repository.Welcome to the Copilot CLI! We're going to walk you through some questionsto help you get set up with an application on ECS. An application is a collection ofcontainerized services that operate together.

Use existing application: NoApplication name: demoWorkload type: Load Balanced Web ServiceService name: apiDockerfile: ./Dockerfileno EXPOSE statements in Dockerfile ./DockerfilePort: 80Ok great, we'll set up a Load Balanced Web Service named api in application demo listening on port 80.

# Created the infrastructure to manage services under application demo.

# Wrote the manifest for service api at copilot/api/manifest.ymlYour manifest contains configurations like your container size and port (:80).

# Created ECR repositories for service api.

All right, you're all set for local development.Deploy: Yes

# Created the infrastructure for the test environment.- Virtual private cloud on 2 availability zones to hold your services [Complete]- Virtual private cloud on 2 availability zones to hold your services [Complete] - Internet gateway to connect the network to the internet [Complete] - Public subnets for internet facing services [Complete] - Private subnets for services that can't be reached from the internet [Complete] - Routing tables for services to talk with each other [Complete]- ECS Cluster to hold your services [Complete]# Linked account aws_account_id and region region to application demo.

# Created environment test in region region under application demo. Environment test is already on the latest version v1.0.0, skip upgrade.[+] Building 0.8s (7/7) FINISHED => [internal] load .dockerignore 0.1s => => transferring context: 2B 0.0s => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 37B 0.0s => [internal] load metadata for docker.io/library/nginx:latest 0.7s => [internal] load build context 0.0s => => transferring context: 32B 0.0s => [1/2] FROM docker.io/library/nginx@sha256:aeade65e99e5d5e7ce162833636f692354c227ff438556e5f3ed0335b7cc2f1b 0.0s => CACHED [2/2] COPY index.html /usr/share/nginx/html 0.0s => exporting to image 0.0s => => exporting layers 0.0s

14

Amazon ECS Panduan Pengguna untuk AWS FargateDeploy aplikasi Anda langkah demi langkah

=> => writing image sha256:3ee02fd4c0f67d7bd808ed7fc73263880649834cbb05d5ca62380f539f4884c4 0.0s => => naming to aws_account_id.dkr.ecr.region.amazonaws.com/demo/api:cee7709 0.0sWARNING! Your password will be stored unencrypted in /home/user/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login SucceededThe push refers to repository [aws_account_id.dkr.ecr.region.amazonaws.com/demo/api]592a5c0c47f1: Pushed6c7de695ede3: Pushed2f4accd375d9: Pushedffc9b21953f4: Pushedcee7709: digest: sha_digest

# Deployed api, you can access it at http://demo-Publi-1OQ8VMS2VC2WG-561733989.region.elb.amazonaws.com.

Langkah 5: Verifikasi aplikasi Anda sedang berjalanLihat status aplikasi Anda dengan menggunakan perintah berikut.

Cantumkan semuaAWSAplikasi kopilot.

copilot app ls

Tampilkan informasi tentang lingkungan dan layanan dalam aplikasi Anda.

copilot app show

Tampilkan informasi tentang lingkungan Anda.

copilot env ls

Tampilkan informasi tentang layanan, termasuk titik akhir, kapasitas, dan sumber daya terkait.

copilot svc show

Cantumkan semua layanan dalam aplikasi.

copilot svc ls

Tampilkan log dari layanan yang di-deploy.

copilot svc logs

Tampilkan status layanan.

copilot svc status

Cantumkan perintah dan opsi yang tersedia.

15

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan AWS CDK

copilot --help

copilot init --help

Langkah 6. Pelajari cara membuat Alur CI/CDInstruksi dapat ditemukan diLokakarya ECSmerinci cara untuk sepenuhnya mengotomatisasi alur CI/CDdan alur kerja git menggunakanAWSKopilot.

Langkah 7: MembersihkanJalankan perintah berikut untuk menghapus dan membersihkan semua sumber daya.

copilot app delete

Memulai dengan Amazon ECS menggunakanAWSCDK

Topik ini menunjukkan cara men-deploy server Web kontainer dengan Amazon Elastic Container ServicedanAWS Cloud Development Kit (CDK)di Fargate. AWS CDK adalah kerangka kerja Infrastruktursebagai Code (IAC) yang memungkinkan Anda menentukan infrastruktur AWS menggunakan bahasapemrograman lengkap. Anda menulis aplikasi di salah satu bahasa yang didukung CDK, berisi satu ataubeberapa tumpukan, lalu mensintesisnya ke sebuahAWS CloudFormationtemplate dan menyebarkansumber daya keAWSakun.

ParameterAWSConstruct Library, disertakan dengan CDK, menyediakan API yang memodelkan sumberdaya yang disediakan oleh setiapAWSlayanan. Untuk layanan yang paling populer, pustaka menyediakanpembangunan terkurasi yang menyediakan default cerdas dan menerapkan praktik terbaik dengan lebihsedikit parameter yang diperlukan. Salah satu modul ini, aws-ecs-patterns, menyediakan abstraksitingkat-tinggi yang memungkinkan Anda untuk menentukan layanan kontainer dan semua sumber dayapendukung yang diperlukan hanya dalam beberapa baris kode.

Konstruksi yang akan kita gunakan dalam topik iniadalahApplicationLoadBalancedFargateService. Seperti yang dapat Anda ketahui, konstruksi inimen-deploy layanan Amazon ECS di Fargate di belakang penyeimbang beban aplikasi. Parameteraws-ecs-patternsModul juga mencakup konstruksi yang menggunakan penyeimbang beban jaringan dan/atau berjalan di Amazon EC2, jika Anda lebih suka opsi tersebut.

Sebelum memulai tugas ini, aturAWS CDKlingkungan pengembangan seperti yang dijelaskandalamMemulai DenganAWS CDK- Prasyarat, lalu pasangAWS CDKdengan menerbitkan:

npm install -g aws-cdk

Note

Instruksi ini menganggap Anda menggunakanAWS CDKv2.

Topik• Langkah 1: SiapkanAWS CDKproyek (p. 17)• Langkah 2: MenggunakanAWS CDKuntuk menentukan server Web kontainer di Fargate (p. 18)

16

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 1: SiapkanAWS CDKproyek

• Langkah 3: Uji server Web (p. 22)• Langkah 4: Bersihkan (p. 22)• Langkah selanjutnya (p. 22)

Langkah 1: SiapkanAWS CDKproyekBuat direktori untuk aplikasi AWS CDK baru dan inisialisasi proyek tersebut.

TypeScript

mkdir hello-ecscd hello-ecscdk init --language typescript

JavaScript

mkdir hello-ecscd hello-ecscdk init --language javascript

Python

mkdir hello-ecscd hello-ecscdk init --language python

Setelah proyek diinisialisasi, aktifkan lingkungan virtual proyek dan instal dependensi dasar AWS CDK.

source .venv/bin/activatepython -m pip install -r requirements.txt

Java

mkdir hello-ecscd hello-ecscdk init --language java

Impor proyek Maven ini ke IDE Java Anda (misalnya, di Eclipse, gunakan File > Impor > Maven >Proyek Maven yang Ada).

C#

mkdir hello-ecscd hello-ecscdk init --language csharp

Note

Pastikan untuk memberi nama direktori hello-ecs seperti yang ditunjukkan. Templat aplikasiAWS CDK menggunakan nama direktori proyek untuk memberikan nama pada file dan kelassumber. Jika Anda menggunakan nama yang berbeda, aplikasi Anda tidak akan cocok denganinstruksi ini.

17

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: MenggunakanAWS CDKuntuk

menentukan server Web kontainer di Fargate

AWS CDKv2 termasuk konstruksi stabil untuk semuaAWSlayanan dalam satu paket, dijulukiaws-cdk-lib. Paket ini diinstal sebagai dependensi ketika Anda menginisialisasi proyek (atau, dalam beberapabahasa, pertama kali Anda membangunnya). Dalam topik ini, kami menggunakan konstruksi Pola AmazonECS, yang menyediakan abstraksi tingkat tinggi untuk bekerja dengan Amazon ECS. Pada gilirannya,modul ini bergantung pada konstruksi Amazon ECS dan lainnya untuk menyediakan reseources yangdiperlukan oleh aplikasi Amazon ECS Anda.

Nama yang Anda gunakan untuk mengimpor pustaka ini ke aplikasi CDK Anda sedikit berbeda tergantungpada bahasa pemrograman yang Anda gunakan. Sebagai referensi, berikut adalah nama yang digunakandalam setiap bahasa pemrograman CDK yang didukung.

TypeScript

@aws-cdk-lib/aws-ecs@aws-cdk-lib/aws-ecs-patterns

JavaScript

@aws-cdk-/aws-ecs@aws-cdk-lib/aws-ecs-patterns

Python

aws_cdk.aws_ecsaws_cdk.aws_ecs_patterns

Java

software.amazon.awscdk.services.ecssoftware.amazon.awscdk.services.ecs.patterns

C#

Amazon.CDK.AWS.ECSAmazon.CDK.AWS.ECS.Patterns

Langkah 2: MenggunakanAWS CDKuntukmenentukan server Web kontainer di FargateKita akan menggunakan citra kontainer amazon-ecs-sample dari DockerHub. Citra ini berisi aplikasi PHPyang dijalankan di Amazon Linux 2.

Di dalam proyek AWS CDK yang Anda buat, edit file yang berisi ketentuantumpukan agar terlihat seperti kode di bawah ini. Anda akan mengenaliinstansiasiApplicationLoadBalancedFargateServicemembangun — atau setidaknya namanya.

Note

Apa yang dimaksud dengan tumpukan? Tumpukan adalah unit deployment: semua sumber dayaharus dalam tumpukan, dan semua sumber daya dalam tumpukan di-deploy bersama-sama. Jikasumber daya gagal untuk men-deploy, sumber daya lain yang sudah di-deploy akan dilakukanrollback. Aplikasi AWS CDK dapat berisi beberapa tumpukan, dan sumber daya dalam satutumpukan dapat merujuk ke sumber daya di aplikasi lain.

18

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: MenggunakanAWS CDKuntuk

menentukan server Web kontainer di Fargate

TypeScript

Pembaruan lib/hello-ecs-stack.ts dibaca sebagai berikut.

import * as cdk from '@aws-cdk-lib';import { Construct } from 'constructs';

import * as ecs from '@aws-cdk-lib/aws-ecs';import * as ecsp from '@aws-cdk-lib/aws-ecs-patterns';

export class HelloEcsStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props);

new ecsp.ApplicationLoadBalancedFargateService(this, 'MyWebServer', { taskImageOptions: { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), }, publicLoadBalancer: true }); }}

JavaScript

Perbarui lib/hello-ecs-stack.js untuk membaca sebagai berikut.

const cdk = require('@aws-cdk-lib');const { Construct } = require('constructs');

const ecs = require('@aws-cdk-lib/aws-ecs');const ecsp = require('@aws-cdk-lib/aws-ecs-patterns');

class HelloEcsStack extends cdk.Stack { constructor(scope: Construct, id: string, props?: cdk.StackProps) { super(scope, id, props);

new ecsp.ApplicationLoadBalancedFargateService(this, 'MyWebServer', { taskImageOptions: { image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), }, publicLoadBalancer: true }); }}

module.exports = { HelloEcsStack }

Python

Perbarui hello-ecs/hello_ecs_stack.py untuk membaca sebagai berikut.

import aws_cdk as cdkfrom constructs import Construct

import aws_cdk.aws_ecs as ecsimport aws_cdk.aws_ecs_patterns as ecsp

class HelloEcsStack(cdk.Stack):

def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs)

19

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: MenggunakanAWS CDKuntuk

menentukan server Web kontainer di Fargate

ecsp.ApplicationLoadBalancedFargateService(self, "MyWebServer", task_image_options=ecsp.ApplicationLoadBalancedTaskImageOptions( image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")), public_load_balancer=True )

Java

Perbarui src/main/java/com.myorg/HelloEcsStack.java untuk membaca sebagai berikut.

package com.myorg;

import software.constructs.Construct;import software.amazon.awscdk.Stack;import software.amazon.awscdk.StackProps;

import software.amazon.awscdk.services.ecs.ContainerImage;import software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedFargateService;import software.amazon.awscdk.services.ecs.patterns.ApplicationLoadBalancedTaskImageOptions;

public class HelloEcsStack extends Stack { public HelloEcsStack(final Construct scope, final String id) { this(scope, id, null); }

public HelloEcsStack(final Construct scope, final String id, final StackProps props) { super(scope, id, props);

ApplicationLoadBalancedFargateService.Builder.create(this, "MyWebServer") .taskImageOptions(ApplicationLoadBalancedTaskImageOptions.builder() .image(ContainerImage.fromRegistry("amazon/amazon-ecs-sample")) .build()) .publicLoadBalancer(true) .build(); }}

C#

Pembaruan src/HelloEcs/HelloEcsStack.cs dibaca sebagai berikut.

using Amazon.CDK;using Constructs;

using Amazon.CDK.AWS.ECS;using Amazon.CDK.AWS.ECS.Patterns;

namespace HelloEcs{ public class HelloEcsStack : Stack { internal HelloEcsStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props) { new ApplicationLoadBalancedFargateService(this, "MyWebServer", new ApplicationLoadBalancedFargateServiceProps { TaskImageOptions = new ApplicationLoadBalancedTaskImageOptions { Image = ContainerImage.FromRegistry("amazon/amazon-ecs-sample")

20

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: MenggunakanAWS CDKuntuk

menentukan server Web kontainer di Fargate

}, PublicLoadBalancer = true }); } }}

Anda dapat melihat dalam potongan pendek ini:

• Nama logis layanan, MyWebServer.• Citra kontainer, yang diperoleh dari DockerHub, amazon/amazon-ecs-sample..• Faktanya adalah penyeimbang beban akan memiliki alamat publik dan dengan demikian dapat diakses

dari Internet.

Sebagaimana yang telah kita lakukan di sini, jika Anda menghilangkan klaster Amazon ECS, instansAmazon Virtual Private Cloud, Grup Auto Scaling, Application Load Balancer, role dan kebijakan IAM yangdiperlukan, dan lainnyaAWSsumber daya yang diperlukan untuk menyebarkan server Web,AWS CDKjugaakan menciptakan sumber daya ini. Beberapa sumber daya yang disediakan secara otomatis akan dibagioleh semua layanan Amazon ECS yang didefinisikan dalam tumpukan.

Simpan file sumber, lalu terbitkan cdk synth di direktori utama aplikasi. AWS CDK menjalankan aplikasidan mensintesis template AWS CloudFormation darinya, kemudian menampilkan template tersebut.Template tersebut memiliki sekitar 600 baris YAML, sehingga hanya tampilan awal yang ditampikan di sini.(Template Anda mungkin memiliki perbedaan dengan milik kami.)

Resources: MyWebServerLB3B5FD3AB: Type: AWS::ElasticLoadBalancingV2::LoadBalancer Properties: LoadBalancerAttributes: - Key: deletion_protection.enabled Value: "false" Scheme: internet-facing SecurityGroups: - Fn::GetAtt: - MyWebServerLBSecurityGroup01B285AA - GroupId Subnets: - Ref: EcsDefaultClusterMnL3mNNYNVpcPublicSubnet1Subnet3C273B99 - Ref: EcsDefaultClusterMnL3mNNYNVpcPublicSubnet2Subnet95FF715A Type: application DependsOn: - EcsDefaultClusterMnL3mNNYNVpcPublicSubnet1DefaultRouteFF4E2178 - EcsDefaultClusterMnL3mNNYNVpcPublicSubnet2DefaultRouteB1375520 Metadata: aws:cdk:path: HelloEcsStack/MyWebServer/LB/Resource MyWebServerLBSecurityGroup01B285AA: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: Automatically created Security Group for ELB HelloEcsStackMyWebServerLB06757F57 SecurityGroupIngress: - CidrIp: 0.0.0.0/0 Description: Allow from anyone on port 80 FromPort: 80 IpProtocol: tcp ToPort: 80 VpcId: Ref: EcsDefaultClusterMnL3mNNYNVpc7788A521

21

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Uji server Web

Metadata: aws:cdk:path: HelloEcsStack/MyWebServer/LB/SecurityGroup/Resource# and so on for another few hundred lines

Untuk benar-benar men-deploy layanan di akun AWS, keluarkan cdk deploy. Anda akan diminta untukmenyetujui kebijakan IAM yang dibuat oleh AWS CDK.

Deployment akan memerlukan waktu beberapa menit. Anda akan melihat AWS CDK menciptakancukup banyak sumber daya. Beberapa baris terakhir output dari deployment termasuk nama host publikpenyeimbang beban dan URL HTTP untuk server Web baru Anda.

Outputs:HelloEcsStack.MyWebServerLoadBalancerDNSXXXXXXX = Hello-MyWeb-ZZZZZZZZZZZZZ-ZZZZZZZZZZ.us-west-2.elb.amazonaws.comHelloEcsStack.MyWebServerServiceURLYYYYYYYY = http://Hello-MyWeb-ZZZZZZZZZZZZZ-ZZZZZZZZZZ.us-west-2.elb.amazonaws.com

Langkah 3: Uji server WebSalin URL dari output deployment dan tempel ke peramban Web Anda. Anda akan melihat pesan selamatdatang dari server Web.

Langkah 4: BersihkanSekarang server Web berhasil dibuat (hanya berfungsi untuk menampilkan pesan Selamat), Anda dapatmerusak layanan menggunakan CDK. Keluarkan cdk destroy di direktori utama aplikasi Anda. Denganmelakukan hal, dapat mencegah adanya biaya AWS yang tidak diinginkan.

Langkah selanjutnyaUntuk mempelajari selengkapnya tentang mengembangkan infrastruktur AWS menggunakan AWS CDK,lihat Panduan Developer AWS CDK.

Untuk informasi tentang menulis aplikasi AWS CDK dalam bahasa pilihan Anda, lihat:

TypeScript

Bekerja denganAWS CDKdalam TypeScriptJavaScript

Bekerja denganAWS CDKdalam JavaScript

22

Amazon ECS Panduan Pengguna untuk AWS FargateMemulai menggunakan konsol klasik

Python

Bekerja denganAWS CDKdi PythonJava

Bekerja denganAWS CDKdi JavaC#

Bekerja denganAWS CDKdi C#

Untuk informasi lebih lanjut tentangAWSMembangun modul Perpustakaan yang digunakan dalam topik ini,lihatAWS CDKIkhtisar Referensi API di bawah ini.

• aws-ecs• aws-ecs-patterns

Memulai Amazon ECS menggunakan konsol klasikPanduan berikut memberikan pengantar klasikAWS Management Consoleuntuk menyelesaikan tugasumum untuk menjalankan kontainer Anda di Amazon ECS danAWS Fargate.

Daftar Isi• Memulai dengan konsol klasik menggunakan kontainer LinuxAWS Fargate (p. 23)

Memulai dengan konsol klasik menggunakankontainer LinuxAWS FargateAmazon Elastic Container Service (Amazon ECS) adalah layanan manajemen kontainer yang sangat dapatdiskalakan dan cepat sehingga memudahkan untuk menjalankan, menghentikan, dan mengelola kontainerAnda. Anda dapat meng-host kontainer Anda di infrastruktur nirserver yang dikelola oleh Amazon ECSdengan meluncurkan layanan atau tugas Anda diAWS Fargate. Untuk ikhtisar luas tentang Amazon ECSdiFargate, LihatApakah AWS Fargate itu? (p. 1).

Memulai dengan Amazon ECSAWS Fargatedengan menggunakan jenis peluncuran Fargate untuk tugasAnda. Di Wilayah tempat Amazon ECS mendukungAWSFargate, wizard beroperasi-pertama Amazon yangdijalankan memandu Anda melalui proses memulai dengan Amazon ECS menggunakan tipe peluncuranFargate. Wizard memberikan Anda pilihan untuk membuat sebuah klaster dan meluncurkan aplikasi websampel. Jika Anda sudah memiliki citra Docker untuk diluncurkan di Amazon ECS, Anda dapat membuatketentuan tugas dengan citra tersebut dan menggunakannya untuk klaster Anda.

Selesaikan langkah-langkah berikut untuk memulai Amazon ECS padaAWS Fargate.

PrasyaratSebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah dalamSiapkan untukmenggunakan Amazon ECS (p. 4)dan bahwaAWSpengguna memiliki hak akses yang ditentukandalamAdministratorAccessatauIzin wizard yang dijalankan pertama Amazon ECS (p. 340)Contohkebijakan IAM.

Wizard beroperasi-pertama mencoba untuk secara otomatis membuat peran IAM eksekusi tugas secaraotomatis, yang diperlukan untuk tugas Fargate. Untuk memastikan bahwa pengalaman yang dijalankanpertama dapat membuat peran IAM ini, salah satu hal berikut harus BETUL:

23

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan konsol klasik dengan

kontainer LinuxAWS Fargate

• Pengguna Anda memiliki akses administrator. Untuk informasi selengkapnya, lihat Siapkan untukmenggunakan Amazon ECS (p. 4).

• Pengguna Anda memiliki izin IAM untuk membuat peran layanan. Untuk informasi selengkapnya, lihatMembuat Peran untuk Mendelegasikan Izin untuk Layanan AWS.

• Pengguna dengan akses administrator telah secara manual membuat peran eksekusi tugas sehinggaperan itu tersedia pada akun yang akan digunakan. Untuk informasi selengkapnya, lihat Peran IAMeksekusi tugas ECS Amazon (p. 363).

Langkah 1: Membuat definisi tugasKetentuan tugas adalah seperti cetak biru untuk aplikasi Anda. Setiap kali meluncurkan tugas di AmazonECS, Anda menentukan ketentuan tugas. Layanan kemudian tahu citra Docker mana yang digunakanuntuk kontainer, berapa banyak kontainer untuk digunakan dalam tugas, dan alokasi sumber daya untuksetiap kontainer.

1. Buka wizard yang dijalankan pertama konsol klasik dihttps://console.aws.amazon.com/ecs/home#/firstRun.

2. Pada bilah navigasi, pilihAS Timur (Virginia Utara)Wilayah.

Note

Anda dapat menyelesaikan wizard yang dijalankan pertama ini menggunakan langkah-langkah ini untuk setiap Wilayah yang mendukung Amazon ECS menggunakan Fargate.Untuk informasi selengkapnya, lihat Jenis peluncuran Fargate (p. 123).

3. Mengonfigurasi parameter ketentuan kontainer Anda.

Untuk Ketentuan kontainer, wizard beroperasi-pertama dimuat sebelumnya dengan ketentuankontainer sample-app, nginx, dan tomcat-webserver di konsol tersebut. Anda dapat menggantinama kontainer atau meninjau dan mengedit sumber daya yang digunakan oleh kontainer (seperti unitCPU dan batas memori) dengan memilih Edit dan mengedit nilai yang ditampilkan. Untuk informasiselengkapnya, lihat Ketentuan kontainer (p. 99).

Note

Jika Anda menggunakan citra Amazon ECR dalam ketentuan kontainer Anda, pastikan untukmenggunakan data lengkapregistry/repository:tagpenamaan untuk citra AmazonECR Anda. Misalnya, aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

4. Untuk Ketentuan tugas, wizard beroperasi-pertama menentukan ketentuan tugas untuk digunakandengan ketentuan kontainer yang dimuat sebelumnya. Anda dapat mengganti nama ketentuantugas dan mengedit sumber daya yang digunakan oleh tugas (seperti nilai Memori tugas dan CPUtugas) dengan memilih Edit dan mengedit nilai yang ditampilkan. Untuk informasi selengkapnya, lihatParameter ketentuan tugas (p. 95).

Ketentuan tugas yang dibuat di wizard beroperasi-pertama terbatas pada kontainer tunggal agarsederhana. Anda dapat membuat ketentuan tugas multi-kontainer nanti di konsol Amazon ECS.

5. Pilih Selanjutnya.

Langkah 2: Konfigurasi layananDi bagian wizard ini, pilih cara mengonfigurasi layanan Amazon ECS yang dibuat dari ketentuan tugasAnda. Layanan meluncurkan dan memelihara sejumlah salinan ketentuan tugas di klaster Anda.ParameterSampel Amazon ECSAplikasi adalah aplikasi bergaya Hello World berbasis web yangdimaksudkan untuk dijalankan tanpa batas waktu. Dengan menjalankannya sebagai layanan, muat ulangjika tugas bermasalah atau tiba-tiba berhenti.

24

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan konsol klasik dengan

kontainer LinuxAWS Fargate

Wizard beroperasi-pertama dilengkapi dengan ketentuan layanan, dan Anda dapat melihat layanansample-app-service didefinisikan dalam konsol. Anda dapat mengganti nama layanan atau meninjaudan mengedit detail dengan memilih Edit dan lakukan hal berikut:

1. Di Nama layanan, pilih nama untuk layanan Anda.2. Di Jumlah tugas yang diinginkan, masukkan jumlah tugas yang akan diluncurkan dengan ketentuan

tugas yang Anda tentukan.3. Di kolom Grup keamanan, tentukan kisaran alamat IPv4 untuk mengizinkan lalu lintas masuk darinya,

dalam notasi blok CIDR. Sebagai contoh, 203.0.113.0/24.4. (Opsional) Anda dapat memilih untuk menggunakan Application Load Balancer dengan layanan

Anda. Ketika tugas diluncurkan dari layanan yang dikonfigurasi untuk menggunakan penyeimbangbeban, tugas tersebut didaftarkan dengan penyeimbang beban. Lalu lintas dari penyeimbangbeban didistribusikan di seluruh instans dalam penyeimbang beban. Untuk informasi selengkapnya,lihatPengantar Application Load Balancers.

Important

Application Load Balancer mengeluarkan biaya saat ada di AndaAWSsumber daya. Untukinformasi selengkapnya, lihatApplication Load Balancer.

Selesaikan langkah-langkah berikut untuk menggunakan penyeimbang beban dengan layanan Anda.

• Di bagian kontainer untuk keseimbangan beban, pilih Port listener penyeimbang beban. Nilaidefault di sini diatur untuk aplikasi sampel, tetapi Anda dapat mengonfigurasi opsi listener yangberbeda untuk penyeimbang beban. Untuk informasi selengkapnya, lihat Penyeimbangan bebanlayanan (p. 256).

5. Tinjau setelan layanan Anda dan klik Simpan, Selanjutnya.

Langkah 3: Konfigurasi klasterDi bagian wizard ini, Anda menamai klaster Anda, lalu Amazon ECS menangani konfigurasi jaringan danIAM untuk Anda.

1. Di kolom Nama klaster, pilih nama untuk klaster Anda.2. Klik Selanjutnya untuk melanjutkan.

Langkah 4: Tinjau1. Tinjau ketentuan tugas Anda, konfigurasi tugas, dan konfigurasi klaster dan klik Buat untuk

menyelesaikan. Anda diarahkan ke halaman Status Peluncuran yang menunjukkan status peluncuranAnda. Ini menjelaskan setiap langkah dari proses (ini dapat memakan waktu beberapa menit untukmenyelesaikan sementara grup Auto Scaling Anda dibuat dan diisi).

2. Setelah peluncuran selesai, pilih Lihat layanan.

Langkah 5: Melihat layanan AndaJika layanan Anda adalah aplikasi berbasis web, sepertiSampel Amazon ECS, Anda dapat melihatkontainer dengan peramban web.

1. Pada halaman Layanan: nama layanan, pilih tab Tugas.2. Pilih tugas dari daftar tugas dalam layanan Anda.

25

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan konsol klasik dengan

kontainer LinuxAWS Fargate

3. Di bagian Jaringan, pilih ID ENI untuk tugas Anda. Ini akan membawa Anda ke konsol Amazon EC2tempat Anda dapat melihat detail antarmuka jaringan yang terkait dengan tugas Anda, termasukIPpublikalamat.

4. MasukkanIP publikalamat di peramban web Anda dan Anda akan melihat halaman web yangmenampilkanSampel Amazon ECSaplikasi.

Langkah 6: BersihkanSetelah selesai menggunakan klaster Amazon ECS, Anda harus membersihkan sumber daya yang terkaitdengan klaster Amazon ECS agar tidak terkena biaya untuk sumber daya yang tidak Anda gunakan.

Beberapa sumber daya Amazon ECS, seperti tugas, layanan, klaster, dan instans kontainer, dibersihkanmenggunakan konsol Amazon ECS. Sumber daya lainnya, seperti instans Amazon EC2, penyeimbangbeban Elastic Load Balancing, dan grup Auto Scaling, harus dibersihkan secara manual di konsol AmazonEC2 atau dengan menghapusAWS CloudFormationtumpukan yang menciptakan mereka.

1. Buka konsol ECS Amazon di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Klaster.3. Pada halaman klaster, pilih klaster untuk menghapus.4. Pilih Hapus klaster. Pada perintah konfirmasi, masukkan hapus saya lalu pilih Hapus. Menghapus

klaster artinya membersihkan sumber daya terkait yang dibuat dengan klaster, termasuk grup AutoScaling, VPC, atau penyeimbang beban.

26

Amazon ECS Panduan Pengguna untuk AWS FargateAWS Management Console

Ikhtisar alat pengembang AmazonECS

Baik Anda adalah bagian dari perusahaan besar atau perusahaan rintisan, Amazon ECS menawarkanberbagai alat yang dapat membantu Anda meningkatkan dan menjalankan kontainer dengan cepat,terlepas dari tingkat keahlian Anda. Anda dapat bekerja dengan Amazon ECS dengan cara berikut.

• Pelajari, kembangkan, kelola, dan visualisasikan aplikasi dan layanan container Anda menggunakanAWS Management Console (p. 27).

• Lakukan tindakan tertentu pada sumber daya Amazon ECS dengan deployment otomatismelalui pemrograman atau skrip menggunakanAWS Command Line Interface (p. 27),AWSSDK (p. 30)atau API ECS.

• Tentukan dan kelola semua sumber daya AWS di lingkungan Anda dengan deployment otomatismenggunakan AWS CloudFormation (p. 28).

• Gunakan lengkapAWSKopilot CLI (p. 28) end-to-end alur kerja developer untuk membuat,melepaskan, dan mengoperasikan aplikasi kontainer yang sesuai denganAWSpraktik terbaik untukinfrastruktur.

• Menggunakan bahasa pemrograman pilihan Anda, tentukan infrastruktur atau arsitektur sebagai kodedengan AWS CDK (p. 29).

• Kontainer aplikasi yang di-hosting on premise atau pada instans Amazon EC2 atau keduanya denganmenggunakanApp2Container AWS (p. 29)portabilitas terintegrasi dan ekosistem perkakas untukkontainer.

• Menerapkan aplikasi Docker Compose ke Amazon ECS atau uji kontainer lokal dengan kontainer yangberjalan di ECS, menggunakanAmazon ECS CLI (p. 29).

• Luncurkan kontainer dariIntegrasi Desktop dengan Amazon ECS (p. 29)menggunakan Amazon ECSdi Docker Desktop.

AWS Management ConsoleParameterAWS Management Consoleadalah antarmuka berbasis peramban untuk mengelola sumber dayaAmazon ECS. Konsol menyediakan gambaran umum visual layanan, sehingga fitur dan fungsi AmazonECS tanpa perlu menggunakan alat tambahan. Banyak tutorial dan panduan terkait tersedia yang dapatmemandu Anda menggunakan konsol tersebut.

Untuk tutorial panduan menggunakan konsol tersebut, lihat Memulai dengan Amazon ECS (p. 4).

Saat memulai, banyak pelanggan lebih memilih menggunakan konsol tersebut karena layanan tersebutmemberikan umpan balik visual instan terhadap apakah tindakan yang diambil berhasil.AWSpelangganyang akrab denganAWS Management Console, dapat dengan mudah mengelola sumber daya terkaitseperti load balancers dan instans Amazon EC2.

Mulai dengan AWS Management Console.

AWS Command Line InterfaceAWS Command Line Interface (AWS CLI) adalah alat terpadu yang dapat Anda gunakan untuk mengelolalayanan AWS Anda. Hanya dengan satu alat ini saja, Anda dapat mengendalikan beberapa layanan AWS

27

Amazon ECS Panduan Pengguna untuk AWS FargateAWS CloudFormation

dan mengotomatisasi layanan ini melalui skrip. Perintah Amazon ECS diAWS CLIadalah cerminan dari APIAmazon ECS.

AWS menyediakan dua set alat baris perintah: AWS Command Line Interface (AWS CLI) dan AWS Toolsfor Windows PowerShell. Untuk informasi selengkapnya, lihat Panduan Pengguna AWS Command LineInterface dan Panduan Pengguna.AWS Tools for Windows PowerShell

ParameterAWS CLIcocok untuk pelanggan yang lebih suka dan terbiasa dengan penulisan dan antar mukadengan alat baris perintah dan tahu persis tindakan mana yang ingin mereka lakukan pada sumber dayaAmazon ECS. ParameterAWS CLIjuga membantu pelanggan yang ingin membiasakan diri dengan APIAmazon ECS. Pelanggan dapat menggunakanAWS CLIuntuk melakukan sejumlah operasi di sumber dayaAmazon ECS, termasuk operasi Buat, Baca, Memperbarui, dan Menghapus, langsung dari antarmuka barisperintah.

MenggunakanAWS CLIjika Anda terbiasa atau ingin terbiasa dengan API Amazon ECS dan perintah CLIyang sesuai dan ingin menulis skrip otomatis dan melakukan tindakan tertentu pada sumber daya AmazonECS.

AWS CloudFormationAWS CloudFormationdanTerraformuntuk Amazon ECS keduanya menyediakan cara yang ampuh bagiAnda untuk menentukan infrastruktur Anda sebagai kode. Anda dapat dengan mudah melacak versitemplat atau tumpukan AWS CloudFormation mana yang berjalan setiap saat dan melakukan rollbackke versi sebelumnya jika diperlukan. Anda dapat melakukan deployment infrastruktur dan aplikasidengan cara otomatis yang sama. Fleksibilitas dan otomatisasi ini adalah apa yang membuatAWSCloudFormationdan Terraform dua format populer untuk men-deploy beban kerja ke Amazon ECS dari jalurpengiriman berkelanjutan.

Untuk informasi selengkapnya tentang AWS CloudFormation, lihat Membuat sumber daya Amazon ECSdenganAWS CloudFormation (p. 404).

GunakanAWS CloudFormationatau Terraform jika Anda ingin mengotomatisasi deployment dan aplikasiinfrastruktur di Amazon ECS dan secara eksplisit menentukan dan mengelola semuaAWSsumber daya dilingkungan Anda.

AWSKopilot CLIParameterAWSCLI (antarmuka baris perintah) adalah alat komprehensif yang mengizinkan pelangganuntuk men-deploy dan mengoperasikan aplikasi yang dikemas dalam kontainer dan lingkungan diAmazon ECS langsung dari kode sumbernya. Saat menggunakanAWSKopilot Anda dapat melakukanoperasi ini tanpa pemahamanAWSdan elemen Amazon ECS seperti Application Load Balancers, subnetpublik, tugas, layanan, dan klaster.AWS Kopilot menciptakanAWSsumber daya atas nama Anda daripola layanan opinionated, seperti layanan web seimbang beban atau layanan backend, menyediakanlingkungan produksi langsung untuk aplikasi kontainer. Anda dapat men-deploy melalui alur AWSCodePipeline di beberapa lingkungan, akun, atau Wilayah, yang semuanya dapat dikelola dalam CLI.Dengan menggunakanAWSCopilot Anda juga dapat melakukan tugas-tugas operator, seperti melihatlog dan kesehatan layanan Anda.AWS Kopilot adalah all-in-one alat yang membantu Anda lebih mudahmengelola sumber daya cloud Anda sehingga Anda dapat fokus pada pengembangan dan pengelolaanaplikasi Anda.

Untuk informasi selengkapnya, lihat MenggunakanAWSAntarmuka baris perintah (p. 31).

MenggunakanAWSKopilot selesai end-to-end alur kerja developer untuk membuat, melepaskan, danmengoperasikan aplikasi kontainer yang sesuai denganAWSpraktik terbaik untuk infrastruktur.

28

Amazon ECS Panduan Pengguna untuk AWS FargateAWS CDK

AWS CDKAWS Cloud Development Kit (CDK) adalah kerangka kerja pengembangan perangkat lunak sumberterbuka yang memungkinkan Anda untuk memodelkan dan menyediakan sumber daya aplikasi cloudAnda menggunakan bahasa pemrograman yang sudah dikenal. AWS CDK menyediakan sumber dayaAnda dengan cara yang aman dan berulang melalui AWS CloudFormation. Dengan menggunakan CDK,pelanggan dapat menghasilkan lingkungan yang memiliki lebih sedikit baris kode dengan menggunakanbahasa yang sama yang digunakan untuk membangun aplikasi. Amazon ECS menyediakan modul diCDK yang diberi namaecs-patterns, yang menciptakan arsitektur umum. Pola yang tersedia adalahApplicationLoadBalancedFargateService(). Pola ini membuat klaster, ketentuan tugas, dansumber daya tambahan untuk menjalankan layanan Amazon ECS yang diseimbangkan pada bebanAWSFargate.

Untuk informasi selengkapnya, lihat Memulai dengan Amazon ECS menggunakanAWS CDK (p. 16).

Gunakan AWS CDK jika Anda ingin menentukan infrastruktur atau arsitektur sebagai kode dalam bahasapemrograman pilihan Anda. Misalnya, Anda dapat menggunakan bahasa yang sama yang Anda gunakanuntuk menulis aplikasi Anda.

App2Container AWSTerkadang pelanggan korporasi mungkin sudah memiliki aplikasi yang di-hosting on premise atau padainstans EC2 atau keduanya. Mereka tertarik pada portabilitas dan ekosistem perkakas kontainer khusus diAmazon ECS, dan perlu diisi terlebih dahulu.AWS App2Container memungkinkan Anda untuk melakukanhal tersebut. App2Container (A2C) adalah alat baris perintah untuk memodernisasi aplikasi NET danJava ke dalam aplikasi kontainer. A2C menganalisis dan membangun inventori semua aplikasi yangberjalan dalam mesin virtual, on premise atau cloud. Setelah Anda memilih aplikasi yang ingin Andasimpan, A2C mengemas artifact aplikasi dan dependensi yang teridentifikasi ke dalam citra kontainer.Kemudian mengonfigurasi port jaringan dan menghasilkan tugas Amazon ECS. Terakhir, itu menciptakanCloudFormation template yang dapat Anda deploy atau modifikasi jika diperlukan.

Untuk informasi selengkapnya, lihat Memulai dengan App2Container AWS.

Gunakan App2Container jika Anda memiliki aplikasi yang di-hosting on premise atau keduanya di instansAmazon EC2 atau keduanya.

Amazon ECS CLIAmazon ECS CLI memungkinkan Anda menjalankan aplikasi Anda di Amazon ECS danAWSFargatemenggunakan format file Docker Compose. Anda dapat dengan cepat menyediakan sumberdaya, mendorong dan menarik gambar menggunakanAmazon ECR, dan memantau aplikasi yang sedangberjalan di Amazon ECS atauAWS Fargate. Anda juga dapat menguji kontainer yang berjalan secara lokalbersama dengan kontainer di cloud dalam CLI.

Untuk informasi selengkapnya, lihat Menggunakan antarmuka baris perintah Amazon ECS (p. 37).

Gunakan CLI ECS jika Anda memiliki aplikasi Compose dan ingin men-deploy ke Amazon ECS, ataumenguji kontainer lokal dengan kontainer yang berjalan di Amazon ECS di cloud.

Integrasi Desktop dengan Amazon ECSAWSdan Docker telah berkolaborasi untuk membuat pengalaman developer yang disederhanakan yangmemungkinkan Anda untuk men-deploy dan mengelola kontainer di Amazon ECS langsung menggunakanalat Docker. Anda sekarang dapat membuat dan menguji kontainer Anda secara lokal menggunakan

29

Amazon ECS Panduan Pengguna untuk AWS FargateAWS SDK

Docker Desktop dan Docker Compose, lalu men-deploy-nya ke Amazon ECS di Fargate. Untuk memulaiintegrasi Amazon ECS dan Docker, unduh Docker Desktop dan secara opsional mendaftar untuk IDDocker. Untuk informasi selengkapnya, lihat Desktop Docker dan pendaftaran ID Docker.

Pemula untuk kontainer sering mulai belajar tentang kontainer dengan menggunakan alat Docker sepertiDocker CLI dan Docker Compose. Hal ini membuat penggunaan plugin CLI Docker Compose untukAmazon ECS menjadi langkah alami berikutnya dalam menjalankan kontainer diAWSsetelah pengujiansecara lokal. Docker menyediakan panduan tentang men-deploy kontainer di Amazon ECS. Untukinformasi selengkapnya, lihatMenerapkan kontainer Docker di Amazon ECS.

Anda dapat mengambil keuntungan dari fitur Amazon ECS tambahan, seperti penemuan layanan,penyeimbangan beban dan lainnyaAWSsumber daya untuk digunakan dengan aplikasi mereka denganDocker Desktop.

Anda juga dapat mengunduh plugin Docker Compose CLI untuk Amazon ECS langsung dari GitHub. Untukinformasi selengkapnya, lihatDocker Tulis plugin CLI untuk Amazon ECSdi GitHub.

AWS SDKAnda juga dapat menggunakanAWSSDK untuk mengelola sumber daya Amazon ECS dan operasi dariberbagai bahasa pemrograman. SDK menyediakan modul untuk membantu mengurus tugas, termasuktugas dalam daftar berikut.

• Secara kriptografi menandatangani permintaan layanan Anda• Mencoba kembali permintaan• Menangani respons kesalahan

Untuk informasi tentang SKD yang tersedia, lihat Alat untuk Amazon Web Services.

RingkasanDengan banyaknya opsi, Anda dapat memilih opsi yang paling cocok untuk Anda. Pertimbangkan opsiberikut.

• Jika Anda berorientasi visual, Anda dapat secara visual membuat dan mengoperasikan kontainermenggunakan AWS Management Console.

• Jika Anda lebih suka CLI, pertimbangkan untuk menggunakanAWSKopilot atauAWS CLI. Atau, jika Andalebih suka ekosistem Docker, Anda dapat memanfaatkan fungsi ECS dari dalam Docker CLI untuk men-deploy ke AWS. Setelah sumber daya ini di-deploy, Anda dapat terus mengelolanya melalui CLI atausecara visual melalui konsol.

• Jika Anda adalah seorang developer, Anda dapat menggunakan AWS CDK untuk menentukaninfrastruktur Anda dalam bahasa yang sama dengan aplikasi Anda. Anda dapat menggunakan CDKdanAWSCopilot untuk mengekspor ke CloudFormation template di mana Anda dapat mengubahpengaturan granular, menambahkan lainnyaAWSsumber daya, dan mengotomatisasi penyebaranmelalui scripting atau pipa CI/CD sepertiAWSCodePipeline.

API AWS CLI, SDK, atau ECS adalah alat yang berguna untuk mengotomatisasi tindakan padasumber daya ECS, sehingga ideal untuk deployment. Untuk men-deploy aplikasi menggunakan AWSCloudFormation Anda dapat menggunakan berbagai bahasa pemrograman atau file teks sederhana untukmemodelkan dan menyediakan semua sumber daya yang diperlukan untuk aplikasi Anda. Anda kemudiandapat men-deploy aplikasi Anda di beberapa Wilayah dan akun secara otomatis dan aman. Misalnya, Andadapat menentukan klaster ECS, layanan, ketentuan tugas, atau penyedia kapasitas, sebagai kode dalamfile dan men-deploy melaluiAWS CLI CloudFormation perintah.

30

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakanAWSKopilot CLI

Untuk melakukan tugas operasi, Anda dapat melihat dan mengelola sumber daya pemrogramanmenggunakan API AWS CLI, SDK, atau ECS. Perintah seperti describe-tasks atau list-servicesmenampilkan metadata terbaru atau daftar semua sumber daya. Hampir sama dengan deployment,pelanggan juga dapat menulis otomatisasi yang mencakup perintah seperti update-service untukmemberikan tindakan korektif pada deteksi sumber daya yang berhenti secara tiba-tiba. Anda juga dapatmengoperasikan layanan menggunakanAWSKopilot. Perintah seperti copilot svc logs atau copilotapp show memberikan detail tentang masing-masing layanan mikro, atau tentang aplikasi Anda secarakeseluruhan.

Pelanggan dapat menggunakan salah satu alat yang tersedia yang disebutkan dalam dokumen ini danmenggunakannya dalam berbagai kombinasi. Alat ECS menawarkan berbagai cara agar bisa lulusmenggunakan alat tertentu untuk menggunakan alat lain yang sesuai dengan kebutuhan perubahanAnda. Misalnya, Anda dapat memilih pada pengendalian terperinci daripada sumber daya atau lebihpada otomatisasi sebagaimana diperlukan. ECS juga menawarkan berbagai macam alat untuk berbagaikebutuhan dan tingkat keahlian.

MenggunakanAWSAntarmuka baris perintahParameterAWSPerintah antarmuka baris perintah (CLI) copilot menyederhanakan pembangunan,pelepasan, dan pengoperasian aplikasi terkontainer yang siap produksi di Amazon ECS dari lingkunganpengembangan lokal. ParameterAWSCLI copilot sejalan dengan alur kerja developer yang mendukungpraktik terbaik aplikasi modern: dari menggunakan infrastruktur sebagai code (IaC) untuk membuatalur CI/CD yang ditetapkan atas nama pengguna. MenggunakanAWSCLI sebagai bagian dari sikluspengembangan dan pengujian sehari-hari Anda sebagai alternatif untukAWS Management Console.

AWSSaat ini Copilot mendukung sistem Linux, macOS, dan Windows. Untuk informasi selengkapnyatentang versi terbaruAWSKopilot CLI, lihatRilis.

Note

Kode sumber untukAWSKopilot CLI tersedia diGitHub. Dokumentasi CLI terbaru tersediadiAWSKopilotsitus web. Kami merekomendasikan agar Anda mengirimkan masalah dan menarikpermintaan untuk perubahan yang ingin Anda sertakan. Namun, Amazon Web Services saatini tidak mendukung menjalankan salinan modifikasiAWSKode kopilot. Melaporkan masalahdenganAWSCopilot dengan menghubungkan dengan kami diGitteratauGitHubdi mana Anda dapatmembuka masalah, memberikan umpan balik, dan melaporkan bug.

MenginstalAWSKopilot CLIParameterAWSCLI Copilot dapat diinstal pada sistem Linux atau macOS baik dengan menggunakanHomebrew atau mengunduh binary secara manual. Gunakan langkah-langkah berikut dengan metodeinstalasi pilihan Anda.

MenginstalAWSKopilot CLI menggunakan HomebrewPerintah berikut digunakan untuk menginstalAWSCLI di sistem macOS atau Linux Anda menggunakanHomebrew. Sebelum instalasi, Anda harus sudah menginstal Homebrew. Untuk informasi selengkapnya,lihat Homebrew.

brew install aws/tap/copilot-cli

MenginstalAWSKopilot CLISebagai alternatif Homebrew, Anda dapat menginstalAWSCLI Copilot di sistem MacOS atau Linux Anda.Gunakan perintah berikut untuk sistem operasi Anda untuk mengunduh biner, menerapkan izin eksekusipada biner, serta kemudian memverifikasi biner dapat bekerja dengan daftar menu bantuan.

31

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstalAWSKopilot CLI

macOS

Untuk macOS:

sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-darwin \ && sudo chmod +x /usr/local/bin/copilot \ && copilot --help

Linux

Pada sistem Linux x86 (64-bit):

sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux \ && sudo chmod +x /usr/local/bin/copilot \ && copilot --help

Pada sistem Linux ARM:

sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux-arm64 \ && sudo chmod +x /usr/local/bin/copilot \ && copilot --help

Windows

Menggunakan Powershell, jalankan perintah berikut:

PS C:\> New-Item -Path 'C:\copilot' -ItemType directory; ` Invoke-WebRequest -OutFile 'C:\copilot\copilot.exe' https://github.com/aws/copilot-cli/releases/latest/download/copilot-windows.exe

(Opsional) VerifikasikanAWSKopilot CLI menggunakan tandatangan PGPParameterAWSCLI copilot ditandatangani secara kriptografis menggunakan tanda tangan PGP. Tandatangan PGP dapat digunakan untuk memverifikasi validitasAWSKopilot CLI executable. Gunakan langkah-langkah berikut untuk memverifikasi tanda tangan menggunakan alat GnuPG.

1. Unduh dan instal GnuPG. Untuk informasi selengkapnya, lihatSitus GnuPG.

macOS

Kami merekomendasikan penggunaan Homebrew. Instal Homebrew menggunakan petunjuk darisitus web mereka. Untuk informasi selengkapnya, lihat Homebrew. Setelah Homebrew terinstal,gunakan perintah berikut dari terminal macOS Anda.

brew install gnupg

Linux

Pasanggpgmenggunakan pengelola paket pada tipe Linux Anda.

32

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstalAWSKopilot CLI

Windows

Unduh penginstal sederhana Windows dari situs web GnuPG dan instal sebagai Administrator.Setelah Anda menginstal GnuPG, tutup dan buka kembali PowerShell Administrator.

Untuk informasi selengkapnya, lihatUnduh GnuPG.2. Verifikasi jalur GnuPG ditambahkan ke jalur lingkungan Anda.

macOS

echo $PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

PATH=$PATH:<path to GnuPG executable files>

Linux

echo $PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

export PATH=$PATH:<path to GnuPG executable files>

Windows

Write-Output $Env:PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

e $Env:PATH += ";<path to GnuPG executable files>"

3. Buat file teks biasa lokal.

macOS

Di terminal, masukkan:

touch <public_key_filename.txt>

Buka file dengan TextEdit.Linux

Buat file teks di editor teks seperti gedit. Simpan Sebagaipublic_key_filename.txtWindows

Buat file teks di editor teks seperti Notepad. Simpan Sebagaipublic_key_filename.txt4. Tambahkan konten berikut dari kunci publik PGP Amazon ECS dan simpan file tersebut.

-----BEGIN PGP PUBLIC KEY BLOCK-----33

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstalAWSKopilot CLI

Version: GnuPG v2

mQINBFq1SasBEADliGcT1NVJ1ydfN8DqebYYe9ne3dt6jqKFmKowLmm6LLGJe7HUjGtqhCWRDkN+qPpHqdArRgDZAtn2pXY5fEipHgar4CP8QgRnRMO2fl74lmavr4Vg7K/KH8VHlq2uRw32/B94XLEgRbGTMdWFdKuxoPCttBQaMj3LGn6Pe+6xVWRkChQuBoQAhjBQ+bEm0kNy0LjNgjNlnL3UMAG56t8E3LANIgGgEnpNsB1UwfWluPoGZoTxN+6pHBJrKIL/1v/ETU4FXpYw2zvhWNahxeNRnoYj3uycHkeliCrw4kj0+skizBgO2K7oVX8Oc3j5+ZilhL/qDLXmUCb2az5cMM1mOoF8EKX5HaNuq1KfwJxqXE6NNIcOlFTrT7QwD5fMNld3FanLgv/ZnIrsSaqJOL6zRSq8O4LN1OWBVbndExk2Kr+5kFxn5lBPgfPgRj5hQ+KTHMa9Y8Z7yUc64BJiN6F9Nl7FJuSsfqbdkvRLsQRbcBG9qxX3rJAEhieJzVMEUNl+EgeCkxj5xuSkNU7zw2c3hQZqEcrADLV+hvFJktOz9Gm6xzbqlTnWWCz4xrIWtuEBA2qE+MlDheVd78a3gIsEaSTfQq0osYXaQbvlnSWOoc1y/5ZbzizHTJIhLtUyls9WisP2s0emeHZicVMfW61EgPrJAiupgc7kyZvFt4YwfwARAQABtCRBbWF6b24gRUNTIDxlY3Mtc2VjdXJpdHlAYW1hem9uLmNvbT6JAhwEEAECAAYFAlrjL0YACgkQHivRXs0TaQrg1g/+JppwPqHnlVPmv7lessB8I5UqZeD6p6uVpHd7Bs3pcPp8BV7BdRbs3sPLt5bV1+rkqOlw+0gZ4Q/ue/YbWtOAt4qY0OcEo0HgcnaXlsB827QIfZIVtGWMhuh94xzm/SJkvngml6KB3YJNnWP61A9qJ37/VbVVLzvcmazAMcWB4HUMNrhd0JgBCo0gIpqCbpJEvUc02Bjn23eEJsS9kC7OUAHyQkVnx4d9UzXF4OoISF6hmQKIBoLnRrAlj5Qvs3GhvHQ0ThYq0Grk/KMJJX2CSqt7tWJ8gk1n3H3YSReRXJRnv7DsDDBwFgT6r5Q2HW1TBUvaoZy5hF6maD09nHcNnvBjqADzeT8Tr/QubBCLzkNSYqqkpgtwv7seoD2P4n1giRvDAOEfMZpVkUr+C252IaH1HZFEz+TvBVQMY8OWWxmIJW+J6evjo3N1eO19UHv71jvoF8zljbI4bsL2c+QTJmOv7nRqzDQgCWypId/v2dUVVTk1j9omuLBBwNJzQCB+72LcIzJhYmaP1HC4LcKQG+/f41exuItenatKlEJQhYtyVXcBlh6Yn/wzNg2NWOwb3vqY/F7m6u9ixAwgtIMgPCDE4aJ86zrrXYFzN2HqkTSQh77Z8KPKmyGopsmN/reMuilPdINb249nA0dzoN+nj+tTFOYCIaLaFyjsZ0r1QAOJAjkEEwECACMFAlq1SasCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRC86dmkLVF4T9iFEACEnkm1dNXsWUx34R3c0vamHrPxvfkyI1FlEUen8D1huX9xy6jCEROHWEp0rjGK4QDPgM93sWJ+s1UAKg214QRVzft0y9/DdR+twApA0fzyuavIthGd6+03jAAo6udYDE+cZC3P7XBbDiYEWk4XAF9I1JjB8hTZUgvXBL046JhGeM17+crgUyQeetkiOQemLbsbXQ40Bd9V7zf7XJraFd8VrwNUwNb+9KFtgAsc9rk+YIT/PEf+YOPysgcxI4sTWghtyCulVnuGoskgDv4v73PALU0ieUrvvQVqWMRvhVx10X90J7cC1KOyhlEQQ1aFTgmQjmXexVTwIBm8LvysFK6YXM41KjOrlz3+6xBIm/qebFyLUnf4WoiuOplAaJhK9pRY+XEnGNxdtN4D26Kd0F+PLkm3Tr3Hy3b1Ok34FlGrKVHUq1TZD7cvMnnNKEELTUcKX+1mV3an16nmAg/my1JSUt6BNK2rJpY1s/kkSGSEXQ4zuF2IGCpvBFhYAlt5Un5zwqkwwQR3/n2kwAoDzonJcehDw/C/cGos5D0aIU7IK2X2aTD3+pA7Mx3IMe2hqmYqRt9X42yF1PIEVRneBRJ3HDezAgJrNh0GQWRQkhIxgz6/cTR+ekr5TptVszS9few2GpI5bCgBKBisZIssT89aw7mAKWut0Gcm4qM9/yK61bkCDQRatUmrARAAxNPvVwreJ2yAiFcUpdRlVhsuOgnxvs1QgsIw3H7+Pacr9Hpe8uftYZqdC82KeSKhpHq7c8gMTMucIINtH25x9BCc73E33EjCL9Lqov1TL7+QkgHeT+JIhZwdD8Mx2K+LVVVu/aWkNrfMuNwyDUciSI4D5QHa8T+F8fgN4OTpwYjirzel5yoICMr9hVcbzDNv/ozKCxjx+XKgnFc3wrnDfJfntfDAT7ecwbUTL+viQKJ646s+psiqXRYtVvYInEhLVrJ0aV6zHFoigE/Bils6/g7ru1Q6CEHqEw++APs5CcE8VzJuWAGSVHZgun5Y9N4quR/M9Vm+IPMhTxrAg7rOvyRN9cAXfeSMf77I+XTifigNna8xt/MOdjXr1fjF4pThEi5u6WsuRdFwjY2azEv3vevodTi4HoJReH6dFRa6y8c+UDgl2iHiOKIpQqLbHEfQmHcDd2fix+AaJKMnPGNku9qCFEMbgSRJpXz6BfwnY1QuKE+IR6jA0frUNt2jhiGG/F8RceXzohaaC/Cx7LUCUFWc0n7z32C9/Dtj7I1PMOacdZzzbjJzRKO/ZDv+UN/c9dwAkllzAyPMwGBkUaY68EBstnIliW34aWm6IiHhxioVPKSpVJfyiXPO0EXqujtHLAeChfjcns3I12YshT1dv2PafG53fp33ZdzeUgsBo+EAEQEAAYkCHwQYAQIACQUCWrVJqwIbDAAKCRC86dmkLVF4T+ZdD/9x/8APzgNJF3o3STrFjvnV1ycyhWYGAeBJiu7wjsNWwzMFOv15tLjB7AqeVxZn+WKDD/mIOQ45OZvnYZuyX7DR0JszaH9wrYTxZLVruAu+t6UL0y/XQ4L1GZ9QR6+r+7t1Mvbfy7BlHbvX/gYtRwe/uwdibI0CagEzyX+2D3kTOlHO5XThbXaNf8AN8zha91Jt2Q2UR2X5T6JcwtMzFBvZnl3LSmZyE0EQehS2iUurU4uWOpGppuqVnbi0jbCvCHKgDGrqZ0smKNAQng54F365W3g8AfY48s8XQwzmcliowYX9bT8PZiEi0J4QmQh0aXkpqZyFefuWeOL2R94SXKzr+gRh3BAULoqF+qK+IUMxTip9KTPNvYDpiC66yBiT6gFDji5Ca9pGpJXrC3xeTXiKQ8DBWDhBPVPrruLIaenTtZEOsPc4I85yt5U9RoPTStcOr34s3w5yEaJagt6SGc5r9ysjkfH6+6rbi1ujxMgROSqtqr+RyB+V9A5/OgtNZc8llK6u4UoOCde8jUUWvqWKvjJB/Kz3u4zaeNu2ZyyHaOqOuH+TETcW+jsY9IhbEzqN5yQYGi4pVmDkY5vulXbJnbqPKpRXgM9BecV9AMbPgbDq/5LnHJJXg+G8YQOgp4lR/hC1TEFdIp5wM8AKCWsENyt2o1rjgMXiZOMF8A5oBLkCDQRatUuSARAAr77kj7j2QR2SZeOSlFBvV7oSmFeSNnz9xZssqrsm6bTwSHM6YLDwc7Sdf2esDdyzONETwqrVCg+FxgL8hmo9hS4crR6tmrP0mOmptr+xLLsKcaP7ogIXsyZnrEAEsvW8PnfayoiPCdc3cMCR/lTnHFGA7EuR/XLBmi7Qg9tByVYQ5Yj5wB9V4B2yeCt3XtzPqeLKvaxl7PNelaHGJQY/xo+mV0bndxf9IY+4oFJ4blD32WqvyxESo7vW6WBh7oqv3Zbm0yQrr8a6mDBpqLkvWwNI3kpJR974tg5o5LfDu1BeeyHWPSGm4U/G4JB+JIG1ADy+RmoWEt4BqTCZ/knnoGvwD5sTCxbKdmuOmhGyTssoG+3OOcGYHV7pWYPhazKHMPm201xKCjH1RfzRULzGKjD+

34

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstalAWSKopilot CLI

yMLT1I3AXFmLmZJXikAOlvE3/wgMqCXscbycbLjLD/bXIuFWo3rzoezeXjgi/DJxjKBAyBTYO5nMcth1O9oaFd9d0HbsOUDkIMnsgGBE766Piro6MHo0T0rXl07Tp4pIrwuSOsc6XzCzdImj0Wc6axS/HeUKRXWdXJwno5awTwXKRJMXGfhCvSvbcbc2Wx+LIKvmB7EB4K3fmjFFE67yolmiw2qRcUBfygtH3eL5XZU28MiCpue8Y8GKJoBAUyvfKeM1rO8Jm3iRAc5a/D0AEQEAAYkEPgQYAQIACQUCWrVLkgIbAgIpCRC86dmkLVF4T8FdIAQZAQIABgUCWrVLkgAKCRDePL1hra+LjtHYD/9MucxdFe6bXO1dQR4tKhhQP0LRqy6zlBY9ILCLowNdGZdqorogUiUymgn3VhEhVtxTOoHcN7qOuM01PNsRnOeSEYjf8Xrb1clzkD6xULwmOclTb9bBxnBc/4PFvHAbZW3QzusaZniNgkuxt6BTfloSOf4inq71kjmGK+TlzQ6mUMQUg228NUQC+a84EPqYyAeY1sgvgB7hJBhYL0QAxhcW6m20Rd8iEc6HyzJ3yCOCsKip/nRWAbf0OvfHfRBp0+m0ZwnJM8cPRFjOqqzFpKH9HpDmTrC4wKP1+TL52LyEqNh4yZitXmZNV7giSRIkk0eDSko+bFy6VbMzKUMkUJK3D3eHFAMkujmbfJmSMTJOPGn5SB1HyjCZNx6bhIIbQyEUB9gKCmUFaqXKwKpF6rj0iQXAJxLR/shZ5Rk96VxzOphUl7T90m/PnUEEPwq8KsBhnMRgxa0RFidDP+n9fgtvHLmrOqX9zBCVXh0mdWYLrWvmzQFWzG7AoE55fkf8nAEPsalrCdtaNUBHRXA0OQxGAHMOdJQQvBsmqMvuAdjkDWpFu5y0My5ddU+hiUzUyQLjL5Hhd5LOUDdewlZgIw1jxrEAUzDKetnemM8GkHxDgg8koev5frmShJuce7vSjKpCNg3EIJSgqMOPFjJuLWtZvjHeDNbJy6uNL65ckJy6WhGjEADS2WAW1D6Tfekkc21SsIXk/LqEpLMR/0g5OUifwcEN1rS9IJXBwIy8MelN9qr5KcKQLmfdfBNEyyceBhyVl0MDyHOKC+7PofMtkGBq13QieRHv5GJ8LB3fclqHV8pwTTo3Bc8z2g0TjmUYAN/ixETdReDoKavWJYSE9yoMaaJu279ioVTrwpECse0XkiRyKToTjwOb73CGkBZZpJyqux/rmCV/fp4ALdSW8zbzFJVORaivhoWwzjpfQKhwcU9lABXi2UvVm14v0AfeI7oiJPSU1zM4fEny4oiIBXlRzhFNih1UjIu82X16mTm3BwbIga/s1fnQRGzyhqUIMii+mWra23EwjChaxpvjjcUH5ilLc5Zq781aCYRygYQw+hu5nFkOH1R+Z50Ubxjd/aqUfnGIAX7kPMD3Lof4KldDQ8ppQriUvxVo+4nPV6rpTy/PyqCLWDjkguHpJsEFsMkwajrAz0QNSAU5CJ0G2Zu4yxvYlumHCEl7nbFrm0vIiA75Sa8KnywTDsyZsu3XcOcf3g+g1xWTpjJqy2bYXlqz9uDOWtArWHOis6bq8l9RE6xr1RBVXS6uqgQIZFBGyq66b0dIq4D2JdsUvgEMaHbce7tBfeB1CMBdA64e9Rq7bFR7Tvt8gasCZYlNr3lydh+dFHIEkH53HzQe6l88HEic+0jVnLkCDQRa55wJARAAyLya2Lx6gyoWoJN1a6740q3o8e9d4KggQOfGMTCflmeqivuzgN+3DZHN+9ty2KxXMtn0mhHBerZdbNJyjMNT1gAgrhPNB4HtXBXum2wS57WKDNmade914L7FWTPAWBG2Wn448OEHTqsClICXXWy9IICgclAEyIq0Yq5mAdTEgRJSZ8t4GpwtDL9gNQyFXaWQmDmkAsCygQMvhAlmu9xOIzQG5CxSnZFk7zcuL60k14Z3Cmt49k4T/7ZU8goWi8tt+rU78/IL3J/fF9+1civ1OwuUidgfPCSvOUW1JojsdCQAL+RZJcoXq7lfOFj/eNjeOSstCTDPfTCL+kThE6E5neDtbQHBYkEX1BRiTedsV4+MucgiTrdQFWKf89G72xdv8ut9AYYQ2BbEYU+JAYhUH8rYYui2dHKJIgjNvJscuUWb+QEqJIRleJRhrO+/CHgMs4fZAkWF1VFhKBkcKmEjLn1f7EJJUUW84ZhKXjO/AUPX1CHsNjziRceuJCJYox1cwsoq6jTE50GiNzcIxTn9xUc0UMKFeggNAFys1K+TDTm3Bzo8H5ucjCUEmUm9lhkGwqTZgOlRX5eqPX+JBoSaObqhgqCa5IPinKRa6MgoFPHK6sYKqroYwBGgZm6Js5chpNchvJMs/3WXNOEVg0J3z3vP0DMhxqWm+r+n9zlW8qsAEQEAAYkEPgQYAQgACQUCWuecCQIbAgIpCRC86dmkLVF4T8FdIAQZAQgABgUCWuecCQAKCRBQ3szEcQ5hr+ykD/4tOLRHFHXuKUcxgGaubUcVtsFrwBKma1cYjqaPms8u6Sk0wfGRI32G/GhOrp0Ts/MOkbObq6VLTh8N5Yc/53MEl8zQFw9Y5AmRoW4PZXERujs5s7p4oR7xHMihMjCCBn1bvrR+34YPfgzTcgLiOEFHYT8UTxwnGmXOvNkMM7mdxD3CV5q6VAte8WKBo/220II3fcQlc9r/oWX4kXXkb0v9hoGwKbDJ1tzqTPrp/xFtyohqnvImpnlz+Q9zXmbrWYL9/g8VCmW/NN2gju2G3Lu/TlFUWIT4v/5OPK6TdeNbVKJO4+S8bTayqSG9CML1S57KSgCo5HUhQWeSNHI+fpe5oX6FALPT9JLDce8OZz1icZZ0MELP37mOOQun0AlmHm/hVzf0f311PtbzcqWaE51tJvgUR/nZFo6Ta3O5Ezhs3VlEJNQ1Ijf/6DH87SxvAoRIARCuZd0qxBcDK0avpFzUtbJd24lRA3WJpkEiMqKvRDVZkE4b6TW61f0o+LaVfK6E8oLpixegS4fiqC16mFrOdyRk+RJJfIUyz0WTDVmtg0U1CO1ezokMSqkJ7724pyjr2xf/r9/sC6aOJwB/lKgZkJfC6NqL7TlxVA31dUgaLEOvEJTTE4gl+tYtfsCDvALCtqL0jduSkUo+RXcBItmXhA+tShW0pbS2Rtx/ixuaKohVD/0R4QxiSwQmICNtm9mw9ydIl1yjYXX5a9x4wMJracNY/LBybJPFnZnT4dYRz4XjqysDwvvYZByaWoIe3QxjX84V6MlI2IdAT/xImu8gbaCI8tmyfpIrLnPKiR9DVFYfGBXuAX7+HgPPSFtrHQONCALxxzlbNpS+zxt9r0MiLgcLyspWxSdmoYGZ6nQPRO5Nm/ZVS+u2imPCRzNUZEMa+dlE6kHx0rS0dPiuJ4O7NtPeYDKkoQtNagspsDvhcK7CSqAiKMq06UBTxqlTSRkm62eOCtcs3p3OeHu5GRZF1uzTET0ZxYkaPgdrQknxozjP5mC7X+45lcCfmcVt94TFNL5HwEUVJpmOgmzILCI8yoDTWzloo+i+fPFsXX4fkynhE83mSEcr5VHFYrTY3mQXGmNJ3bCLuc/jq7ysGq69xiKmTlUeXFm+aojcRO5izyShIRJZ0GZfuzDYFDbMV9amA/YQGygLw//zP5ju5SW26dNxlf3MdFQE5JJ86rn9MgZ4gcpazHEVUsbZsgkLizRp9imUiH8ymLqAXnfRGlU/LpNSefnvDFTtEIRcpOHcbhayG0bk51Bd4mioOXnIsKy4j63nJXA27x5EVVHQ1sYRN8Ny4Fdr2tMAmj2O+X+JqX2yy/UX5nSPU492e2CdZ1UhoU0SRFY3bxKHKB7SDbVeav+K5g===Gi5D-----END PGP PUBLIC KEY BLOCK-----

Rincian kunci publik Amazon ECS PGP untuk referensi:

35

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstalAWSKopilot CLI

Key ID: BCE9D9A42D51784FType: RSASize: 4096/4096Expires: NeverUser ID: Amazon ECSKey fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F

Anda dapat menutup editor teks.5. Impor file dengan kunci publik Amazon ECS PGP dengan perintah berikut di terminal.

gpg --import <public_key_filename.txt>

6. MengunduhAWSCopilot CLI tanda tangan. Tanda tangan tersebut adalah tandatangan PGP ASCII-terpisah yang tersimpan di file dengan ekstensi .asc. File standar memiliki nama yang sama denganpelaksanaan yang sesuai, dengan .asc yang telah ditambahkan.

macOS

Untuk sistem macOS, jalankan perintah berikut.

sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/latest/download/copilot-darwin.asc

Linux

Untuk sistem Linux x86 (64-bit), jalankan perintah berikut.

sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux.asc

Untuk sistem Linux ARM, jalankan perintah berikut.

sudo curl -Lo copilot.asc https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux-arm64.asc

Windows

Menggunakan Powershell, jalankan perintah berikut.

PS C:\> Invoke-WebRequest -OutFile 'C:\copilot\copilot.asc' https://github.com/aws/copilot-cli/releases/latest/download/copilot-windows.exe.asc

7. Verifikasi tanda tangan dengan menggunakan perintah berikut.

• Pada sistem macOS dan Linux:

gpg --verify copilot.asc /usr/local/bin/copilot

Output yang diharapkan:

gpg: Signature made Tue Apr 3 13:29:30 2018 PDTgpg: using RSA key DE3CBD61ADAF8B8Egpg: Good signature from "Amazon ECS <[email protected]>" [unknown]gpg: WARNING: This key is not certified with a trusted signature!

36

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah selanjutnya

gpg: There is no indication that the signature belongs to the owner.Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: EB3D F841 E2C9 212A 2BD4 2232 DE3C BD61 ADAF 8B8E

Important

Peringatan dalam output diharapkan dan tidak bermasalah. Hal ini terjadi karena tidak adarantai kepercayaan antara kunci PGP pribadi Anda (jika Anda memiliki satu) dan kunciAmazon ECS PGP. Untuk informasi selengkapnya, lihat Web kepercayaan.

8. Untuk instalasi Windows, jalankan perintah berikut untuk menambahkanAWSCopilot direktori ke jalan.

e $Env:PATH += ";<path to Copilot executable files>"

Langkah selanjutnyaSetelah instalasi, pelajari cara men-deploy aplikasi Amazon ECS menggunakanAWSKopilot. Untukinformasi selengkapnya, lihat Memulai dengan Amazon ECS menggunakanAWSKopilot (p. 11).

Menggunakan antarmuka baris perintah AmazonECS

Amazon ECS telah dirilisAWSCopilot, alat antarmuka baris perintah (CLI) yang menyederhanakanpembangunan, pelepasan, dan pengoperasian aplikasi terkontainer yang siap produksi di Amazon ECSdari lingkungan pengembangan lokal. Untuk informasi selengkapnya, lihat MenggunakanAWSAntarmukabaris perintah (p. 31).

Antarmuka baris perintah (CLI) Amazon Elastic Container Service (Amazon ECS) menyediakan perintahtingkat tinggi untuk menyederhanakan pembuatan, pembaruan, serta pemantauan klaster dan tugas darilingkungan pengembangan lokal. CLI Amazon ECS mendukung file Docker Compose, spesifikasi sumberterbuka populer untuk menentukan dan menjalankan aplikasi multikontainer. Gunakan CLI ECS sebagaibagian dari siklus pengembangan dan pengujian sehari-hari Anda sebagai alternatif AWS ManagementConsole.

Important

Saat ini, versi terbaru CLI Amazon ECS hanya mendukung versi utama dariSintaks FileDockerversi 1, 2, dan 3. Versi yang ditentukan dalam file compose harus berupa string "1","1.0", "2", "2.0", "3", atau "3.0". Versi minor Docker Compose tidak didukung.

Versi terbaru dari CLI Amazon adalah 1.17.0. Untuk catatan rilis, lihat Changelog.Note

Kode sumber untuk CLI Amazon ECStersedia di GitHub. Kami menyarankan Anda agarmengirimkan permintaan pull untuk perubahan yang ingin Anda sertakan. Namun, Amazon WebServices saat ini tidak mendukung menjalankan salinan perangkat lunak yang diubah ini.

Pelajari cara menggunakan perintah tingkat tinggi yang mengutamakan aplikasi untuk memodelkan,membuat, melepaskan, dan mengelola aplikasi terkontainer dari lingkungan pengembangan lokal diMemulai dengan Amazon ECS menggunakanAWSKopilot (p. 11).

Topik

37

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

• Menginstal CLI Amazon ECS (p. 38)• Mengkonfigurasi Amazon ECS CLI (p. 44)• Memigrasikan File Konfigurasi (p. 45)• Tutorial: Membuat klaster dengan tugas Fargate menggunakan Amazon ECS CLI (p. 46)• Tutorial: Membuat Layanan Amazon ECS yang Menggunakan Penemuan Layanan Menggunakan

Amazon ECS CLI (p. 51)

Menginstal CLI Amazon ECS

Amazon ECS telah dirilisAWSCopilot, alat antarmuka baris perintah (CLI) yang menyederhanakanpembangunan, pelepasan, dan pengoperasian aplikasi terkontainer yang siap produksi di Amazon ECSdari lingkungan pengembangan lokal. Untuk informasi selengkapnya, lihat MenggunakanAWSAntarmukabaris perintah (p. 31).

Ikuti petunjuk ini untuk menginstal CLI Amazon ECS di sistem macOS, Linux, atau Windows.

Langkah 1: Unduh Amazon ECS CLIUnduh biner Amazon ECS CLI.

macOS

sudo curl -Lo /usr/local/bin/ecs-cli https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-darwin-amd64-latest

Linux

sudo curl -Lo /usr/local/bin/ecs-cli https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-linux-amd64-latest

Windows

Buka Windows PowerShell dan masukkan perintah berikut.Note

Jika Anda mengalami masalah izin, pastikan Anda memiliki akses administrator di Windowsdan Anda menjalankan PowerShell sebagai administrator.

New-Item -Path 'C:\Program Files\Amazon\ECSCLI' -ItemType DirectoryInvoke-WebRequest -OutFile 'C:\Program Files\Amazon\ECSCLI\ecs-cli.exe' https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-windows-amd64-latest.exe

Langkah 2: Verifikasi Amazon ECS CLI menggunakan tandatangan PGPPerangkat eksekusi Amazon ECS ditandatangani secara kriptografis menggunakan tanda tangan PGP.Tanda tangan PGP dapat digunakan untuk memverifikasi validitas CLI Amazon ECS. Gunakan langkah-langkah berikut untuk memverifikasi tanda tangan menggunakan alat GnuPG.

1. Unduh dan instal GnuPG. Untuk informasi selengkapnya, lihatSitus GnuPG.

38

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

macOS

Kami merekomendasikan penggunaan Homebrew. Instal Homebrew menggunakan petunjuk darisitus web mereka. Untuk informasi selengkapnya, lihat Homebrew. Setelah Homebrew terinstal,gunakan perintah berikut dari terminal macOS Anda.

brew install gnupg

Linux

Pasanggpgmenggunakan pengelola paket pada tipe Linux Anda.Windows

Unduh penginstal sederhana Windows dari situs web GnuPG dan instal sebagai Administrator.Setelah Anda menginstal GnuPG, tutup dan buka kembali PowerShell Administrator.

Untuk informasi selengkapnya, lihatUnduh GnuPG.2. Verifikasi jalur GnuPG ditambahkan ke jalur lingkungan Anda.

macOS

echo $PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

PATH=$PATH:<path to GnuPG executable files>

Linux

echo $PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

export PATH=$PATH:<path to GnuPG executable files>

Windows

Write-Output $Env:PATH

Jika Anda tidak melihat jalur GnuPG dalam output, jalankan perintah berikut untukmenambahkannya ke jalur.

e $Env:PATH += ";<path to GnuPG executable files>"

3. Buat file teks biasa lokal.

macOS

Di terminal, masukkan:

touch <public_key_filename.txt>

39

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

Buka file dengan TextEdit.Linux

Buat file teks di editor teks seperti gedit. Simpan Sebagaipublic_key_filename.txtWindows

Buat file teks di editor teks seperti Notepad. Simpan Sebagaipublic_key_filename.txt4. Tambahkan konten berikut dari kunci publik PGP Amazon ECS dan simpan file tersebut.

-----BEGIN PGP PUBLIC KEY BLOCK-----Version: GnuPG v2

mQINBFq1SasBEADliGcT1NVJ1ydfN8DqebYYe9ne3dt6jqKFmKowLmm6LLGJe7HUjGtqhCWRDkN+qPpHqdArRgDZAtn2pXY5fEipHgar4CP8QgRnRMO2fl74lmavr4Vg7K/KH8VHlq2uRw32/B94XLEgRbGTMdWFdKuxoPCttBQaMj3LGn6Pe+6xVWRkChQuBoQAhjBQ+bEm0kNy0LjNgjNlnL3UMAG56t8E3LANIgGgEnpNsB1UwfWluPoGZoTxN+6pHBJrKIL/1v/ETU4FXpYw2zvhWNahxeNRnoYj3uycHkeliCrw4kj0+skizBgO2K7oVX8Oc3j5+ZilhL/qDLXmUCb2az5cMM1mOoF8EKX5HaNuq1KfwJxqXE6NNIcOlFTrT7QwD5fMNld3FanLgv/ZnIrsSaqJOL6zRSq8O4LN1OWBVbndExk2Kr+5kFxn5lBPgfPgRj5hQ+KTHMa9Y8Z7yUc64BJiN6F9Nl7FJuSsfqbdkvRLsQRbcBG9qxX3rJAEhieJzVMEUNl+EgeCkxj5xuSkNU7zw2c3hQZqEcrADLV+hvFJktOz9Gm6xzbqlTnWWCz4xrIWtuEBA2qE+MlDheVd78a3gIsEaSTfQq0osYXaQbvlnSWOoc1y/5ZbzizHTJIhLtUyls9WisP2s0emeHZicVMfW61EgPrJAiupgc7kyZvFt4YwfwARAQABtCRBbWF6b24gRUNTIDxlY3Mtc2VjdXJpdHlAYW1hem9uLmNvbT6JAhwEEAECAAYFAlrjL0YACgkQHivRXs0TaQrg1g/+JppwPqHnlVPmv7lessB8I5UqZeD6p6uVpHd7Bs3pcPp8BV7BdRbs3sPLt5bV1+rkqOlw+0gZ4Q/ue/YbWtOAt4qY0OcEo0HgcnaXlsB827QIfZIVtGWMhuh94xzm/SJkvngml6KB3YJNnWP61A9qJ37/VbVVLzvcmazAMcWB4HUMNrhd0JgBCo0gIpqCbpJEvUc02Bjn23eEJsS9kC7OUAHyQkVnx4d9UzXF4OoISF6hmQKIBoLnRrAlj5Qvs3GhvHQ0ThYq0Grk/KMJJX2CSqt7tWJ8gk1n3H3YSReRXJRnv7DsDDBwFgT6r5Q2HW1TBUvaoZy5hF6maD09nHcNnvBjqADzeT8Tr/QubBCLzkNSYqqkpgtwv7seoD2P4n1giRvDAOEfMZpVkUr+C252IaH1HZFEz+TvBVQMY8OWWxmIJW+J6evjo3N1eO19UHv71jvoF8zljbI4bsL2c+QTJmOv7nRqzDQgCWypId/v2dUVVTk1j9omuLBBwNJzQCB+72LcIzJhYmaP1HC4LcKQG+/f41exuItenatKlEJQhYtyVXcBlh6Yn/wzNg2NWOwb3vqY/F7m6u9ixAwgtIMgPCDE4aJ86zrrXYFzN2HqkTSQh77Z8KPKmyGopsmN/reMuilPdINb249nA0dzoN+nj+tTFOYCIaLaFyjsZ0r1QAOJAjkEEwECACMFAlq1SasCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRC86dmkLVF4T9iFEACEnkm1dNXsWUx34R3c0vamHrPxvfkyI1FlEUen8D1huX9xy6jCEROHWEp0rjGK4QDPgM93sWJ+s1UAKg214QRVzft0y9/DdR+twApA0fzyuavIthGd6+03jAAo6udYDE+cZC3P7XBbDiYEWk4XAF9I1JjB8hTZUgvXBL046JhGeM17+crgUyQeetkiOQemLbsbXQ40Bd9V7zf7XJraFd8VrwNUwNb+9KFtgAsc9rk+YIT/PEf+YOPysgcxI4sTWghtyCulVnuGoskgDv4v73PALU0ieUrvvQVqWMRvhVx10X90J7cC1KOyhlEQQ1aFTgmQjmXexVTwIBm8LvysFK6YXM41KjOrlz3+6xBIm/qebFyLUnf4WoiuOplAaJhK9pRY+XEnGNxdtN4D26Kd0F+PLkm3Tr3Hy3b1Ok34FlGrKVHUq1TZD7cvMnnNKEELTUcKX+1mV3an16nmAg/my1JSUt6BNK2rJpY1s/kkSGSEXQ4zuF2IGCpvBFhYAlt5Un5zwqkwwQR3/n2kwAoDzonJcehDw/C/cGos5D0aIU7IK2X2aTD3+pA7Mx3IMe2hqmYqRt9X42yF1PIEVRneBRJ3HDezAgJrNh0GQWRQkhIxgz6/cTR+ekr5TptVszS9few2GpI5bCgBKBisZIssT89aw7mAKWut0Gcm4qM9/yK61bkCDQRatUmrARAAxNPvVwreJ2yAiFcUpdRlVhsuOgnxvs1QgsIw3H7+Pacr9Hpe8uftYZqdC82KeSKhpHq7c8gMTMucIINtH25x9BCc73E33EjCL9Lqov1TL7+QkgHeT+JIhZwdD8Mx2K+LVVVu/aWkNrfMuNwyDUciSI4D5QHa8T+F8fgN4OTpwYjirzel5yoICMr9hVcbzDNv/ozKCxjx+XKgnFc3wrnDfJfntfDAT7ecwbUTL+viQKJ646s+psiqXRYtVvYInEhLVrJ0aV6zHFoigE/Bils6/g7ru1Q6CEHqEw++APs5CcE8VzJuWAGSVHZgun5Y9N4quR/M9Vm+IPMhTxrAg7rOvyRN9cAXfeSMf77I+XTifigNna8xt/MOdjXr1fjF4pThEi5u6WsuRdFwjY2azEv3vevodTi4HoJReH6dFRa6y8c+UDgl2iHiOKIpQqLbHEfQmHcDd2fix+AaJKMnPGNku9qCFEMbgSRJpXz6BfwnY1QuKE+IR6jA0frUNt2jhiGG/F8RceXzohaaC/Cx7LUCUFWc0n7z32C9/Dtj7I1PMOacdZzzbjJzRKO/ZDv+UN/c9dwAkllzAyPMwGBkUaY68EBstnIliW34aWm6IiHhxioVPKSpVJfyiXPO0EXqujtHLAeChfjcns3I12YshT1dv2PafG53fp33ZdzeUgsBo+EAEQEAAYkCHwQYAQIACQUCWrVJqwIbDAAKCRC86dmkLVF4T+ZdD/9x/8APzgNJF3o3STrFjvnV1ycyhWYGAeBJiu7wjsNWwzMFOv15tLjB7AqeVxZn+WKDD/mIOQ45OZvnYZuyX7DR0JszaH9wrYTxZLVruAu+t6UL0y/XQ4L1GZ9QR6+r+7t1Mvbfy7BlHbvX/gYtRwe/uwdibI0CagEzyX+2D3kTOlHO5XThbXaNf8AN8zha91Jt2Q2UR2X5T6JcwtMz

40

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

FBvZnl3LSmZyE0EQehS2iUurU4uWOpGppuqVnbi0jbCvCHKgDGrqZ0smKNAQng54F365W3g8AfY48s8XQwzmcliowYX9bT8PZiEi0J4QmQh0aXkpqZyFefuWeOL2R94SXKzr+gRh3BAULoqF+qK+IUMxTip9KTPNvYDpiC66yBiT6gFDji5Ca9pGpJXrC3xeTXiKQ8DBWDhBPVPrruLIaenTtZEOsPc4I85yt5U9RoPTStcOr34s3w5yEaJagt6SGc5r9ysjkfH6+6rbi1ujxMgROSqtqr+RyB+V9A5/OgtNZc8llK6u4UoOCde8jUUWvqWKvjJB/Kz3u4zaeNu2ZyyHaOqOuH+TETcW+jsY9IhbEzqN5yQYGi4pVmDkY5vulXbJnbqPKpRXgM9BecV9AMbPgbDq/5LnHJJXg+G8YQOgp4lR/hC1TEFdIp5wM8AKCWsENyt2o1rjgMXiZOMF8A5oBLkCDQRatUuSARAAr77kj7j2QR2SZeOSlFBvV7oSmFeSNnz9xZssqrsm6bTwSHM6YLDwc7Sdf2esDdyzONETwqrVCg+FxgL8hmo9hS4crR6tmrP0mOmptr+xLLsKcaP7ogIXsyZnrEAEsvW8PnfayoiPCdc3cMCR/lTnHFGA7EuR/XLBmi7Qg9tByVYQ5Yj5wB9V4B2yeCt3XtzPqeLKvaxl7PNelaHGJQY/xo+mV0bndxf9IY+4oFJ4blD32WqvyxESo7vW6WBh7oqv3Zbm0yQrr8a6mDBpqLkvWwNI3kpJR974tg5o5LfDu1BeeyHWPSGm4U/G4JB+JIG1ADy+RmoWEt4BqTCZ/knnoGvwD5sTCxbKdmuOmhGyTssoG+3OOcGYHV7pWYPhazKHMPm201xKCjH1RfzRULzGKjD+yMLT1I3AXFmLmZJXikAOlvE3/wgMqCXscbycbLjLD/bXIuFWo3rzoezeXjgi/DJxjKBAyBTYO5nMcth1O9oaFd9d0HbsOUDkIMnsgGBE766Piro6MHo0T0rXl07Tp4pIrwuSOsc6XzCzdImj0Wc6axS/HeUKRXWdXJwno5awTwXKRJMXGfhCvSvbcbc2Wx+LIKvmB7EB4K3fmjFFE67yolmiw2qRcUBfygtH3eL5XZU28MiCpue8Y8GKJoBAUyvfKeM1rO8Jm3iRAc5a/D0AEQEAAYkEPgQYAQIACQUCWrVLkgIbAgIpCRC86dmkLVF4T8FdIAQZAQIABgUCWrVLkgAKCRDePL1hra+LjtHYD/9MucxdFe6bXO1dQR4tKhhQP0LRqy6zlBY9ILCLowNdGZdqorogUiUymgn3VhEhVtxTOoHcN7qOuM01PNsRnOeSEYjf8Xrb1clzkD6xULwmOclTb9bBxnBc/4PFvHAbZW3QzusaZniNgkuxt6BTfloSOf4inq71kjmGK+TlzQ6mUMQUg228NUQC+a84EPqYyAeY1sgvgB7hJBhYL0QAxhcW6m20Rd8iEc6HyzJ3yCOCsKip/nRWAbf0OvfHfRBp0+m0ZwnJM8cPRFjOqqzFpKH9HpDmTrC4wKP1+TL52LyEqNh4yZitXmZNV7giSRIkk0eDSko+bFy6VbMzKUMkUJK3D3eHFAMkujmbfJmSMTJOPGn5SB1HyjCZNx6bhIIbQyEUB9gKCmUFaqXKwKpF6rj0iQXAJxLR/shZ5Rk96VxzOphUl7T90m/PnUEEPwq8KsBhnMRgxa0RFidDP+n9fgtvHLmrOqX9zBCVXh0mdWYLrWvmzQFWzG7AoE55fkf8nAEPsalrCdtaNUBHRXA0OQxGAHMOdJQQvBsmqMvuAdjkDWpFu5y0My5ddU+hiUzUyQLjL5Hhd5LOUDdewlZgIw1jxrEAUzDKetnemM8GkHxDgg8koev5frmShJuce7vSjKpCNg3EIJSgqMOPFjJuLWtZvjHeDNbJy6uNL65ckJy6WhGjEADS2WAW1D6Tfekkc21SsIXk/LqEpLMR/0g5OUifwcEN1rS9IJXBwIy8MelN9qr5KcKQLmfdfBNEyyceBhyVl0MDyHOKC+7PofMtkGBq13QieRHv5GJ8LB3fclqHV8pwTTo3Bc8z2g0TjmUYAN/ixETdReDoKavWJYSE9yoMaaJu279ioVTrwpECse0XkiRyKToTjwOb73CGkBZZpJyqux/rmCV/fp4ALdSW8zbzFJVORaivhoWwzjpfQKhwcU9lABXi2UvVm14v0AfeI7oiJPSU1zM4fEny4oiIBXlRzhFNih1UjIu82X16mTm3BwbIga/s1fnQRGzyhqUIMii+mWra23EwjChaxpvjjcUH5ilLc5Zq781aCYRygYQw+hu5nFkOH1R+Z50Ubxjd/aqUfnGIAX7kPMD3Lof4KldDQ8ppQriUvxVo+4nPV6rpTy/PyqCLWDjkguHpJsEFsMkwajrAz0QNSAU5CJ0G2Zu4yxvYlumHCEl7nbFrm0vIiA75Sa8KnywTDsyZsu3XcOcf3g+g1xWTpjJqy2bYXlqz9uDOWtArWHOis6bq8l9RE6xr1RBVXS6uqgQIZFBGyq66b0dIq4D2JdsUvgEMaHbce7tBfeB1CMBdA64e9Rq7bFR7Tvt8gasCZYlNr3lydh+dFHIEkH53HzQe6l88HEic+0jVnLkCDQRa55wJARAAyLya2Lx6gyoWoJN1a6740q3o8e9d4KggQOfGMTCflmeqivuzgN+3DZHN+9ty2KxXMtn0mhHBerZdbNJyjMNT1gAgrhPNB4HtXBXum2wS57WKDNmade914L7FWTPAWBG2Wn448OEHTqsClICXXWy9IICgclAEyIq0Yq5mAdTEgRJSZ8t4GpwtDL9gNQyFXaWQmDmkAsCygQMvhAlmu9xOIzQG5CxSnZFk7zcuL60k14Z3Cmt49k4T/7ZU8goWi8tt+rU78/IL3J/fF9+1civ1OwuUidgfPCSvOUW1JojsdCQAL+RZJcoXq7lfOFj/eNjeOSstCTDPfTCL+kThE6E5neDtbQHBYkEX1BRiTedsV4+MucgiTrdQFWKf89G72xdv8ut9AYYQ2BbEYU+JAYhUH8rYYui2dHKJIgjNvJscuUWb+QEqJIRleJRhrO+/CHgMs4fZAkWF1VFhKBkcKmEjLn1f7EJJUUW84ZhKXjO/AUPX1CHsNjziRceuJCJYox1cwsoq6jTE50GiNzcIxTn9xUc0UMKFeggNAFys1K+TDTm3Bzo8H5ucjCUEmUm9lhkGwqTZgOlRX5eqPX+JBoSaObqhgqCa5IPinKRa6MgoFPHK6sYKqroYwBGgZm6Js5chpNchvJMs/3WXNOEVg0J3z3vP0DMhxqWm+r+n9zlW8qsAEQEAAYkEPgQYAQgACQUCWuecCQIbAgIpCRC86dmkLVF4T8FdIAQZAQgABgUCWuecCQAKCRBQ3szEcQ5hr+ykD/4tOLRHFHXuKUcxgGaubUcVtsFrwBKma1cYjqaPms8u6Sk0wfGRI32G/GhOrp0Ts/MOkbObq6VLTh8N5Yc/53MEl8zQFw9Y5AmRoW4PZXERujs5s7p4oR7xHMihMjCCBn1bvrR+34YPfgzTcgLiOEFHYT8UTxwnGmXOvNkMM7mdxD3CV5q6VAte8WKBo/220II3fcQlc9r/oWX4kXXkb0v9hoGwKbDJ1tzqTPrp/xFtyohqnvImpnlz+Q9zXmbrWYL9/g8VCmW/NN2gju2G3Lu/TlFUWIT4v/5OPK6TdeNbVKJO4+S8bTayqSG9CML1S57KSgCo5HUhQWeSNHI+fpe5oX6FALPT9JLDce8OZz1icZZ0MELP37mOOQun0AlmHm/hVzf0f311PtbzcqWaE51tJvgUR/nZFo6Ta3O5Ezhs3VlEJNQ1Ijf/6DH87SxvAoRIARCuZd0qxBcDK0avpFzUtbJd24lRA3WJpkEiMqKvRDVZkE4b6TW61f0o+LaVfK6E8oLpixegS4fiqC16mFrOdyRk+RJJfIUyz0WTDVmtg0U1CO1ezokMSqkJ7724pyjr2xf/r9/sC6aOJwB/lKgZkJfC6NqL7TlxVA31dUgaLEOvEJTTE4gl+tYtfsCDvALCtqL0jduSkUo+RXcBItmXhA+tShW0pbS2Rtx/ixuaKohVD/0R4QxiSwQmICNtm9mw9ydIl1yjYXX5a9x4wMJracNY/LBybJPFnZnT4dYRz4XjqysDwvvYZByaWoIe3QxjX84V6MlI2IdAT/xImu8gbaCI8tmyfpIrLnPKiR9D

41

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

VFYfGBXuAX7+HgPPSFtrHQONCALxxzlbNpS+zxt9r0MiLgcLyspWxSdmoYGZ6nQPRO5Nm/ZVS+u2imPCRzNUZEMa+dlE6kHx0rS0dPiuJ4O7NtPeYDKkoQtNagspsDvhcK7CSqAiKMq06UBTxqlTSRkm62eOCtcs3p3OeHu5GRZF1uzTET0ZxYkaPgdrQknxozjP5mC7X+45lcCfmcVt94TFNL5HwEUVJpmOgmzILCI8yoDTWzloo+i+fPFsXX4fkynhE83mSEcr5VHFYrTY3mQXGmNJ3bCLuc/jq7ysGq69xiKmTlUeXFm+aojcRO5izyShIRJZ0GZfuzDYFDbMV9amA/YQGygLw//zP5ju5SW26dNxlf3MdFQE5JJ86rn9MgZ4gcpazHEVUsbZsgkLizRp9imUiH8ymLqAXnfRGlU/LpNSefnvDFTtEIRcpOHcbhayG0bk51Bd4mioOXnIsKy4j63nJXA27x5EVVHQ1sYRN8Ny4Fdr2tMAmj2O+X+JqX2yy/UX5nSPU492e2CdZ1UhoU0SRFY3bxKHKB7SDbVeav+K5g===Gi5D-----END PGP PUBLIC KEY BLOCK-----

Rincian kunci publik Amazon ECS PGP untuk referensi:

Key ID: BCE9D9A42D51784FType: RSASize: 4096/4096Expires: NeverUser ID: Amazon ECSKey fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F

Anda dapat menutup editor teks.5. Impor file dengan kunci publik Amazon ECS PGP dengan perintah berikut di terminal.

gpg --import <public_key_filename.txt>

6. Unduh tanda tangan Amazon ECS CLI. Tanda tangan tersebut adalah tandatangan PGP ASCII-terpisah yang tersimpan di file dengan ekstensi .asc. File tanda tangan memiliki nama yang samadengan file yang dapat dieksekusi yang sesuai, dengan penambahan .asc.

macOS

curl -Lo ecs-cli.asc https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-darwin-amd64-latest.asc

Linux

curl -Lo ecs-cli.asc https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-linux-amd64-latest.asc

Windows

Invoke-WebRequest -OutFile ecs-cli.asc https://amazon-ecs-cli.s3.amazonaws.com/ecs-cli-windows-amd64-latest.exe.asc

7. Verifikasi tanda tangan tersebut.

macOS and Linux

gpg --verify ecs-cli.asc /usr/local/bin/ecs-cli

Windows

gpg --verify ecs-cli.asc 'C:\Program Files\Amazon\ECSCLI\ecs-cli.exe'

42

Amazon ECS Panduan Pengguna untuk AWS FargateMenginstal CLI Amazon ECS

Output yang diharapkan:

gpg: Signature made Tue Apr 3 13:29:30 2018 PDTgpg: using RSA key DE3CBD61ADAF8B8Egpg: Good signature from "Amazon ECS <[email protected]>" [unknown]gpg: WARNING: This key is not certified with a trusted signature!gpg: There is no indication that the signature belongs to the owner.Primary key fingerprint: F34C 3DDA E729 26B0 79BE AEC6 BCE9 D9A4 2D51 784F Subkey fingerprint: EB3D F841 E2C9 212A 2BD4 2232 DE3C BD61 ADAF 8B8E

Important

Peringatan dalam output diharapkan dan tidak bermasalah. Hal ini terjadi karena tidak adarantai kepercayaan antara kunci PGP pribadi Anda (jika Anda memiliki satu) dan kunciAmazon ECS PGP. Untuk informasi selengkapnya, lihat Web kepercayaan.

Langkah 3: Terapkan Izin Eksekusi ke BinerMenerapkan izin eksekusi ke biner.

macOS and Linux

sudo chmod +x /usr/local/bin/ecs-cli

Windows

Edit variabel lingkungan dan tambahkan C:\Program Files\Amazon\ECSCLI ke bidang variabelPATH, terpisah dari entri yang ada dengan menggunakan titik koma. Misalnya:

setx path "%path%;C:\Program Files\Amazon\ECSCLI"

Mulai ulang PowerShell sehingga perubahan mulai berlaku.

Note

SetelahPATHvariabel diatur, CLI Amazon ECS dapat digunakan dari Windows PowerShellatau command prompt.

Langkah 4: Selesaikan InstalasiPastikan bahwa CLI bekerja dengan benar.

ecs-cli --version

Lanjut ke Mengkonfigurasi Amazon ECS CLI (p. 44).

Important

Anda harus mengkonfigurasi Amazon ECS CLI dengan AndaAWSkredenensi,AWSWilayah, dannama klaster Amazon ECS sebelum Anda dapat menggunakannya.

43

Amazon ECS Panduan Pengguna untuk AWS FargateMengkonfigurasi Amazon ECS CLI

Mengkonfigurasi Amazon ECS CLI

Amazon ECS telah dirilisAWSCopilot, alat antarmuka baris perintah (CLI) yang menyederhanakanpembangunan, pelepasan, dan pengoperasian aplikasi terkontainer yang siap produksi di Amazon ECSdari lingkungan pengembangan lokal. Untuk informasi selengkapnya, lihat MenggunakanAWSAntarmukabaris perintah (p. 31).

Amazon ECS CLI memerlukan beberapa informasi konfigurasi dasar sebelum Anda dapatmenggunakannya, sepertiAWSkredenensi,AWSWilayah untuk membuat klaster Anda, dan nama klasterAmazon ECS yang akan digunakan. Informasi konfigurasi disimpan dalam direktori ~/.ecs pada sistemmacOS dan Linux dan dalam C:\Users\<username>\AppData\local\ecs pada sistem Windows.

Untuk mengkonfigurasi Amazon ECS CLI

1. Atur profil CLI dengan perintah berikut, menggantikan profile_name dengan nama profil yang Andainginkan, variabel lingkungan $AWS_ACCESS_KEY_ID dan $AWS_SECRET_ACCESS_KEY dengankredensial AWS Anda.

ecs-cli configure profile --profile-name profile_name --access-key $AWS_ACCESS_KEY_ID --secret-key $AWS_SECRET_ACCESS_KEY

2. Lengkapi konfigurasi dengan perintah berikut, menggantikanlaunch_typedengan jenispeluncuran tugas yang ingin Anda gunakan secara default,region_namedengan yang AndainginkanAWSWilayah,cluster_namedengan nama klaster Amazon ECS yang ada atau klaster baruyang akan digunakan, danconfiguration_nameuntuk nama yang ingin Anda berikan konfigurasi ini.

ecs-cli configure --cluster cluster_name --default-launch-type launch_type --region region_name --config-name configuration_name

Setelah Anda menginstal dan mengonfigurasi CLI, Anda dapat mencoba Tutorial: Membuat klaster dengantugas Fargate menggunakan Amazon ECS CLI (p. 46). Untuk informasi selengkapnya, lihatReferensiBaris Perintah Amazon ECSdiPanduan Pengembang Layanan Wadah Amazon Elastic.

ProfilAmazon ECS CLI mendukung konfigurasi beberapa setAWSkredensi sebagai namaprofilmenggunakanecs-cli configure profileperintah. Profil default dapat diatur dengan menggunakan perintah ecs-cli configureprofile default. Profil ini kemudian dapat dirujuk saat Anda menjalankan perintah Amazon ECS CLI yangmemerlukan kredensia menggunakan--ecs-profilebendera jika profil default digunakan.

Untuk informasi selengkapnya, lihatReferensi Baris Perintah Amazon ECSdiPanduan PengembangLayanan Wadah Amazon Elastic.

Konfigurasi KlasterKonfigurasi klaster adalah seperangkat bidang yang mendeskripsikan klaster Amazon ECS termasuk namaklaster dan wilayah klaster. Konfigurasi klaster default dapat diatur menggunakan perintah ecs-cli configuredefault. Amazon ECS CLI mendukung konfigurasi beberapa konfigurasi klaster bernama menggunakan--config-namepilihan.

Untuk informasi selengkapnya, lihatReferensi Baris Perintah Amazon ECSdiPanduan PengembangLayanan Wadah Amazon Elastic.

44

Amazon ECS Panduan Pengguna untuk AWS FargateMemigrasikan File Konfigurasi

Urutan PrioritasAda beberapa metode untuk meneruskan kredensia dan wilayah dalam perintah Amazon ECS CLI. Berikutadalah urutan prioritas untuk masing-masing dari berikut.

Urutan prioritas untuk kredensial adalah:

1. Bendera profil Amazon ECS CLI:a. Profil Amazon ECS (--ecs-profile)b. Profil AWS (--aws-profile)

2. Variabel lingkungan:a. ECS_PROFILEb. AWS_PROFILEc. AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, dan AWS_SESSION_TOKEN

3. Konfigurasi ECS —mencoba mengambil kredensi dari profil ECS default.4. DefaultAWSprofil — Upaya untuk menggunakan kredensia

(aws_access_key_id,aws_secret_access_key)atauassume_role(role_arn,source_profile) dariAWSnama profil.a. Variabel lingkungan AWS_DEFAULT_PROFILE (default ke default).

5. Peran instans EC2

Urutan prioritas Wilayah adalah:

1. Bendera Amazon ECS CLI:a. Bendera wilayah (--region)b. Bendera konfigurasi klaster (--cluster-config)

2. Konfigurasi ECS —mencoba mengambil Wilayah dari profil ECS default.3. Variabel lingkungan-Upaya untuk mengambil wilayah dari variabel lingkungan berikut:

a. AWS_REGIONb. AWS_DEFAULT_REGION

4. AWSprofil - mencoba untuk menggunakan wilayah dariAWSnama profil:a. Variabel lingkungan AWS_PROFILEb. Variabel lingkungan AWS_DEFAULT_PROFILE (default ke default).

Memigrasikan File KonfigurasiProses mengonfigurasi CLI Amazon ECS telah berubah secara signifikan dalam versi terbaru (v1.0.0)untuk mengizinkan penambahan fitur baru. Perintah migrasi telah diperkenalkan dengan mengonversifile konfigurasi yang lebih tua (v0.6.6 dan lebih tua) ke format saat ini. File konfigurasi lama tidak lagidigunakan, jadi kami rekomendasikan untuk mengubah konfigurasi Anda ke format terbaru untukmemanfaatkan fitur baru. Perubahan yang berhubungan dengan konfigurasi dan fitur baru yangdiperkenalkan di v1.0.0 di file konfigurasi terformat YAML baru meliputi:

• Memisahkan informasi konfigurasi kredensial dan terkait klaster menjadi dua file terpisah. Informasikredensial disimpan di ~/.ecs/credentials dan informasi konfigurasi klaster disimpan di ~/.ecs/config.

• File konfigurasi diformat dalam YAML.• Dukungan untuk menyimpan beberapa konfigurasi bernama.• Yang tidak lagi digunakan dari bidang compose-service-name-prefix (nama yang digunakan untuk

membuat layanan <compose_service_name_prefix> + <project_name>). Bidang ini masih

45

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat klaster dengan tugas

Fargate menggunakan Amazon ECS CLI

dapat dikonfigurasi. Namun, jika tidak dikonfigurasi, tidak ada lagi nilai default yang ditetapkan. UntukAmazon ECS CLI v0.6.6 dan versi sebelumnya, default adalahecscompose-service-.

• Penghapusan lapangancompose-project-name-prefix(nama yang digunakan untuk membuatdefinisi tugas<compose_project_name_prefix> + <project_name>). Amazon ECS CLI v1.0.0dan yang lebih baru masih dapat membaca file konfigurasi lama; jadi jika bidang ini ada maka masihdibaca dan digunakan. Namun, konfigurasi bidang ini tidak didukung di v1.0.0+ denganecs-cliconfigureperintah, dan jika bidang tersebut secara manual ditambahkan ke file konfigurasi v1.0.0+ itumenyebabkan CLI Amazon ECS menghasilkan kesalahan.

• Bidang cfn-stack-name-prefix (nama yang digunakan untuk membuat tumpukan CFN<cfn_stack_name_prefix> + <cluster_name>) telah diubah menjadi cfn-stack-name. Alih-alihmenentukan awalan, nama yang tepat dari a CloudFormation Template dapat dikonfigurasi.

• Amazon ECS CLI v0.6.6 dan lebih awal mengizinkan konfigurasi kredensi menggunakan namaAWSprofildari~/.aws/credentialsfile pada sistem Anda. Fungsionalitas ini telah dihapus. Namun, benderabaru, --aws-profile, telah ditambahkan yang mengizinkan referensi dari profil AWS yang sebaris disemua perintah yang memerlukan kredensial.

Note

Bendera --project-name dapat digunakan untuk mengatur nama proyek.

Memigrasi File Konfigurasi yang lebih Lama ke Format v1.0.0+Meskipun semua versi CLI Amazon ECS mendukung pembacaan dari format file konfigurasi lama,diperlukan peningkatan ke format baru untuk memanfaatkan beberapa fitur baru, misalnya menggunakanbeberapa profil klaster bernama. Memigrasikan file konfigurasi warisan Anda ke format baru adalah halyang mudah dengan perintah ecs-cli configure migrate. Perintah mengambil informasi konfigurasiyang disimpan dalam format lama di ~/.ecs/config dan mengubahnya menjadi sepasang file dalamformat baru, menggantikan file konfigurasi lama Anda dalam proses.

Ketika menjalankan perintah ecs-cli configure migrate, terdapat pesan peringatan yangditampilkan dengan file konfigurasi lama, dan pratinjau file konfigurasi baru. Konfirmasi penggunadiperlukan sebelum migrasi berlangsung. Jika bendera --force digunakan, maka pesan peringatantidak ditampilkan, dan migrasi diproses tanpa konfirmasi apa pun. Jika cfn-stack-name-prefix digunakan dalam file warisan, maka cfn-stack-name disimpan dalam file baru sebagai<cfn_stack_name_prefix> + <cluster_name>.

Untuk informasi selengkapnya, lihatReferensi Baris Perintah Amazon ECSdiPanduan PengembangLayanan Wadah Amazon Elastic.

Tutorial: Membuat klaster dengan tugas Fargatemenggunakan Amazon ECS CLITutorial ini menunjukkan cara mengatur klaster dan men-deploy layanan dengan tugas menggunakan tipepeluncuran Fargate.

PrasyaratSelesaikan prasyarat berikut ini:

• Siapkan sebuah akun AWS.• Instal Amazon ECS CLI. Untuk informasi selengkapnya, lihat Menginstal CLI Amazon ECS (p. 38).• Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat AWS Command Line Interface.

46

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat klaster dengan tugas

Fargate menggunakan Amazon ECS CLI

• Opsional:AWS CloudShelladalah alat yang memberikan pelanggan baris perintah tanpa perlu membuatcontoh EC2 mereka sendiri. Untuk informasi selengkapnya, lihat Apa itu AWS CloudShell dalam Panduan Pengguna AWS CloudShell.

Langkah 1: Buat Peran IAM Eksekusi TugasAgen kontainer Amazon ECS membuat panggilanAWSAPI atas nama Anda, sehingga mengharuskankebijakan IAM dan peran agar layanan mengetahui bahwa agen tersebut adalah milik Anda. Peran IAMini disebut sebagai peran IAM eksekusi tugas. Jika Anda sudah memiliki peran eksekusi tugas yangdibuat untuk digunakan, Anda dapat melewati langkah ini. Untuk informasi selengkapnya, lihat Peran IAMeksekusi tugas ECS Amazon (p. 363).

Untuk membuat peran IAM eksekusi tugas menggunakanAWS CLI

1. Buat file bernama task-execution-assume-role.json dengan isi berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. Buat peran eksekusi tugas:

aws iam --region us-west-2 create-role --role-name ecsTaskExecutionRole --assume-role-policy-document file://task-execution-assume-role.json

3. Lampirkan kebijakan peran eksekusi tugas:

aws iam --region us-west-2 attach-role-policy --role-name ecsTaskExecutionRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

Langkah 2: Mengkonfigurasi Amazon ECS CLICLI Amazon ECS memerlukan kredensial untuk membuat permintaan API atas nama Anda. Hal inidapat menarik kredensi dari variabel lingkungan,AWSprofil, atau profil Amazon ECS. Untuk informasiselengkapnya, lihat Mengkonfigurasi Amazon ECS CLI (p. 44).

Untuk membuat konfigurasi Amazon ECS CLI

1. Buat konfigurasi klaster, yang menentukanAWSWilayah yang akan digunakan, prefiks pembuatansumber daya, dan nama klaster yang akan digunakan dengan CLI Amazon ECS:

ecs-cli configure --cluster tutorial --default-launch-type FARGATE --config-name tutorial --region us-west-2

2. Buat profil CLI menggunakan access key dan kunci secret Anda:

47

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat klaster dengan tugas

Fargate menggunakan Amazon ECS CLI

ecs-cli configure profile --access-key AWS_ACCESS_KEY_ID --secret-key AWS_SECRET_ACCESS_KEY --profile-name tutorial-profile

Langkah 3: Buat Klaster dan Konfigurasikan Grup KeamananUntuk membuat klaster ECS dan grup keamanan

1. Membuat klaster Amazon ECS denganecs-cli upperintah. Karena Anda menentukan Fargate sebagaitipe peluncuran default di dalam konfigurasi klaster, perintah ini membuat klaster kosong dan VPCyang dikonfigurasi dengan dua subnet publik.

ecs-cli up --cluster-config tutorial --ecs-profile tutorial-profile

Perintah ini mungkin memerlukan waktu beberapa menit untuk selesai saat Anda membuat sumberdaya. Output dari perintah ini berisi ID VPC dan subnet yang dibuat.

Note

Buat catatan ID ini karena Anda akan membutuhkannya dalam langkah-langkah berikut.2. Menggunakan perintah AWS CLI, ambil ID grup keamanan default untuk VPC. Gunakan ID VPC dari

output sebelumnya:

aws ec2 describe-security-groups --filters Name=vpc-id,Values=VPC_ID --region us-west-2

Output perintah ini berisi ID grup keamanan Anda, yang digunakan pada langkah berikutnya.3. Menggunakan AWS CLI, tambahkan aturan grup keamanan untuk mengizinkan akses masuk pada

port 80:

aws ec2 authorize-security-group-ingress --group-id security_group_id --protocol tcp --port 80 --cidr 0.0.0.0/0 --region us-west-2

Langkah 4: Buat File ComposeUntuk langkah ini, buat file Docker compose sederhana yang membuat aplikasi web PHP sederhana.Pada saat ini, Amazon ECS CLI mendukungDocker menyusun sintaks berkasversi 1, 2, dan 3. Versi yangditentukan dalam file compose harus berupa string "1", "1.0", "2", "2.0", "3", atau "3.0". Versiminor Docker Compose tidak didukung.

Berikut adalah file compose, yang bisa Anda beri nama docker-compose.yml. Kontainer webmemperlihatkan port 80 untuk lalu lintas masuk ke server web. Kontainer tersebut juga mengonfigurasilog kontainer untuk masuk ke CloudWatch grup log dibuat sebelumnya. Ini adalah praktik terbaik yangdirekomendasikan untuk tugas Fargate.

version: '3'services: web: image: amazon/amazon-ecs-sample ports: - "80:80" logging: driver: awslogs options: awslogs-group: tutorial

48

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat klaster dengan tugas

Fargate menggunakan Amazon ECS CLI

awslogs-region: us-west-2 awslogs-stream-prefix: web

Note

Jika akun Anda sudah berisi CloudWatch Grup log bernamatutorialdius-west-2Wilayah, pilihnama yang unik sehingga CLI ECS membuat grup log baru untuk tutorial ini.

Selain informasi Docker compose, ada beberapa parameter khusus untuk Amazon ECS yang harusAnda tentukan untuk layanan. Dengan menggunakan VPC, subnet, dan ID grup keamanan dari langkahsebelumnya, buat file bernama ecs-params.yml dengan isi berikut:

version: 1task_definition: task_execution_role: ecsTaskExecutionRole ecs_network_mode: awsvpc os_family: Linux task_size: mem_limit: 0.5GB cpu_limit: 256run_params: network_configuration: awsvpc_configuration: subnets: - "subnet ID 1" - "subnet ID 2" security_groups: - "security group ID" assign_public_ip: ENABLED

Langkah 5: Deploy File Compose ke KlasterSetelah Anda membuat file compose, Anda dapat men-deploy-nya ke klaster Anda dengan ecs-clicompose service up. Secara default, perintah tersebut mencari file bernama docker-compose.ymldan ecs-params.yml dalam direktori saat ini; Anda dapat menentukan file docker compose yangberbeda dengan opsi --file, dan file Params ECS yang berbeda dengan opsi --ecs-params. Secaradefault, sumber daya yang dibuat dengan perintah ini memiliki judul direktori saat ini, tetapi Anda dapatmenimpanya dengan opsi --project-name. Parameter--create-log-groupsOpsi menciptakanCloudWatch log kelompok untuk log kontainer.

ecs-cli compose --project-name tutorial service up --create-log-groups --cluster-config tutorial --ecs-profile tutorial-profile

Langkah 6: Melihat Kontainer yang Berjalan di KlasterSetelah Anda men-deploy file compose, Anda dapat melihat kontainer yang berjalan di layanan denganecs-cli compose service ps.

ecs-cli compose --project-name tutorial service ps --cluster-config tutorial --ecs-profile tutorial-profile

Output:

Name State Ports TaskDefinition Healthtutorial/0c2862e6e39e4eff92ca3e4f843c5b9a/web RUNNING 34.222.202.55:80->80/tcp tutorial:1 UNKNOWN

49

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat klaster dengan tugas

Fargate menggunakan Amazon ECS CLI

Dalam contoh di atas, Anda dapat melihat kontainer web dari file compose Anda, dan juga alamat IP sertaport server web. Jika Anda mengarahkan peramban web Anda di alamat tersebut, Anda akan melihataplikasi web PHP. Juga di dalam output merupakan nilai task-id untuk kontainer. Salin ID tugas saatAnda menggunakannya di langkah berikutnya.

Langkah 7: Melihat Log KontainerLihat log untuk tugas:

ecs-cli logs --task-id 0c2862e6e39e4eff92ca3e4f843c5b9a --follow --cluster-config tutorial --ecs-profile tutorial-profile

Note

Parameter--followopsi memberitahu CLI Amazon ECS untuk terus melakukan polling untuk log.

Langkah 8: Skalakan Tugas di KlasterAnda dapat menaikkan skala jumlah tugas Anda untuk meningkatkan jumlah instans aplikasi dengan ecs-cli compose service scale.

ecs-cli compose --project-name tutorial service scale 2 --cluster-config tutorial --ecs-profile tutorial-profile

Dalam contoh ini, jumlah aplikasi yang berjalan ditingkatkan menjadi dua.

ecs-cli compose --project-name tutorial service ps --cluster-config tutorial --ecs-profile tutorial-profile

Output:

Name State Ports TaskDefinition Healthtutorial/0c2862e6e39e4eff92ca3e4f843c5b9a/web RUNNING 34.222.202.55:80->80/tcp tutorial:1 UNKNOWNtutorial/d9fbbc931d2e47ae928fcf433041648f/web RUNNING 34.220.230.191:80->80/tcp tutorial:1 UNKNOWN

Langkah 9: Lihat Aplikasi Web AndaMasukkan alamat IP untuk tugas di peramban web dan Anda akan melihat halaman web yangmenampilkan aplikasi web Aplikasi PHP Sederhana.

50

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat Layanan AmazonECS yang Menggunakan Penemuan

Layanan Menggunakan Amazon ECS CLI

Langkah 10: PembersihanSetelah selesai dengan tutorial ini, Anda harus membersihkan sumber daya Anda sehingga tidakdikenakan biaya lagi. Pertama, hapus layanan sehingga menghentikan kontainer yang ada dan tidakmencoba menjalankan tugas lagi.

ecs-cli compose --project-name tutorial service down --cluster-config tutorial --ecs-profile tutorial-profile

Sekarang, hapus klaster yang membersihkan sumber daya yang sudah Anda buat sebelumnya denganecs-cli up.

ecs-cli down --force --cluster-config tutorial --ecs-profile tutorial-profile

Tutorial: Membuat Layanan Amazon ECS yangMenggunakan Penemuan Layanan MenggunakanAmazon ECS CLITutorial ini menunjukkan panduan sederhana untuk membuat layanan Amazon ECS yang dikonfigurasiuntuk menggunakan penemuan layanan. Banyak nilai konfigurasi penemuan layanan dapat ditentukandengan file atau flag parameter ECS. Saat flag digunakan, flag akan didahulukan dari file parameter ECSjika keduanya ada. Saat menggunakan CLI Amazon ECS, nama proyek compose digunakan sebagai namauntuk layanan ECS Anda.

PrasyaratDiharapkan bahwa Anda telah menyelesaikan prasyarat berikut sebelum melanjutkan:

• Siapkan akun AWS.• Instal Amazon ECS CLI. Untuk informasi selengkapnya, lihat Menginstal CLI Amazon ECS (p. 38).• Membuat VPC. Untuk informasi selengkapnya, lihat the section called “Buat virtual private cloud” (p. 6).• Opsional:AWS CloudShelladalah alat yang memberikan pelanggan baris perintah tanpa perlu membuat

contoh EC2 mereka sendiri. Untuk informasi selengkapnya, lihat Apa itu AWS CloudShell dalam Panduan Pengguna AWS CloudShell.

Mengkonfigurasi Amazon ECS CLISebelum Anda dapat memulai tutorial ini, Anda harus menginstal dan mengonfigurasi CLI Amazon ECS.Untuk informasi selengkapnya, lihat Menginstal CLI Amazon ECS (p. 38).

CLI Amazon ECS memerlukan kredensial untuk membuat permintaan API atas nama Anda. Hal inidapat menarik kredensi dari variabel lingkungan,AWSprofil, atau profil Amazon ECS. Untuk informasiselengkapnya, lihat Mengkonfigurasi Amazon ECS CLI (p. 44).

Untuk membuat konfigurasi Amazon ECS CLI

1. Buat Konfigurasi klaster:

ecs-cli configure --cluster ec2-tutorial --region us-east-1 --default-launch-type EC2 --config-name ec2-tutorial

2. Buat profil menggunakan access key dan kunci secret Anda:

51

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat Layanan AmazonECS yang Menggunakan Penemuan

Layanan Menggunakan Amazon ECS CLI

ecs-cli configure profile --access-key AWS_ACCESS_KEY_ID --secret-key AWS_SECRET_ACCESS_KEY --profile-name ec2-tutorial

Note

Jika ini adalah kali pertama Anda mengonfigurasi CLI Amazon ECS, konfigurasi ini ditandaisebagai default. Jika ini bukan pertama kalinya Anda mengonfigurasi Amazon ECS CLI,lihatReferensi Baris Perintah Amazon ECSdiPanduan Pengembang Layanan Wadah AmazonElasticuntuk mengatur ini sebagai konfigurasi default dan profil.

Membuat Layanan Amazon ECS yang Dikonfigurasi untukMenggunakan Layanan PenemuanGunakan langkah-langkah berikut untuk membuat layanan Amazon ECS yang dikonfigurasi untukmenggunakan penemuan layanan dengan CLI Amazon ECS.

Membuat layanan Amazon ECS yang dikonfigurasi untuk menggunakan penemuan layanan

1. Membuat layanan Amazon ECS bernamabackenddan buat namespace DNS privatbernamatutorialdalam VPC. Dalam contoh ini, tugas menggunakan mode jaringan awsvpc, jadinilai container_name dan container_port tidak diperlukan.

ecs-cli compose --project-name backend service up --private-dns-namespace tutorial --vpc vpc-04deee8176dce7d7d --enable-service-discovery

Output:

INFO[0001] Using ECS task definition TaskDefinition="backend:1"INFO[0002] Waiting for the private DNS namespace to be created...INFO[0002] Cloudformation stack status stackStatus=CREATE_IN_PROGRESSWARN[0033] Defaulting DNS Type to A because network mode was awsvpcINFO[0033] Waiting for the Service Discovery Service to be created...INFO[0034] Cloudformation stack status stackStatus=CREATE_IN_PROGRESSINFO[0065] Created an ECS service service=backend taskDefinition="backend:1"INFO[0066] Updated ECS service successfully desiredCount=1 serviceName=backendINFO[0081] (service backend) has started 1 tasks: (task 824b5a76-8f9c-4beb-a64b-6904e320630e). timestamp="2018-09-12 00:00:26 +0000 UTC"INFO[0157] Service status desiredCount=1 runningCount=1 serviceName=backendINFO[0157] ECS Service has reached a stable state desiredCount=1 runningCount=1 serviceName=backend

2. Buat layanan lain yang bernama frontend di namespace DNS privat yang sama. Karena namespacesudah ada, CLI Amazon ECS menggunakannya alih-alih membuat yang baru.

ecs-cli compose --project-name frontend service up --private-dns-namespace tutorial --vpc vpc-04deee8176dce7d7d --enable-service-discovery

Output:

INFO[0001] Using ECS task definition TaskDefinition="frontend:1"INFO[0002] Using existing namespace ns-kvhnzhb5vxplfmlsWARN[0033] Defaulting DNS Type to A because network mode was awsvpc

52

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat Layanan AmazonECS yang Menggunakan Penemuan

Layanan Menggunakan Amazon ECS CLIINFO[0033] Waiting for the Service Discovery Service to be created...INFO[0034] Cloudformation stack status stackStatus=CREATE_IN_PROGRESSINFO[0065] Created an ECS service service=frontend taskDefinition="frontend:1"INFO[0066] Updated ECS service successfully desiredCount=1 serviceName=frontendINFO[0081] (service frontend) has started 1 tasks: (task 824b5a76-8f9c-4beb-a64b-6904e320630e). timestamp="2018-09-12 00:00:26 +0000 UTC"INFO[0157] Service status desiredCount=1 runningCount=1 serviceName=frontendINFO[0157] ECS Service has reached a stable state desiredCount=1 runningCount=1 serviceName=frontend

3. Verifikasi bahwa dua layanan dapat menemukan satu sama lain dalamVPC menggunakan DNS. Nama host DNS menggunakan format berikut:<service_discovery_service_name>.<service_discovery_namespace>. Untuk contohini,frontendlayanan dapat ditemukan difrontend.tutorialdanbackendlayanan dapat ditemukandibackend.tutorial. Karena ini adalah namespace DNS privat, nama DNS ini hanya diselesaikansaat berada dalam VPC yang ditentukan.

4. Untuk memperbarui pengaturan penemuan layanan, perbarui pengaturan untukfrontendlayanan.Nilai-nilai yang dapat diperbarui adalah DNS TTL dan nilai ambang kegagalan konfigurasi kustompemeriksaan kondisi.

ecs-cli compose --project-name frontend service up --update-service-discovery --dns-type SRV --dns-ttl 120 --healthcheck-custom-config-failure-threshold 2

Output:

INFO[0001] Using ECS task definition TaskDefinition="frontend:1"INFO[0001] Updated ECS service successfully desiredCount=1 serviceName=frontendINFO[0001] Service status desiredCount=1 runningCount=1 serviceName=frontendINFO[0001] ECS Service has reached a stable state desiredCount=1 runningCount=1 serviceName=frontendINFO[0002] Waiting for your Service Discovery resources to be updated...INFO[0002] Cloudformation stack status stackStatus=UPDATE_IN_PROGRESS

5. Untuk membersihkan, hapus layanan Amazon ECS dan sumber daya penemuan layanan.SaatfrontendLayanan dihapus, CLI Amazon ECS secara otomatis menghapus layanan discoveryterkait.

ecs-cli compose --project-name frontend service rm

INFO[0000] Updated ECS service successfully desiredCount=0 serviceName=frontendINFO[0001] Service status desiredCount=0 runningCount=1 serviceName=frontendINFO[0016] Service status desiredCount=0 runningCount=0 serviceName=frontendINFO[0016] (service frontend) has stopped 1 running tasks: (task 824b5a76-8f9c-4beb-a64b-6904e320630e). timestamp="2018-09-12 00:37:25 +0000 UTC"INFO[0016] ECS Service has reached a stable state desiredCount=0 runningCount=0 serviceName=frontendINFO[0016] Deleted ECS service service=frontendINFO[0016] ECS Service has reached a stable state desiredCount=0 runningCount=0 serviceName=frontendINFO[0027] Waiting for your Service Discovery Service resource to be deleted...INFO[0027] Cloudformation stack status stackStatus=DELETE_IN_PROGRESS

53

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat Layanan AmazonECS yang Menggunakan Penemuan

Layanan Menggunakan Amazon ECS CLI6. Untuk menyelesaikan pembersihan, hapus layanan backend bersama dengan namespace DNS privat

yang dibuat dengan layanan tersebut. Amazon ECS CLI mengaitkanAWS CloudFormationtumpukanuntuk namespace DNS privat dengan layanan Amazon ECS yang dibuat. Ketika layanan dihapus,namespace juga terhapus.

ecs-cli compose --project-name backend service rm --delete-namespace

54

Amazon ECS Panduan Pengguna untuk AWS FargateVersi platform Linux

AWSVersi platformAWSVersi platform Fargate digunakan untuk merujuk ke lingkungan runtime tertentu untuk infrastrukturtugas Fargate. Ini adalah kombinasi dari kernel dan kontainer runtime versi.

Versi platform baru dirilis saat lingkungan runtime berkembang, misalnya, jika ada pembaruan kernelatau sistem operasi, fitur baru, perbaikan bug, atau pembaruan keamanan. Pembaruan keamanan dantambalan dikerahkan secara otomatis untuk tugas Fargate Anda. Jika ditemukan masalah keamananyang memengaruhi versi platform,AWSmenambal versi platform. Dalam beberapa kasus, Anda mungkinakan diberitahu bahwa tugas Fargate Anda telah dijadwalkan untuk pensiun. Untuk informasi lebihlanjut,Pemeliharaan tugasdiPanduan Pengguna Amazon Elastic Container ServiceAWS Fargate.

Topik• Versi platform Linux (p. 55)• Versi platform (p. 59)

Versi platform LinuxPertimbangan versi platformHal berikut harus dipertimbangkan ketika menentukan versi platform:

• Saat menentukan versi platform, Anda dapat menggunakan nomor versi tertentu, misalnya1.4.0,atauLATEST.

SaatTERBARUversi platform yang dipilih,1.4.0versi platform yang digunakan.• Di Wilayah China (Beijing) dan China (Ningxia), satu-satunya versi platform yang didukung

adalah1.4.0dan1.3.0. ParameterAWS Management Consolemenampilkan versi platform yang lebihlama tetapi kesalahan akan dikembalikan jika mereka dipilih. ParameterLATESTversi platform didukungkarena menggunakan1.4.0versi platform.

• Jika Anda memiliki layanan dengan menjalankan tugas dan ingin memperbarui versi platform mereka,Anda dapat memperbarui layanan Anda, menentukan versi platform baru, dan memilihPaksa penerapanbaru. Tugas Anda di-deploy dengan versi platform terbaru. Untuk informasi selengkapnya, lihatMemperbarui layanan (p. 239).

• Jika layanan Anda ditingkatkan tanpa memperbarui versi platform, tugas-tugas tersebut menerima versiplatform yang ditentukan pada penyebaran layanan saat ini.

Berikut ini adalah versi platform Linux yang tersedia. Untuk informasi tentang penghentian versi platform,lihatAWSPengusangan versi platform Fargate (p. 58).

1.4.0Berikut ini adalah changelog untuk versi platform1.4.0.

• Dimulai pada 5 November 2020, setiap tugas Amazon ECS baru yang diluncurkan di Fargatemenggunakan versi platform1.4.0akan dapat menggunakan fitur-fitur berikut:• Saat menggunakan Secrets Manager untuk menyimpan data sensitif, Anda dapat menyuntikkan

kunci JSON tertentu atau versi rahasia tertentu sebagai variabel lingkungan atau dalam konfigurasilog. Untuk informasi selengkapnya, lihat Menentukan data sensitif menggunakan SecretsManager (p. 176).

55

Amazon ECS Panduan Pengguna untuk AWS Fargate1.3.0

• Tentukan variabel lingkungan dalam jumlah besar menggunakan parameter ketentuan kontainerenvironmentFiles. Untuk informasi selengkapnya, lihat Menentukan variabel lingkungan (p. 186).

• Tugas yang dijalankan di VPC dan subnet yang diaktifkan untuk IPv6 akan diberikan alamat IPv4 privatdan IPv6. Untuk informasi selengkapnya, lihatJaringan tugas FargatediPanduan Pengguna AmazonElastic Container ServiceAWS Fargate.

• Titik akhir tugas metadata versi 4 menyediakan metadata tambahan tentang tugas dan kontainertermasuk tipe peluncuran tugas, Amazon Resource Name (ARN) kontainer, serta driver log dan opsilog driver yang digunakan. Saat melakukan kueri terhadap titik akhir /stats Anda juga menerimastatistik tingkat jaringan untuk kontainer Anda. Untuk informasi selengkapnya, lihatTitik akhir metadatatugas versi 4diPanduan Pengguna Amazon Elastic Container ServiceAWS Fargate.

• Dimulai pada 30 Juli 2020, setiap tugas Amazon ECS baru yang diluncurkan di Fargate menggunakanversi platform1.4.0akan dapat merutekan lalu lintas UDP menggunakan Network Load Balancer keAmazon ECS mereka pada tugas Fargate. Untuk informasi selengkapnya, lihat Penyeimbangan bebanlayanan (p. 256).

• Dimulai pada 28 Mei 2020, setiap tugas Amazon ECS baru yang diluncurkan di Fargate menggunakanversi platform1.4.0akan memiliki penyimpanan sementara dienkripsi dengan algoritme enkripsiAES-256 yang menggunakanAWSkunci enkripsi yang dimiliki. Untuk informasi selengkapnya, lihatMenggunakan volume data dalam tugas (p. 126).

• Menambahkan dukungan untuk menggunakan volume sistem file Amazon EFS untuk penyimpanantugas persisten. Untuk informasi selengkapnya, lihat Volume Amazon EFS (p. 128).

• Penyimpanan tugas sementara telah ditingkatkan menjadi minimal 20 GB untuk setiap tugas. Untukinformasi selengkapnya, lihat Menggunakan volume data dalam tugas (p. 126).

• Perilaku lalu lintas jaringan ke dan dari tugas telah diperbarui. Dimulai dengan platform versi 1.4.0,semua tugas Fargate menerima elastic network interface tunggal (disebut sebagai ENI tugas) dan semualalu lintas jaringan mengalir melalui ENI dalam VPC Anda dan akan terlihat melalui log alur VPC Anda.Untuk informasi selengkapnya, lihatJaringan tugas Fargate (p. 135).

• ENI tugas menambahkan dukungan untuk frame jumbo. Antarmuka jaringan dikonfigurasi denganunit transmisi maksimum (MTU), yang merupakan ukuran muatan terbesar yang muat dalam satuframe. Semakin besar MTU, semakin banyak muatan aplikasi yang termuat dalam satu frame, yangmengurangi overhead per frame dan meningkatkan efisiensi. Dengan mendukung jumbo frame akandapat mengurangi overhead ketika jalur jaringan antara tugas dengan tujuan Anda mendukung jumboframe, seperti semua lalu lintas yang tetap berada dalam VPC Anda.

• Wawasan Kontainer CloudWatch akan mencakup metrik performa jaringan untuk tugas Fargate. Untukinformasi selengkapnya, lihat Amazon ECS CloudWatch Wawasan Wadah (p. 314).

• Menambahkan dukungan untuk titik akhir metadata tugas versi 4 yang menyediakan informasi tambahanuntuk tugas Fargate Anda, termasuk statistik jaringan untuk tugas dan Availability Zone tempat tugasdijalankan. Untuk informasi selengkapnya, lihat Titik akhir metadata tugas versi 4 (p. 389).

• Menambahkan dukungan untuk parameter Linux SYS_PTRACE dalam ketentuan kontainer. Untukinformasi selengkapnya, lihat Parameter Linux (p. 114).

• Agen kontainer Fargate menggantikan penggunaan agen kontainer Amazon ECS untuk semua tugasFargate. Perubahan ini seharusnya tidak berpengaruh pada cara tugas Anda berjalan.

• Waktu aktif kontainer kini menggunakan Containerd bukan Docker. Perubahan ini seharusnya tidakberpengaruh pada cara tugas Anda berjalan. Anda akan melihat bahwa beberapa pesan kesalahan yangberasal dari waktu aktif kontainer akan berubah dari menyebutkan Docker menjadi kesalahan yang lebihumum. Untuk informasi selengkapnya, lihatKode kesalahan tugas yang berhentidiPanduan PenggunaAmazon Elastic Container ServiceAWS Fargate.

• Berdasarkan Amazon Linux 2.

1.3.0Berikut ini adalah changelog untuk versi platform1.3.0.

56

Amazon ECS Panduan Pengguna untuk AWS Fargate1.2.0

• Dimulai pada 30 September 2019, setiap tugas Fargate baru yang diluncurkanmendukungawsfirelensdriver log. FireLens untuk Amazon ECS memungkinkan Anda menggunakanparameter definisi tugas untuk merutekan log keAWSlayanan atauAWSTujuan Jaringan Mitra (APN)untuk penyimpanan log dan analitik. Untuk informasi selengkapnya, lihat Perutean log kustom (p. 143).

• Menambahkan daur ulang tugas untuk tugas Fargate, yang merupakan proses menyegarkan tugasyang merupakan bagian dari layanan Amazon ECS. Untuk informasi lebih lanjut,PemeliharaantugasdiPanduan Pengguna Amazon Elastic Container ServiceAWS Fargate.

• Sejak 27 Maret 2019, setiap tugas Fargate baru yang diluncurkan dapat menggunakan parameterketentuan tugas tambahan yang Anda gunakan untuk menentukan konfigurasi proxy, dependensi untukmemulai dan mematikan kontainer, serta nilai batas waktu mulai dan berhenti per kontainer. Untukinformasi lebih lanjut, lihat Konfigurasi proxy (p. 118), Dependensi kontainer (p. 115), dan Waktuhabis kontainer (p. 116).

• Sejak 2 April 2019, setiap tugas Fargate baru yang diluncurkan mendukung pemasukan data sensitif kedalam kontainer Anda dengan cara menyimpan data sensitif.AWS Secrets Managerrahasia atauAWSSystems ManagerParameter Store parameter dan kemudian mereferensikannya dalam definisi kontainerAnda. Untuk informasi selengkapnya, lihat Menentukan data sensitif (p. 175).

• Sejak 1 Mei 2019, setiap tugas Fargate baru yang diluncurkan mendukung pereferensi data sensitifdalam konfigurasi log kontainer menggunakan kontainersecretOptionsparameter definisi kontainer.Untuk informasi selengkapnya, lihat Menentukan data sensitif (p. 175).

• Dimulai pada 1 Mei 2019, setiap tugas Fargate baru yang diluncurkan mendukungsplunkdriverlog di sampingawslogsdriver log. Untuk informasi selengkapnya, lihat Penyimpanan danPencatatan (p. 108).

• Dimulai pada 9 Juli 2019, setiap tugas Fargate baru yang diluncurkan mendukung CloudWatch WawasanWawasan. Untuk informasi selengkapnya, lihat Amazon ECS CloudWatch Wawasan Wadah (p. 314).

• Mulai tanggal 3 Desember 2019, penyedia kapasitas Fargate Spot didukung. Untuk informasiselengkapnya, lihat Penyedia kapasitas AWS Fargate (p. 77).

• Berdasarkan Amazon Linux 2.

1.2.0Berikut ini adalah changelog untuk versi platform1.2.0.

Note

Versi platform1.2.0tidak digunakan lagi. Kami merekomendasikan untuk bermigrasi ke versiplatform terbaru. Untuk informasi tentang penghentian versi platform, lihatAWSPengusangan versiplatform Fargate (p. 58).

• Menambahkan dukungan untuk autentikasi registri pribadi menggunakanAWS Secrets Manager. Untukinformasi selengkapnya, lihat Autentikasi registri privat untuk tugas (p. 173).

1.1.0Berikut ini adalah changelog untuk versi platform1.1.0.

Note

Versi platform1.1.0tidak digunakan lagi. Kami merekomendasikan untuk bermigrasi ke versiplatform terbaru. Untuk informasi tentang penghentian versi platform, lihatAWSPengusangan versiplatform Fargate (p. 58).

• Menambahkan dukungan untuk titik akhir metadata tugas Amazon ECS. Untuk informasi selengkapnya,lihat Titik akhir metadata tugas Amazon (p. 389).

57

Amazon ECS Panduan Pengguna untuk AWS Fargate1.0.0

• Menambahkan dukungan untuk pemeriksaan kondisi Docker dalam ketentuan kontainer. Untuk informasiselengkapnya, lihat Pemeriksaan kondisi (p. 103).

• Menambahkan dukungan untuk penemuan layanan Amazon ECS. Untuk informasi selengkapnya, lihatPenemuan Layanan (p. 276).

1.0.0Berikut ini adalah changelog untuk versi platform1.0.0.

Note

Versi platform1.0.0tidak digunakan lagi. Kami merekomendasikan untuk bermigrasi ke versiplatform terbaru. Untuk informasi tentang penghentian versi platform, lihatAWSPengusangan versiplatform Fargate (p. 58).

• Berdasarkan Amazon Linux 2017.09.• Pelepasan .

Migrasi ke versi 1.4.0Hal berikut ini harus dipertimbangkan ketika memigrasikan Amazon ECS pada tugas Fargate dari versiplatform1.0.0,1.1.0,1.2.0, atau1.3.0ke versi platform1.4.0. Hal ini dianggap sebagai praktik terbaikuntuk mengonfirmasi tugas Anda berfungsi dengan baik pada versi platform1.4.0sebelum memigrasikantugas Anda.

• Perilaku lalu lintas jaringan ke dan dari tugas telah diperbarui. Dimulai dengan platform versi 1.4.0,semua tugas Amazon ECS pada Fargate menerima elastic network interface tunggal (disebut sebagaiENI tugas) dan semua lalu lintas jaringan mengalir melalui ENI dalam VPC Anda dan akan terlihatmelalui log alur VPC Anda. Untuk informasi selengkapnya, lihatJaringan tugas Fargate (p. 135).

• Jika Anda menggunakan endpoint VPC, berikut ini harus dipertimbangkan.• Saat menggunakan gambar kontainer yang di-host dengan Amazon ECR,

keduanyacom.amazonaws.region.ecr.dkrdancom.amazonaws.region.ecr.apiEndpoint Amazon ECRVPC serta titik akhir gateway Amazon S3 diperlukan. Untuk informasi selengkapnya, lihatAmazon ECRendpoint antarmuka VPC (AWS PrivateLink)diPanduan Pengguna Amazon Elastic Container Registry.

• Saat menggunakan ketentuan tugas yang mereferensikan rahasia Secrets Manager untuk mengambildata sensitif untuk kontainer Anda, Anda harus membuat VPC endpoint antarmuka untuk SecretsManager. Untuk informasi selengkapnya, lihat Menggunakan Secrets Manager dengan VPC Endpointdalam Panduan Pengguna AWS Secrets Manager.

• Saat menggunakan ketentuan tugas yang mereferensikan parameter Systems Manager ParameterStore untuk mengambil data sensitif untuk kontainer Anda, Anda harus membuat VPC endpointantarmuka untuk Systems Manager. Untuk informasi selengkapnya, lihatMenggunakan SystemsManager dengan endpoint VPCdiAWS Systems ManagerPanduan Pengguna.

• Pastikan bahwa grup keamanan di Elastic Network Interface (ENI) yang terkait dengan tugas Andamemiliki aturan grup keamanan yang dibuat untuk memungkinkan lalu lintas antara tugas dan titik akhirVPC yang Anda gunakan.

AWSPengusangan versi platform FargateHalaman ini mencantumkan versi platform yangAWSFargate telah usang atau telah dijadwalkan untukpengusangan. Versi platform ini tetap tersedia sampai tanggal pengusangan yang dipublikasikan.

SEBUAHtanggal pembaruan paksadisediakan untuk setiap versi platform yang dijadwalkan untukpengusangan. Pada tanggal pembaruan kekuatan, layanan apa pun yang menggunakanLATESTversi

58

Amazon ECS Panduan Pengguna untuk AWS FargateVersi platform

platform yang menunjuk ke versi platform yang dijadwalkan untuk pengusangan akan diperbaruimenggunakan opsi penerapan baru kekuatan. Ketika layanan diperbarui menggunakan opsi penerapanbaru gaya, semua tugas yang berjalan pada versi platform yang dijadwalkan untuk pengusangandihentikan dan tugas baru diluncurkan menggunakan versi platform yangLATESTtag poin untuk pada waktuitu. Tugas atau layanan mandiri dengan kumpulan versi platform eksplisit tidak terpengaruh oleh tanggalpembaruan kekuatan.

Sebaiknya perbarui tugas mandiri layanan Anda untuk menggunakan versi platform terbaru. Untukinformasi selengkapnya tentang migrasi ke versi platform terbaru, lihatMigrasi ke versi 1.4.0 (p. 58).

Setelah versi platform mencapaitanggal pengusangan, versi platform tidak akan lagi tersedia untuk tugasatau layanan baru. Setiap tugas atau layanan mandiri yang secara eksplisit menggunakan versi platformyang tidak digunakan lagi akan terus menggunakan versi platform tersebut sampai tugas dihentikan.Setelah tanggal pengusangan, versi platform usang tidak akan lagi menerima pembaruan keamanan atauperbaikan bug.

Versi platform Paksa tanggal pembaruan Tanggal pengusangan

1.0.0 26 Oktober 2020 14 Desember 2020

1.1.0 26 Oktober 2020 14 Desember 2020

1.2.0 26 Oktober 2020 14 Desember 2020

Untuk informasi tentang versi platform saat ini, lihat AWSVersi platform (p. 55).

Versi platformPertimbangan versi platformHal berikut harus dipertimbangkan ketika menentukan versi platform:

• Saat menentukan versi platform, Anda dapat menggunakan nomor versi tertentu, misalnya1.0.0,atauLATEST.

SaatTERBARUversi platform yang dipilih1.0.0platform yang digunakan.• Jika Anda memiliki layanan dengan menjalankan tugas dan ingin memperbarui versi platform mereka,

Anda dapat memperbarui layanan Anda, menentukan versi platform baru, dan memilihPaksa penerapanbaru. Tugas Anda di-deploy dengan versi platform terbaru. Untuk informasi selengkapnya, lihatMemperbarui layanan (p. 239).

• Jika layanan Anda ditingkatkan tanpa memperbarui versi platform, tugas-tugas tersebut menerima versiplatform yang ditentukan pada penyebaran layanan saat ini.

Berikut ini adalah versi platform yang tersedia untuk kontainer Windows.

1.0.0Berikut ini adalah changelog untuk versi platform1.0.0.

• Rilis awal untuk dukungan pada sistem operasi Microsoft Windows berikut:• Windows Server 2019 Full• Windows Server 2019 Core

59

Amazon ECS Panduan Pengguna untuk AWS FargateManajemen klaster di konsol Amazon ECS baru

Kontainer Amazon ElasticAmazon ECS memiliki versi baru dari konsol yang saat ini sedang dalam pengembangan. tujuan konsolbaru ini adalah untuk menyederhanakan penerapan kontainer ke Amazon ECS dengan menyediakandefault yang lebih cerdas, dan panel bantuan yang memandu Anda melalui proses konfigurasi AmazonECS.

Anda dapat mengelola klaster, definisi tugas, tugas, dan layanan menggunakan konsol baru.

Topik• Manajemen klaster di konsol Amazon ECS baru (p. 60)• Manajemen definisi tugas di konsol Amazon ECS baru (p. 62)• Pengelolaan tugas di konsol Amazon ECS baru (p. 68)• Manajemen layanan di konsol Amazon ECS baru (p. 69)

Manajemen klaster di konsol Amazon ECS baruTindakan klaster berikut tersedia:

• Buat tugas untuk jenis peluncuran Fargate• Mengatur penyedia kapasitas default• Menghapus sebuah klaster

Membuat klaster untuk jenis peluncuran Fargatemenggunakan konsol baruAnda dapat membuat klaster Amazon ECS menggunakan klaster baruAWS Management Console,seperti yang dijelaskan dalam topik ini. Sebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah di Siapkan untuk menggunakan Amazon ECS (p. 4). Konsol baru menyediakan cara sederhanauntuk membuat sumber daya yang dibutuhkan oleh klaster Amazon ECS dengan membuatAWSCloudFormationtumpukan.

Untuk menjalankan proses pembuatan klaster semudah mungkin, konsol memiliki pilihan default untukbanyak pilihan yang kami jelaskan di bawah ini. Ada juga panel bantuan yang tersedia untuk porsi besarbagian di konsol yang menyediakan konteks lebih lanjut.

Secara default, kami membuat klaster Amazon ECS untuk jenis peluncuran Fargate dengan propertiberikut:

• Menggunakan Fargate dan Fargate Spot penyedia kapasitas.• Meluncurkan tugas dan layanan di semua subnet default di VPC default untuk Wilayah yang Anda pilih.• Tidak menggunakan Wawasan Kontainer.• Memiliki tiga tag yang dikonfigurasi untukAWS CloudFormation.

Anda dapat mengubah opsi default berikut ini:

• Ubah subnet tempat tugas dan layanan diluncurkan secara default.• Aktifkan Wawasan Kontainer.

60

Amazon ECS Panduan Pengguna untuk AWS FargateMengatur penyedia kapasitas default

klaster menggunakan konsol baru

Wawasan Kontainer CloudWatch mengumpulkan, menggabungkan, serta merangkum metrik dan logdari aplikasi dan layanan mikro terkontainer Anda. Wawasan Kontainer juga menyediakan informasidiagnostik, seperti kegagalan penyalaan ulang wadah, yang Anda gunakan untuk mengisolasi masalahdan mengatasinya dengan cepat. Untuk informasi selengkapnya, lihat the section called “WawasanKontainer CloudWatch” (p. 314).

• Tambahkan tag untuk membantu Anda mengidentifikasi klaster Anda.

Untuk membuat klaster baru (Konsol Amazon ECS baru)

Sebelum Anda memulai, pastikan Anda membuat pengguna IAM, dan kemudian menetapkan izin IAM yangsesuai. Untuk informasi selengkapnya, silakan lihat the section called “Mmebuat pengguna IAM” (p. 4) danthe section called “Contoh klaster” (p. 344).

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Dari bilah navigasi, pilih Wilayah untuk digunakan.3. Di panel navigasi, pilih Klaster.4. Padaklasterhalaman, pilihBuat klaster.5. Di bawahKonfigurasi klaster, untukNama klaster, masukkan nama yang unik.

Nama dapat berisi hingga 255 huruf (huruf besar dan huruf kecil), angka, dan tanda hubung.6. (Opsional) Untuk mengubah VPC dan subnet tempat tugas dan layanan Anda diluncurkan, di

bawahJaringan, lakukan salah satu dari operasi berikut:

• Untuk menghapus subnet, di bawahSubnet, pilihXuntuk setiap subnet yang ingin Anda hapus.• Untuk mengubah ke VPC selaindefaultVPC, di bawahVPC, pilih yang adaVPC, dan kemudian di

bawahSubnet, pilih setiap subnet.7. (Opsional) Untuk mengaktifkan Wawasan Kontainer, memperluasPemantauan, dan kemudian

nyalakanMenggunakan Wawasan Kontainer.8. (Opsional) Untuk mengelola tag cluster, memperluasTag, dan kemudian lakukan salah satu operasi

berikut ini:

[Tambahkan tag] Pilih Tambah tag dan lakukan hal berikut:

• Untuk Kunci, masukkan nama kunci.• Untuk Nilai, masukkan nilai kunci.

[Hapus tag] Pilih Hapus di sebelah kanan Kunci dan Nilai tag.9. Pilih Buat.

Mengatur penyedia kapasitas default klastermenggunakan konsol baruSetelah pembuatan klaster selesai, Anda dapat mengatur penyedia kapasitas default untuk klaster.Penyedia kapasitas menentukan infrastruktur yang dijalankan tugas dan layanan Anda.

Untuk mengatur penyedia kapasitas default untuk klaster (Konsol Amazon ECS Baru)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Di panel navigasi, pilih Klaster.3. PadaklasterHalaman, pilih klaster.

61

Amazon ECS Panduan Pengguna untuk AWS FargateMenghapus klaster menggunakan konsol baru

4. PadaKlaster:namahalaman, pilihMengedit.

Anda dibawa ke konsol klasik.5. PadaPerbarui klasterhalaman, pilihTambahkan penyedia lain.6. UntukPenyedia 1, pilih penyedia kapasitas, lalu pilihPerbarui.7. Di panel navigasi, pilih Klaster.

Anda dikembalikan ke konsol baru.

Menghapus klaster menggunakan konsol baruJika Anda selesai menggunakan klaster, Anda dapat menghapusnya. Setelah Anda menghapus cluster,itu transisi keINACTIVEnegara. Klaster dengan status INACTIVE mungkin tetap dapat ditemukan di akunAnda selama jangka waktu tertentu. Namun, perilaku ini dapat berubah di masa depan, jadi sebaiknyaAnda tidak mengandalkan klaster INACTIVE yang tersimpan.

Sebelum menghapus klaster, Anda harus melakukan operasi berikut:

• Hapus semua layanan di klaster. Untuk informasi selengkapnya, lihat the section called “Menghapuslayanan” (p. 242).

• Hentikan semua tugas yang sedang berjalan. Untuk informasi selengkapnya, lihat the section called“Menghentikan tugas menggunakan konsol baru” (p. 81).

• Jika Anda membuat klaster dengan konsol baru, hapusAWS CloudFormationtumpukan yang dibuatuntuk cluster Anda. Tumpukan tersebut diberi namanama klaster-ECS-Infra. Misalnya, jikanama cluster adalah “contoh-cluster-new-console”, maka nama stack adalahexample-cluster-new-console-ECS-Infra. Untuk informasi selengkapnya, lihatMenghapus tumpukan padaAWSCloudFormationkonsoldiAWS CloudFormationPanduan Pengguna.

Jika Anda membuat klaster menggunakan konsol klasik dan Anda menerima kesalahan saat Andamenggunakan konsol baru, Anda mungkin perlu menghapus klaster menggunakan konsol klasik, Untukinformasi lebih lanjut, lihatthe section called “Menghapus klaster menggunakan konsol klasik” (p. 81).

Untuk menghapus klaster (Konsol Amazon ECS)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah untuk digunakan.3. Di panel navigasi, pilih Klaster.4. Pada halaman klaster, pilih klaster untuk menghapus.5. Di bagian kanan atas halaman, pilih Hapus Klaster.

Sebuah pesan ditampilkan ketika Anda tidak menghapus semua sumber daya yang terkait denganklaster.

6. Di kotak konfirmasi, masukkanhapusnama klaster.

Manajemen definisi tugas di konsol Amazon ECSbaru

Tindakan ketentuan tugas berikut tersedia:

• Membuat definisi tugas• Memperbarui ketentuan tugas

62

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas menggunakan konsol baru

• Mendaftarkan ketentuan tugas

Membuat ketentuan tugas menggunakan konsol baruBuat definisi tugas Anda menggunakan pengalaman konsol Amazon ECS yang baru. Untuk menjalankanproses pembuatan ketentuan tugas semudah mungkin, konsol memiliki pilihan default untuk banyak pilihanyang kami jelaskan di bawah ini. Ada juga panel bantuan yang tersedia untuk porsi besar bagian di konsolyang menyediakan konteks lebih lanjut.

Untuk membuat ketentuan tugas baru (Konsol Amazon ECS)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Di panel navigasi, pilihKetentuan tugas,Membuat definisi tugas baru.3. UntukKeluarga definisi tugas, tentukan nama unik untuk ketentuan tugas.4. Untuk setiap kontainer untuk menentukan ketentuan tugas Anda, selesaikan langkah-langkah berikut.

a. UntukNama, tentukan nama untuk kontainer.b. UntukURI citra, tentukan gambar yang digunakan untuk memulai kontainer. Gambar di registri

Galeri Publik Amazon ECR dapat ditentukan menggunakan nama registri Publik Amazon ECRsaja. Misalnya, jikapublic.ecr.aws/ecs/amazon-ecs-agent:latestditentukan, kontainerAmazon Linux yang dihosting di Amazon ECR Public Gallery digunakan. Untuk semua repositorilainnya, tentukan repositori menggunakanrepository-url/image:tagataurepository-url/image@digestformat.

c. UntukWadah penting, jika definisi tugas Anda memiliki dua atau lebih kontainer didefinisikan,Anda dapat menentukan apakah wadah harus dianggap penting. Jika sebuah wadah ditandaisebagaihakiki, jika kontainer itu berhenti maka tugas dihentikan. Setiap ketentuan tugas harusberisi setidaknya satu kontainer penting.

d. Pemetaan port memungkinkan kontainer mengakses port pada host untuk mengirim ataumenerima lalu lintas. Di bawahPemetaan Port, lakukan salah satu hal berikut:

• Saat Anda menggunakanawsvpcmode jaringan, untukPort kontainerdanProtokol, tentukanpemetaan port yang akan digunakan untuk wadah.

• Saat Anda menggunakanjembatanmode jaringan, untukPort kontainerdanProtokol, tentukanpemetaan port yang akan digunakan untuk wadah. Anda memilihjembatanMode jaringan dihalaman berikutnya. Setelah Anda memilihnya, pilihSebelumnya, dan kemudian untukPort tuanrumah, tentukan nomor port pada instance kontainer untuk menyimpan kontainer Anda.

PilihTambahkan lebih banyak pemetaan portuntuk menentukan pemetaan port kontainertambahan.

e. PerluasVariabel lingkunganbagian untuk menentukan variabel lingkungan untuk menyuntikkanke dalam wadah. Anda dapat menentukan variabel lingkungan secara individual menggunakanpasangan nilai kunci atau secara massal dengan menentukan file variabel lingkungan yangdihosting dalam bucket Amazon S3. Untuk informasi tentang cara memformat file variabellingkungan, lihatMenentukan variabel lingkungan (p. 186).

f. (Opsional) PilihTambahkan lebih banyak kontaineruntuk menambahkan kontainer tambahan keketentuan tugas. PilihSelanjutnyasetelah semua kontainer telah didefinisikan.

5. UntukLingkungan aplikasi, pilihAWS Fargate(nirserver),Instans Amazon EC2, atau keduanya. AmazonECS melakukan validasi menggunakan nilai ini untuk memastikan parameter definisi tugas valid untukjenis infrastruktur.

6. UntukSistem Operasi/Arsitektur, pilih sistem operasi dan arsitektur CPU untuk tugas tersebut.

Untuk menjalankan tugas Anda pada arsitektur ARM 64-bit, pilihLinux/ARM64. Untuk informasiselengkapnya, lihat the section called “Platform waktu aktif” (p. 96).

63

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas menggunakan konsol baru

Untuk menjalankanAWS Fargate(nirserver)tugas pada wadah Windows, pilih sistem operasiWindows yang didukung. Untuk informasi selengkapnya, lihat the section called “Kontainer WindowsdiAWSPertimbangan Fargate” (p. 2).

7. UntukUkuran tugas, tentukan nilai CPU dan memori untuk cadangan tugas. Nilai CPU ditentukansebagai vCPUs dan memori ditentukan sebagai GB.

Untuk tugas yang di-host di Fargate, tabel berikut menampilkan kombinasi CPU dan memori yangvalid.

Nilai CPU Nilai memori

256 (.25 vCPU) 512 MiB, 1 GB

512 (.5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB

1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB,7 GB, 8 GB

2048 (2 vCPU) Antara 4 GB dan 16 GB dalamkenaikan 1 GB

4096 (4 vCPU) Antara 8 GB dan 30 GB dalamkenaikan 1 GB

Untuk tugas yang di-hosting di Amazon EC2, nilai CPU tugas yang didukung antara 128 unit CPU(0,125 vCPUs) dan 10240 unit CPU (10 vCPUs).

Note

Tingkat tugas CPU dan memori parameter diabaikan untuk Windows kontainer.8. PerluasUkuran kontainerbagian untuk menentukan jumlah (dalam GB) memori untuk hadir ke

kontainer dan jumlah unit CPU yang akan disimpan agen kontainer Amazon ECS untuk kontainer.

Jika kontainer Anda mencoba untuk melebihi memori yang ditentukan, kontainer akan dimatikan.Jumlah total memori yang disimpan untuk semua kontainer dalam tugas harus lebih rendah daritugasMemorinilai, jika salah satu ditentukan.

Jumlah total CPU yang disimpan untuk semua kontainer dalam tugas harus lebih rendah dari leveltugasCPUnilai.

Anda dapat mengalikan nilai yang ditentukan dengan 1024 untuk menentukan jumlah unit CPU yangtersedia per tipe instans Amazon EC2. Misalnya, nilai untuk contoh nano t3 adalah 2048. Untukinformasi selengkapnya, lihatInstans Amazon EC2.

9. (Opsional) MemperluasPeran tugas, mode jaringanbagian untuk menentukan hal berikut:

a. UntukPeran tugas, pilih peran IAM untuk ditetapkan ke tugas. Tugas IAM peran menyediakan izinuntuk kontainer dalam tugas untuk memanggilAWSAPI.

b. UntukMode jaringan, pilih mode jaringan yang akan digunakan. Default-nya adalahawsvpcmode.Untuk informasi selengkapnya, lihat jaringan tugas Amazon ECS.

Jika Anda memilihjembatanuntuk mode jaringan, pilihSebelumnya, dan kemudian dibawahPemetaan Port, untukPort tuan rumah, tentukan nomor port pada instance kontainer untukmenyimpan kontainer Anda.

10. (Opsional)PenyimpananBagian digunakan untuk memperluas jumlah penyimpanan sementara untuktugas-tugas yang di-hosting di Fargate serta menambahkan konfigurasi volume data untuk tugas.

64

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas menggunakan konsol baru

• UntukJumlah, untuk memperluas penyimpanan fana yang tersedia di luar nilai default20 GiBuntuktugas Fargate Anda, tentukan nilai hingga200 GiB.

11. (Opsional) PilihTambahkan volumeuntuk menambahkan konfigurasi volume data untuk tugas. Untuksetiap volume data, selesaikan langkah-langkah berikut.

a. UntukJenis volume, pilihPemasangan terikat.b. UntukNama volume, tentukan nama untuk volume data. Nama volume data digunakan saat

membuat titik mount kontainer di langkah selanjutnya.c. PerluasTitik mount kontainerbagian dan pilihTambahkan.d. UntukKontainer, pilih wadah untuk titik mount.e. UntukVolume sumber, pilih volume data yang akan dipasang ke wadah.f. UntukJalur kontainer, tentukan jalur pada kontainer untuk memasang volume.g. UntukHanya baca, tentukan apakah akan membuat volume hanya dibaca.h. PilihTambahkanuntuk menambahkan tambahan mount poin sampai setiap volume data

didefinisikan dalam definisi tugas memiliki titik mount didefinisikan.12. (Opsional) PilihGunakan koleksi logpilihan untuk menentukan konfigurasi log. Untuk setiap driver log

yang tersedia, ada pilihan driver log untuk menentukan. Opsi default mengirimkan log kontainer keCloudWatch Log. Opsi driver log lainnya dikonfigurasi menggunakanAWSFireLens. Untuk informasiselengkapnya, lihat Perutean log kustom (p. 143).

Berikut ini penjelasan setiap tujuan log kontainer secara lebih detail.

• Amazon CloudWatch- Konfigurasi tugas untuk mengirim log kontainer ke CloudWatch Log. Opsidriver log default disediakan yang menciptakan CloudWatch grup log atas nama Anda. Untukmenentukan nama grup log yang berbeda, ubah nilai opsi driver.

• Amazon Kinesis Data Firehose- Konfigurasikan tugas untuk mengirim log kontainer ke Kinesis DataFirehose. Opsi driver log default disediakan yang mengirimkan log ke aliran pengiriman Kinesis DataFirehose. Untuk menentukan nama aliran pengiriman yang berbeda, ubah nilai opsi driver.

• Amazon Kinesis Data Streams— Konfigurasikan tugas untuk mengirim log kontainer ke Kinesis DataStreams. Opsi driver log default disediakan yang mengirimkan log ke aliran Kinesis Data Streams.Untuk menentukan nama stream yang berbeda, ubah nilai opsi driver.

• Amazon OpenSearch Layanan- Konfigurasi tugas untuk mengirim log kontainer ke OpenSearchDomain layanan. Opsi driver log harus disediakan. Untuk informasi selengkapnya, lihat Meneruskanlog ke Amazon OpenSearch Domain layanan (p. 170).

• Amazon S3— Konfigurasikan tugas untuk mengirim log kontainer ke bucket Amazon S3. Opsi driverlog default disediakan tetapi Anda harus menentukan nama bucket Amazon S3 yang valid.

13. (Opsional) PilihGunakan koleksi pelacakanpilihan untuk mengkonfigurasi tugas Anda untukmerutekan data pelacakan dari aplikasi Anda keAWS X-Ray. Ketika opsi ini dipilih, AmazonECS membuatAWSDistro untuk OpenTelemetry kontainer sidecar yang telah dikonfigurasikanuntuk mengirim data jejak. Untuk informasi selengkapnya, lihat Mengumpulkan data pelacakanaplikasi (p. 316).

Important

Saat mengaktifkan koleksi jejak, ketentuan tugas Anda memerlukan peran IAM denganizin yang diperlukan. Untuk informasi selengkapnya, lihat Izin IAM yang DiperlukanuntukAWSDistro untuk OpenTelemetry integrasi denganAWS X-Ray (p. 317).

14. (Opsional) PilihGunakan koleksi metrikopsi untuk mengumpulkan dan mengirim metrik untuk tugasAnda ke Amazon CloudWatch atau Amazon Managed Service untuk Prometheus. Ketika opsiini dipilih, Amazon ECS membuatAWSDistro untuk OpenTelemetry kontainer sidecar yang telahdikonfigurasikan untuk mengirim metrik aplikasi. Untuk informasi selengkapnya, lihat Mengumpulkanmetrik aplikasi (p. 319).

65

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui ketentuan tugas menggunakan konsol baru

a. SaatAmazon CloudWatchdipilih, metrik aplikasi kustom Anda dialihkan ke CloudWatch sebagaimetrik kustom. Untuk informasi selengkapnya, lihat Mengekspor metrik aplikasi ke AmazonCloudWatch (p. 319).

Important

Saat mengekspor metrik aplikasi ke Amazon CloudWatch, definisi tugas Andamemerlukan peran IAM tugas dengan izin yang diperlukan. Untuk informasiselengkapnya, lihat Izin IAM yang Diperlukan untukAWSDistro untuk OpenTelemetryintegrasi dengan Amazon CloudWatch (p. 320).

b. SaatAmazon Managed Service untuk Prometheus (instrumentasi perpustakaanPrometheus)dipilih, CPU tingkat tugas, memori, jaringan, dan metrik penyimpanan Anda danmetrik aplikasi kustom Anda dialihkan ke Amazon Managed Service untuk Prometheus. UntukTitikakhir tulis jarak jauh ruang kerja, tentukan URL endpoint tulis jarak jauh untuk ruang kerjaPrometheus Anda. UntukTarget Scraping, tentukan host dan portAWSDistro untuk OpenTelemetrykolektor dapat digunakan untuk mengikis data metrik. Untuk informasi selengkapnya, lihatMengekspor metrik aplikasi ke Amazon Managed Service untuk Prometheus (p. 322).

Important

Saat mengekspor metrik aplikasi ke Amazon Managed Service untuk Prometheus,definisi tugas Anda memerlukan peran IAM tugas dengan izin yang diperlukan.Untuk informasi selengkapnya, lihat Izin IAM yang Diperlukan untukAWSDistrountuk OpenTelemetry integrasi dengan Amazon Managed Service untukPrometheus (p. 322).

c. SaatAmazon Managed Service untuk Prometheus (instrumentasi OpenTelemetry)dipilih, CPUtingkat tugas, memori, jaringan, dan metrik penyimpanan Anda dan metrik aplikasi kustomAnda dialihkan ke Amazon Managed Service untuk Prometheus. UntukTitik akhir tulis jarak jauhruang kerja, tentukan URL endpoint tulis jarak jauh untuk ruang kerja Prometheus Anda. Untukinformasi selengkapnya, lihat Mengekspor metrik aplikasi ke Amazon Managed Service untukPrometheus (p. 322).

Important

Saat mengekspor metrik aplikasi ke Amazon Managed Service untuk Prometheus,definisi tugas Anda memerlukan peran IAM tugas dengan izin yang diperlukan.Untuk informasi selengkapnya, lihat Izin IAM yang Diperlukan untukAWSDistrountuk OpenTelemetry integrasi dengan Amazon Managed Service untukPrometheus (p. 322).

15. (Opsional) MemperluasTagbagian untuk menambahkan tag, sebagai pasangan kunci-nilai, untukdefinisi tugas.

16. PilihSelanjutnyauntuk meninjau ketentuan tugas.17. PadaMemeriksa dan membuathalaman, meninjau setiap bagian definisi tugas. PilihMengedituntuk

membuat perubahan. Setelah definisi tugas selesai, pilihBuatuntuk mendaftarkan ketentuan tugas.

Memperbarui ketentuan tugas menggunakan konsolbaruSEBUAHrevisi ketentuan tugasadalah salinan dari definisi tugas saat ini dengan nilai parameter barumenggantikan yang sudah ada. Semua parameter yang tidak Anda modifikasi ada dalam revisi baru.

Untuk memperbarui ketentuan tugas, membuat revisi ketentuan tugas. Jika ketentuan tugas yangdigunakan dalam layanan, Anda harus memperbarui layanan tersebut untuk menggunakan ketentuantugas yang diperbarui.

66

Amazon ECS Panduan Pengguna untuk AWS FargateRevisi ketentuan tugas menggunakan konsol baru

Ketika Anda membuat revisi, Anda dapat memodifikasi properti kontainer berikut dan properti lingkungan.

• URI gambar kontainer• Pemetaan Port• Variabel lingkungan• Ukuran tugas• Ukuran kontainer

Untuk membuat revisi ketentuan tugas (Konsol Amazon ECS)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah yang berisi ketentuan tugas Anda.3. Di panel navigasi, pilihKetentuan tugas.4. PadaKetentuan tugashalaman, pilih tugas, dan kemudian pilihBuat revisi baru.5. PadaMembuat revisi ketentuan tugashalaman, membuat perubahan. Misalnya, untuk mengubah

definisi kontainer yang ada (seperti citra kontainer, batas memori, atau pemetaan port), pilih kontainer,dan kemudian buat perubahan.

6. Verifikasi informasi, dan kemudian pilihBuat.7. Jika ketentuan tugas Anda digunakan dalam layanan, perbarui layanan Anda dengan ketentuan tugas

yang diperbarui. Untuk informasi selengkapnya, lihat Memperbarui layanan (p. 239).

Revisi ketentuan tugas menggunakan konsol baruJika Anda memutuskan bahwa Anda tidak lagi memerlukan revisi ketentuan tugas tertentu di AmazonECS, Anda dapat membatalkan pendaftaran revisi ketentuan tugas sehingga tidak lagi ditampilkandiListTaskDefinitionPanggilan API atau di konsol saat Anda ingin menjalankan tugas ataumemperbarui layanan.

Ketika Anda membatalkan pendaftaran revisi ketentuan tugas, segera ditandai sebagai INACTIVE. Tugasdan layanan yang ada yang mereferensikan tugas revisi definisi INACTIVE terus berjalan tanpa gangguan.Layanan yang ada yang mereferensikan revisi ketentuan tugas INACTIVE masih dapat menaikkan ataumenurunkan skala dengan mengubah jumlah layanan yang diinginkan.

Anda tidak dapat menggunakan revisi ketentuan tugas INACTIVE untuk menjalankan tugas baruatau membuat layanan baru. Anda juga tidak dapat memperbarui layanan yang sudah ada untukmereferensikan revisi ketentuan tugas INACTIVE (meskipun mungkin ada jendela hingga 10 menit setelahpencabutan pendaftaran tempat pembatasan ini belum berlaku).

Note

Pada saat ini, revisi ketentuan tugas INACTIVE tetap dapat ditemukan di akun Anda tanpa bataswaktu. Namun, perilaku ini dapat berubah di masa mendatang. Oleh karena itu, Anda tidak bolehmengandalkan revisi ketentuan tugas INACTIVE yang bertahan di luar siklus hidup tugas danlayanan terkait apa pun.

Untuk membatalkan pendaftaran definisi tugas baru (Konsol Amazon ECS baru)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Dari bilah navigasi, pilih wilayah yang berisi ketentuan tugas Anda.3. Di panel navigasi, pilihKetentuan tugas.4. Pada halaman ketentuan tugas, pilih keluarga ketentuan tugas yang berisi satu atau lebih revisi yang

ingin Anda batalkan pendaftarannya.5. PadaNama definisi tugashalaman, pilih revisi yang ingin Anda deregister, seperti “contoh-tugas:1".

67

Amazon ECS Panduan Pengguna untuk AWS FargatePengelolaan tugas di konsol Amazon ECS baru

6. Di kanan atas halaman detail revisi ketentuan tugas, pilihDeregister.7. Verifikasi informasi diDeregisterjendela, dan kemudian pilihDeregisteruntuk menyelesaikan.

Pengelolaan tugas di konsol Amazon ECS baruTindakan tugas berikut tersedia:

• Menjalankan tugas mandiri

Menjalankan tugas mandiri menggunakan konsol baruKami menyarankan Anda menyebarkan aplikasi Anda sebagai tugas mandiri dalam beberapa situasi.Misalnya, Anda sedang mengembangkan aplikasi tetapi Anda belum siap untuk men-deploy-nya denganpenjadwal layanan. Jika aplikasi Anda adalah tugas batch satu kali atau periodik, tidak masuk akal jikaaplikasi Anda tetap berjalan atau memulai ulang saat selesai.

Untuk menjalankan aplikasi Anda terus-menerus atau menempatkannya di belakang penyeimbang beban,buat layanan Amazon ECS. Untuk informasi selengkapnya, lihat Layanan Amazon ECS (p. 213).

Untuk menjalankan tugas mandiri gunakan salah satu prosedur berikut.

Jika Anda membuat layanan Windows untuk jenis peluncuran Fargate, Anda harus menggunakan konsolklasik.

Untuk menjalankan tugas mandiri (Konsol Amazon ECS)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Di panel navigasi, pilih Klaster.3. Pada halaman Klaster, pilih klaster tempat menjalankan tugas mandiri.4. Dari tab Tugas, pilih Deploy.5. Bagian Komputasi konfigurasi dapat diperluas untuk mengubah opsi komputasi untuk digunakan oleh

layanan Anda. Secara default, konsol memilih opsi komputasi untuk Anda. Oleh karena itu, dalambanyak kasus, Anda dapat melanjutkan ke langkah berikutnya. Berikut dijelaskan tentang urutan yangdigunakan konsol untuk memilih default:

• Jika klaster Anda memiliki strategi penyedia kapasitas default yang ditetapkan, penyedia defaultdipilih.

• Jika klaster Anda tidak memiliki strategi penyedia kapasitas default yang didefinisikan tetapi Andamemiliki penyedia kapasitas Fargate yang ditambahkan ke klaster, strategi penyedia kapasitaskustom yang menggunakanFARGATEpenyedia kapasitas dipilih.

• Jika klaster Anda tidak memiliki strategi penyedia kapasitas default yang didefinisikan tetapi Andamemiliki satu penyedia kapasitas Auto Scaling yang ditambahkan ke klaster, makaGunakan kustom(Advanced)pilihan dipilih. Anda harus menentukan strategi secara manual.

• Jika klaster Anda tidak memiliki strategi penyedia kapasitas default dan penyedia kapasitas tidakditambahkan ke klaster, tipe peluncuran Fargate dipilih.

6. Untuk Tipe aplikasi, pilih Tugas.7. Untuk ketentuan tugas, pilih keluarga ketentuan tugas dan revisi yang akan digunakan.

Important

Konsol memvalidasi bahwa keluarga dan revisi ketentuan tugas yang dipilih kompatibeldengan konfigurasi komputasi yang ditentukan. Jika Anda menerima peringatan, verifikasibahwa kompatibilitas ketentuan tugas Anda dan konfigurasi komputasi dipilih.

68

Amazon ECS Panduan Pengguna untuk AWS FargateManajemen layanan di konsol Amazon ECS baru

8. Untuk Tugas yang diinginkan, tentukan jumlah tugas yang akan diluncurkan.9. Bagian Jaringan dapat diperluas untuk menentukan konfigurasi jaringan untuk tugas-tugas. Secara

default, konsol memilih Amazon VPC default bersama dengan semua subnet dan grup keamanandefault dalam Amazon VPC default. Gunakan langkah-langkah berikut untuk menentukan konfigurasikustom.

a. Untuk VPC, pilih VPC yang akan digunakan.b. UntukSubnet, pilih satu subnet atau lebih di VPC yang digunakan oleh penjadwal tugas saat

menempatkan tugas Anda.c. Untuk Grup keamanan, pilih grup keamanan yang sudah ada atau buat grup keamanan baru.

Untuk menggunakan grup keamanan yang sudah ada, pilih grup keamanan dan pindah kelangkah berikutnya. Untuk membuat grup keamanan baru, pilih Buat grup keamanan baru. Andaharus menentukan nama grup keamanan, deskripsi, dan menambahkan satu aturan masuk ataulebih untuk grup keamanan.

d. Untuk IP Publik, pilih apakah akan menetapkan alamat IP publik secara otomatis ke antarmukajaringan elastis (ENI) tugas. Tugas yang dilancarkan pada AWS Fargate dapat diberi alamat IPpublik bila dijalankan menggunakan subnet publik. Hal ini agar mereka memiliki rute ke internet.Untuk informasi selengkapnya, lihatJaringan tugas FargatediPanduan Pengguna Amazon ElasticContainer ServiceAWS Fargate.

10. (Opsional) Bagian Tanda dapat diperluas untuk menambahkan tanda, dalam bentuk pasangan kunci-nilai, untuk layanan tersebut.

Manajemen layanan di konsol Amazon ECS baruTindakan layanan berikut tersedia:

• Membuat layanan• Memperbarui layanan• Menghapus layanan

Membuat layanan menggunakan konsol baru

Anda dapat membuat layanan Amazon ECS menggunakan konsol baru. Untuk menjalankan prosespembuatan layanan semudah mungkin, konsol memiliki pilihan default untuk banyak pilihan yang kamijelaskan di bawah ini. Ada juga panel bantuan yang tersedia untuk porsi besar bagian di konsol yangmenyediakan konteks lebih lanjut.

Untuk membuat layanan (Konsol Amazon ECS baru)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Pada halaman Klaster, pilih klaster untuk membuat layanan.3. Dari tab Layanan, pilih Deploy.4. Bagian Konfigurasi komputasi dapat diperluas untuk mengubah opsi komputasi untuk digunakan

oleh layanan Anda. Secara default, konsol akan memilih opsi komputasi untuk Anda sehinggadalam banyak kasus dapat melanjutkan ke langkah berikutnya. Berikut ini menjelaskan urutan yangdigunakan konsol untuk memilih default:

• Jika klaster Anda memiliki strategi penyedia kapasitas default yang ditentukan, klaster akan dipilih.• Jika klaster Anda tidak memiliki strategi penyedia kapasitas default yang ditetapkan tetapi Anda

memiliki penyedia kapasitas Fargate yang ditambahkan ke klaster, strategi penyedia kapasitaskustom yang menggunakanFARGATEpenyedia kapasitas akan dipilih.

69

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol baru

• Jika klaster Anda tidak menentukan strategi penyedia kapasitas default, akan tetapi Anda memilikisatu penyedia kapasitas Auto Scaling yang ditambahkan ke klaster, makaGunakan kustom(Advanced)dipilih dan Anda akan perlu menentukan strategi secara manual.

• Jika klaster Anda tidak menentukan strategi penyedia kapasitas default dan penyedia kapasitas tidakditambahkan ke klaster, tipe peluncuran Fargate dipilih.

5. Untuk Jenis aplikasi, pilih Layanan.6. Untuk Penentuan tugas, pilih rumpun penentuan tugas dan revisi untuk digunakan.

Important

Konsol memvalidasi bahwa kelompok ketentuan tugas dan revisi yang dipilih, kompatibeldengan konfigurasi komputasi yang ditentukan. Jika Anda menerima peringatan, makaverifikasikan kompatibilitas ketentuan tugas Anda dan konfigurasi komputasi yang dipilih.

7. Untuk Nama layanan, tentukan nama untuk layanan Anda.8. Untuk Tugas yang diinginkan, tentukan jumlah tugas yang akan diluncurkan dan dipertahankan dalam

layanan.9. Bagian Opsi deployment dapat diperluas untuk mengubah persentase sehat minimum dan maksimum

tugas berjalan yang diperbolehkan selama deployment layanan. Konsol memiliki nilai default untukkasus penggunaan yang paling umum dipilih.

Note

Saat ini, hanya tipe deployment (ECS) Pembaruan bergulir yang didukung. Untukmenggunakan tipe deployment lainnya, beralih ke konsol klasik.

10. (Opsional) Bagian Penyeimbangan beban dapat diperluas untuk mengonfigurasi penyeimbang bebanuntuk layanan Anda. Gunakan langkah-langkah berikut untuk mengonfigurasi layanan Anda untukmenggunakan Application Load Balancer.

a. UntukTipe penyeimbang bebanpilihApplication Load Balancer.b. PilihMembuat penyeimbang beban baruuntuk membuat Application Load Balancer baru

atauMenggunakan penyeimbang beban yang adauntuk memilih Application Load Balancer yangada.

c. Saat membuat penyeimbang beban baru, untuk Nama penyeimbang beban, tentukan nama unikuntuk penyeimbang beban Anda. Saat menggunakan penyeimbang beban yang sudah ada, untukPenyeimbang beban, pilih penyeimbang beban yang sudah ada.

d. UntukListener, tentukan port dan protokol untuk Application Load Balancer untuk mendengarkanpermintaan koneksi aktif. Secara default, penyeimbang beban akan dikonfigurasi untukmenggunakan port 80 dan HTTP.

e. UntukNama grup target, tentukan nama dan protokol untuk grup target yang akan dirutekan olehApplication Load Balancer. Secara default, grup target akan merutekan permintaan ke kontainerpertama yang ditentukan dalam penentuan tugas Anda.

f. UntukJalur Health kondisi, tentukan jalur yang ada di dalam kontainer Anda tempat ApplicationLoad Balancer harus mengirimkan permintaan untuk memverifikasi kondisi koneksi antaraApplication Load Balancer dan kontainer. Secara default, jalur / yang digunakan merupakandirektori root.

g. UntukMasa tenggang pemeriksaan kesehatan, tentukan jumlah waktu (dalam detik) bahwapenjadwal layanan harus mengabaikan pemeriksaan kondisi target Elastic Load Balancing yangtidak sehat.

11. Bagian Jaringan dapat diperluas guna menentukan konfigurasi jaringan untuk layanan. Penentuantugas yang menggunakan mode atau layanan jaringan awsvpc yang dikonfigurasi untukmenggunakan penyeimbang beban harus memiliki konfigurasi jaringan. Secara default, konsol memilihAmazon VPC default bersama dengan semua subnet dan grup keamanan default dalam Amazon VPCdefault. Gunakan langkah-langkah berikut untuk menentukan konfigurasi kustom.

a. Untuk VPC, pilih VPC yang akan digunakan.

70

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui layanan menggunakan konsol baru

b. Untuk Subnet, pilih satu atau beberapa subnet di VPC yang harus dipertimbangkan olehpenjadwal tugas saat menempatkan tugas Anda.

c. Untuk Grup keamanan, Anda dapat memilih grup keamanan yang sudah ada atau menciptakangrup keamanan baru. Untuk menggunakan grup keamanan yang sudah ada, pilih grup keamanandan lanjutkan ke langkah selanjutnya. Untuk membuat grup keamanan baru, pilih Buat grupkeamanan baru. Anda harus menentukan nama grup keamanan, deskripsi, dan kemudiantambahkan satu atau beberapa aturan masuk untuk grup keamanan.

d. Untuk IP Publik, pilih apakah akan menetapkan alamat IP publik secara otomatis ke antarmukajaringan elastis (ENI) tugas. Tugas yang diluncurkan pada AWS Fargate dapat diberikan alamatIP publik saat dijalankan menggunakan subnet publik sehingga memiliki rute ke internet. Untukinformasi selengkapnya, lihatJaringan tugas FargatediPanduan Pengguna Amazon ElasticContainer ServiceAWS Fargate.

12. (Opsional) Bagian Tanda dapat diperluas untuk menambahkan tanda, dalam bentuk pasangan kunci-nilai, untuk layanan tersebut.

Memperbarui layanan menggunakan konsol baruAnda dapat memperbarui layanan Amazon ECS menggunakan konsol baru. Saat memperbarui layananmenggunakan AWS Management Console, konfigurasi layanan saat ini sudah terisi sebelumnya. Andadapat memperbarui penentuan tugas, jumlah tugas yang diinginkan, strategi penyedia kapasitas, versiplatform, dan konfigurasi deployment; atau kombinasi dari itu semua.

Note

Saat ini, hanya layanan yang menggunakan tipe deployment (ECS) pembaruan bergulir yang harusdiperbarui menggunakan konsol baru. Untuk memperbarui layanan menggunakan tipe deploymentlainnya, beralihlah ke konsol lama.Jika Anda mengubah port yang digunakan oleh kontainer dalam penentuan tugas, maka Andamungkin perlu memperbarui grup keamanan untuk instans kontainer agar berfungsi dengan portyang diperbarui.Jika layanan Anda menggunakan penyeimbang beban, maka konfigurasi penyeimbang bebanyang ditentukan untuk layanan Anda pada saat dibuat tidak dapat diubah. Jika Anda memperbaruiketentuan tugas untuk layanan, nama kontainer dan port kontainer yang ditentukan ketika layanandibuat harus tetap dalam ketentuan tugas.Untuk mengubah nama penyeimbang beban, nama kontainer, atau port kontainer yang terkaitdengan konfigurasi penyeimbang beban layanan, Anda harus membuat layanan baru.Amazon ECS tidak memperbarui grup keamanan yang terkait dengan penyeimbang beban ElasticLoad Balancing atau instans kontainer Amazon ECS.

Untuk memperbarui layanan (Konsol Amazon ECS baru)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Padaklasterhalaman, pilih cluster.3. Pada halaman Gambaran umum klaster, centang kotak di samping layanan untuk memperbarui dan

pilih Edit.4. Untuk Penentuan tugas, pilih rumpun penentuan tugas dan revisi yang akan digunakan.

Important

Konsol memvalidasi bahwa kelompok ketentuan tugas dan revisi yang dipilih, kompatibeldengan konfigurasi komputasi yang ditentukan. Jika Anda menerima peringatan, makaverifikasikan kompatibilitas penentuan tugas dan konfigurasi komputasi yang dipilih.

5. Perluas bagian Opsi deployment dan gunakan langkah-langkah berikut untuk mengubah konfigurasideployment layanan Anda.

71

Amazon ECS Panduan Pengguna untuk AWS FargateMenghapus layanan menggunakan konsol baru

a. Untuk layanan di versi platform AWS Fargate dapat diperbarui.b. Untuk layanan yang menggunakan strategi penyedia kapasitas, strategi penyedia kapasitas

tersebut dapat diperbarui.

Note

Sebuah layanan yang menggunakan penyedia kapasitas Auto Scaling tidak dapatdiperbarui untuk menggunakan penyedia kapasitas Fargate dan sebaliknya.

c. Pilih opsi Memaksa deployment baru agar layanan Anda memulai deployment baru, yang akanmenghentikan semua tugas berjalan dan meluncurkan tugas baru menggunakan konfigurasi yangdiperbarui.

d. Untuk Tugas berjalan minimum, tentukan batas bawah pada jumlah tugas dalam layananyang harus tetap berada dalam status RUNNING selama deployment, sebagai persentase darijumlah tugas yang diinginkan (dibulatkan ke atas ke bilangan bulat terdekat). Untuk informasiselengkapnya, lihatKonfigurasi deployment.

e. Untuk Tugas berjalan maksimum, tentukan batas atas pada jumlah tugas dalam layanan yangdiperbolehkan dan berada dalam status RUNNING atau PENDING selama deployment, sebagaipersentase dari jumlah tugas yang diinginkan (dibulatkan ke bawah ke bilangan bulat terdekat).

6. Perluas bagian Tanda untuk memperbarui tanda yang terkait dengan layanan.7. Pilih Update (Perbarui).

Menghapus layanan menggunakan konsol baruAnda dapat menghapus layanan Amazon ECS menggunakan konsol. Sebelum penghapusan, skalalayanan diturunkan secara otomatis ke nol. Jika Anda memiliki sumber daya penyeimbang beban ataulayanan yang terkait dengan layanan, maka sumber daya tersebut tidak terpengaruh oleh penghapusanlayanan. Untuk menghapus sumber daya Elastic Load Balancing, lihat salah satu topik berikut, tergantungpada tipe penyeimbang beban Anda: Menghapus Application Load BalanceratauMenghapus PenyeimbangBeban Jaringan. Untuk menghapus sumber daya penemuan layanan Anda, ikuti prosedur di bawah ini.

Untuk menghapus layanan (Konsol Amazon ECS)

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. PadaklasterHalaman, pilih klaster untuk layanan.3. PadaklasterHalaman, pilih klaster.4. PadaKlaster:namahalaman, pilihLayanantab.5. Pilih layanan, lalu pilihHapus.6. Pada perintah konfirmasi, masukkan hapus saya lalu pilih Hapus.

72

Amazon ECS Panduan Pengguna untuk AWS FargateKonsep klaster

Klaster Amazon ECSKlaster Amazon ECS adalah pengelompokan tugas atau layanan yang logis. Tugas dan layanan Andadijalankan pada infrastruktur yang terdaftar untuk sebuah klaster. Kapasitas infrastruktur dapat disediakanolehAWS Fargate, yang merupakan infrastruktur tanpa server yangAWSmengelola, instans Amazon EC2yang Anda kelola, atau server on-premise atau mesin virtual (VM) yang Anda kelola dari jarak jauh. Dalamkebanyakan kasus, penyedia kapasitas Amazon ECS dapat digunakan untuk mengelola infrastruktur tugasdalam klaster Anda. Untuk informasi selengkapnya, lihat Penyedia kapasitas Amazon ECS (p. 75).

Saat pertama kali menggunakan Amazon ECS, klaster default dibuat untuk Anda, tetapi Anda dapatmembuat beberapa klaster di akun agar sumber daya Anda tetap terpisah.

Topik• Konsep klaster (p. 73)• Membuat klaster menggunakan konsol klasik (p. 74)• Penyedia kapasitas Amazon ECS (p. 75)• Memperbarui pengaturan klaster (p. 80)• Menghapus klaster menggunakan konsol klasik (p. 81)• Menghentikan tugas menggunakan konsol baru (p. 81)

Konsep klasterBerikut ini adalah konsep umum tentang klaster Amazon ECS.

• Klaster adalah Wilayah khusus.• Berikut ini adalah kondisi yang mungkin dilakukan klaster.

AKTIF

Kluster siap menerima tugas dan, jika ada, Anda dapat mendaftarkan instance kontainer denganklaster.

PENYEDIAAN

Cluster memiliki penyedia kapasitas yang terkait dengannya dan sumber daya yang dibutuhkanuntuk penyedia kapasitas sedang dibuat.

PEMBATALAN PENYEDIAAN

Cluster memiliki penyedia kapasitas yang terkait dengannya dan sumber daya yang dibutuhkanuntuk penyedia kapasitas sedang dihapus.

GAGAL

Cluster memiliki penyedia kapasitas yang terkait dengannya dan sumber daya yang dibutuhkanuntuk penyedia kapasitas telah gagal dibuat.

TIDAK AKTIF

Klaster telah dihapus. Klaster dengan status INACTIVE mungkin tetap dapat ditemukan di akunAnda selama jangka waktu tertentu. Namun, perilaku ini dapat berubah di masa depan, jadisebaiknya Anda tidak mengandalkan klaster INACTIVE yang tersimpan.

73

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat klaster menggunakan konsol klasik

• Kluster mungkin berisi campuran tugas yang di-hostAWS Fargate, Instans Amazon EC2, atau instanseksternal. Untuk informasi selengkapnya tentang tipe peluncuran, lihat Jenis peluncuran ECS (p. 123).

• Sebuah klaster mungkin berisi campuran dari kedua penyedia kapasitas grup Auto Scaling dan penyediakapasitas Fargate, namun ketika menentukan strategi penyedia kapasitas mereka mungkin hanyaberisi satu atau salah satu darinya tetapi tidak keduanya. Untuk informasi selengkapnya, lihat Penyediakapasitas Amazon ECS (p. 75).

• Kebijakan IAM khusus dapat dibuat untuk mengizinkan atau membatasi akses pengguna ke klastertertentu. Untuk informasi selengkapnya, lihat bagian Contoh klaster (p. 344) di Contoh kebijakanberbasis identitas untuk Layanan Wadah Amazon Elastic (p. 339).

• Cluster dengan tugas Fargate dapat diskalakan menggunakan Service Auto Scaling. Untuk informasiselengkapnya, lihat Penskalaan otomatis layanan (p. 267).

Membuat klaster menggunakan konsol klasikAnda dapat membuat klaster Amazon ECS menggunakan klaster klasikAWS Management Console, sepertiyang dijelaskan dalam topik ini. Sebelum memulai, pastikan Anda telah menyelesaikan langkah-langkah diSiapkan untuk menggunakan Amazon ECS (p. 4).

Wizard pembuatan klaster konsol menyediakan cara sederhana untuk membuat sumber daya yangdibutuhkan oleh klaster Amazon ECS dengan membuatAWS CloudFormationtumpukan. Hal ini jugamemungkinkan Anda menyesuaikan beberapa pilihan konfigurasi klaster umum. Namun, wizard tidakmengizinkan Anda untuk menyesuaikan setiap sumber daya pilihan. Jika kebutuhan Anda melebihiyang didukung dalam wizard ini, pertimbangkan untuk menggunakan arsitektur referensi kami di https://github.com/awslabs/ecs-refarch-cloudformation.

Jika Anda menambahkan atau mengubah sumber daya klaster utama langsung setelah dibuat oleh wizard,Anda mungkin mendapati kesalahan ketika mencoba untuk menghapus klaster. AWS CloudFormationmenganggap ini sebagai drift tumpukan. Untuk informasi lebih lanjut tentang mendeteksi drift pada yangadaAWS CloudFormationtumpukan, lihatMendeteksi Drift pada Seluruh CloudFormation TumpukandiAWSCloudFormationPanduan Pengguna.

Untuk membuat klaster (AWS Management Console)

Sebelum Anda mulai, pastikan Anda membuat pengguna IAM, lalu menetapkan izin IAM yang sesuai.Untuk informasi selengkapnya, silakan lihat the section called “Mmebuat pengguna IAM” (p. 4) dan thesection called “Contoh klaster” (p. 344).

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah untuk digunakan.3. Di panel navigasi, pilih Klaster.4. Pada halaman Klaster, pilih Buat Klaster.5. UntukPilih kompatibilitas klaster, pilihHanya jaringan, kemudian pilihLangkah Selanjutnya.

Important

Penyedia kapasitas FARGATE dan FARGATE_SPOT akan secara otomatis dikaitkan denganklaster. Untuk informasi selengkapnya, lihat Penyedia kapasitas AWS Fargate (p. 77).

6. PadaKonfigurasi klasterhalaman, masukkanNama klaster. Mengizinkan hingga 255 huruf (huruf besardan huruf kecil), angka, tanda hubung, dan garis bawah.

7. Pada bagian Jaringan, konfigurasikan VPC untuk klaster Anda. Anda dapat menyimpan pengaturandefault, atau Anda dapat mengubah pengaturan ini dengan langkah-langkah berikut.

a. (Opsional) Jika Anda memilih untuk membuat VPC baru, untuk Blok CIDR, pilih blok CIDR untukVPC Anda. Untuk informasi lebih lanjut, lihat VPC dan Subnet Anda di Panduan PenggunaAmazon VPC.

74

Amazon ECS Panduan Pengguna untuk AWS FargatePenyedia kapasitas

b. Untuk Subnet, pilih subnet yang akan digunakan untuk VPC Anda. Anda dapat menyimpanpengaturan default atau Anda dapat memodifikasinya untuk memenuhi kebutuhan Anda.

8. DiWawasan Kontainer CloudWatchBagian, pilih apakah akan mengaktifkan Wawasan Kontainer untukklaster. Untuk informasi selengkapnya, lihat Amazon ECS CloudWatch Wawasan Wadah (p. 314).

9. Pilih Buat.

Penyedia kapasitas Amazon ECSPenyedia kapasitas Amazon ECS digunakan untuk mengelola infrastruktur yang digunakan dalamklaster Anda. Setiap klaster dapat memiliki satu atau lebih penyedia kapasitas dan strategi penyediakapasitas default opsional. Strategi penyedia kapasitas menentukan bagaimana tugas-tugas tersebar dipenyedia kapasitas klaster ini. Ketika Anda menjalankan tugas mandiri atau membuat layanan, Anda dapatmenggunakan strategi penyedia kapasitas default klaster atau menentukan strategi penyedia kapasitasyang mengganti strategi default klaster.

Konsep penyedia kapasitasPenyedia kapasitas terdiri dari komponen-komponen berikut.

Penyedia kapasitas

Penyedia kapasitas dikaitkan dengan klaster dan digunakan dalam strategi penyedia kapasitas untukmenentukan infrastruktur yang menjalankan tugas.

Untuk Amazon ECSAWS Fargatepengguna, adaFARGATEdan aFARGATE_SPOTpenyedia kapasitas.Penyedia kapasitas AWS Fargate disimpan dan tidak perlu dibuat juga tidak dapat dihapus. SetelahAnda menghubungkan penyedia kapasitas dengan klaster Anda, Anda dapat menambahkannyake strategi penyedia kapasitas. Untuk informasi selengkapnya, lihat Penyedia kapasitas AWSFargate (p. 77).

Strategi penyedia kapasitas default

SEBUAHStrategi penyedia kapasitas defaultterkait dengan klaster Amazon ECS. Tindakan inimenentukan strategi penyedia kapasitas yang digunakan untuk membuat layanan atau menjalankantugas mandiri di klaster ketika tidak ada strategi penyedia kapasitas kustom atau tipe peluncuran yangditentukan. Hal ini dianggap sebagai praktik terbaik untuk menentukan strategi penyedia kapasitasdefault untuk setiap klaster.

Strategi penyedia kapasitas

Strategi penyedia kapasitas ditentukan saat membuat layanan atau menjalankan tugas mandiri ketikastrategi penyedia kapasitas default untuk sebuah klaster tidak memenuhi kebutuhan Anda.

Hanya penyedia kapasitas yang sudah terkait dengan klaster dan memiliki status ACTIVE atauUPDATING yang dapat digunakan dalam strategi penyedia kapasitas. Penyedia kapasitas dapatdikaitkan dengan klaster baik selama pembuatan klaster atau dengan menggunakan klasterPutClusterCapacityProviders API setelah klaster dibuat.

Sebuah strategi penyedia kapasitas terdiri dari satu penyedia kapasitas atau lebih. Nilai basis danberat opsional dapat ditentukan untuk kontrol penyedia kapasitas yang lebih baik.

Nilai basis menandai berapa banyak tugas, minimal, untuk berjalan pada penyedia kapasitas tertentu.Hanya satu penyedia kapasitas dalam strategi penyedia kapasitas yang dapat memiliki basis yangditentukan.

Nilai berat menandai persentase relatif dari jumlah total tugas diluncurkan yang harus menggunakanpenyedia kapasitas tertentu. Misalnya, jika Anda memiliki strategi yang berisi dua penyedia kapasitas,

75

Amazon ECS Panduan Pengguna untuk AWS FargateJenis penyedia kapasitas

dan keduanya memiliki berat 1, maka ketika basis terpenuhi, tugas akan dibagi secara merata di duapenyedia kapasitas tersebut. Menggunakan logika yang sama, jika Anda menentukan berat 1 untukcapacityProviderA dan berat 4 untuk capacityProviderB, maka setiap satu tugas yang dijalankanmenggunakan capacityProviderA, empat tugas akan menggunakan capacityProviderB.

Jenis penyedia kapasitasInfrastruktur beban kerja Amazon ECS Anda dijalankan pada menentukan jenis penyedia kapasitas yangdapat Anda gunakan.

Untuk beban kerja Amazon ECS yang dihosting di Fargate, penyedia kapasitas standar berikut ini tersedia:

• Jauh• Spot Fargate

Untuk beban kerja Amazon ECS yang dihosting di instans Amazon EC2, Anda harus membuat danmemelihara penyedia kapasitas yang terdiri dari komponen berikut:

• Nama• Grup Auto Scaling• Pengaturan untuk penskalaan terkelola dan perlindungan penghentian terkelola.

Pertimbangan penyedia kapasitasBerikut ini yang harus dipertimbangkan ketika menggunakan penyedia kapasitas:

• Penyedia kapasitas harus dikaitkan dengan klaster sebelum ditentukan dalam strategi penyediakapasitas.

• Ketika Anda menentukan strategi penyedia kapasitas, jumlah penyedia kapasitas yang dapat ditentukanterbatas pada enam penyedia kapasitas.

• Sebuah layanan yang menggunakan penyedia kapasitas grup Auto tidak dapat diperbarui untukmenggunakan penyedia kapasitas Fargate dan sebaliknya.

• Dalam strategi penyedia kapasitas, jika tidak ada nilai weight yang ditentukan untuk penyedia kapasitasdi konsol maka nilai default 1 digunakan. Jika menggunakan API atau AWS CLI, nilai default dari 0digunakan.

• Ketika beberapa penyedia kapasitas ditetapkan dalam strategi penyedia kapasitas, setidaknya satu daripenyedia kapasitas harus memiliki nilai berat lebih besar dari nol dan setiap penyedia kapasitas denganberat 0 tidak akan digunakan untuk menempatkan tugas. Jika Anda menentukan beberapa penyediakapasitas dalam strategi bahwa semua memiliki berat 0, tindakan RunTask atau CreateService apapun yang menggunakan strategi penyedia kapasitas akan gagal.

• Dalam strategi penyedia kapasitas, hanya satu penyedia kapasitas dapat memiliki nilai basis yangditentukan. Jika tidak ditentukan, nilai default 0 digunakan.

• Sebuah klaster mungkin berisi campuran dari kedua penyedia kapasitas grup Auto Scaling dan penyediakapasitas Fargate, namun strategi penyedia kapasitas mungkin hanya berisi satu atau salah satu darinyatetapi tidak keduanya.

• Sebuah klaster mungkin berisi campuran layanan dan tugas mandiri menggunakan keduapenyedia kapasitas dan tipe peluncuran. Layanan dapat diperbarui untuk menggunakan strategipenyedia kapasitas daripada tipe peluncuran, namun Anda harus memaksa deployment baru ketikamelakukannya.

• Saat proteksi pengakhiran terkelola, Anda juga harus menggunakan penskalaan terkelola jika tidak,proteksi penghentian terkelola tidak akan berfungsi.

76

Amazon ECS Panduan Pengguna untuk AWS FargatePenyedia kapasitas AWS Fargate

• Menggunakan penyedia kapasitas tidak didukung saat menggunakan Classic Load Balancer untuklayanan Anda.

Penyedia kapasitas AWS FargateAmazon ECSAWS FargatePenyedia kapasitas memungkinkan Anda untuk menggunakan kapasitas SpotFargate dan Fargate dengan tugas Amazon ECS Anda. Untuk informasi lebih lanjut tentang penyediakapasitas, lihat Penyedia kapasitas Amazon ECS (p. 75).

Dengan Spot Fargate, Anda dapat menjalankan tugas Amazon ECS dengan tarif diskon dibandingkandengan harga Fargate. Spot Fargate menjalankan tugas pada kapasitas komputasi cadangan. Saat AWSmembutuhkan kapasitasnya kembali, tugas Anda akan terganggu dengan peringatan dua menit. Hal inidijelaskan secara detail di bawah ini.

Pertimbangan penyedia kapasitas FargateBerikut ini yang harus dipertimbangkan ketika menggunakan penyedia kapasitas Fargate.

• Penyedia kapasitas Fargate Spot tidak didukung untuk kontainer Windows di Fargate.• Penyedia kapasitas Fargate Spot tidak didukung untuk tugas Linux dengan arsitektur ARM64, Fargate

Spot hanya mendukung tugas Linux dengan arsitektur X86_64.• Penyedia kapasitas Fargate dan Fargate tidak perlu dibuat. Penyedia kapasitas tersebut tersedia untuk

semua akun dan hanya perlu dikaitkan dengan klaster agar tersedia untuk digunakan.• Untuk mengaitkan penyedia kapasitas Fargate dan Fargate ke klaster yang ada, Anda harus

menggunakan API Amazon ECS atauAWS CLI. Untuk informasi selengkapnya, lihat Menambahkanpenyedia kapasitas Fargate ke klaster yang ada (p. 79).

• Penyedia kapasitas Fargate dan Fargate dicadangkan dan tidak dapat dihapus. Anda dapatmemisahkannya dari klaster menggunakanPutClusterCapacityProvidersAPI.

• Saat klaster baru dibuat menggunakan konsol klasik Amazon ECS besertaHanya jaringanclusterTemplate,FARGATEdanFARGATE_SPOTpenyedia kapasitas dikaitkan dengan cluster baru secaraotomatis.

• Menggunakan Spot Fargate mengharuskan tugas Anda menggunakan platform versi 1.3.0 atau yanglebih baru (untuk Linux). Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

• Ketika tugas yang menggunakan penyedia kapasitas Fargate dan Fargate dihentikan, kejadianperubahan status tugas dikirim ke Amazon EventBridge. Alasan berhenti menggambarkan penyebabnya.Untuk informasi selengkapnya, lihat Peristiwa perubahan status tugas (p. 305).

• Sebuah klaster mungkin berisi campuran dari penyedia kapasitas grup Fargate dan Auto Scaling, namunstrategi penyedia kapasitas mungkin hanya berisi penyedia kapasitas grup Fargate atau Auto Scaling,tetapi tidak keduanya. Untuk informasi selengkapnya, lihatPenyedia Kapasitas Grup Auto ScalingdidalamPanduan Pengembang Amazon Elastic Container Service.

Menangani pemberitahuan pengakhiran Fargate SpotKetika tugas yang menggunakan kapasitas Fargate Spot dihentikan karena gangguan Spot, peringatan duamenit dikirim sebelum tugas dihentikan. Peringatan dikirim sebagai peristiwa perubahan status tugas keAmazon EventBridge dan sinyal SIGTERM untuk tugas yang sedang berjalan. Saat menggunakan FargateSpot sebagai bagian dari layanan, penjadwal layanan akan menerima sinyal gangguan dan mencoba untukmeluncurkan tugas tambahan pada Fargate Spot jika kapasitas tersedia. Layanan yang hanya mempunyaisatu tugas akan terganggu sampai kapasitas tersedia.

Untuk memastikan bahwa kontainer Anda keluar dengan baik sebelum tugas berhenti, hal berikut ini dapatdikonfigurasi:

77

Amazon ECS Panduan Pengguna untuk AWS FargatePenyedia kapasitas AWS Fargate

• Nilai stopTimeout selama 120 detik atau kurang dapat ditentukan dalam ketentuan kontainer yangdigunakan oleh tugas. Menentukan nilai stopTimeout memberikan Anda waktu diantara kejadianperubahan status tugas diterima dengan saat kontainer dipaksa untuk berhenti. Jika Anda tidakmenentukan nilai stopTimeout, nilai default 30 detik akan digunakan. Untuk informasi selengkapnya,lihat Waktu habis kontainer (p. 116).

• Sinyal SIGTERM harus diterima dari dalam kontainer untuk melakukan tindakan pembersihan.Kegagalan untuk memproses sinyal ini akan menghasilkan tugas untuk menerima sinyal SIGKILL setelahstopTimeout dikonfigurasi dan dapat mengakibatkan kehilangan data atau korupsi data.

Berikut ini adalah cuplikan dari kejadian perubahan status tugas yang menampilkan alasan berhenti danmenghentikan kode untuk gangguan Fargate Spot.

{ "version": "0", "id": "9bcdac79-b31f-4d3d-9410-fbd727c29fab", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "resources": [ "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6f1cebef" ], "detail": { "clusterArn": "arn:aws:ecs:us-east-1:111122223333:cluster/default", "createdAt": "2016-12-06T16:41:05.702Z", "desiredStatus": "STOPPED", "lastStatus": "RUNNING", "stoppedReason": "Your Spot Task was interrupted.", "stopCode": "TerminationNotice", "taskArn": "arn:aws:ecs:us-east-1:111122223333:task/b99d40b3-5176-4f71-9a52-9dbd6fEXAMPLE", ... }}

Berikut ini adalah pola peristiwa yang digunakan untuk membuat sebuah EventBridge aturan untukperistiwa perubahan status tugas Amazon ECS. Anda dapat secara opsional menentukan sebuah klasterdi bidang detail untuk menerima kejadian perubahan status tugas. Untuk informasi selengkapnya,lihatMembuat EventBridge Aturandi dalamAmazon EventBridge Panduan Pengguna.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Task State Change" ], "detail": { "clusterArn": [ "arn:aws:ecs:us-west-2:111122223333:cluster/default" ] }}

Membuat klaster baru yang menggunakan penyedia kapasitasFargateKetika klaster Amazon ECS baru dibuat, Anda dapat menentukan satu penyedia kapasitas atau beberapauntuk dikaitkan dengan klaster tersebut. Penyedia kapasitas digunakan untuk menentukan strategipenyedia kapasitas yang menentukan infrastruktur di tempat tugas Anda berjalan.

78

Amazon ECS Panduan Pengguna untuk AWS FargatePenyedia kapasitas AWS Fargate

Saat menggunakanAWS Management Console, yangFARGATEdanFARGATE_SPOTpenyedia kapasitasdikaitkan dengan klaster secara otomatis saat menggunakanHanya jaringantemplat klaster. Untuk informasiselengkapnya, lihat Membuat klaster menggunakan konsol klasik (p. 74).

Untuk membuat klaster Amazon ECS menggunakan penyedia kapasitas Fargate(AWS CLI)

Gunakan perintah berikut untuk membuat klaster baru dan kaitkan penyedia kapasitas Fargate dan Fargatedengannya.

• buat-klaster (AWS CLI)

aws ecs create-cluster \ --cluster-name FargateCluster \ --capacity-providers FARGATE FARGATE_SPOT \ --region us-west-2

Menambahkan penyedia kapasitas Fargate ke klaster yang adaAnda dapat memperbarui kolam penyedia kapasitas yang tersedia untuk klaster Amazon ECS yang adamenggunakan klaster Amazon ECS yang adaPutClusterCapacityProvidersAPI.

Menambahkan penyedia kapasitas Fargate atau Fargate ke klaster yang ada tidak didukung dalamAWSManagement Console. Anda harus membuat klaster Fargate baru di konsol atau menambahkan penyediakapasitas Fargate atau Fargate Spot ke klaster yang ada menggunakan API Amazon ECS atauAWS CLI.

Untuk menambahkan penyedia kapasitas Fargate ke klaster yang ada (AWS CLI)

Gunakan perintah berikut untuk menambahkan penyedia kapasitas Fargate dan Fargate ke klaster yangada. Jika klaster tertentu memiliki penyedia kapasitas yang ada terkait dengan itu, Anda harus menentukansemua penyedia kapasitas yang ada selain yang baru yang ingin Anda tambahkan. Penyedia kapasitasyang ada terkait dengan klaster yang dihilangkan dari klasterPutClusterCapacityProvidersPanggilanAPI akan dipisahkan dari cluster. Anda hanya dapat memisahkan penyedia kapasitas yang ada dari klasterjika tidak sedang digunakan oleh tugas-tugas yang ada. Aturan yang sama berlaku untuk strategi penyediakapasitas default klaster. Jika klaster memiliki strategi penyedia kapasitas default yang ada yang telahditentukan, maka harus disertakan dalamPutClusterCapacityProvidersPanggilan API. Jika tidak,mak akan ditimpa.

• pilih-klaster-kapasitas-penyedia (AWS CLI)

aws ecs put-cluster-capacity-providers \ --cluster FargateCluster \ --capacity-providers FARGATE FARGATE_SPOT existing_capacity_provider1 existing_capacity_provider2 \ --default-capacity-provider-strategy existing_default_capacity_provider_strategy \ --region us-west-2

Menjalankan tugas menggunakan penyedia kapasitas FargateAnda dapat menjalankan tugas atau membuat layanan menggunakan penyedia kapasitas Fargate atauFargate dengan menentukan strategi penyedia kapasitas. Jika tidak ada strategi penyedia kapasitas yangdisediakan, strategi penyedia kapasitas default klaster digunakan.

Menjalankan tugas menggunakan penyedia kapasitas Fargate atau Fargate didukung dalamAWSManagement Console. Anda harus menambahkan penyedia kapasitas Fargate atau Fargate ke strategi

79

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui pengaturan klaster

penyedia kapasitas default klaster jika menggunakanAWS Management Console. Saat menggunakanAPI Amazon ECS atauAWS CLIAnda dapat menentukan strategi penyedia kapasitas atau menggunakanstrategi penyedia kapasitas default klaster.

Untuk menjalankan tugas menggunakan penyedia kapasitas Fargate (AWS CLI)

Gunakan perintah berikut untuk menjalankan tugas menggunakan penyedia kapasitas Fargate danFargate.

• jalankan-tugas (AWS CLI)

aws ecs run-task \ --capacity-provider-strategy capacityProvider=FARGATE,weight=1 capacityProvider=FARGATE_SPOT,weight=1 \ --cluster FargateCluster \ --task-definition task-def-family:revision \ --network-configuration "awsvpcConfiguration={subnets=[string,string],securityGroups=[string,string],assignPublicIp=string}" \ --count integer \ --region us-west-2

Note

Saat menjalankan tugas mandiri menggunakan Fargate Spot, penting untuk dicatat bahwa tugasdapat terganggu sebelum dapat menyelesaikan dan keluar. Oleh karena itu penting bahwa Andamengode aplikasi Anda untuk keluar secara perlahan dalam waktu 2 menit ketika menerima sinyalSIGTERM dan dapat dilanjutkan. Untuk informasi selengkapnya, lihat Menangani pemberitahuanpengakhiran Fargate Spot (p. 77).

Membuat layanan menggunakan penyedia kapasitas Fargate (AWS CLI)

Gunakan perintah berikut untuk membuat layanan menggunakan penyedia kapasitas Fargate dan Fargate.

• buat-layanan (AWS CLI)

aws ecs create-service \ --capacity-provider-strategy capacityProvider=FARGATE,weight=1 capacityProvider=FARGATE_SPOT,weight=1 \ --cluster FargateCluster \ --service-name FargateService \ --task-definition task-def-family:revision \ --network-configuration "awsvpcConfiguration={subnets=[string,string],securityGroups=[string,string],assignPublicIp=string}" \ --desired-count integer \ --region us-west-2

Memperbarui pengaturan klasterPengaturan klaster memungkinkan Anda mengonfigurasi parameter untuk klaster Amazon ECS yangada. Anda dapat memperbarui pengaturan klaster menggunakan API Amazon ECS,AWS CLIatau SDK.Saat ini, satu-satunya pengaturan klaster yang didukungcontainerInsights, yang memungkinkanAnda menghidupkan atau mematikan CloudWatch Wawasan Kontainer untuk klaster yang ada. Untukmengaktifkan CloudWatch Wawasan Kontainer untuk klaster baru, yang dapat dilakukan diAWS

80

Amazon ECS Panduan Pengguna untuk AWS FargateMenghapus klaster menggunakan konsol klasik

Management Consoleselama pembuatan klaster. Untuk informasi selengkapnya, lihat Membuat klastermenggunakan konsol klasik (p. 74).

Important

Saat ini, jika Anda menghapus klaster yang sudah ada yang tidak memiliki Wawasan Kontaineryang diaktifkan dan kemudian membuat klaster baru dengan nama yang sama dengan WawasanKontainer yang diaktifkan, Wawasan Kontainer tidak akan sepenuhnya diaktifkan. Jika Andaingin mempertahankan nama yang sama untuk klaster yang ada dan mengaktifkan WawasanKontainer, Anda harus menunggu 7 hari sebelum Anda dapat membuatnya kembali.

Untuk memperbarui pengaturan untuk klaster (AWS CLI)

Gunakan salah satu perintah berikut untuk memperbarui pengaturan untuk klaster.

• perbarui-klaster-pengaturan (AWS CLI)

aws ecs update-cluster-settings --cluster cluster_name_or_arn --settings name=containerInsights,value=enabled|disabled --region us-east-1

Menghapus klaster menggunakan konsol klasikJika Anda selesai menggunakan klaster, Anda dapat menghapusnya. Setelah Anda menghapus cluster, itutransisi keINACTIVEstatus. Klaster dengan status INACTIVE mungkin tetap dapat ditemukan di akun Andaselama jangka waktu tertentu. Namun, perilaku ini dapat berubah di masa depan, jadi sebaiknya Anda tidakmengandalkan klaster INACTIVE yang tersimpan.

Saat Anda menghapus klaster di konsol Amazon ECS, sumber daya terkait yang dihapus berbeda-bedatergantung pada bagaimana klaster dibuat. Kondisi ini dibahas di langkah 5 pada prosedur berikut.

Jika klaster Anda dibuat dengan AWS Management Console maka tumpukan AWS CloudFormation yangdibuat untuk klaster Anda juga dihapus ketika Anda menghapus klaster Anda. Jika Anda menambahkanatau mengubah sumber daya klaster utama, Anda mungkin mendapati kesalahan ketika mencobauntuk menghapus klaster. AWS CloudFormation menyebutnya sebagai drift tumpukan. Untuk informasilebih lanjut tentang mendeteksi drift pada yang adaAWS CloudFormationtumpukan, lihatMendeteksipenyimpangan di seluruhAWS CloudFormationtumpukandiAWS CloudFormationPanduan Pengguna.

Menghapus klaster menggunakan konsol klasik

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah untuk digunakan.3. Di panel navigasi, pilih Klaster.4. Pada halaman Klaster, pilih klaster yang akan dihapus.5. Di bagian kanan atas halaman, pilih Hapus Klaster. Anda melihat petunjuk konfirmasi.6. Dalam kotak konfirmasi, masukkan hapus saya.

Menghentikan tugas menggunakan konsol baruJika Anda tidak lagi perlu menjalankan tugas, Anda dapat menggunakan konsol baru untuk menghentikansatu tugas atau beberapa tugas.

Untuk menghentikan tugas menggunakan konsol baru

1. Buka konsol ECS Amazon di https://console.aws.amazon.com/ecs/.

81

Amazon ECS Panduan Pengguna untuk AWS FargateMenghentikan tugas menggunakan konsol baru

2. Di panel navigasi, pilih Kluster.3. PadaklasterHalaman, pilih klaster.4. PadaKlaster:namahalaman, pilihTugastab.5. Lakukan salah satu operasi berikut:

• Untuk menghentikan satu atau beberapa tugas, pilih tugasnya, lalu pilihBerhenti,Berhenti dipilih.• Untuk menghentikan semua tugas, pilihBerhenti,Hentikan semua.

6. PadaHentikan halaman konfirmasi, masukkanBerhenti, dan kemudian pilihBerhenti.

82

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan ketentuan tugas Fargate

Definisi tugas Amazon ECSPersyaratan tugas diperlukan untuk menjalankan kontainer Docker di Amazon ECS. Berikut ini adalahbeberapa parameter yang dapat Anda tentukan dalam ketentuan tugas:

• Gambar Docker untuk digunakan dengan setiap kontainer dalam tugas Anda• Berapa banyak CPU dan memori untuk digunakan dengan setiap tugas• Jenis peluncuran yang akan digunakan, yang menentukan infrastruktur yang di-hosting tugas Anda• Sistem operasi dari wadah bahwa tugas berjalan pada• Mode jaringan Docker digunakan untuk kontainer dalam tugas.• Konfigurasi pencatatan digunakan untuk tugas Anda• Apakah tugas terus berjalan jika kontainer selesai atau gagal• Perintah yang dijalankan kontainer saat dimulai• Volume data apa pun yang digunakan dengan kontainer dalam tugas• Peran IAM yang digunakan tugas Anda

Seluruh tumpukan aplikasi Anda tidak perlu berada pada ketentuan tugas tunggal, dan dalam banyakkasus tidak ada pada ketentuan tugas tunggal. Aplikasi Anda dapat menjangkau beberapa ketentuantugas. Anda dapat melakukan ini dengan menggabungkan kontainer terkait ke ketentuan tugas merekasendiri, masing-masing mewakili komponen tunggal. Untuk informasi selengkapnya, lihat Arsitekturaplikasi (p. 88).

Topik• Pertimbangan ketentuan tugas Fargate (p. 83)• Arsitektur aplikasi (p. 88)• Membuat definisi tugas menggunakan konsol klasik (p. 89)• Parameter ketentuan tugas (p. 95)• Jenis peluncuran ECS (p. 123)• Bekerja dengan beban kerja ARM 64-bit di Amazon ECS (p. 124)• Menggunakan volume data dalam tugas (p. 126)• Jaringan tugas Fargate (p. 135)• Menggunakan driver log awslogs (p. 138)• Perutean log kustom (p. 143)• Autentikasi registri privat untuk tugas (p. 173)• Menentukan data sensitif (p. 175)• Menentukan variabel lingkungan (p. 186)• Contoh ketentuan tugas (p. 188)• Memperbarui ketentuan tugas menggunakan konsol klasik (p. 194)• Revisi ketentuan tugas (p. 194)

Pertimbangan ketentuan tugas FargateTugas yang menggunakan tipe peluncuran Fargate tidak mendukung semua parameter ketentuan tugasAmazon ECS yang tersedia. Beberapa parameter tidak didukung sama sekali, dan parameter lainnyaberperilaku berbeda untuk tugas Fargate.

83

Amazon ECS Panduan Pengguna untuk AWS FargateMode jaringan

Parameter ketentuan tugas berikut tidak valid dalam 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

Important

Jika salah satu parameter ketentuan tugas tidak didukung, subflag untuk parameter tersebutkemungkinan juga tidak didukung.

Parameter ketentuan tugas berikut berperilaku berbeda untuk tugas Fargate:

• Saat menggunakanlogConfiguration, driver log yang didukung untuk tugas Fargateadalahawslogs,splunk, danawsfirelensdriver log.

Tugas Windows tidak mendukungawsfirelensdriver log.• Saat menggunakan linuxParameters untuk capabilities, parameter drop dapat digunakan, tetapi

parameter add tidak didukung.• ParameterhealthCheckParameter didukung hanya untuk tugas Fargate yang menggunakan platform

versi 1.1.0 atau yang lebih baru.• Jika Anda menggunakanportMappingsparameter, tentukancontainerPortsaja. Anda dapat

menyimpanhostPortkosong atau atur ke nilai yang sama seperticontainerPort.• ParameteroperatingSystemFamilyparameter diperlukan untuk tugas-tugas yang berjalan pada

kontainer Linux dan wadah Windows.

Untuk memastikan bahwa ketentuan tugas Anda memvalidasi untuk digunakan dengan tipe peluncuranFargate, 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 jaringanDefinisi tugas Fargate mengharuskan mode jaringan diatur keawsvpc. Mode jaringan awsvpcmenyediakan setiap tugas dengan antarmuka jaringan elastisnya sendiri. Konfigurasi jaringanjuga diperlukan ketika membuat layanan atau menjalankan tugas secara manual. Untuk informasi

84

Amazon ECS Panduan Pengguna untuk AWS FargateTugas CPU dan memori

selengkapnya, lihatJaringan tugas FargatediPanduan Pengguna Amazon Elastic Container ServiceAWSFargate.

Tugas CPU dan memoriUntuk ketentuan tugas Fargate, Anda diminta untuk menentukan CPU dan memori pada tingkat tugas.Anda juga dapat menentukan CPU dan memori di tingkat kontainer untuk tugas Fargate. Namun, hal itutidak diperlukan. Untuk sebagian besar kasus penggunaan, tidak masalah untuk menentukan sumber dayaini hanya pada tingkat tugas. Tabel berikut menunjukkan kombinasi yang valid dari tingkat tugas CPU danmemori.

Nilai CPU Nilai memori

256 (.25 vCPU) 0,5 GB, 1 GB, 2 GB

512 (0,5 vCPU) 1 GB, 2 GB, 3 GB, 4 GB

1024 (1 vCPU) 2 GB, 3 GB, 4 GB, 5 GB, 6 GB, 7 GB, 8 GB

2048 (2 vCPU) Antara 4 GB dan 16 GB dalam tambahan 1-GB

4096 (4 vCPU) Antara 8 GB dan 30 GB dalam tambahan 1-GB

MencatatDefinisi tugas Fargate mendukungawslogs,splunkdanawsfirelenslog driver hanya untuk konfigurasilog. 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 lebih lanjut tentang cara Anda dapat menggunakanawslogslog driver dalam definisi tugasuntuk mengirim log kontainer Anda ke CloudWatch Log, lihatMenggunakan driver log awslogs (p. 138).

Untuk informasi selengkapnya tentang penggunaan driver pencatatan awsfirelens dalam ketentuantugas, lihat Perutean log kustom (p. 143).

Peran IAM eksekusi tugas Amazon ECSAnda dapat menentukan peran IAM eksekusi tugas opsional dengan Fargate untuk memungkinkantugas Fargate Anda melakukan panggilan API ke Amazon ECR. API panggilan menarik gambarkontainer. Mereka juga memanggil CloudWatch untuk menyimpan log aplikasi kontainer. Untuk informasiselengkapnya, lihat Peran IAM eksekusi tugas ECS Amazon (p. 363).

Contoh ketentuan tugasBerikut ini adalah contoh ketentuan tugas yang menggunakan kontainer Linux pada tipe peluncuranFargate untuk mengatur server web:

{

85

Amazon ECS Panduan Pengguna untuk AWS FargateTugas ssiksaan

"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" ]}

Tugas ssiksaanUntuk tugas Amazon ECS di Fargate, jenis penyimpanan berikut didukung:

• Volume Amazon EFS untuk penyimpanan persisten. Untuk informasi selengkapnya, lihat VolumeAmazon EFS (p. 128).

• Penyimpanan sementara untuk penyimpanan nonpersistent.

Jika disediakan, setiap tugas Amazon ECS yang di-hosting di Fargate menerima penyimpanan sementaraberikut. Konfigurasi penyimpanan sementara tergantung pada versi platform yang digunakan tugas.Setelah tugas Fargate berhenti, penyimpanan fana akan dihapus. Untuk informasi selengkapnya tentangbatas layanan default Amazon ECS, lihatService Quotas Amazon ECS (p. 287).

Note

ParameterhostdansourcePathparameter tidak didukung untuk tugas Fargate.

86

Amazon ECS Panduan Pengguna untuk AWS FargateTugas ssiksaan

Versi platform FargateTugas Fargate menggunakan platform 1.4.0 atau yang lebih baruSemua Amazon ECS pada tugas Fargate menggunakan versi platform1.4.0atau kemudian menerimaminimal 20 GiB penyimpanan fana. Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuktugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yangharus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainerAnda dari jumlah total.

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

Tugas Fargate menggunakan platform 1.3.0 atau lebih lamaUntuk tugas Fargate Amazon ECS menggunakan platform versi 1.3.0 atau yang lebih lama, setiap tugasmenerima penyimpanan sementara berikut.

• Penyimpanan lapisan Docker 10 GBNote

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 WindowsTugas Fargate menggunakan platform 1.0.0 atau yang lebih baruSemua Amazon ECS pada tugas Fargate menggunakan versi platform1.0.0atau kemudian menerimaminimal 20 GiB penyimpanan fana. Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuktugas disimpan di penyimpanan sementara. Untuk menentukan jumlah total penyimpanan sementara yangharus digunakan tugas Anda, Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainerAnda dari jumlah total.

Penyimpanan sementara dienkripsi dengan algoritma enkripsi AES-256 menggunakanAWS Fargate-managed kunci enkripsi.

Contoh ketentuan tugasDalam contoh ini, Anda memiliki dua kontainer aplikasi yang perlu mengakses lokasi penyimpanan filescratch 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. DicontainerDefinitionsbagian, membuat ketentuan kontainer aplikasi sehingga merekamemasang penyimpanan nonpersistent.

87

Amazon ECS Panduan Pengguna untuk AWS FargateArsitektur aplikasi

"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" } ] } ]

Arsitektur aplikasiAnda dapat mengikuti salah satu dari dua model berikut untuk menjalankan kontainer Anda:

• Fargate launch type - Ini adalah opsi bayar sesuai penggunaan server. Anda dapat menjalankankontainer tanpa harus mengelola infrastruktur Anda.

• Jenis peluncuran EC2 - Mengkonfigurasi dan menyebarkan instans EC2 di klaster Anda untukmenjalankan kontainer Anda.

Cara Anda mereferensikan aplikasi Anda di Amazon ECS bergantung pada beberapa faktor, dengan tipepeluncuran yang Anda gunakan menjadi pembeda utama. Kami memberikan panduan sebagai berikutyang harus membantu dalam proses.

Menggunakan jenis peluncuran FargateJenis peluncuran Fargate cocok untuk beban kerja berikut:

• Beban kerja besar yang membutuhkan overhead operasional rendah• Beban kerja kecil yang sesekali meledak• Beban kerja kecil• Beban kerja Batch

Saat merancang aplikasi Anda untuk berjalan di Amazon ECS menggunakanAWS Fargate, Andaharus memutuskan antara menyebarkan beberapa kontainer ke dalam definisi tugas yang sama danmenyebarkan kontainer secara terpisah dalam beberapa definisi tugas.

88

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat definisi tugas menggunakan konsol klasik

Jika persyaratan berikut ini diperlukan, kami merekomendasikan untuk menerapkan beberapa kontainer keketentuan tugas yang sama:

• Kontainer Anda berbagi siklus hidup umum (yaitu, mereka diluncurkan dan diakhiri bersama-sama).• Kontainer Anda harus berjalan pada host dasar yang sama (yaitu, satu kontainer mereferensikan yang

lain pada port localhost).• Anda memerlukan bahwa kontainer Anda berbagi sumber daya.• Kontainer Anda berbagi volume data.

Jika kondisi ini tidak diperlukan, sebaiknya gunakan container secara terpisah dalam beberapa definisitugas. Hal ini karena, dengan demikian, Anda dapat menskalakan, menyediakan, dan mencabut ketentuansecara terpisah.

Membuat definisi tugas menggunakan konsol klasikImportant

Amazon ECS telah menyediakan pengalaman konsol baru untuk membuat ketentuan tugas. Untukinformasi selengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Sebelum menjalankan Docker kontainer di Amazon ECS, Anda harus terlebih dahulu membuat ketentuantugas. Ketika Anda membuat ketentuan tugas, Anda dapat menggunakannya untuk menentukan beberapakontainer dan volume data. Untuk informasi selengkapnya tentang parameter yang tersedia untukketentuan tugas, lihatParameter ketentuan tugas (p. 95).

Untuk membuat ketentuan tugas baru (konsol Amazon ECS klasik)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih ketentuan tugas, Buat ketentuan tugas baru.3. Pada halaman Pilih kompatibilitas tipe peluncuran, pilih FARGATE dan kemudian Langkah

selanjutnya.4. (Opsional) Jika Anda memiliki representasi JSON ketentuan tugas Anda, selesaikan langkah-langkah

berikut:

a. Pada halaman Mengonfigurasi tugas dan ketentuan kontainer, gulir ke bagian bawah halamandan pilih Mengonfigurasi melalui JSON.

b. Tempelkan ketentuan tugas Anda JSON ke area teks dan pilih Simpan.c. Verifikasi informasi Anda dan pilih Buat.

Gulir ke bagian bawah halaman dan pilih Mengonfigurasi melalui JSON.5. UntukNama Definisi Tugas, ketik nama untuk ketentuan tugas Anda. Mengizinkan hingga 255 huruf

(huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah.6. UntukKeluarga sistem operasi, pilih sistem operasi kontainer.7. UntukPeran eksekusi tugas, pilih peran eksekusi tugas Anda atau pilihMembuat peran barusehingga

konsol dapat membuat satu untuk Anda. Untuk informasi selengkapnya, lihat Peran IAM eksekusitugas ECS Amazon (p. 363).

8. UntukUkuran tugas, pilih nilai untukMemori tugas (GB)danTugas CPU (vCPU). Tabel di bawahmenunjukkan kombinasi yang valid.

89

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat definisi tugas menggunakan konsol klasik

Nilai CPU Nilai memori Sistem operasi yang didukunguntuk 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, Jendela

2048 (2 vCPU) Antara 4 GB dan 16 GB dalamkenaikan 1 GB

Linux, Jendela

4096 (4 vCPU) Antara 8 GB dan 30 GB dalamkenaikan 1 GB

Linux, Jendela

9. Untuk setiap kontainer dalam ketentuan tugas Anda, selesaikan langkah-langkah berikut:

a. Pilih Tambahkan kontainer.b. Isi setiap bidang yang diperlukan dan bidang opsional apa pun untuk digunakan dalam ketentuan

kontainer Anda. Lebih banyak parameter ketentuan kontainer tersedia di menu Konfigurasikontainer lanjutan. Untuk informasi selengkapnya, lihat Parameter ketentuan tugas (p. 95).

c. Pilih Tambahkan untuk menambahkan kontainer Anda ke ketentuan tugas.10. (Opsional) UntukIntegrasi layanan, untuk mengkonfigurasi parameter untuk integrasi App Mesh,

pilihAktifkan integrasi App Meshdan kemudian, lakukan hal berikut:

a. UntukNama mesh, pilih mesh layanan App Mesh yang ada untuk digunakan. Jika Anda samasekali tidak melihat jerat yang terdaftar, Anda harus membuatnya terlebih dahulu. Untuk informasiselengkapnya, lihatMesh layanandiAWS App MeshPanduan Pengguna.

Note

Opsi ini tidak tersedia untuk kontainer Windows di Fargate.b. UntukTitik akhir aplikasi, pilih salah satu opsi berikut.

• Simpul virtual— Masukkan atau pilih informasi berikut.• UntukNama kontainer aplikasi, pilih nama kontainer yang digunakan untuk integrasi App

Mesh. Wadah ini harus sudah didefinisikan dalam definisi tugas.• UntukNama simpul virtual, pilih node virtual App Mesh yang ada untuk digunakan. Jika Anda

sama sekali belum melihat node virtual, Anda harus membuatnya terlebih dahulu. Untukinformasi selengkapnya, lihatSimpul virtualdiAWS App MeshPanduan Pengguna.

• UntukPort simpul virtual- Pra-diisi dengan port pendengar diatur pada node virtual di AppMesh.

• Gateway virtual— Masukkan atau pilih informasi berikut.• UntukNama gateway virtual, pilih gateway virtual App Mesh yang ada untuk digunakan.

Jika Anda tidak melihat gateway virtual apa pun yang terdaftar, Anda harus membuatnyaterlebih dahulu. Untuk informasi selengkapnya, lihatGateway virtualdiAWS App MeshPanduanPengguna.

• UntukPort gateway virtual- Pra-diisi dengan port pendengar diatur pada gateway virtual di AppMesh.

c. UntukCitra UtusanENTER840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod untuk semua wilayah kecualime-south-1danap-east-1. Anda dapatmenggantius-west-2dengan Wilayah apa pun kecualime-south-1danap-east-1. Jika aplikasiAnda berada di salah satu daerah ini, maka Anda juga perlu mengganti840364872350dengan

90

Amazon ECS Panduan Pengguna untuk AWS FargateTemplat ketentuan tugas

nilai yang sesuai untuk Wilayah Anda. Untuk informasi selengkapnya, lihatCitra UtusandiAWS AppMeshPanduan Pengguna.

d. PilihTerapkandan kemudian pilihKonfirmasi. Ini akan menambahkan wadah proxy Utusan kedefinisi tugas, serta pengaturan untuk mendukungnya. Jika Anda memilihSimpul virtual, itu jugaakan mengisi secara otomatis App MeshKonfigurasi proksipengaturan untuk langkah berikutnya.Jika Anda memilihGateway virtual, makaKonfigurasi proksidinonaktifkan, karena tidak digunakanuntuk gateway virtual.

11. (Opsional) Jika Anda memilihSimpul virtualdiIntegrasi layanan, maka untukKonfigurasi proksi,memverifikasi semua nilai pra-penduduknya. Untuk informasi selengkapnya tentang bidang ini, lihattab JSON diPembaruan layanan.

12. (Opsional) UntukIntegrasi Router Log, Anda dapat menambahkan konfigurasi routing log kustom.PilihAktifkan integrasi FireLensdan kemudian, lakukan hal berikut:

Note

Opsi ini tidak tersedia untuk kontainer Windows di Fargate.

a. UntukJenis, pilih tipe router log yang akan digunakan.b. UntukCitra, ketik URI gambar untuk wadah router log Anda. Jika Anda memilihfluentbitlog

jenis router,Citrabidang pra-populates denganAWSuntuk gambar Fluent Bit. Untuk informasiselengkapnya, lihat MenggunakanAWSuntukFluent Bitgambar (p. 147).

c. Pilih Terapkan. Hal ini menciptakan wadah log router baru untuk definisi tugasbernamalog_router, dan menerapkan pengaturan untuk mendukungnya. Jika Anda membuatperubahan pada bidang integrasi router log, pilihTerapkanlagi untuk memperbarui FireLenskontainer.

13. (Opsional) Untuk menentukan volume data untuk tugas Anda, pilih Tambahkan volume. Untukinformasi selengkapnya, lihat Menggunakan volume data dalam tugas (p. 126).

• UntukNama, ketikkan nama untuk volume Anda. Mengizinkan hingga 255 huruf (huruf besar danhuruf kecil), angka, tanda hubung, dan garis bawah.

14. DiTagbagian, tentukan kunci dan nilai untuk setiap tanda yang akan dikaitkan dengan ketentuan tugas.Untuk informasi selengkapnya, lihatMenandai Sumber Daya Amazon ECS.

15. Pilih Buat.

Templat ketentuan tugasTemplat ketentuan tugas kosong ditampilkan sebagai berikut. Anda dapat menggunakan templat ini untukmembuat ketentuan tugas Anda, yang kemudian dapat ditempel ke area input JSON konsol tersebutatau disimpan ke file dan digunakan dengan pilihan AWS CLI --cli-input-json. Untuk informasiselengkapnya, lihat Parameter ketentuan tugas (p. 95).

Important

Anda harus menyertakanoperatingSystemFamilyparameter dengan salah satu nilai berikut:

• LINUX

• WINDOWS_SERVER_2019_FULL

• WINDOWS_SERVER_2019_CORE

{ "family": "", "runtimePlatform": {

91

Amazon ECS Panduan Pengguna untuk AWS FargateTemplat ketentuan tugas

"operatingSystemFamily": "" }, "taskRoleArn": "", "executionRoleArn": "", "networkMode": "awsvpc", "platformFamily": "", "containerDefinitions": [ { "name": "", "image": "", "repositoryCredentials": {"credentialsParameter": ""}, "cpu": 0, "memory": 0, "memoryReservation": 0, "links": [""], "portMappings": [ { "containerPort": 0, "hostPort": 0, "protocol": "tcp" } ], "essential": true, "entryPoint": [""], "command": [""], "environment": [ { "name": "", "value": "" } ], "environmentFiles": [ { "value": "", "type": "s3" } ], "mountPoints": [ { "sourceVolume": "", "containerPath": "", "readOnly": true } ], "volumesFrom": [ { "sourceContainer": "", "readOnly": true } ], "linuxParameters": { "capabilities": { "add": [""], "drop": [""] }, "devices": [ { "hostPath": "", "containerPath": "", "permissions": ["read"] } ], "initProcessEnabled": true, "sharedMemorySize": 0, "tmpfs": [ {

92

Amazon ECS Panduan Pengguna untuk AWS FargateTemplat ketentuan tugas

"containerPath": "", "size": 0, "mountOptions": [""] } ], "maxSwap": 0, "swappiness": 0 }, "secrets": [ { "name": "", "valueFrom": "" } ], "dependsOn": [ { "containerName": "", "condition": "HEALTHY" } ], "startTimeout": 0, "stopTimeout": 0, "hostname": "", "user": "", "workingDirectory": "", "disableNetworking": true, "privileged": true, "readonlyRootFilesystem": true, "dnsServers": [""], "dnsSearchDomains": [""], "extraHosts": [ { "hostname": "", "ipAddress": "" } ], "dockerSecurityOptions": [""], "interactive": true, "pseudoTerminal": true, "dockerLabels": {"KeyName": ""}, "ulimits": [ { "name": "msgqueue", "softLimit": 0, "hardLimit": 0 } ], "logConfiguration": { "logDriver": "awslogs", "options": {"KeyName": ""}, "secretOptions": [ { "name": "", "valueFrom": "" } ] }, "healthCheck": { "command": [""], "interval": 0, "timeout": 0, "retries": 0, "startPeriod": 0 }, "systemControls": [ {

93

Amazon ECS Panduan Pengguna untuk AWS FargateTemplat ketentuan tugas

"namespace": "", "value": "" } ], "resourceRequirements": [ { "value": "", "type": "GPU" } ], "firelensConfiguration": { "type": "fluentd", "options": {"KeyName": ""} } } ], "volumes": [ { "name": "", "host": {"sourcePath": ""}, "dockerVolumeConfiguration": { "scope": "task", "autoprovision": true, "driver": "", "driverOpts": {"KeyName": ""}, "labels": {"KeyName": ""} }, "efsVolumeConfiguration": { "fileSystemId": "", "rootDirectory": "", "transitEncryption": "ENABLED", "transitEncryptionPort": 0, "authorizationConfig": { "accessPointId": "", "iam": "ENABLED" } } } ], "placementConstraints": [ { "type": "memberOf", "expression": "" } ], "requiresCompatibilities": ["FARGATE"], "cpu": "", "memory": "", "tags": [ { "key": "", "value": "" } ], "ephemeralStorage": { "sizeInGiB": 0 }, "pidMode": "task", "ipcMode": "none", "proxyConfiguration": { "type": "APPMESH", "containerName": "", "properties": [ { "name": "", "value": ""

94

Amazon ECS Panduan Pengguna untuk AWS FargateParameter ketentuan tugas

} ] }, "inferenceAccelerators": [ { "deviceName": "", "deviceType": "" } ]}

Anda dapat menghasilkan template ketentuan tugas ini menggunakan hal berikutAWS CLIperintah.

aws ecs register-task-definition --generate-cli-skeleton

Parameter ketentuan tugasKetentuan tugas dibagi menjadi beberapa bagian terpisah: tugas family, peran tugas IAM, mode jaringan,ketentuan kontainer, batasan penempatan tugas, dan tipe peluncuran. Definisi keluarga dan kontainerdiperlukan dalam ketentuan tugas. Sebaliknya, peran tugas, mode jaringan, volume, batasan penempatantugas, dan tipe peluncuran bersifat opsional.

Anda dapat menggunakan parameter ini dalam file JSON untuk mengkonfigurasi definisi tugas Anda. Untukinformasi selengkapnya, lihat the section called “Ketentuan tugas contoh” (p. 168).

Berikut ini adalah deskripsi yang lebih detail untuk setiap parameter ketentuan tugas.

Rangkaianfamily

Tipe: string

Wajib: ya

Ketika Anda mendaftarkan ketentuan tugas, Anda memberikan sebuah famili, yang mirip dengan namauntuk beberapa versi ketentuan tugas, yang ditentukan dengan nomor revisi. Ketentuan tugas pertamayang terdaftar ke dalam famili tertentu diberi revisi 1, dan setiap ketentuan tugas yang terdaftarsetelahnya diberi nomor revisi secara berurutan.

Jenis peluncuranKetika mendaftarkan ketentuan tugas, Anda dapat menentukan tipe peluncuran yang harus divalidasi olehAmazon ECS. Untuk informasi selengkapnya, lihat Jenis peluncuran ECS (p. 123).

Parameter berikut diizinkan dalam ketentuan tugas.

requiresCompatibilities

Tipe: string array

Wajib: tidak

Nilai yang Valid: EC2 | FARGATE | EXTERNAL

95

Amazon ECS Panduan Pengguna untuk AWS FargatePeran eksekusi tugas

Tipe peluncuran untuk memvalidasi ketentuan tugas. Hal ini mengaktifkan pemeriksaan untukmemastikan bahwa semua parameter yang digunakan dalam ketentuan tugas memenuhi persyaratantipe peluncuran.

Peran eksekusi tugasexecutionRoleArn

Tipe: string

Wajib: tidak

Amazon Resource Name (ARN) dari peran eksekusi tugas yang memberikan izin kepada agenkontainer Amazon ECS untuk membuat AWS panggilan API atas nama Anda. IAM role eksekusi tugasdiperlukan sesuai dengan persyaratan tugas Anda. Untuk informasi selengkapnya, lihat Peran IAMeksekusi tugas ECS Amazon (p. 363).

Mode jaringannetworkMode

Tipe: string

Wajib: tidak

Mode jaringan Docker digunakan untuk kontainer dalam tugas. Untuk tugas Amazon ECS yang di-hostdi Fargate,awsvpcModus jaringan diperlukan.

Jika mode jaringan adalah awsvpc, tugas dialokasikan sebagai antarmuka jaringan elastis, danharus menentukan NetworkConfiguration ketika Anda membuat layanan atau menjalankantugas dengan ketentuan tugas. Untuk informasi selengkapnya, lihatJaringan tugas FargatediPanduanPengguna Amazon Elastic Container ServiceAWS Fargate.

ParameterawsvpcMode jaringan menawarkan performa jaringan tertinggi untuk kontainer karenamenggunakan tumpukan jaringan Amazon EC2. Port kontainer terbuka dipetakan langsung ke portelastic network interface terlampir. Karena itu, Anda tidak dapat menggunakan pemetaan port hostdinamis.

Platform waktu aktifParameter berikut diperlukan untuk jenis peluncuran Fargate.

operatingSystemFamily

Tipe: string

Diperlukan: Bersyarat

Default: LINUX

Parameter ini diperlukan untuk tugas Amazon ECS yang di-host di Fargate.

Ketika Anda mendaftarkan ketentuan tugas, Anda menentukan keluarga sistem operasi.

Nilai yang valid untuk tugas Amazon ECS yang di-host di FargateadalahLINUX,WINDOWS_SERVER_2019_FULL, danWINDOWS_SERVER_2019_CORE.

96

Amazon ECS Panduan Pengguna untuk AWS FargateUkuran tugas

Nilai yang valid untuk tugas Amazon ECS yang dihosting di EC2adalahLINUX,WINDOWS_SERVER_2022_CORE,WINDOWS_SERVER_2022_FULL,WINDOWS_SERVER_2019_FULL,danWINDOWS_SERVER_2019_CORE,WINDOWS_SERVER_2016_FULL,WINDOWS_SERVER_2004_CORE,danWINDOWS_SERVER_20H2_CORE.

Semua definisi tugas yang digunakan dalam layanan harus memiliki nilai yang sama untuk parameterini.

Ketika definisi tugas adalah bagian dari layanan, nilai ini harus sesuai denganlayananplatformFamilynilai.

cpuArchitecture

Tipe: string

Diperlukan: Bersyarat

Default: X86_64

Parameter ini diperlukan untuk tugas Amazon ECS yang dihosting di Fargate.

Saat mendaftarkan ketentuan tugas, Anda menentukan arsitektur CPU. Nilai yang valid adalahX86_64 dan ARM64.

Semua definisi tugas yang digunakan dalam layanan harus memiliki nilai yang sama untuk parameterini.

Bila Anda memiliki tugas Linux untuk jenis peluncuran Fargate, atau jenis peluncuran EC2, Anda dapatmengatur nilainyaARM64. Untuk informasi selengkapnya, lihat the section called “Bekerja denganbeban kerja ARM 64-bit di Amazon ECS” (p. 124).

Ukuran tugasKetika Anda mendaftarkan ketentuan tugas, Anda dapat menentukan total CPU dan memori yangdigunakan untuk tugas tersebut. Hal ini terpisah dari nilai cpu dan memory pada tingkat ketentuankontainer. Untuk tugas yang di-hosting di instans Amazon EC2, bidang ini bersifat opsional. Untuk tugasyang di-hosting di Fargate (baik Linux dan Windows), kolom ini diperlukan dan ada beberapa nilai tertentuuntuk keduanyacpudanmemoryyang didukung.

Note

Tingkat tugas CPU dan memori parameter diabaikan untuk Windows kontainer. Kamimerekomendasikan agar Anda menentukan sumber daya tingkat kontainer untuk kontainerWindows.

Parameter berikut diizinkan dalam ketentuan tugas:

cpu

Tipe: string

Wajib: kondisional

Note

Parameter ini tidak didukung untuk kontainer Windows.

Batas tegas unit CPU untuk hadir untuk tugas tersebut. Hal ini dapat dinyatakan sebagai integermenggunakan unit CPU (misalnya,1024) atau sebagai string menggunakan vCPUs (misalnya,1

97

Amazon ECS Panduan Pengguna untuk AWS FargateUkuran tugas

vCPUatau1 vcpu) dalam definisi tugas. Ketika ketentuan tugas terdaftar, nilai vCPU dikonversi keinteger yang menunjukkan unit CPU.

Untuk tugas yang di-hosting di Fargate (baik kontainer Linux dan Windows), kolom ini wajib diisi danAnda harus menggunakan salah satu nilai berikut, yang menentukan kisaran nilai yang didukunguntukmemoryParameter:

Nilai CPU Nilai memori Sistem operasi yang didukunguntuk 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, Jendela

2048 (2 vCPU) Antara 4 GB dan 16 GB dalamkenaikan 1 GB

Linux, Jendela

4096 (4 vCPU) Antara 8 GB dan 30 GB dalamkenaikan 1 GB

Linux, Jendela

memory

Tipe: string

Wajib: kondisional

Note

Parameter ini tidak didukung untuk kontainer Windows.

Batas tegas memori (dalam MiB) hadir untuk tugas tersebut. Hal ini dapat dinyatakan sebagai integermenggunakan MiB (misalnya1024) atau sebagai string menggunakan GB (misalnya1GBatau1 GB)dalam definisi tugas. Ketika ketentuan tugas terdaftar, nilai GB dikonversi ke integer menunjukkan MiB.

Untuk tugas yang di-hosting di Fargate (kontainer Linux dan Windows), kolom ini wajib diisi danAnda harus menggunakan salah satu nilai berikut, yang menentukan kisaran nilai yang didukunguntukcpuParameter:

Nilai memori (MiB) Nilai CPU Sistem operasi yang didukunguntuk Fargate

512 (0,5 GB), 1024 (1 GB),2048 (2 GB)

256 (.25 vCPU) Linux

1024 (1 GB), ,2048 (2 GB),3072 (3 GB), 4096 (4GB)

512 (.5 vCPU) Linux

2048 (2 GB), 3072 (3 GB), 4096(4GB), 5120 (5 GB), 6144 (6GB), 7168 (7 GB), 8192 (8 GB)

1024 (1 vCPU) Linux, Jendela

Antara 4096 (4 GB) hingga16384 (16 GB) sebagaitambahan dari 1024 (1 GB)

2048 (2 vCPU) Linux, Jendela

98

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Nilai memori (MiB) Nilai CPU Sistem operasi yang didukunguntuk Fargate

Antara 8192 (8 GB) hingga30720 (30 GB) sebagaitambahan dari 1024 (1 GB)

4096 (4 vCPU) Linux, Jendela

Ketentuan kontainerKetika mendaftar ketentuan tugas, Anda harus menentukan daftar ketentuan kontainer yang diteruskan kedaemon Docker pada instans kontainer. Parameter berikut diizinkan dalam ketentuan kontainer.

Topik• Parameter ketentuan kontainer standar (p. 99)• Parameter ketentuan kontainer lanjutan (p. 103)• Parameter ketentuan kontainer lainnya (p. 114)

Parameter ketentuan kontainer standarParameter ketentuan tugas berikut diperlukan atau digunakan di sebagian besar ketentuan kontainer.

Topik• Nama (p. 99)• Citra (p. 99)• Memori (p. 100)• Pemetaan Port (p. 101)

Nama

name

Tipe: string

Wajib: ya

Nama kontainer. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung,dan garis bawah. Jika Anda menghubungkan beberapa kontainer dalam ketentuan tugas,namedarisatu kontainer dapat dimasukkan dalamlinksdari wadah lain. Ini untuk menghubungkan kontainer.

Citra

image

Tipe: string

Wajib: ya

Citra yang digunakan untuk memulai kontainer. String ini dilintaskan langsung ke daemon Docker.Citra di registri Docker Hub tersedia secara default. Anda juga dapat menentukan repositori lainnyadengan baikrepository-url/image:tagataurepository-url/image@digest. Maksimum255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, garis bawah, titik dua, titik miring ke

99

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

depan, dan tanda pagar diperbolehkan. Parameter ini sesuai dengan Image di bagian Buat kontainerdi Docker Remote API dan IMAGE parameter docker run.• Ketika tugas baru dimulai, agen kontainer Amazon ECS menarik versi terbaru dari citra yang

ditentukan dan tanda untuk kontainer yang akan digunakan. Namun, pembaruan berikutnya ke citrarepositori tidak disebarkan ke tugas yang sudah berjalan.

• Citra di registri privat didukung. Untuk informasi selengkapnya, lihat Autentikasi registri privat untuktugas (p. 173).

• Gambar di repositori Amazon ECR dapat ditentukan dengan menggunakan fullregistry/repository:tagatauregistry/repository@digestkonvensi penamaan(misalnya,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latestatauaws_account_id.dkr.ecr.region.amazonaws.com/my-web-app@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE).

• Gambar di repositori resmi di Docker Hub menggunakan satu nama (misalnya, ubuntu ataumongo).

• 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).

Memori

memory

Tipe: integer

Wajib: kondisional

Jumlah (dalam MiB) memori yang akan disajikan ke kontainer. Jika kontainer Anda mencoba untukmelebihi memori yang ditentukan di sini, kontainer akan dimatikan. Jumlah total memori yang disimpanuntuk semua kontainer dalam tugas harus lebih rendah dari nilai memory tugas, jika ada yangditentukan. Parameter ini memetakan ke Memory di bagian Membuat kontainer dari API Jarak JauhDocker dan pilihan --memory untuk docker run.

Jika menggunakan tipe peluncuran Fargate, parameter ini bersifat opsional.

The Docker 20.10.0 atau yang lebih baru daemon cadangan minimal 6 MiB memori untuk wadah. Jadi,jangan tentukan kurang dari 6 MiB memori untuk kontainer Anda.

Docker 19.03.13-ce atau daemon sebelumnya menyimpan minimal 4 MiB memori untuk kontainer.Jadi, jangan tentukan memori kurang dari 4 MiB untuk kontainer Anda.

memoryReservation

Tipe: integer

Wajib: tidak

Batas lunak (di MiB) memori untuk menyimpan kontainer. Ketika memori sistem berada di bawahperselisihan, Docker mencoba untuk menjaga memori kontainer tetap dalam batas lunak ini. Namun,wadah Anda dapat mengkonsumsi lebih banyak memori bila diperlukan, hingga batas keras yangditentukan denganmemoryparameter (jika berlaku), atau semua memori yang tersedia pada instanskontainer, pilih yang lebih dulu. Parameter ini memetakan ke MemoryReservation di bagianMembuat kontainer dari API Jarak Jauh Docker dan pilihan --memory-reservation untuk dockerrun.

Jika nilai memori tingkat tugas tidak ditentukan, Anda harus menentukan bilangan bulat bukan noluntuk salah satu atau keduamemoryataumemoryReservationdalam definisi kontainer. Jika Andamenentukan keduanya, memory harus lebih besar dari memoryReservation. Jika Anda menentukan

100

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

memoryReservation, maka nilai tersebut akan dikurangi dari sumber daya memori yang tersediauntuk instans kontainer tempat kontainer ditempatkan. Jika tidak, nilai memory digunakan.

Misalnya, jika kontainer Anda biasanya menggunakan 128 MIB memori, tapi terkadang naik hingga256 MiB memori untuk jangka waktu yang singkat, Anda dapat mengatur memoryReservationsebesar 128 MiB, dan batas keras memory sebesar 300 MiB. Konfigurasi ini memungkinkan kontaineruntuk hanya menyimpan 128 MIB memori dari sumber daya yang tersisa pada instans kontainer. Padasaat yang sama, juga memungkinkan wadah untuk menggunakan lebih banyak sumber daya memoribila diperlukan.

Note

Parameter ini tidak didukung untuk kontainer Windows.

The Docker 20.10.0 atau yang lebih baru daemon cadangan minimal 6 MiB memori untuk wadah. Jadi,jangan tentukan kurang dari 6 MiB memori untuk kontainer Anda.

Docker 19.03.13-ce atau daemon sebelumnya menyimpan minimal 4 MiB memori untuk kontainer.Jadi, jangan tentukan memori kurang dari 4 MiB untuk kontainer Anda.

Pemetaan Port

portMappings

Tipe: array objek

Wajib: tidak

Pemetaan port mengizinkan kontainer untuk mengakses port pada instans kontainer host untukmengirim atau menerima lalu lintas.

Untuk definisi tugas yang menggunakanawsvpcmode jaringan, hanya menentukancontainerPort.hostPort dapat dibiarkan kosong atau harus memiliki nilai yang sama dengan containerPort.

Parameter ini memetakan ke PortBindings di bagian Membuat kontainer dari API Jarak JauhDocker dan pilihan --publish untuk docker run. Jika mode jaringan ketentuan tugas diatur kehost,port host harus tidak ditentukan atau sesuai dengan port kontainer dalam pemetaan port.

Note

Setelah tugas mencapai status RUNNING , tugas port kontainer dan host manual dan otomatisakan terlihat di lokasi-lokasi berikut:• Konsol: ParameterPengikatan Jaringanbagian dari deskripsi kontainer untuk tugas yang

dipilih.• AWS CLI: Bagian networkBindings dari output perintah describe-tasks .• API: ParameterDescribeTaskstanggapan.

containerPort

Tipe: integer

Wajib: ya, saat portMappings digunakan

Nomor port pada kontainer yang terikat ke port host yang ditentukan atau ditugaskan penggunasecara otomatis.

Jika menggunakan kontainer dalam tugas dengan tipe peluncuran Fargate, port yang terbukaharus ditentukan dengan menggunakancontainerPort.

Untuk kontainer Windows di Fargate, Anda tidak dapat menggunakan port 3150untukcontainerPort. Ini karena itu dicadangkan.

101

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Jika menggunakan kontainer dalam tugas dengan tipe peluncuran EC2 dan Anda menentukanport kontainer dan bukan port host, kontainer Anda secara otomatis menerima port host di rentangport sementara. Untuk informasi selengkapnya, lihat hostPort. Pemetaan port yang secaraotomatis ditugaskan dengan cara ini tidak termasuk dalam batas 100 port yang disimpan instanskontainer.

hostPort

Tipe: integer

Wajib: tidak

Nomor port pada instans kontainer untuk menyimpan kontainer Anda.

Jika menggunakan kontainer dalam tugas dengan jenis peluncuran Fargate,hostPortdapatdisimpan kosong atau menjadi nilai yang sama seperticontainerPort.

Jika menggunakan kontainer dalam tugas dengan jenis peluncuran EC2, Anda dapat menentukanport host yang tidak dipesan untuk pemetaan port kontainer Anda (ini disebut sebagaistatishostport pemetaan), atau Anda dapat menghilangkanhostPort(atau atur ke0) sementaramenentukancontainerPortdan kontainer Anda secara otomatis menerima port (ini disebutsebagaidinamishost port mapping) dalam rentang port fana untuk sistem operasi instans kontainerAnda dan versi Docker.

Rentang port sementara default Docker versi 1.6.0 dan yang lebih baru tercantum pada instansdi bawah /proc/sys/net/ipv4/ip_local_port_range. Jika parameter kernel ini tidaktersedia, port sementara default berkisar sejak 49153–65535 digunakan. Jangan mencoba untukmenentukan port host dalam rentang port sementara. Hal ini karena ini disediakan untuk tugasotomatis. Secara umum, port-port di bawah ini 32768 berada di luar jangkauan port sementara.

Port cadangan default adalah22untuk SSH, port Docker2375dan2376, dan port agen kontainerAmazon ECS51678-51680. Setiap port host yang sebelumnya ditentukan pengguna untuktugas yang berjalan juga disimpan saat tugas sedang berjalan (setelah tugas berhenti, port hostdilepaskan). Port cadangan saat ini ditampilkan dalamremainingResourcesdaridescribe-container-instancesOutput, dan instans kontainer mungkin memiliki hingga 100 port yang disimpanpada satu waktu, termasuk port cadangan default. Port yang ditugaskan secara otomatis tidakdihitung terhadap batas port penyimpanan 100.

protocol

Tipe: string

Wajib: tidak

Protokol yang digunakan untuk pemetaan port. Nilai yang valid adalah tcp dan udp. Defaultadalah tcp.

Jika Anda menentukan port host, gunakan sintaksis berikut.

"portMappings": [ { "containerPort": integer, "hostPort": integer } ...]

Jika Anda ingin port host otomatis ditugaskan, gunakan sintaksis berikut.

"portMappings": [ {

102

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

"containerPort": integer } ...]

Parameter ketentuan kontainer lanjutanParameter definisi kontainer lanjutan berikut memberikan kemampuan yang diperluas kedocker runperintahyang digunakan untuk meluncurkan kontainer pada instans kontainer Amazon ECS Anda.

Topik• Pemeriksaan kondisi (p. 103)• Environment (p. 104)• Pengaturan jaringan (p. 107)• Penyimpanan dan Pencatatan (p. 108)• Keamanan (p. 112)• Batas sumber daya (p. 112)• Label Docker (p. 113)

Pemeriksaan kondisi

healthCheck

Perintah pemeriksaan kondisi kontainer dan parameter konfigurasi terkait untuk kontainer. Parameterini memetakan ke HealthCheck di bagian Buat kontainer pada API Docker Remote dan parameterHEALTHCHECK pada docker run.

Note

Agen kontainer Amazon ECS hanya memantau dan melaporkan pemeriksaan kesehatanyang ditentukan dalam definisi tugas. Amazon ECS tidak memantau pemeriksaan kesehatanDocker yang disematkan dalam gambar kontainer tetapi tidak ditentukan dalam definisikontainer. Parameter pemeriksaan kondisi yang ditentukan dalam ketentuan kontainermenimpa setiap pemeriksaan kondisi Docker yang ada di citra kontainer.

Anda dapat melihat status kondisi kontainer individual dan tugas dengan DescribeTasks Operasi APIatau saat melihat detail tugas di konsol.

Berikut ini menjelaskan kemungkinan nilai healthStatus untuk kontainer:• HEALTHYPemeriksaan kondisi kontainer telah berhasil lolos.• UNHEALTHYPemeriksaan kesehatan kontainer gagal.• UNKNOWNPemeriksaan kondisi kontainer sedang dievaluasi atau tidak ada pemeriksaan kondisi

kontainer yang ditentukan.

Berikut ini menjelaskan kemungkinan nilai healthStatus untuk tugas: Status pemeriksaan kondisikontainer yang tidak penting tidak berpengaruh pada status kondisi tugas.• HEALTHY—Semua kontainer penting dalam tugas telah lulus pemeriksaan kondisi.• UNHEALTHY—Satu atau lebih kontainer penting gagal melakukan pemeriksaan kesehatan.• UNKNOWNWadah penting dalam tugas masih dievaluasi atau pemeriksaan kondisi kontainer yang

ditentukan tidak ditemukan.

Jika tugas dijalankan secara manual dan bukan sebagai bagian dari layanan, tugas melanjutkan siklushidupnya terlepas dari status kondisinya. Untuk tugas yang merupakan bagian dari layanan, jika tugasmelaporkan sebagai tidak sehat, maka tugas dihentikan dan penjadwal layanan menggantinya.

103

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Berikut adalah catatan tentang dukungan pemeriksaan kondisi kontainer:• Pemeriksaan kondisi kontainer didukung untuk tugas Fargate jika Anda menggunakan

platform Linux versi 1.1.0 atau yang lebih baru. Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

• Pemeriksaan kondisi kontainer tidak didukung untuk tugas yang merupakan bagian dari layananyang dikonfigurasi untuk menggunakan Classic Load Balancer.

command

Array string yang mewakili perintah yang dijalankan kontainer untuk menentukan kondisikontainer. Array string dapat dimulai denganCMDuntuk menjalankan argumen perintah secaralangsung, atauCMD-SHELLuntuk menjalankan perintah dengan shell default container. Jika tidakditentukan,CMDdigunakan.

Saat mendaftarkan definisi tugas diAWS Management Console, gunakan daftar perintah yangdipisahkan koma, yang dikonversi ke string setelah ketentuan tugas dibuat. Input contoh untukpemeriksaan kondisi adalah sebagai berikut.

CMD-SHELL, curl -f http://localhost/ || exit 1

Ketika mendaftarkan ketentuan tugas menggunakan panel JSON AWS Management Console,AWS CLI, atau API, Anda harus menyertakan daftar perintah dalam tanda kurung. Input contohuntuk pemeriksaan kondisi adalah sebagai berikut.

[ "CMD-SHELL", "curl -f http://localhost/ || exit 1" ]

Kode keluar dari 0, tanpastderroutput, menunjukkan keberhasilan, dan kode keluar bukan-nolmenunjukkan kegagalan. Untuk informasi lebih lanjut, lihat HealthCheck di bagian Membuatkontainer dari API Jarak Jauh Docker.

interval

Jangka waktu (dalam detik) antara setiap eksekusi pemeriksaan kondisi. Anda dapat menentukanantara 5 dan 300 detik. Nilai defaultnya adalah 30 detik.

timeout

Jangka waktu (dalam detik) untuk menunggu pemeriksaan kondisi yang menandakan berhasilsebelum dianggap gagal. Anda dapat menentukan antara 2 hingga 60 detik. Nilai defaultnyaadalah 5 detik.

retries

Jumlah raktu untuk mencoba kembali pemeriksaan kondisi yang gagal sebelum kontainerdianggap tidak sehat. Anda dapat menentukan antara 1 hingga 10 percobaan kembali. Nilaidefault-nya adalah tiga kali percobaan ulang.

startPeriod

Masa tenggang opsional untuk memberikan waktu kontainer untuk melakukan bootstrap sebelumpemeriksaan kondisi yang gagal diperhitungkan dalam jumlah maksimum percobaan ulang. Andadapat menentukan antara 0 dan 300 detik. Secara default,startPerioddinonaktifkan.

Environment

cpu

Tipe: integer

Wajib: kondisional

104

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Jumlahcpuunit cadangan kontainer Amazon ECS untuk kontainer. Di Linux, parameter ini memetakankeCpuSharesdiMembuat sebuah kontainerbagianAPI Jarak Jauhdan--cpu-sharespilihanuntukdocker run.

Bidang ini bersifat opsional untuk tugas yang menggunakan tipe peluncuran Fargate. Jumlah totalCPU yang dicadangkan untuk semua kontainer yang berada dalam tugas harus lebih rendah dari leveltugascpunilai.

Note

Anda dapat menentukan jumlah unit CPU yang tersedia untuk setiap tipe instans AmazonEC2 dengan mengalikan jumlah vCPUs yang terdaftar untuk tipe instans padaInstans AmazonEC2halaman detail dengan 1.024.

Kontainer Linux pebagian unit CPU yang tidak dialokasikan dengan kontainer lain pada instanskontainer dengan rasio yang sama dengan jumlahnya yang dialokasikan. Misalnya, Anda menjalankantugas kontainer tunggal pada tipe instans inti tunggal dengan 512 unit CPU yang ditentukan untukkontainer tersebut, dan tugas tersebut adalah satu-satunya tugas yang berjalan pada instanskontainer. Dalam contoh ini, wadah dapat menggunakan total 1.024 CPU unit share pada waktutertentu. Namun, asumsikan bahwa Anda meluncurkan salinan lain dari tugas yang sama padainstance kontainer itu. Setiap tugas dijamin minimal 512 unit CPU bila diperlukan, dan setiap kontainerdapat mengapung ke penggunaan CPU yang lebih tinggi jika wadah lain tidak menggunakannya.Namun, jika kedua tugas itu 100% aktif sepanjang waktu, mereka terbatas pada 512 unit CPU.

Pada instans kontainer Linux, daemon Docker pada instans kontainer menggunakan nilai CPU untukmenghitung rasio pembagian CPU relatif untuk menjalankan kontainer. Untuk informasi selengkapnya,lihat batasan pembagian CPU dalam dokumentasi Docker. Nilai pembagian CPU minimum yangvalid yang diizinkan kernel Linux adalah 2. Namun, parameter CPU tidak diperlukan, dan Anda dapatmenggunakan nilai-nilai CPU di bawah dua dalam ketentuan kontainer Anda. Untuk nilai CPU dibawah dua (termasuk null), perilakunya bervariasi berdasarkan versi agen kontainer Amazon ECSAnda:• Versi agen <= 1.1.0: Nilai-nilai CPU nol diteruskan ke Docker sebagai 0, yang kemudian dikonversi

Docker menjadi 1.024 berbagi CPU. Nilai CPU satu diteruskan ke Docker sebagai salah satu, yangdikonversi oleh kernel Linux menjadi dua berbagi CPU.

• Versi agen> = 1.2.0: Nilai null, nol, dan CPU dari satu diteruskan ke Docker sebagai dua sahamCPU.

Pada instans kontainer Windows, batas CPU diberlakukan sebagai kuota absolut. Kontainer Windowshanya memiliki akses ke jumlah CPU tertentu yang ditentukan dalam ketentuan tugas. Nilai CPU nullatau nol diteruskan ke Docker sebagai 0, yang ditafsirkan Windows sebagai 1% dari satu CPU.

Untuk contoh tambahan, lihatCara Amazon ECS mengelola sumber daya CPU dan memori.essential

Jenis: Boolean

Wajib: tidak

Jika parameter essential kontainer ditandai sebagai true, dan kontainer itu gagal atau berhentikarena alasan apa pun, semua kontainer lain yang merupakan bagian dari tugas dihentikan.Jikaessentialparameter wadah ditandai sebagaifalse, maka kegagalannya tidak memengaruhisisa kontainer dalam tugas. Jika parameter ini dihilangkan, kontainer diasumsikan menjadi penting.

Semua tugas harus memiliki setidaknya satu kontainer penting. Jika Anda memiliki aplikasi yangterdiri dari beberapa kontainer, kontainer grup yang digunakan untuk tujuan yang sama menjadikomponen, dan pisahkan komponen yang berbeda menjadi beberapa ketentuan tugas. Untukinformasi selengkapnya, lihat Arsitektur aplikasi (p. 88).

"essential": true|false

105

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

entryPoint

Important

Versi awal dari agen kontainer Amazon ECS tidak menangani denganbenarentryPointparameter. Jika Anda memiliki masalah menggunakan entryPoint,perbarui agen kontainer Anda atau masukkan perintah dan argumen Anda sebagai item arraycommand sebagai gantinya.

Tipe: string array

Wajib: tidak

Titik masuk yang diteruskan ke kontainer. Parameter ini memetakan ke Entrypoint di bagianMembuat kontainer dari API Jarak Jauh Docker dan pilihan --entrypoint untuk docker run. Untukinformasi lebih lanjut tentang DockerENTRYPOINTparameter, lihathttps://docs.docker.com/engine/reference/builder/#entrypoint.

"entryPoint": ["string", ...]

command

Tipe: string array

Wajib: tidak

Perintah yang disampaikan ke kontainer. Parameter ini sesuai dengan Cmd di bagian Buat kontainerdi Docker Remote API dan parameter COMMAND untuk docker run. Untuk informasi lebih lanjuttentang parameter CMD Docker, lihat https://docs.docker.com/engine/reference/builder/#cmd. Jika adabeberapa argumen, pastikan bahwa setiap argumen adalah string terpisah dalam array.

"command": ["string", ...]

workingDirectory

Jenis: string

Wajib: tidak

Direktori kerja untuk menjalankan perintah di dalam kontainer. Parameter ini sesuai denganWorkingDir di bagian Buat kontainer di Docker Remote API dan opsi --workdir untuk docker run.

"workingDirectory": "string"

environment

Tipe: array objek

Wajib: tidak

Variabel lingkungan untuk disampaikan ke kontainer. Parameter ini sesuai dengan Env di bagian Buatkontainer di Docker Remote API dan opsi --env untuk docker run.

Important

Kami tidak merekomendasikan penggunaan variabel lingkungan plaintext untuk informasisensitif, seperti data kredensial.

name

Jenis: Tali

106

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Diperlukan: Ya, kapanenvironmentdigunakan

Nama variabel lingkungan.value

Jenis: Tali

Diperlukan: Ya, kapanenvironmentdigunakan

Nilai dari variabel lingkungan.

"environment" : [ { "name" : "string", "value" : "string" }, { "name" : "string", "value" : "string" }]

secrets

Jenis: Array

Diperlukan: Tidak

Sebuah objek yang menunjukkan secret untuk diekspos ke kontainer Anda. Untuk informasiselengkapnya, lihat Menentukan data sensitif (p. 175).name

Jenis: Tali

Diperlukan: Ya

Nilai untuk ditetapkan sebagai variabel lingkungan pada kontainer.valueFrom

Jenis: Tali

Diperlukan: Ya

Rahasia yang akan diekspos ke kontainer. Nilai yang didukung adalah Amazon ResourceName (ARN) dariAWS Secrets Managerrahasia atau ARN penuh parameter diAWS SystemsManagerToko Parameter.

Note

Jika parameter Systems Manager Parameter Store ada dalam hal yang samaWilayahAWSsebagai tugas yang Anda luncurkan, Anda dapat menggunakan ARN lengkap ataunama secret. Jika parameter ada di Wilayah yang berbeda maka ARN penuh harusditentukan.

"secrets": [ { "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }]

Pengaturan jaringan

dnsServers

Tipe: string array

107

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Wajib: tidak

Daftar server DNS yang disajikan untuk kontainer. Parameter ini memetakan ke Dns di bagianMembuat kontainer dari API Jarak Jauh Docker dan pilihan --dns untuk docker run.

Note

Parameter ini tidak didukung untuk kontainer Windows atau tugasmenggunakanawsvpcMode jaringan.

"dnsServers": ["string", ...]

Penyimpanan dan Pencatatan

readonlyRootFilesystem

Jenis: Boolean

Wajib: tidak

Jika parameter ini betul, kontainer diberikan akses hanya-baca ke sistem file asalnya. Parameter inimemetakan ke ReadonlyRootfs di bagian Membuat kontainer dari API Jarak Jauh Docker danpilihan --read-only untuk docker run.

Note

Parameter ini tidak didukung untuk kontainer Windows.

"readonlyRootFilesystem": true|false

mountPoints

Jenis: Array

Diperlukan: Tidak

Titik pemasangan untuk volume data dalam kontainer Anda.

Parameter ini sesuai dengan Volumes di bagian Buat kontainer di Docker Remote API dan opsi --volume untuk docker run.

Kontainer Windows dapat memasang seluruh direktori pada drive yang sama dengan$env:ProgramData. Kontainer Windows tidak dapat memasang direktori pada drive yang berbeda,dan titik pemasangan tidak dapat berada di seluruh drive.sourceVolume

Jenis: Tali

Diperlukan: Ya, kapanmountPointsdigunakan

Nama volume yang akan dipasang.containerPath

Jenis: Tali

Diperlukan: Ya, kapanmountPointsdigunakan

Path di kontainer untuk memasang volume.

108

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

readOnly

Jenis: Boolean

Diperlukan: Tidak

Jika nilai ini adalah true, kontainer memiliki akses hanya-baca ke volume. Jika nilai ini adalahfalse, maka kontainer dapat menulis ke volume. Nilai default-nya adalah false.

volumesFrom

Jenis: Array

Diperlukan: Tidak

Volume data untuk memasang dari kontainer lain. Parameter ini sesuai dengan VolumesFrom dibagian Buat kontainer di Docker Remote API dan opsi --volumes-from untuk docker run.sourceContainer

Tipe: string

Wajib: ya, saat volumesFrom digunakan

Nama kontainer untuk memasang volume.readOnly

Jenis: Boolean

Wajib: tidak

Jika nilai ini adalah true, kontainer memiliki akses hanya-baca ke volume. Jika nilai ini adalahfalse, maka kontainer dapat menulis ke volume. Nilai default-nya adalah false.

"volumesFrom": [ { "sourceContainer": "string", "readOnly": true|false } ]

logConfiguration

Jenis: LogConfigurationObjek

Wajib: tidak

Spesifikasi konfigurasi log untuk kontainer.

Misalnya ketentuan tugas yang menggunakan konfigurasi log, lihatContoh ketentuan tugas (p. 188).

Parameter ini memetakan ke LogConfig di bagian Membuat kontainer dari API Jarak Jauh Dockerdan pilihan --log-driver untuk docker run. Secara default, kontainer menggunakan driverpencatatan yang sama dengan yang digunakan daemon Docker. Namun, kontainer mungkinmenggunakan driver pencatatan yang berbeda dari daemon Docker dengan menentukan driver logdengan parameter ini dalam ketentuan kontainer. Untuk menggunakan driver penlog yang berbedauntuk kontainer, sistem log harus dikonfigurasi dengan benar pada instans kontainer (atau padaserver log yang berbeda untuk opsi penlog jarak jauh). Untuk informasi lebih lanjut tentang opsi untukberbagai driver log yang didukung, lihat Mengonfigurasi driver pencatatan dalam dokumentasi Docker.

Pertimbangkan hal berikut saat menentukan konfigurasi log untuk kontainer Anda:

109

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

• Amazon ECS mendukung subset driver pencatatan yang tersedia untuk daemon Docker(ditampilkan dalam nilai valid yang mengikuti). Driver log tambahan mungkin tersedia di rilismendatang agen kontainer Amazon ECS.

• Parameter ini memerlukan Docker Remote API versi 1.18 atau yang lebih baru di instans kontainerAnda.

• Untuk tugas yang menggunakan tipe peluncuran Fargate, karena Anda tidak memiliki akseske infrastruktur utama tempat tugas Anda di-hosting, setiap perangkat lunak tambahan yangdiperlukan harus diinstal di luar tugas. Misalnya, agregator output Fluentd atau host jarak jauh yangmenjalankan Logstash untuk mengirim log Gelf.

"logConfiguration": { "logDriver": "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens", "options": {"string": "string" ...}, "secretOptions": [{ "name": "string", "valueFrom": "string" }]}

logDriver

Tipe: string

Nilai yang valid: "awslogs","fluentd","gelf","json-file","journald","logentries","splunk","syslog","awsfirelens"

Wajib: ya, saat logConfiguration digunakan

Driver log yang digunakan untuk kontainer. Secara default, nilai valid yang terdaftar sebelumnyaadalah driver log yang dapat berkomunikasi dengan agen kontainer Amazon ECS.

Untuk tugas yang menggunakan tipe peluncuran Fargate, driver log yangdidukungawslogs,splunk, danawsfirelens.

Untuk informasi selengkapnya tentang cara menggunakanawslogsdriver log dalam ketentuantugas untuk mengirim log kontainer ke CloudWatch Logs, lihatMenggunakan driver logawslogs (p. 138).

Untuk informasi selengkapnya tentang penggunaan driver log awsfirelens, lihat Perutean LogKustom.

Parameter ini memerlukan Docker Remote API versi 1.18 atau lebih besar pada instans kontainerAnda.

options

Tipe: peta antar string

Wajib: tidak

Opsi konfigurasi untuk mengirim ke driver log.

Saat Anda menggunakan FireLens untuk merutekan log keAWSlayanan atauAWSJaringan Mitra(APN) tujuan untuk penyimpanan log dan analitik, Anda dapat mengaturlog-driver-buffer-limitpilihan untuk membatasi jumlah peristiwa yang buffered dalam memori, sebelum dikirimke wadah log router. Hal ini dapat membantu untuk mengatasi potensi masalah kehilanganlog karena throughput yang tinggi dapat mengakibatkan memori kehabisan untuk buffer dalamDocker. Untuk informasi selengkapnya, lihat the section called “Batas buffer Fluentd” (p. 145).

110

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Parameter ini memerlukan API Docker Remote versi 1.19 atau lebih besar pada instans kontainerAnda.

secretOptions

Tipe: array objek

Wajib: tidak

Objek yang mewakili rahasia untuk diteruskan ke konfigurasi log. Rahasia yang digunakan dalamkonfigurasi log dapat mencakup token otentikasi, sertifikat, atau kunci enkripsi, misalnya.) Untukinformasi selengkapnya, lihat Menentukan data sensitif (p. 175).name

Jenis: Tali

Diperlukan: Ya

Nilai untuk ditetapkan sebagai variabel lingkungan pada kontainer.valueFrom

Jenis: Tali

Diperlukan: Ya

Secret untuk diekspos ke konfigurasi log kontainer.

"logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "splunk-token": "...", "tag": "...", ... }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "/ecs/logconfig/splunkcred" }]}

firelensConfiguration

Jenis: FirelensConfigurationObjek

Diperlukan: Tidak

Parameter FireLens konfigurasi untuk kontainer. Digunakan untuk menentukan dan mengonfigurasirouter log untuk log kontainer. Untuk informasi selengkapnya, lihat Perutean log kustom (p. 143).

{ "firelensConfiguration": { "type": "fluentd", "options": { "KeyName": "" } }}

options

Jenis: Peta string ke string

111

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Diperlukan: Tidak

Opsi untuk digunakan saat mengonfigurasi router log. Bidang ini opsional dan dapatdigunakan untuk menentukan file konfigurasi kustom atau untuk menambahkan metadatatambahan, seperti tugas, ketentuan tugas, klaster, dan detail instans kontainer ke log acara.Jika ditentukan, sintaksis yang digunakan adalah "options":{"enable-ecs-log-metadata":"true|false","config-file-type:"s3|file","config-file-value":"arn:aws:s3:::mybucket/fluent.conf|filepath"}. Untuk informasiselengkapnya, lihat Membuat ketentuan tugas yang menggunakanFireLenskonfigurasi (p. 148).

type

Jenis: Tali

Diperlukan: Ya

Router log yang akan digunakan. Nilai yang valid adalah fluentd atau fluentbit.

Keamanan

user

Jenis: string

Wajib: tidak

Pengguna yang akan digunakan di dalam kontainer. Parameter ini memetakan ke User di bagianMembuat kontainer dari API Jarak Jauh Docker dan pilihan --user untuk docker run.

Anda dapat menentukan user dengan menggunakan format berikut. Jika menentukan UID atau GID,Anda harus menentukannya sebagai bilangan bulat positif.• user

• user:group

• uid

• uid:gid

• user:gid

• uid:group

Note

Parameter ini tidak didukung untuk kontainer Windows.

"user": "string"

Batas sumber daya

ulimits

Tipe: array objek

Wajib: tidak

Daftar nilai ulimit yang harus ditentukan untuk kontainer. Nilai ini menimpa pengaturan kuotasumber daya default untuk sistem operasi. Parameter ini memetakan ke Ulimits di bagian Membuatkontainer dari API Jarak Jauh Docker dan pilihan --ulimit untuk docker run.

Tugas Amazon ECS yang dihosting di Fargate menggunakan nilai batas sumber daya default yangditetapkan oleh sistem operasi dengan pengecualiannofileparameter batas sumber daya yang

112

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Fargate menimpa. Parameternofilebatas sumber daya menetapkan pembatasan pada jumlah fileterbuka yang wadah dapat digunakan. Defaultnofilebatas lunak1024dan batas keras4096.

Parameter ini memerlukan Docker Remote API versi 1.18 atau lebih besar pada instans kontainerAnda.

Note

Parameter ini tidak didukung untuk kontainer Windows.

"ulimits": [ { "name": "core"|"cpu"|"data"|"fsize"|"locks"|"memlock"|"msgqueue"|"nice"|"nofile"|"nproc"|"rss"|"rtprio"|"rttime"|"sigpending"|"stack", "softLimit": integer, "hardLimit": integer } ... ]

name

Tipe: string

Nilai yang valid: "core" | "cpu" | "data" | "fsize" | "locks" | "memlock" |"msgqueue" | "nice" | "nofile" | "nproc" | "rss" | "rtprio" | "rttime" |"sigpending" | "stack"

Wajib: ya, saat ulimits digunakan

type dari ulimit.hardLimit

Tipe: integer

Wajib: ya, saat ulimits digunakan

Batas keras untuk tipe ulimit.softLimit

Tipe: integer

Wajib: ya, saat ulimits digunakan

Batas lunak untuk tipe ulimit.

Label Docker

dockerLabels

Tipe: peta antar string

Wajib: tidak

Sebuah peta kunci/nilai label untuk ditambahkan ke kontainer. Parameter ini memetakan ke Labels dibagian Membuat kontainer dari API Jarak Jauh Docker dan pilihan --label untuk docker run.

Parameter ini memerlukan Docker Remote API versi 1.18 atau lebih besar pada instans kontainerAnda.

113

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

"dockerLabels": {"string": "string" ...}

Parameter ketentuan kontainer lainnyaParameter ketentuan kontainer berikut dapat digunakan ketika mendaftarkan ketentuan tugas di konsolAmazon ECS dengan menggunakanKonfigurasi melalui JSONpilihan. Untuk informasi selengkapnya, lihatMembuat ketentuan tugas menggunakan konsol baru (p. 63).

Topik• Parameter Linux (p. 114)• Dependensi kontainer (p. 115)• Waktu habis kontainer (p. 116)• Kontrol sistem (p. 117)• Interaktif (p. 118)• Terminal semu (p. 118)

Parameter Linux

linuxParameters

Jenis: LinuxParametersobjek

Wajib: tidak

Opsi khusus Linux yang diterapkan ke kontainer, seperti KernelCapabilities.

Note

Parameter ini tidak didukung untuk kontainer Windows.

"linuxParameters": { "capabilities": { "add": ["string", ...], "drop": ["string", ...] } }

capabilities

Jenis: KernelCapabilitiesobjek

Wajib: tidak

Kemampuan Linux untuk kontainer yang diturunkan dari konfigurasi default yang disediakan olehDocker. Untuk informasi selengkapnya tentang kemampuan default dan kemampuan lainnyayang tersedia, lihatHak istimewa Runtime dan kemampuan LinuxdiReferensi lari Docker. Untukinformasi selengkapnya tentang kemampuan Linux ini, lihatkemampuan (7)Halaman manualLinux.add

Tipe: string array

Nilai yang valid: "SYS_PTRACE"

114

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Wajib: tidak

Kemampuan Linux untuk kontainer untuk menambahkan ke konfigurasi default yangdisediakan oleh Docker. Parameter ini memetakan ke CapAdd di bagian Buat kontainer padaAPI Docker Remote dan opsi --cap-add menjadi docker run.

drop

Tipe: string array

Nilai yang valid: "ALL" | "AUDIT_CONTROL" | "AUDIT_WRITE" | "BLOCK_SUSPEND"| "CHOWN" | "DAC_OVERRIDE" | "DAC_READ_SEARCH" | "FOWNER" | "FSETID"| "IPC_LOCK" | "IPC_OWNER" | "KILL" | "LEASE" | "LINUX_IMMUTABLE"| "MAC_ADMIN" | "MAC_OVERRIDE" | "MKNOD" | "NET_ADMIN" |"NET_BIND_SERVICE" | "NET_BROADCAST" | "NET_RAW" | "SETFCAP"| "SETGID" | "SETPCAP" | "SETUID" | "SYS_ADMIN" | "SYS_BOOT" |"SYS_CHROOT" | "SYS_MODULE" | "SYS_NICE" | "SYS_PACCT" | "SYS_PTRACE"| "SYS_RAWIO" | "SYS_RESOURCE" | "SYS_TIME" | "SYS_TTY_CONFIG" |"SYSLOG" | "WAKE_ALARM"

Wajib: tidak

Kemampuan Linux untuk kontainer untuk menghapus dari konfigurasi default yang disediakanoleh Docker. Parameter ini memetakan ke CapDrop di bagian Buat kontainer pada APIDocker Remote dan opsi --cap-drop menjadi docker run.

initProcessEnabled

Jalankan proses init di dalam kontainer yang meneruskan sinyal dan melakukan proseskembali. Parameter ini dipetakan ke opsi --init menuju docker run.

Parameter ini memerlukan API Docker Remote versi 1.25 atau lebih besar pada instans kontainerAnda.

Dependensi kontainer

dependsOn

Jenis: ArrayContainerDependencyobjek

Wajib: tidak

Dependensi yang ditentukan untuk pemulaian dan penonaktifan kontainer. Kontainer dapat berisibeberapa dependensi. Ketika dependensi ditentukan untuk memulai kontainer, maka akan dibalik jikaingin menonaktifkan kontainer. Misalnya, lihat Contoh: Dependensi kontainer (p. 192).

Note

Jika kontainer tidak memenuhi batasan dependensi atau waktu habis sebelum memenuhibatasan, Amazon ECS tidak memajukan kontainer dependen ke status berikutnya.

Untuk tugas Amazon ECS yang di-host di Fargate, parameter ini memerlukan tugas atau layananmenggunakan versi platform1.3.0atau yang lebih baru (Linux) atau1.0.0(Jendela).

"dependsOn": [ { "containerName": "string", "condition": "string" }]

115

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

containerName

Jenis: Tali

Diperlukan: Ya

Nama kontainer yang harus memenuhi syarat yang ditentukan.condition

Jenis: Tali

Diperlukan: Ya

Syarat dependensi kontainer. Berikut ini adalah syarat yang tersedia dan perilakunya:• START- Kondisi ini meniru perilaku tautan dan volume hari ini. Ia memvalidasi bahwa kontainer

dependen dimulai sebelum mengizinkan kontainer lain untuk memulai.• COMPLETE— Syarat ini memvalidasi bahwa kontainer dependen berjalan hingga selesai (keluar)

sebelum mengizinkan kontainer lain untuk memulai. Hal ini dapat berguna untuk kontainernon-esensial yang menjalankan skrip dan kemudian keluar. Kondisi ini tidak dapat diatur padakontainer penting.

• SUCCESS— Kondisi ini sama denganCOMPLETE, tetapi juga mengharuskan wadah keluardenganzerostatus. Kondisi ini tidak dapat diatur pada kontainer penting.

• HEALTHY— Kondisi ini memvalidasi bahwa kontainer dependen melewati pemeriksaan kondisiDocker sebelum mengizinkan kontainer lain untuk memulai. Ini mengharuskan kontainerdependen mengonfigurasi pemeriksaan kondisi. Syarat ini dikonfirmasi hanya pada memulaitugas.

Waktu habis kontainer

startTimeout

Jenis: Bulat

Wajib: tidak

Nilai contoh: 120

Durasi waktu (dalam detik) untuk menunggu sebelum menyerah pada penyelesaian dependensi untukkontainer.

Misalnya, Anda menentukan dua kontainer dalam ketentuan tugas dengan containerA yangmemiliki dependensi untuk containerB yang mencapai status COMPLETE, SUCCESS, atau HEALTHY.JikastartTimeoutnilai ditentukan untukcontainerBdan tidak mencapai status yang diinginkandalam waktu itu, makacontainerAtidak dimulai.

Note

Jika kontainer tidak memenuhi batasan dependensi atau waktu habis sebelum memenuhibatasan, Amazon ECS tidak memajukan kontainer dependen ke status berikutnya.

Untuk tugas Amazon ECS yang di-host di Fargate, parameter ini memerlukan tugas atau layananmenggunakan versi platform1.3.0atau nanti (Linux).

stopTimeout

Jenis: Bulat

Wajib: tidak

Nilai contoh: 120

116

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan kontainer

Durasi waktu (dalam detik) untuk menunggu sebelum kontainer dimatikan secara paksa jika tidakkeluar dengan sendirinya secara normal.

Untuk tugas yang menggunakan tipe peluncuran Fargate, tugas atau layanan memerlukan platformversi 1.3.0 atau yang lebih baru (Linux) atau 1.0.0 atau yang lebih baru (untuk Windows). Nilai bataswaktu henti maks adalah 120 detik. Namun, jika parameter tidak ditentukan, nilai default 30 detik akandigunakan.

Kontrol sistem

systemControls

Jenis: SystemControlobjek

Wajib: tidak

Daftar parameter kernel dengan namespace untuk disetel dalam kontainer. Parameter ini memetakanke Sysctls di bagian Membuat kontainer dari API Jarak Jauh Docker dan pilihan --sysctl untukdocker run.

Kami tidak menyarankan Anda menentukan jaringan yang berhubungandengansystemControlsparameter untuk beberapa kontainer dalam tugas tunggal yang jugamenggunakan salah satuawsvpcatauhostuntuk alasan berikut:• Untuk tugas yang menggunakan mode jaringan awsvpc, jika Anda mengatur systemControls

untuk kontainer apa pun, maka akan berlaku untuk semua kontainer dalam tugas. Jika Andamengatur berbedasystemControlsuntuk beberapa kontainer dalam satu tugas, kontainer yangdimulai terakhir menentukan manasystemControlsberlaku.

• Untuk tugas yang menggunakanhostmode jaringan, namespace jaringansystemControlstidakdidukung.

Jika Anda mengatur namespace sumber daya IPC yang digunakan untuk kontainer dalam tugas,ketentuan berikut berlaku untuk kontrol sistem Anda. Untuk informasi selengkapnya, lihat ModeIPC (p. 122).• Untuk tugas yang menggunakanhostModus IPC, namespace IPCsystemControlstidak didukung.• Untuk tugas yang menggunakantaskModus IPC, namespace IPCsystemControlsnilai-nilai

berlaku untuk semua kontainer dalam tugas.Note

Parameter ini tidak didukung untuk kontainer Windows atau tugas menggunakan tipepeluncuran Fargate.

"systemControls": [ { "namespace":"string", "value":"string" }]

namespace

Jenis: String

Wajib: tidak

Parameter kernel namespace untuk mengatur value.

Nilai namespace IPC yang valid: "kernel.msgmax" | "kernel.msgmnb" |"kernel.msgmni" | "kernel.sem" | "kernel.shmall" | "kernel.shmmax" |

117

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi proxy

"kernel.shmmni" | "kernel.shm_rmid_forced", serta Sysctls yang diawali dengan"fs.mqueue.*"

Nilai namespace jaringan yang valid: Sysctls dimulai dengan"net.*"value

Jenis: String

Wajib: tidak

Nilai untuk parameter kernel namespace yang ditentukan dalamnamespace.

Interaktif

interactive

Jenis: Boolean

Wajib: tidak

Ketika parameter initrue, Anda dapat menyebarkan aplikasi kontainer yang memerlukan stdin atau ttyyang akan dialokasikan. Parameter ini memetakan ke OpenStdin di bagian Membuat kontainer dariAPI Jarak Jauh Docker dan pilihan --interactive untuk docker run.

Terminal semu

pseudoTerminal

Jenis: Boolean

Wajib: tidak

Jika parameter ini true, TTY dialokasikan. Parameter ini memetakan ke Tty di bagian Membuatkontainer dari API Jarak Jauh Docker dan pilihan --tty untuk docker run.

Konfigurasi proxyproxyConfiguration

Jenis: ProxyConfigurationobjek

Wajib: tidak

Detail konfigurasi untuk proxy App Mesh.

Untuk tugas yang menggunakan tipe peluncuran Fargate, fitur ini mengharuskan tugas atau layananmenggunakan platform versi 1.3.0 atau yang lebih baru.

Note

Parameter ini tidak didukung untuk kontainer Windows.

"proxyConfiguration": { "type": "APPMESH", "containerName": "string", "properties": [ { "name": "string", "value": "string"

118

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi proxy

} ]}

type

Jenis: String

Nilai nilai: APPMESH

Diperlukan: Tidak

Jenis proksi. Satu-satunya nilai yang didukung adalah APPMESH.containerName

Jenis: Tali

Diperlukan: Ya

Nama kontainer yang berfungsi sebagai proxy App Mesh.properties

Jenis: ArrayKeyValuePairobjek

Diperlukan: Tidak

Set parameter konfigurasi jaringan untuk menyediakan plugin Antarmuka Jaringan Kontainer(CNI), ditentukan sebagai pasangan nilai kunci.• IgnoredUID— (Diperlukan) ID pengguna (UID) dari kontainer proxy sebagaimana ditentukan

olehuserparameter dalam ketentuan kontainer. Ini digunakan untuk memastikan bahwa proksimengabaikan lalu lintasnya sendiri. Jika IgnoredGID ditentukan, bidang ini tidak boleh kosong.

• IgnoredGID— (Diperlukan) ID grup (GID) dari kontainer proxy sebagaimana ditentukanolehuserparameter dalam ketentuan kontainer. Ini digunakan untuk memastikan bahwa proksimengabaikan lalu lintasnya sendiri. Jika IgnoredUID ditentukan, bidang ini tidak boleh kosong.

• AppPorts— Daftar port yang digunakan aplikasi. Lalu lintas jaringan ke port ini diteruskan keProxyIngressPort dan ProxyEgressPort.

• ProxyIngressPort— (Diperlukan) Menentukan port yang masuk lalu lintaskeAppPortsdiarahkan ke.

• ProxyEgressPort— (Diperlukan) Menentukan port yang lalu lintas keluardariAppPortsdiarahkan ke.

• EgressIgnoredPorts— (Diperlukan) Lalu lintas keluar menuju port yang ditentukan inidiabaikan dan tidak dialihkan keProxyEgressPort. Ia bisa berupa daftar kosong.

• EgressIgnoredIPs— (Diperlukan) Lalu lintas keluar menuju alamat IP tertentu ini diabaikandan tidak dialihkan keProxyEgressPort. Ia bisa berupa daftar kosong.

name

Jenis: Tali

Diperlukan: Tidak

Nama pasangan nilai kunci.value

Jenis: Tali

Diperlukan: Tidak

Nilai pasangan nilai kunci.

119

Amazon ECS Panduan Pengguna untuk AWS FargateVolume

VolumeKetika mendaftarkan ketentuan tugas, Anda secara opsional dapat menentukan daftar volume yang akanditeruskan ke daemon Docker pada instans kontainer, yang kemudian menjadi tersedia untuk diakses olehkontainer lain pada instans kotntainer yang sama.

Untuk informasi selengkapnya, lihat Menggunakan volume data dalam tugas (p. 126).

Parameter berikut diizinkan dalam ketentuan kontainer.

name

Jenis: Tali

Diperlukan: Tidak

Nama volume. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tandahubung, dan garis bawah. Nama ini direferensikan disourceVolumeparameter definisikontainermountPointsobjek.

efsVolumeConfiguration

Jenis: Objek

Diperlukan: Tidak

Parameter ini ditentukan saat menggunakan volume Amazon EFS.fileSystemId

Jenis: Tali

Diperlukan: Ya

ID sistem file Amazon EFS yang digunakan.rootDirectory

Jenis: Tali

Diperlukan: Tidak

Direktori dalam sistem file Amazon EFS untuk dipasang sebagai direktori root di dalam host. Jikaparameter ini dihilangkan, root volume Amazon EFS akan digunakan. Penentuan / akan memilikiefek yang sama seperti menghilangkan parameter ini.

Important

Jika titik akses EFS ditentukan dalam authorizationConfig, parameter direktori rootharus dihilangkan atau diatur ke /, yang akan memberlakukan jalur yang diatur pada titikakses EFS.

transitEncryption

Jenis: String

Nilai yang valid: ENABLED | DISABLED

Diperlukan: Tidak

Apakah mengaktifkan enkripsi untuk data Amazon EFS saat transit antara host Amazon ECS danserver Amazon EFS atau tidak. Enkripsi transit harus diaktifkan jika otorisasi IAM Amazon EFSdigunakan. Jika parameter ini diabaikan, nilai default DISABLED akan digunakan. Untuk informasilebih lanjut, lihat Pengenkripsian Data Saat Transit di Panduan Pengguna Amazon Elastic FileSystem.

120

Amazon ECS Panduan Pengguna untuk AWS FargateTanda

transitEncryptionPort

Jenis: Bulat

Diperlukan: Tidak

Port yang digunakan saat mengirimkan data terenkripsi antara host Amazon ECS dan serverAmazon EFS. Jika Anda tidak menentukan port enkripsi transit, ia akan menggunakan strategipemilihan port yang digunakan pembantu pemasangan Amazon EFS. Untuk informasi lebih lanjut,lihat Pembantu Pemasangan EFS di Panduan Pengguna Amazon Elastic File System.

authorizationConfig

Jenis: Objek

Diperlukan: Tidak

Detail konfigurasi otorisasi untuk sistem file Amazon EFS.accessPointId

Jenis: Tali

Diperlukan: Tidak

ID titik akses yang digunakan. Jika titik akses ditentukan, nilai direktori root padaefsVolumeConfiguration harus dihilangkan atau diatur ke / yang memberlakukan jaluryang diatur pada titik akses EFS. Jika titik akses digunakan, enkripsi transit harus diaktifkan diEFSVolumeConfiguration. Untuk informasi lebih lanjut, lihat Bekerja dengan Titik AksesAmazon EFS dalam Panduan Pengguna Amazon Elastic File System.

iam

Jenis: String

Nilai yang valid: ENABLED | DISABLED

Diperlukan: Tidak

Apakah akan menggunakan IAM role tugas Amazon ECS yang ditentukan dalam ketentuantugas saat memasang sistem file Amazon EFS. Jika diaktifkan, enkripsi transit harusdiaktifkan di EFSVolumeConfiguration. Jika Anda menghilangkan parameter ini, nilaidefault DISABLED akan digunakan. Untuk informasi selengkapnya, lihat IAM Role padaTugas.

TandaKetika mendaftarkan ketentuan tugas, Anda secara opsional dapat menentukan tanda metadata yangditerapkan ke ketentuan tugas. Tanda membantu mengategorikan dan mengatur ketentuan tugasAnda. Setiap tanda terdiri dari kunci dan nilai opsional. Anda mendefinisikan keduanya. Untuk informasiselengkapnya, lihat Menandai sumber daya Amazon ECS Anda (p. 281).

Important

Jangan menambahkan informasi pengenal pribadi atau informasi rahasia lainnya dalam tanda.Tag dapat diakses oleh banyak layanan AWS, termasuk penagihan. Tag tidak dimaksudkan untukdigunakan untuk data privat atau sensitif.

Parameter berikut diperbolehkan dalam objek tanda.

key

Tipe: string

121

Amazon ECS Panduan Pengguna untuk AWS FargateParameter ketentuan tugas lainnya

Wajib: tidak

Satu bagian dari pasangan nilai kunci yang membentuk tanda. Kunci adalah label umum yangbertindak seperti kategori untuk nilai tanda yang lebih spesifik.

value

Tipe: string

Wajib: tidak

Bagian opsional pasangan nilai kunci yang membentuk tanda. Nilai bertindak sebagai deskriptor dalamkategori tanda (kunci).

Parameter ketentuan tugas lainnyaParameter ketentuan tugas berikut dapat digunakan saat mendaftarkan ketentuan tugas di konsol AmazonECS dengan menggunakan ketentuan tugas di konsol Amazon ECS dengan menggunakanKonfigurasimelalui JSONpilihan. Untuk informasi selengkapnya, lihat Membuat ketentuan tugas menggunakan konsolbaru (p. 63).

Topik• Penyimpanan sementara (p. 122)• Mode IPC (p. 122)• Mode PID (p. 123)

Penyimpanan sementaraephemeralStorage

Jenis: Objek

Diperlukan: Tidak

Jumlah penyimpanan sementara (dalam GB) yang dialokasikan untuk tugas. Parameter ini digunakanuntuk memperluas jumlah total penyimpanan sementara yang tersedia, di luar jumlah default,untuk tugas yang di-hosting diAWS Fargate. Untuk informasi selengkapnya, lihat the section called“Pemasangan terikat” (p. 131).

Note

Parameter ini hanya didukung untuk tugas yang dihostingAWS Fargatemenggunakan versiplatform1.4.0atau nanti (Linux). Ini tidak didukung untuk kontainer Windows di Fargate.

Mode IPCipcMode

Jenis: Tali

Diperlukan: Tidak

Namespace sumber daya IPC yang digunakan untuk kontainer dalam tugas. Nilai yang valid adalahhost, task, atau none. Jikahostditentukan, maka semua kontainer yang berada dalam tugas-tugas yang ditentukanhostMode IPC pada instans kontainer yang sama berbagi sumber daya IPCyang sama dengan instans Amazon EC2 host. Jikataskditentukan, semua kontainer yang beradadalam tugas tertentu berbagi sumber daya IPC. Jika none ditentukan, maka sumber daya IPC dalam

122

Amazon ECS Panduan Pengguna untuk AWS FargateJenis peluncuran

kontainer tugas bersifat privat dan tidak dibagi dengan kontainer lain dalam tugas atau pada instanskontainer. Jika tidak ada nilai yang ditentukan, maka nilai untuk IPCMode diatur keshareable. Untukinformasi selengkapnya, lihat pengaturan IPC di Referensi Docker run.

JikahostMode IPC digunakan, ada risiko tinggi dari paparan namespace IPC yang tidak diinginkan.Untuk informasi selengkapnya, lihat Keamanan Docker.

Jika Anda menyetel parameter kernel namespace yang menggunakansystemControlsuntukkontainer dalam tugas, berikut ini berlaku untuk namespace sumber daya IPC Anda. Untuk informasiselengkapnya, lihat Kontrol sistem (p. 117).• Untuk tugas yang menggunakanhostModus IPC, namespace IPC yang

terkaitsystemControlstidak didukung.• Untuk tugas yang menggunakantaskMode IPC,systemControlsyang berhubungan dengan

namespace IPC berlaku untuk semua kontainer dalam tugas.

Note

Parameter ini tidak didukung untuk kontainer Windows atau tugas menggunakan tipe peluncuranFargate.

Mode PIDpidMode

Jenis: Tali

Diperlukan: Tidak

Namespace proses yang akan digunakan untuk kontainer dalam tugas. Nilai yang valid adalah hostatau task. Jikahostditentukan, semua kontainer dalam tugas yang ditentukanhostMode PID padainstans kontainer yang sama berbagi namespace proses yang sama dengan instans Amazon EC2host. Jika task ditentukan, semua kontainer dalam tugas tertentu berbagi namespace proses yangsama. Jika tidak ada nilai yang ditentukan, defaultnya adalah namespace privat. Untuk informasiselengkapnya, lihat Pengaturan PID di Referensi Docker run.

JikahostMode PID digunakan, ada risiko tinggi dari eksposur namespace proses yang tidakdiinginkan. Untuk informasi selengkapnya, lihat Keamanan Docker.

Note

Parameter ini tidak didukung untuk kontainer Windows atau tugas menggunakan tipe peluncuranFargate.

Jenis peluncuran ECSAnda dapat menentukan jenis peluncuran Amazon ECS saat menjalankan tugas mandiri atau membuatlayanan. Melakukan hal itu menentukan infrastruktur bahwa tugas dan layanan Anda di-host pada. Berikutini adalah tipe peluncuran yang tersedia.

Jenis peluncuran FargateAnda dapat menggunakan jenis peluncuran Fargate untuk menjalankan aplikasi kontainer Anda tanpa perlupenyediaan dan mengelola infrastruktur yang mendasarinya.AWS Fargateadalah cara tanpa server untukmeng-host beban kerja Amazon ECS Anda.

123

Amazon ECS Panduan Pengguna untuk AWS FargateBekerja dengan beban kerja ARM 64-bit di Amazon ECS

Untuk informasi tentang Daerah yang mendukung Fargate, lihatthe section called “AWSWilayahFargate” (p. 291).

Diagram berikut menunjukkan arsitektur umum.

Bekerja dengan beban kerja ARM 64-bit di AmazonECS

Amazon ECS mendukung penggunaan aplikasi ARM 64-bit. Anda dapat menjalankan aplikasi Andapada platform yang didukung olehAWSGraviton2prosesor,. Cocok untuk berbagai macam beban kerja.

124

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan-pertimbangan

Ini termasuk beban kerja seperti server aplikasi, layanan mikro, komputasi berkinerja tinggi, inferensipembelajaran mesin berbasis CPU, pengkodean video, otomatisasi desain elektronik, game, databasesumber terbuka, dan cache dalam memori.

Pertimbangan-pertimbanganSebelum Anda mulai menerapkan definisi tugas yang menggunakan arsitektur ARM 64-bit, pertimbangkanhal berikut:

• Aplikasi dapat menggunakan jenis peluncuran Fargate atau EC2.• Aplikasi hanya dapat menggunakan sistem operasi Linux.• Untuk jenis Fargate, aplikasi harus menggunakan versi platform Fargate1.4.0atau nanti.• Aplikasi dapat menggunakanFluent Bitatau CloudWatch untuk pemantauan.• Untuk tipe peluncuran Fargate, hal berikutWilayah AWStidak mendukung beban kerja ARM 64-bit:

• AS Timur (Virginia),use1-az3Availability Zone• China (Beijing)• China (Ningxia)• Africa (Cape Town)• Middle East (Bahrain)• AWS GovCloud (AS-Timur)• AWS GovCloud (AS-Barat)• Di Asia Pasifik (Osaka), khususnyaapne3-az2danapne3-az3Availability Zone

• Untuk jenis peluncuran Amazon EC2, lihat hal berikut untuk memverifikasi bahwa Wilayah tempat Andamendukung jenis instans yang ingin Anda gunakan:• Instans Amazon EC2 M6g• Instans Amazon EC2• Instans Amazon EC2 C6g• Instans Amazon EC2 R6gd• Instans X2gd Amazon EC2

Anda juga dapat menggunakan Amazon EC2describe-instance-type-offeringsperintah denganfilter untuk melihat penawaran instans untuk Wilayah Anda.

aws ec2 describe-instance-type-offerings --filters Name=instance-type,Values=instance-type --region region

Contoh berikut memeriksa ketersediaan tipe instans M6 di Wilayah US East (N. Virginia) (us-east-1).

aws ec2 describe-instance-type-offerings --filters Name=instance-type,Values=M6 --region us-east-1

Untuk informasi selengkapnya, lihatmenjelaskan-instance-tipe-persembahandiReferensi Baris PerintahAmazon EC2.

Menentukan arsitektur ARM dalam ketentuan tugasAndaUntuk menggunakan arsitektur ARM, tentukanARM64untukcpuArchitectureparameter definisi tugas.

Pada contoh berikut, arsitektur ARM ditentukan dalam definisi tugas. Dalam format JSON.

125

Amazon ECS Panduan Pengguna untuk AWS FargateAntarmuka untuk mengkonfigurasi ARM

{ "runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" },...}

Pada contoh berikut, definisi tugas untuk arsitektur ARM menampilkan “hello world.”

{ "family": "arm64-testapp", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "arm-container", "image": "arm64v8/busybox", "cpu": 100, "memory": 100, "essential": true, "command": [ "echo hello world" ], "entryPoint": [ "sh", "-c" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "runtimePlatform": { "operatingSystemFamily": "LINUX", "cpuArchitecture": "ARM64" }, "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole"}

Antarmuka untuk mengkonfigurasi ARMAnda dapat mengonfigurasi arsitektur CPU ARM untuk definisi tugas Amazon ECS menggunakan salahsatu antarmuka berikut:

• Konsol Amazon ECS• AWS Command Line Interface (AWS CLI)• AWS SDK• AWSKopilot

Menggunakan volume data dalam tugasAmazon ECSdi Fargatemendukung opsi volume data berikut untuk kontainer.

• Volume Amazon EFS — Menyediakan penyimpanan file yang sederhana, dapat diskalakan, dan tetapuntuk digunakan dengan tugas Amazon ECS Anda. Kapasitas penyimpanan Amazon EFS bersifatelastis. Tumbuh dan menyusut secara otomatis saat Anda menambahkan dan menghapus file. AplikasiAnda dapat memiliki penyimpanan yang mereka butuhkan dan kapan mereka membutuhkannya. Untukinformasi selengkapnya, lihat Volume Amazon EFS (p. 128).

• Mengikat tunggangan - Sebuah file atau direktori pada host, sepertiAWS Fargate, dipasang ke dalamwadah. Untuk informasi selengkapnya, lihat Pemasangan terikat (p. 131).

126

Amazon ECS Panduan Pengguna untuk AWS FargatePenyimpanan tugas Fargate

Penyimpanan tugas FargateKetika disediakan, setiap tugas Amazon ECS di-host pada kontainer Linux padaAWS Fargatemenerimapenyimpanan fana berikut untuk mengikat tunggangan. Ini dapat dipasang dan dibagi di antara kontaineryang menggunakanvolumes,mountPoints, danvolumesFromparameter dalam definisi tugas. Ini tidakdidukung untuk kontainer WindowsAWS Fargate.

Versi platform kontainer Fargate LinuxTugas Fargate menggunakan platform 1.4.0 atau yang lebih baruSecara default, tugas Amazon ECS yang di-host di Fargate menggunakan versi platform1.4.0ataukemudian menerima minimal 20 GiB penyimpanan fana. Jumlah total penyimpanansementara dapat ditingkatkan, hingga maksimum 200 GiB. Anda dapat melakukan ini denganmenentukanephemeralStorageparameter dalam ketentuan tugas Anda.

Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanansementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda,Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainer Anda dari jumlah totalpenyimpanan sementara yang dialokasikan tugas Anda.

Untuk tugas yang menggunakan versi platform1.4.0atau yang lebih baru yang diluncurkan pada 28Mei 2020 atau yang lebih baru, penyimpanan sementara dienkripsi dengan algoritme enkripsi AES-256.Algoritma ini menggunakanAWSkunci enkripsi yang dimiliki.

Tugas Fargate menggunakan platform 1.3.0 atau lebih lamaUntuk Amazon ECS pada tugas Fargate yang menggunakan versi platform1.3.0atau sebelumnya, setiaptugas menerima penyimpanan fana berikut.

• Penyimpanan lapisan Docker 10 GB

Note

Jumlah ini mencakup artifact citra kontainer terkompresi dan tidak terkompresi.• Tambahan 4 GB untuk pemasangan volume. Ini dapat dipasang dan dibagi di antara kontainer yang

menggunakanvolumes,mountPoints, danvolumesFromparameter dalam ketentuan tugas.

Versi platform kontainer Fargate WindowsTugas Fargate menggunakan platform 1.0.0 atau yang lebih baruSecara default, tugas Amazon ECS yang di-host di Fargate menggunakan versi platform1.0.0ataukemudian menerima minimal 20 GiB penyimpanan fana.

Citra kontainer yang ditarik, dikompresi, dan tidak dikompresi untuk tugas disimpan di penyimpanansementara. Untuk menentukan jumlah total penyimpanan sementara yang harus digunakan tugas Anda,Anda harus mengurangi jumlah penyimpanan yang digunakan citra kontainer Anda dari jumlah totalpenyimpanan sementara yang dialokasikan tugas Anda.

Penyimpanan sementara dienkripsi dengan algoritme enkripsi AES-256, yang menggunakanAWSkuncienkripsi yang dimiliki.

Untuk informasi selengkapnya, lihat Pemasangan terikat (p. 131).

127

Amazon ECS Panduan Pengguna untuk AWS FargateVolume Amazon EFS

Topik• Volume Amazon EFS (p. 128)• Pemasangan terikat (p. 131)

Volume Amazon EFSAmazon Elastic File System (Amazon EFS) menyediakan penyimpanan file yang sederhana dan dapatdiskalakan untuk digunakan dengan tugas Amazon ECS Anda. Kapasitas penyimpanan Amazon EFSbersifat elastis. Tumbuh dan menyusut secara otomatis saat Anda menambahkan dan menghapus file.Aplikasi Anda dapat memiliki penyimpanan yang mereka butuhkan dan kapan mereka membutuhkannya.

Anda dapat menggunakan sistem file Amazon EFS dengan Amazon ECS untuk mengekspor data sistemfile di seluruh armada instans kontainer Anda. Dengan begitu, tugas Anda memiliki akses ke penyimpanantetap yang sama, terlepas dari instans tempat mereka mendarat. Namun, Anda harus mengonfigurasi AMIinstans kontainer untuk memasang sistem file Amazon EFS sebelum daemon Docker dimulai. Definisitugas Anda juga harus mereferensikan pemasangan volume pada instans kontainer untuk menggunakansistem file. Bagian berikut menjelaskan cara mulai menggunakan Amazon EFS dengan Amazon ECS.

Pertimbangan volume Amazon EFSPertimbangkan hal berikut saat menggunakan volume Amazon EFS:

• Untuk tugas yang di-host di Fargate, sistem file Amazon EFS didukung pada platform versi 1.4.0 atauyang lebih baru (Linux). Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

• Saat menggunakan volume Amazon EFS untuk tugas yang di-host di Fargate, Fargate membuatkontainer pengawas yang bertanggung jawab untuk mengelola volume Amazon EFS. Kontainersupervisor menggunakan sejumlah kecil memori tugas. Kontainer pengawas akan terlihat saat dilakukankueri titik akhir metadata tugas versi 4. Namun, itu tidak terlihat di CloudWatch Wawasan Wadah. Untukinformasi selengkapnya, lihat Titik akhir metadata tugas versi 4 (p. 389).

• Menggunakan volume Amazon EFS atau menentukanEFSVolumeConfigurationtidak didukung padainstans eksternal.

Menggunakan titik akses Amazon EFSTitik akses Amazon EFS adalah titik masuk khusus aplikasi ke dalam sistem file EFS untuk mengelolaakses aplikasi ke set data bersama. Untuk informasi lebih lanjut tentang titik akses Amazon EFS dan caramengontrol akses ke sana, lihat Bekerja dengan Titik Akses Amazon EFS dalam Panduan PenggunaAmazon Elastic File System.

Titik akses dapat menerapkan identitas pengguna, termasuk grup POSIX pengguna, pada semuapermintaan sistem file yang dibuat melalui titik akses. Titik akses juga dapat menerapkan direktori root yangberbeda untuk sistem file. Hal ini agar klien hanya dapat mengakses data dalam direktori tertentu atausubdirektorinya.

Note

Ketika membuat titik akses EFS, tentukan jalur pada sistem file untuk berfungsi sebagai direktoriroot. Saat mereferensikan sistem file EFS dengan ID titik akses dalam ketentuan tugas AmazonECS, direktori root harus dihilangkan atau diatur ke/, yang memberlakukan jalur yang ditetapkanpada titik akses EFS.

Anda dapat menggunakan peran IAM tugas Amazon ECS untuk memberlakukan penggunaan aplikasitertentu atas titik akses tertentu. Dengan menggabungkan kebijakan IAM dengan titik akses, Anda dapat

128

Amazon ECS Panduan Pengguna untuk AWS FargateVolume Amazon EFS

memberikan akses yang aman ke set data tertentu untuk aplikasi Anda. Untuk informasi selengkapnyatentang cara menggunakan role IAM role, lihatIAM role untuk tugas (p. 369).

Menentukan sistem file Amazon EFS dalam definisi tugas AndaUntuk menggunakan volume sistem file Amazon EFS untuk kontainer Anda, Anda harus menentukankonfigurasi titik volume dan pemasangan dalam ketentuan tugas Anda. Potongan JSON ketentuan tugasberikut menunjukkan sintaks untukvolumesdanmountPointsbenda untuk wadah.

{ "containerDefinitions": [ { "name": "container-using-efs", "image": "amazonlinux:2", "entryPoint": [ "sh", "-c" ], "command": [ "ls -la /mount/efs" ], "mountPoints": [ { "sourceVolume": "myEfsVolume", "containerPath": "/mount/efs", "readOnly": true } ] } ], "volumes": [ { "name": "myEfsVolume", "efsVolumeConfiguration": { "fileSystemId": "fs-1234", "rootDirectory": "/path/to/my/data", "transitEncryption": "ENABLED", "transitEncryptionPort": integer, "authorizationConfig": { "accessPointId": "fsap-1234", "iam": "ENABLED" } } } ]}

efsVolumeConfiguration

Jenis: Objek

Diperlukan: Tidak

Parameter ini ditentukan saat menggunakan volume Amazon EFS.fileSystemId

Jenis: Tali

Diperlukan: Ya

ID sistem file Amazon EFS yang digunakan.

129

Amazon ECS Panduan Pengguna untuk AWS FargateVolume Amazon EFS

rootDirectory

Jenis: Tali

Diperlukan: Tidak

Direktori dalam sistem file Amazon EFS untuk pemasangan sebagai direktori asal di dalam host.Jika parameter ini diabaikan, asal volume Amazon EFS akan digunakan. Menentukan / memilikiefek yang sama seperti mengabaikan parameter ini.

Important

Jika titik akses EFS ditentukan dalam authorizationConfig, parameter direktori rootharus dihilangkan atau diatur ke /, yang memberlakukan jalur yang diatur pada titik aksesEFS.

transitEncryption

Jenis: String

Nilai yang valid: ENABLED | DISABLED

Diperlukan: Tidak

Menentukan apakah akan mengaktifkan enkripsi untuk data Amazon EFS saat transit antara hostAmazon ECS dan server Amazon EFS. Jika otorisasi IAM Amazon EFS digunakan, enkripsi transitharus diaktifkan. Jika parameter ini diabaikan, nilai default DISABLED akan digunakan. Untukinformasi lebih lanjut, lihat Pengenkripsian Data Saat Transit di Panduan Pengguna AmazonElastic File System.

transitEncryptionPort

Jenis: Bulat

Diperlukan: Tidak

Port yang akan digunakan saat mengirim data terenkripsi antara host Amazon ECS dan serverAmazon EFS. Jika Anda tidak menentukan port enkripsi transit, strategi pemilihan port yangdigunakan oleh pembantu pemasangan Amazon EFS akan digunakan. Untuk informasi lebihlanjut, lihat Pembantu Pemasangan EFS di Panduan Pengguna Amazon Elastic File System.

authorizationConfig

Jenis: Objek

Diperlukan: Tidak

Detail konfigurasi otorisasi untuk sistem file Amazon EFS.accessPointId

Jenis: Tali

Diperlukan: Tidak

ID titik akses yang akan digunakan. Jika jalur akses ditentukan, nilai direktori asaldiefsVolumeConfigurationharus dihilangkan atau diatur ke/, yang memberlakukanjalur yang ditetapkan pada titik akses EFS. Jika titik akses digunakan, enkripsi transit harusdiaktifkan di EFSVolumeConfiguration. Untuk informasi lebih lanjut, lihat Bekerja denganTitik Akses Amazon EFS dalam Panduan Pengguna Amazon Elastic File System.

130

Amazon ECS Panduan Pengguna untuk AWS FargatePemasangan terikat

iam

Jenis: String

Nilai yang valid: ENABLED | DISABLED

Diperlukan: Tidak

Menentukan apakah akan menggunakan peran IAM tugas Amazon ECS yang didefinisikandalam ketentuan tugas saat memasang sistem file Amazon EFS. Jika diaktifkan, enkripsitransit harus diaktifkan di EFSVolumeConfiguration. Jika Anda menghilangkan parameterini, nilai default DISABLED akan digunakan. Untuk informasi selengkapnya, lihat IAM Rolepada Tugas.

Pemasangan terikatDengan mengikat tunggangan, file atau direktori pada host, sepertiAWS Fargate, dipasang ke dalamwadah. Bd tunggangan terikat pada siklus hidup wadah yang menggunakannya. Setelah semua kontaineryang menggunakan pemasangan mengikat dihentikan, seperti ketika tugas dihentikan, data akan dihapus.Untuk informasi selengkapnya, lihat Menggunakan pemasangan terikat dalam dokumentasi Docker.

Berikut ini adalah kasus penggunaan umum untuk pemasangan terikat.

• Untuk menyediakan volume data kosong untuk memasang dalam satu atau lebih kontainer.• Untuk mengekspos jalur dan isinya dari Dockerfile ke satu atau lebih kontainer.

Pertimbangan saat menggunakan pemasangan terikatSaat menggunakan pemasangan pengikat, pertimbangkan hal berikut.

• Untuk tugas-tugas yang di-host diAWS Fargatemenggunakan versi platform1.4.0atau yang lebihbaru (Linux) atau1.0.0atau yang lebih baru (Windows), secara default mereka menerima minimal20 GiB penyimpanan sementara untuk pemasangan terikat. Jumlah total penyimpanan sementaradapat ditingkatkan hingga maksimum 200 GiB dengan menentukan objek ephemeralStorage dalamketentuan tugas Anda.

• Untuk mengekspos file dari Dockerfile ke volume data saat tugas dijalankan, bidang data AmazonECS mencariVOLUMEdirektif. Jika path absolut yang ditentukan dalamVOLUMEdirektif samadengancontainerPathyang ditentukan dalam definisi tugas, data dalamVOLUMEpath direktif disalin kevolume data. Dalam contoh Dockerfile berikut, sebuah file yang bernamaexamplefiledi/var/log/exporteddirektori ditulis ke host dan kemudian dipasang di dalam wadah.

FROM public.ecr.aws/amazonlinux/amazonlinux:latestRUN mkdir -p /var/log/exportedRUN touch /var/log/exported/examplefileVOLUME ["/var/log/exported"]

Secara default, izin volume diatur ke 0755 dan pemilik sebagai root. Anda dapat menyesuaikan izin inidi Dockerfile. Contoh berikut mendefinisikan pemilik direktori sebagai node.

FROM public.ecr.aws/amazonlinux/amazonlinux:latestRUN yum install -y shadow-utils && yum clean allRUN useradd nodeRUN mkdir -p /var/log/exported && chown node:node /var/log/exportedRUN touch /var/log/exported/examplefileUSER nodeVOLUME ["/var/log/exported"]

131

Amazon ECS Panduan Pengguna untuk AWS FargatePemasangan terikat

Menentukan pemasangan terikat dalam ketentuan tugas AndaUntuk tugas Amazon ECS yang di-hostJauh, potongan JSON ketentuan tugas berikut menunjukkan sintaksuntukvolumes,mountPoints, danephemeralStorageobjek untuk definisi tugas.

{ "family": "", ... "containerDefinitions" : [ { "mountPoints" : [ { "containerPath" : "/path/to/mount_volume", "sourceVolume" : "string" } ], "name" : "string" } ], ... "volumes" : [ { "name" : "string" } ], "ephemeralStorage": { "sizeInGiB": integer }}

Berikut ini adalah penjelasan yang lebih detail untuk setiap parameter ketentuan tugas.

name

Jenis: Tali

Diperlukan: Tidak

Nama volume. Maksimum 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, dan garisbawah diperbolehkan. Nama ini direferensikan dalam parameter sourceVolume dari ketentuankontainer mountPoints.

mountPoints

Jenis: Array Objek

Diperlukan: Tidak

Titik pemasangan untuk volume data dalam kontainer Anda.

Parameter ini sesuai dengan Volumes di bagian Buat kontainer di Docker Remote API dan opsi --volume untuk docker run.

Kontainer Windows dapat memasang seluruh direktori pada drive yang sama dengan$env:ProgramData. Kontainer Windows tidak dapat memasang direktori pada drive yang berbeda,dan titik pemasangan tidak dapat berada di seluruh drive.sourceVolume

Jenis: Tali

Diperlukan: Ya, kapanmountPointsdigunakan

Nama volume yang akan dipasang.

132

Amazon ECS Panduan Pengguna untuk AWS FargatePemasangan terikat

containerPath

Jenis: Tali

Diperlukan: Ya, kapanmountPointsdigunakan

Path di kontainer untuk memasang volume.readOnly

Jenis: Boolean

Diperlukan: Tidak

Jika nilai ini adalah true, kontainer memiliki akses hanya-baca ke volume. Jika nilai ini adalahfalse, maka kontainer dapat menulis ke volume. Nilai default-nya adalah false.

ephemeralStorage

Jenis: Objek

Diperlukan: Tidak

Jumlah penyimpanan sementara yang dialokasikan untuk tugas. Parameter ini digunakan untukmemperluas jumlah total penyimpanan sementara yang tersedia, di luar jumlah default, untuk tugasyang di-hosting diAWS Fargatemenggunakan versi platform1.4.0atau yang lebih baru (Linux)atau1.0.0atau yang lebih baru (Windows).

Anda dapat menggunakan CLI Copilot, CloudFormation,AWSSDK atau CLI untuk menentukanpenyimpanan sementara untuk mengikat mount.

Contoh pemasangan terikatContoh berikut mencakup kasus penggunaan yang paling umum untuk menggunakan pemasangan terikatuntuk kontainer Anda.

Untuk mengalokasikan peningkatan jumlah ruang penyimpanan sementara untuk tugas Fargate

Untuk tugas Amazon ECS yang di-host di Fargate menggunakan versi platform1.4.0atau yang lebihbaru (Linux) atau1.0.0(Windows), Anda dapat mengalokasikan lebih dari jumlah default penyimpanansementara untuk kontainer dalam tugas Anda untuk digunakan. Contoh ini dapat dimasukkan ke dalamcontoh lain untuk mengalokasikan lebih penyimpanan sementara untuk tugas Fargate Anda.

• Dalam ketentuan tugas, tentukan objek ephemeralStorage. sizeInGiB harus integer antara nilai-nilai 21 dan 200 dinyatakan dalam GiB.

"ephemeralStorage": { "sizeInGiB": integer}

Untuk menyediakan volume data kosong untuk satu atau lebih kontainer.

Dalam beberapa kasus, Anda ingin menyediakan kontainer dalam tugas beberapa ruang scratch. Misalnya,Anda mungkin memiliki dua kontainer basis data yang perlu mengakses lokasi penyimpanan file scratchyang sama selama tugas. Hal ini dapat dicapai dengan menggunakan pemasangan terikat.

1. Dalam ketentuan tugas bagian volumes, tentukan pemasangan terikat dengan namadatabase_scratch.

"volumes": [

133

Amazon ECS Panduan Pengguna untuk AWS FargatePemasangan terikat

{ "name": "database_scratch", } ]

2. DicontainerDefinitionsbagian, membuat definisi wadah database. Ini agar mereka memasangvolume.

"containerDefinitions": [ { "name": "database1", "image": "my-repo/database", "cpu": 100, "memory": 100, "essential": true, "mountPoints": [ { "sourceVolume": "database_scratch", "containerPath": "/var/scratch" } ] }, { "name": "database2", "image": "my-repo/database", "cpu": 100, "memory": 100, "essential": true, "mountPoints": [ { "sourceVolume": "database_scratch", "containerPath": "/var/scratch" } ] } ]

Untuk mengekspos jalur dan isinya dari Dockerfile ke kontainer.

Dalam contoh ini, Anda memiliki Dockerfile yang menulis data yang ingin Anda pasang di dalam kontainer.

1. Buat Dockerfile. Contoh berikut menggunakan gambar kontainer Amazon Linux 2 publik dan membuatfile yang bernamaexamplefiledi/var/log/exporteddirektori yang kita ingin me-mount di dalamwadah. Direktif VOLUME harus menentukan jalur absolut.

FROM public.ecr.aws/amazonlinux/amazonlinux:latestRUN mkdir -p /var/log/exportedRUN touch /var/log/exported/examplefileVOLUME ["/var/log/exported"]

Secara default, izin volume diatur ke 0755 dan pemilik sebagai root. Izin ini dapat diubah diDockerfile. Contoh berikut mendefinisikan pemilik direktori /var/log/exported diatur ke node.

FROM public.ecr.aws/amazonlinux/amazonlinux:latestRUN yum install -y shadow-utils && yum clean allRUN useradd nodeRUN mkdir -p /var/log/exported && chown node:node /var/log/exportedRUN touch /var/log/exported/examplefileUSER nodeVOLUME ["/var/log/exported"]

134

Amazon ECS Panduan Pengguna untuk AWS FargateJaringan tugas Fargate

2. Dalam ketentuan tugas bagian volumes, tentukan volume dengan nama application_logs.

"volumes": [ { "name": "application_logs", } ]

3. DicontainerDefinitionsbagian, membuat definisi kontainer aplikasi. Ini agar mereka memasangpenyimpanan. ParametercontainerPathnilai harus sesuai dengan path absolut yang ditentukandalamVOLUMEdirektif dari Dockerfile.

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

Jaringan tugas FargateImportant

Jika Anda menggunakan tugas Amazon ECS yang di-host di instans Amazon EC2, lihatJaringantugasdiPanduan Pengembang Amazon Elastic Container Serviceuntuk informasi jaringan yangrelevan dengan instans Anda.

Secara default, setiap tugas Amazon ECS di Fargate disediakan elastic network interface (ENI) denganalamat IP privat primer. Saat menggunakan subnet publik, Anda dapat menetapkan alamat IP publik keENI tugas. Jika VPC Anda diaktifkan untuk mode tumpukan dobel dan Anda menggunakan subnet denganblok CIDR IPv6, tugas Anda juga menerima alamat IPv6. Suatu tugas hanya dapat memiliki satu ENI yangterkait dengannya pada suatu waktu. Untuk informasi selengkapnya tentang VPC dan subnet, lihatVPC dansubnetdiPanduan Pengguna Amazon VPC.

Untuk tugas di Fargate untuk menarik gambar kontainer, tugas harus memiliki rute ke internet. Berikut inimenjelaskan bagaimana Anda dapat memverifikasi bahwa tugas Anda memiliki rute ke internet.

135

Amazon ECS Panduan Pengguna untuk AWS FargateJaringan tugas Fargate

• Saat menggunakan subnet publik, Anda dapat menetapkan alamat IP publik ke ENI tugas.• Saat menggunakan subnet privat, subnet bisa memiliki lampiran gateway NAT.• Saat menggunakan citra kontainer yang di-hosting di Amazon ECR, Anda dapat mengonfigurasi

Amazon ECR untuk menggunakan antarmuka VPC endpoint dan penarikan citra terjadiatas alamatIPv4 privat tugas. Untuk informasi selengkapnya, lihatAntarmuka VPC endpoint Amazon ECR (AWSPrivateLink)diPanduan Pengguna Amazon Elastic Container Registry.

Karena setiap tugas mendapatkan ENI sendiri, Anda dapat menggunakan fitur jaringan seperti Log AlurVPC, yang dapat Anda gunakan untuk memantau lalu lintas ke dan dari tugas Anda. Wadah yang termasukdalam tugas yang sama juga dapat berkomunikasi melaluilocalhostantarmuka. Untuk informasiselengkapnya, lihat Log VPC Flow di Panduan Pengguna Amazon VPC.

Karena setiap tugas mendapatkan ENI sendiri, Anda juga dapat memanfaatkanAWS PrivateLink. Andadapat mengonfigurasi titik akhir antarmuka VPC sehingga Anda dapat mengakses API Amazon ECSmelalui alamat IP pribadi.AWS PrivateLinkmembatasi semua lalu lintas jaringan antara VPC dan AmazonECS ke jaringan Amazon. Anda tidak memerlukan sebuah gateway internet, perangkat NAT, atau gatewayprivat virtual. Untuk informasi selengkapnya, lihatAWS PrivateLinkdiPanduan Praktik Terbaik Amazon ECS.

ENIS yang dibuat dikelola sepenuhnya olehAWS Fargate. Selain itu, ada kebijakan IAM terkaityang digunakan untuk memberikan izin untuk Fargate. Untuk tugas menggunakan versi platformFargate1.4.0atau yang lebih baru, tugas menerima ENI tunggal (disebut sebagai ENI tugas) dan semualalu lintas jaringan mengalir melalui ENI dalam VPC Anda. Lalu lintas ini dicatat dalam log aliran VPC Anda.Untuk tugas yang menggunakan versi platform Fargate1.3.0dan sebelumnya, selain ENI tugas, tugasjuga menerima ENI yang dimiliki Fargate yang terpisah, yang digunakan untuk beberapa lalu lintas jaringanyang tidak terlihat dalam log alur VPC. Tabel berikut menjelaskan perilaku lalu lintas jaringan dan kebijakanIAM yang diperlukan untuk setiap versi platform.

Action Arus lalulintas denganversi platformLinux1.3.0dansebelumnya

Arus lalulintas denganversi platformLinux1.4.0

Arus lalulintas denganversi platformWindows1.0.0

Izin IAM

Mengambilkredensi loginAmazon ECR

ENI milik Fargate ENI tugas ENI tugas Peran eksekusitugas

Tarikan citra ENI tugas ENI tugas ENI tugas Peran eksekusitugas

Mengirim logmelalui driver log

ENI tugas ENI tugas ENI tugas Peran eksekusitugas

Mengirim logmelalui FireLensuntuk AmazonECS

ENI tugas ENI tugas ENI tugas Tugas IAM peran

Mengambil rahasiadari SecretsManager atauSystems Manager

ENI milik Fargate ENI tugas ENI tugas Peran eksekusitugas

Lalu lintas sistemfile Amazon EFS

Tidak tersedia ENI tugas ENI tugas Tugas IAM peran

Lalu lintas aplikasi ENI tugas ENI tugas ENI tugas Tugas IAM peran

136

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan jaringan tugas Fargate

Pertimbangan jaringan tugas FargatePertimbangkan hal berikut saat menggunakan jaringan tugas.

• Peran tertaut layanan Amazon ECS diperlukan untuk memberikan izin kepada Amazon ECS untukmelakukan panggilan ke yang lainAWSlayanan atas nama Anda. Peran ini dibuat untuk Anda ketikaAnda membuat sebuah klaster atau jika Anda membuat atau memperbarui layanan diAWS ManagementConsole. Untuk informasi selengkapnya, lihat Peran tertaut layanan untuk Amazon ECS (p. 356). Andajuga dapat membuat peran tertaut layanan menggunakan yang berikutAWS CLIperintah.

aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com

• Amazon ECS mengisi nama host tugas dengan nama host DNS yang disediakan Amazon saatkeduanyaenableDnsHostnamesdanenableDnsSupportopsi diaktifkan pada VPC Anda. Jika opsi initidak diaktifkan, nama host DNS dari tugas disetel ke nama host acak. Untuk informasi selengkapnyatentang pengaturan DNS untuk VPC, lihatMenggunakan DNS dengan VPC AndadiPanduan PenggunaAmazon VPC.

• Anda hanya dapat menentukan hingga 16 subnet dan 5 grup keamanan untukawsvpcConfiguration.Untuk informasi selengkapnya, lihatAwsVpcConfigurationdiReferensi Amazon Elastic Container Service.

• Anda tidak dapat melepaskan atau memodifikasi ENI yang dibuat dan dilampirkan oleh Fargate. Hal iniuntuk mencegah penghapusan ENI disengaja yang terkait dengan tugas yang sedang berjalan. Untukmelepaskan ENI untuk suatu tugas, hentikan tugas tersebut.

• Jika subnet VPC diperbarui untuk mengubah opsi DHCP yang digunakannya, Anda juga tidak dapatmenerapkan perubahan ini pada tugas yang ada yang menggunakan VPC. Mulai tugas baru, yangakan menerima pengaturan baru untuk lancar bermigrasi saat menguji perubahan baru dan kemudianmenghentikan yang lama, jika tidak ada rollback diperlukan.

• Tugas yang diluncurkan di subnet dengan blok CIDR IPv6 hanya menerima alamat IPv6 saatmenggunakan versi platform Fargate1.4.0atau yang lebih baru untuk Linux atau1.0.0untuk Windows.

• Untuk tugas yang menggunakan versi platform1.4.0atau yang lebih baru untuk Linux atau1.0.0untukWindows, tugasnya ENIS mendukung frame jumbo. Antarmuka jaringan dikonfigurasi dengan unittransmisi maksimum (MTU), yang merupakan ukuran muatan terbesar yang muat dalam satu frame.Semakin besar MTU, semakin banyak muatan aplikasi yang termuat dalam satu frame, yang mengurangioverhead per frame dan meningkatkan efisiensi. Frame jumbo yang mendukung mengurangi overheadsaat jalur jaringan antara tugas Anda dan tujuan mendukung frame jumbo.

• Layanan yang menggunakan tipe peluncuran Fargate hanya mendukung Application Load Balancerdan Network Load Balancer. Classic Load Balancer tidak didukung. Bila Anda membuat grup target apapun, Anda harus memilihipsebagai tipe target, bukaninstance. Untuk informasi selengkapnya, lihatPenyeimbangan beban layanan (p. 256).

Menggunakan VPC dalam mode tumpukan dobelKetika menggunakan VPC dalam mode tumpukan ganda, tugas Anda dapat berkomunikasi melaluiIPv4 atau IPv6, atau keduanya. Alamat IPv4 dan IPv6 independen satu sama lain dan Anda harusmengonfigurasi perutean dan keamanan di VPC Anda secara terpisah untuk IPv4 dan IPv6. Untukinformasi lebih lanjut tentang konfigurasi VPC Anda untuk mode dual-stack, lihatMigrasi ke IPv6diPanduanPengguna Amazon VPC.

Jika kondisi berikut terpenuhi, tugas Amazon ECS di Fargate diberi alamat IPv6:

• VPC dan subnet Anda diaktifkan untuk IPv6. Untuk informasi selengkapnya tentang cara mengonfigurasiVPC Anda untuk mode dual-stack, lihatMigrasi ke IPv6diPanduan Pengguna Amazon VPC.

• Tugas atau layanan menggunakan versi platform Fargate1.4.0atau yang lebih baru untuk Linuxatau1.0.0untuk Windows.

137

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan driver log awslogs

• Pengaturan akun dualStackIPv6 diaktifkan. Untuk informasi selengkapnya, lihat Pengaturanakun (p. 196).

Jika Anda mengonfigurasi VPC Anda dengan gateway internet atau gateway internet khusus di luarbatas, tugas Amazon ECS di Fargate yang diberi alamat IPv6 dapat mengakses internet. Gateway NATtidak diperlukan. Untuk informasi selengkapnya, lihatGateway internetdanGateway internet khusus jalankeluardiPanduan Pengguna Amazon VPC.

Menggunakan driver log awslogsAnda dapat mengonfigurasi kontainer dalam tugas Anda untuk mengirim informasi log CloudWatch Log.Jika Anda melakukan ini, Anda dapat melihat log dari kontainer dalam tugas Fargate Anda. Topik inimembahas bagaimana Anda bisa memulai menggunakanawslogslog driver dalam definisi tugas Anda.

Note

Jenis informasi yang dicatat oleh kontainer dalam tugas Anda sebagian besar bergantung padaperintah ENTRYPOINT mereka. Secara default, log yang ditangkap menunjukkan output perintahyang biasanya Anda lihat di terminal interaktif jika Anda menjalankan kontainer secara lokal,yaituSTDOUTdanSTDERRAliran I/O. Parameterawslogslog driver hanya melewati log ini dariDocker ke CloudWatch Log. Untuk informasi selengkapnya tentang cara log Docker diproses,termasuk cara alternatif untuk menangkap berbagai pengaliran atau data file, lihat Melihat loguntuk kontainer atau layanan dalam dokumentasi Docker.

Mengaktifkan driver log awslogs untuk kontainer AndaJika Anda menggunakan jenis peluncuran Fargate untuk tugas Anda, Anda perlu menambahkan yangdiperlukanlogConfigurationparameter untuk definisi tugas Anda untuk mengaktifkanawslogsdriverlog. Untuk informasi selengkapnya, lihat Menentukan konfigurasi log dalam ketentuan tugasAnda (p. 141).

Membuat grup logParameterawslogsdriver log dapat mengirim aliran log ke grup log yang ada di CloudWatch Logs ataumembuat grup log baru atas nama Anda. ParameterAWS Management Consolemenyediakan opsikonfigurasi otomatis, yang membuat grup log atas nama Anda menggunakan nama keluarga ketentuantugas denganecssebagai prefiks. Atau, Anda dapat secara manual menentukan opsi konfigurasi log Andadan menentukanawslogs-create-grouppilihan dengan nilaitrue, yang membuat grup log atas namaAnda.

Note

Untuk menggunakanawslogs-create-grouppilihan untuk membuat grup log Anda, kebijakanIAM Anda harus menyertakanlogs:CreateLogGroupizin.

Kode berikut menunjukkan cara mengaturawslogs-create-grouppilihan.

{ "containerDefinitions": [ { "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2",

138

Amazon ECS Panduan Pengguna untuk AWS FargateTersedia opsi driver log awslogs

"awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }}

Menggunakan fitur autokonfigurasi untuk membuat grup logSaat mendaftarkan ketentuan tugas di konsol Amazon ECS, Anda dapat mengizinkan Amazon ECS untukmengonfigurasi otomatis CloudWatch log. Melakukan hal ini menyebabkan grup log dibuat atas nama Andamenggunakan nama keluarga ketentuan tugas denganecssebagai prefiks.

Untuk menggunakan opsi autokonfigurasi grup log di konsol Amazon ECS

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pada panel navigasi yang ada di sebelah kiri, pilih Ketentuan tugas lalu pilih Buat Definisi Tugas baru.3. Pilih opsi kompatibilitas Anda dan pilih Langkah selanjutnya.4. Pilih Tambahkan kontainer.5. DiPenyimpanan dan Pencatatanbagian, untukKonfigurasi log, pilihKonfigurasi otomatis CloudWatch

Beberapa catatan.6. Masukkan opsi driver log awslogs Anda. Untuk informasi selengkapnya, lihat Menentukan konfigurasi

log dalam ketentuan tugas Anda (p. 141).7. Menyelesaikan sisa wizard ketentuan tugas.

Tersedia opsi driver log awslogsParameterawslogsdriver log mendukung opsi berikut dalam ketentuan tugas Amazon ECS. Untukinformasi selengkapnya, lihatDriver pencatatan CloudWatch Logs.

awslogs-create-group

Diperlukan: Tidak

Tentukan apakah Anda ingin grup log dibuat secara otomatis. Jika opsi ini tidak ditentukan, default-nyaadalah false.

Note

Kebijakan IAM Anda harus mencakuplogs:CreateLogGroupizin sebelum Anda mencobauntuk menggunakanawslogs-create-group.

awslogs-region

Diperlukan: Ya

TentukanWilayah AWSbahwaawslogslog driver adalah untuk mengirim log Docker Anda ke.Anda dapat memilih untuk mengirim semua log dari klaster di beberapa wilayah yang berbedadi CloudWatch Log. Hal ini agar mereka semua terlihat di satu lokasi. Jika tidak, Anda dapatmemisahkannya berdasarkan wilayah untuk lebih banyak granularitas. Pastikan bahwa grup logtertentu ada di Wilayah yang Anda tentukan dengan opsi ini.

awslogs-group

Diperlukan: Ya

Pastikan untuk menentukan grup log yangawslogslog driver mengirimkan log stream ke. Untukinformasi selengkapnya, lihat Membuat grup log (p. 138).

139

Amazon ECS Panduan Pengguna untuk AWS FargateTersedia opsi driver log awslogs

awslogs-stream-prefix

Diperlukan: Ya, saat menggunakan tipe peluncuran Fargate.

Gunakanawslogs-stream-prefixopsi untuk mengaitkan aliran log dengan prefiks tertentu, namakontainer, dan ID tugas Amazon ECS tempat penampung itu berada. Jika Anda menentukan prefiksdengan opsi ini, aliran log mengambil format berikut.

prefix-name/container-name/ecs-task-id

Untuk layanan Amazon ECS, Anda dapat menggunakan nama layanan sebagai awalan. Hal ini dapatmelacak aliran log ke layanan tempat kontainer itu berada, nama kontainer yang mengirimnya, dan IDtugas tempat kontainer itu berada.

awslogs-datetime-format

Diperlukan: Tidak

Opsi ini mendefinisikan pola mulai multiline di Python format strftime. Pesan log terdiri dari barisyang cocok dengan pola dan baris berikut yang tidak cocok dengan pola. Baris yang cocok adalahpembatas antarpesan log.

Salah satu contoh kasus penggunaan format ini adalah untuk penguraian output seperti buangantumpukan, yang mungkin bisa tercatat dalam beberapa entri. Pola yang benar akan memungkinkannyaditangkap dalam satu entri.

Untuk informasi lebih lanjut, lihat awslogs-datetime-format.

Opsi ini selalu diutamakan jika awslogs-datetime-format dan awslogs-multiline-patternsama-sama dikonfigurasi.

Note

Pencatatan multibaris melakukan penguraian dan pencocokan ekspresi reguler dari semuapesan log. Ini mungkin berdampak negatif pada performa pencatatan.

awslogs-multiline-pattern

Diperlukan: Tidak

Opsi ini mendefinisikan pola mulai multiline yang menggunakan ekspresi reguler. Pesan log terdiridari baris yang cocok dengan pola dan baris berikut yang tidak cocok dengan pola. Baris yang cocokadalah pembatas antarpesan log.

Untuk informasi selengkapnya, lihat awslogs-multiline-pola.

Pilihan ini diabaikan jika awslogs-datetime-format juga dikonfigurasi.

Note

Pencatatan multibaris melakukan penguraian dan pencocokan ekspresi reguler dari semuapesan log. Ini mungkin berdampak negatif pada performa pencatatan.

mode

Diperlukan: Tidak

Nilai yang valid: non-blocking | blocking

Nilai default: blocking

140

Amazon ECS Panduan Pengguna untuk AWS FargateMenentukan konfigurasi log dalam ketentuan tugas Anda

Mode pengiriman pesan log dari kontainer untuk awslogs. Untuk informasi selengkapnya, lihatKonfigurasi driver logging .

max-buffer-size

Diperlukan: Tidak

Nilai default: 1m

Saatnon-blockingdigunakan,max-buffer-sizeOpsi log mengontrol ukuran buffer cincin yangdigunakan untuk penyimpanan pesan menengah.

Menentukan konfigurasi log dalam ketentuan tugasAndaSebelum kontainer Anda dapat mengirim log ke CloudWatch, Anda harus menentukanawslogsdriverlog untuk kontainer dalam ketentuan tugas Anda. Bagian ini menjelaskan konfigurasi log untuk kontaineruntuk menggunakan driver log awslogs. Untuk informasi selengkapnya, lihat Membuat ketentuan tugasmenggunakan konsol baru (p. 63).

Definisi tugas JSON yang berikut memilikilogConfigurationobjek yang ditentukan untuk setiapkontainer. Salah satunya adalah untuk WordPress kontainer yang mengirimkan log ke grup log yangdisebutawslogs-wordpress. Yang lainnya adalah untuk kontainer MySQL yang mengirimkan log kegrup log yang disebutawslogs-mysql. Kedua kontainer menggunakan prefiks pengaliran log awslogs-example.

{ "containerDefinitions": [ { "name": "wordpress", "links": [ "mysql" ], "image": "wordpress", "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "awslogs-wordpress", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "awslogs-example" } }, "memory": 500, "cpu": 10 }, { "environment": [ { "name": "MYSQL_ROOT_PASSWORD", "value": "password" } ],

141

Amazon ECS Panduan Pengguna untuk AWS FargateMelihat log kontainer di CloudWatch Beberapa catatan

"name": "mysql", "image": "mysql", "cpu": 10, "memory": 500, "essential": true, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "awslogs-mysql", "awslogs-region": "us-west-2", "awslogs-stream-prefix": "awslogs-example" } } } ], "family": "awslogs-example"}

Melihat log kontainer di CloudWatch Beberapa catatanSetelah tugas Fargate Anda yang menggunakanawslogsdriver log telah diluncurkan, kontainer Anda yangdikonfigurasi harus mengirimkan data log mereka ke CloudWatch Log. Anda dapat melihat dan mencari logini di konsol tersebut.

Untuk melihat CloudWatch Mencatat data untuk kontainer dari konsol Amazon ECS

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pada halaman Klaster, pilih klaster yang berisi tugas untuk melihat.3. Pada halaman Klaster:klaster_name, pilih Tugas dan pilih tugas untuk dilihat.4. Pada halaman Tugas:task_id, memperluas tampilan kontainer dengan memilih panah di sebelah kiri

nama kontainer.5. DiKonfigurasi logbagian, pilihMelihat log di CloudWatch, yang membuka aliran log terkait di

CloudWatch konsol.

Untuk melihat CloudWatch Log data di CloudWatch konsol

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.

142

Amazon ECS Panduan Pengguna untuk AWS FargatePerutean log kustom

2. Di panel navigasi sebelah kiri, pilih Log.3. Pilih grup log untuk melihat. Anda akan melihat grup log yang Anda buat di Membuat grup

log (p. 138).

4. Pilih aliran log untuk melihat.

Perutean log kustomAnda dapat menggunakan FireLens untuk Amazon ECS menggunakan parameter ketentuan tugasuntuk merutekan log keAWSlayanan atauAWSTujuan Jaringan Mitra (APN) untuk penyimpanan log dan

143

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan-pertimbangan

analitik.FireLensbekerja denganFluentddanFluent Bit. Kami menyediakanAWSuntukFluent Bitgambar atauAnda dapat menggunakan Anda sendiriFluentdatauFluent Bitcitra.

Membuat definisi tugas Amazon ECS denganFireLenskonfigurasi didukung menggunakanAWSSDK,AWSCLI, danAWS Management Console.

Pertimbangan-pertimbanganPertimbangkan hal berikut saat menggunakan FireLens untuk Amazon ECS:

• FireLensuntuk Amazon ECS didukung untuk tugas yang di-host pada keduanyaAWS Fargatedi Linux danAmazon EC2. Wadah Windows yang aktifAWS Fargatetidak mendukungFireLens.

• FireLensuntuk Amazon ECS didukung diAWS CloudFormationtemplat. Untuk informasi selengkapnya,lihatAWS::ECS::TaskDefinition FirelensConfigurationdiAWS CloudFormationPanduan Pengguna

• FireLensmendengarkan di port24224, sehingga untuk memastikan bahwa FireLens log router tidakdapat dijangkau di luar tugas, memungkinkan lalu lintas masuk pada port24224di grup keamananyang digunakan tugas Anda. Untuk tugas yang menggunakanawsvpcmode jaringan, ini adalah grupkeamanan yang terkait dengan tugas. Untuk tugas-tugas menggunakanhostmode jaringan, ini adalahgrup keamanan yang terkait dengan instans Amazon EC2 yang menghosting tugas. Untuk tugas yangmenggunakanbridgemode jaringan, jangan membuat pemetaan port apa pun yang menggunakanport24224.

• Untuk tugas yang menggunakanbridgemode jaringan, wadah dengan FireLens harus dimulai sebelumkontainer aplikasi apa pun yang mengandalkannya dimulai. Untuk mengendalikan urutan mulai kontainerAnda, gunakan syarat dependensi dalam ketentuan tugas Anda. Untuk informasi selengkapnya, lihatDependensi kontainer (p. 115).

Note

Jika Anda menggunakan parameter kondisi ketergantungan dalam definisikontainer dengan FireLens konfigurasi, memastikan bahwa setiap kontainermemilikiSTARTatauHEALTHYpersyaratan kondisi.

• AMI Bottlerocket yang dioptimalkan Amazon ECS tidak mendukung FireLens.

Izin IAM yang diperlukanUntuk menggunakan fitur ini, Anda harus membuat peran IAM untuk tugas Anda yang memberikan izinyang diperlukan untuk menggunakan peran IAM untuk menjalankan tugas apa punAWSlayanan yang tugasmembutuhkan. Misalnya, jika kontainer merutekan log ke Kinesis Data Firehose, tugas membutuhkan izinuntuk memanggilfirehose:PutRecordBatchAPI. Untuk informasi selengkapnya, lihat Menambahkandan Menghapus Izin Identitas IAM dalam Panduan Pengguna IAM.

Kebijakan IAM berikut menambahkan izin yang diperlukan untuk merutean log ke Kinesis Data Firehose.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "*" ] } ]

144

Amazon ECS Panduan Pengguna untuk AWS FargateBatas buffer Fluentd

}

Tugas Anda mungkin juga memerlukan peran eksekusi tugas Amazon ECS berdasarkan ketentuan berikutini. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugas ECS Amazon (p. 363).

• Jika tugas Anda di-host di Fargate dan Anda menarik gambar kontainer dari Amazon ECR ataumereferensikan data sensitif dariAWS Secrets Managerdalam konfigurasi log Anda, maka Anda harusmenyertakan peran IAM eksekusi tugas.

• Jika Anda menentukan file konfigurasi kustom yang dihosting di Amazon S3, peran IAM eksekusi tugasAnda harus menyertakans3:GetObjectizin untuk file konfigurasi dans3:GetBucketLocationizinpada bucket Amazon S3 bahwa file tersebut masuk. Untuk informasi selengkapnya, lihatMenentukan Izindalam KebijakandiPanduan Pengguna Amazon Simple Storage Service.

Kebijakan IAM berikut menambahkan izin yang diperlukan untuk mengambil file dari Amazon S3.Tentukan nama bucket Amazon S3 dan nama file konfigurasi.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::examplebucket/folder_name/config_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket" ] } ]}

Batas buffer FluentdKetika Anda membuat definisi tugas, Anda dapat menentukan jumlah peristiwa yang buffered dalammemori dengan menentukan nilai (dalam byte) dilog-driver-buffer-limit. Untuk informasiselengkapnya, lihatSopir penebangan fluentddalam dokumentasi Docker.

Gunakan opsi ini ketika ada throughput tinggi, karena Docker mungkin kehabisan memori buffer danmembuang pesan buffer sehingga dapat menambahkan pesan baru. Log yang hilang mungkin membuatsulit untuk memecahkan masalah. Mengatur batas buffer dapat membantu mencegah masalah ini.

Berikut ini menunjukkan sintaks untuk menentukanlog-driver-buffer-limit:

{ "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router",

145

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakanFluentlogger

perpustakaan atau Log4j lebih TCP

"firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "2097152" } }, "dependsOn": [ { "containerName": "log_router", "condition": "START" } ], "memoryReservation": 100 } ]}

Pertimbangkan hal berikutsaat menggunakan FireLens untuk Amazon ECS dengan opsi batas buffer:

• Opsi ini didukung pada tipe peluncuran Amazon EC2 dan tipe peluncuran Fargate dengan versiplatform1.4.0atau nantinya.

• Opsi ini hanya berlaku ketikalogDriverdiatur keawsfirelens.• Batas buffer default adalah1MiB.• Nilai-nilai yang benar adalah0dan536870912(512 MiB).• Jumlah total memori yang dialokasikan pada tingkat tugas harus lebih besar dari jumlah memori

yang dialokasikan untuk semua kontainer selain batas buffer memori. Jumlah total memoribuffer yang ditentukan harus kurang dari536870912(512mIB) ketika Anda tidak menentukanwadahmemorydanmemoryReservertionnilai-nilai. Lebih khusus lagi, Anda dapat memiliki kontaineraplikasi denganawsfirelenslog driver danlog-driver-buffer-limitpilihan diatur ke 300 MiB.Namun, Anda tidak akan diizinkan untuk menjalankan tugas jika Anda memiliki lebih dari dua kontainerdengan log-driver-buffer-limitdiatur ke 300 MiB (300 MiB * 2 > 512 MiB).

MenggunakanFluentlogger perpustakaan atau Log4jlebih TCPSaatawsfirelensdriver log ditentukan dalam ketentuan tugas, agen kontainer Amazon ECSmemasukkan variabel lingkungan berikut ke dalam kontainer:

146

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakanAWSuntukFluent Bitgambar

FLUENT_HOST

Alamat IP yang ditetapkan ke FireLens kontainer.FLUENT_PORT

Port tempat protokol Fluent Forward mendengarkan.

Anda dapat menggunakanFLUENT_HOSTdanFLUENT_PORTvariabel lingkungan untuk login langsung kerouter log dari kode alih-alih melaluistdout. Untuk informasi selengkapnya, lihat fluent-logger-golang diGitHub.

• the section called “MenggunakanAWSuntukFluent Bitgambar” (p. 147)• the section called “Membuat ketentuan tugas yang menggunakanFireLenskonfigurasi” (p. 148)• the section called “Pemfilteran log menggunakan ekspresi reguler” (p. 151)• the section called “Ketentuan tugas contoh” (p. 168)

MenggunakanAWSuntukFluent BitgambarAWSmenyediakanFluent Bitgambar dengan plugin untuk kedua CloudWatch Log dan Kinesis DataFirehose. Kami merekomendasikan penggunaanFluent Bitsebagai router log Anda karena memilikitingkat pemanfaatan sumber daya yang lebih rendah daripadaFluentd. Untuk informasi selengkapnya,lihatCloudWatch Logs untuk Bit FasihdanAmazon Kinesis Firehose untuk Bit Fasih.

ParameterAWSuntuk Fluent Bitgambar tersedia di Amazon ECR di Galeri Publik Amazon ECR dan direpositori Amazon ECR di sebagian besarWilayah AWSuntuk ketersediaan tinggi.

Galeri Amazon ECRParameterAWSuntukFluent Bitgambar tersedia di Galeri Amazon ECR Publik. Ini adalah lokasi yangdirekomendasikan untuk mengunduhAWSuntukFluent Bitgambar karena repositori publik dan tersediauntuk digunakan dari semuaWilayah AWS. Untuk informasi selengkapnya, lihataws-untuk-fluent-bitpadaGaleri Amazon ECR Publik.

Anda dapat menarikAWSuntukFluent Bitcitra dari Galeri Publik Amazon ECR dengan menentukan URLrepositori dengan tanda citra yang diinginkan. Tag gambar yang tersedia dapat ditemukan diTanda citratabdi Amazon ECR Galeri Publik.

Berikut ini menunjukkan sintaksis yang digunakan untuk Docker CLI.

docker pull public.ecr.aws/aws-observability/aws-for-fluent-bit:tag

Misalnya, Anda dapat menarik stabil terbaruAWSuntukFluent Bitgambar menggunakan perintah Docker CLIini.

docker pull public.ecr.aws/aws-observability/aws-for-fluent-bit:stable

Note

Penarikan yang tidak diautentikasi diperbolehkan, tetapi memiliki batas kecepatan yang lebihrendah daripada tarikan yang diautentikasi. Untuk mengautentikasi menggunakanAWSakunsebelum menarik, gunakan perintah berikut.

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws

147

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas yang

menggunakanFireLenskonfigurasi

Amazon ECRParameterAWSuntuk citra Fluent Bit tersedia di Amazon ECR untuk ketersediaan tinggi. Gambar-gambarini tersedia di sebagian besarWilayah AWS, termasukAWS GovCloud (US).

Stabil terbaruAWSuntuk URI citra Fluent Bit dapat diambil dengan menggunakan perintah berikut.

aws ssm get-parameters \ --names /aws/service/aws-for-fluent-bit/stable \ --region us-east-1

Semua versiAWSuntuk citra Fluent Bit dapat dicantumkan menggunakan perintah berikut untuk melakukankueri parameter Systems Manager Parameter Store.

aws ssm get-parameters-by-path \ --path /aws/service/aws-for-fluent-bit \ --region us-east-1

Stabil terbaruAWSuntuk gambar Fluent Bit dapat direferensikan dalamAWS CloudFormationtemplatedengan mereferensikan nama toko parameter Systems Manager. Berikut ini adalah contoh:

Parameters: FireLensImage: Description: Fluent Bit image for the FireLens Container Type: AWS::SSM::Parameter::Value<String> Default: /aws/service/aws-for-fluent-bit/stable

Membuat ketentuan tugas yangmenggunakanFireLenskonfigurasiUntuk menggunakan routing log kustom denganFireLens, Anda harus menentukan hal berikut dalamketentuan tugas Anda:

• Kontainer router log yang berisiFireLenskonfigurasi. Kami merekomendasikan bahwa kontainer ditandaisebagai essential.

• Satu kontainer aplikasi atau lebih yang berisi konfigurasi log menentukan driver log awsfirelens.• Peran IAM role Amazon Resource Name (ARN) yang berisi izin yang diperlukan tugas untuk merutekan

log.

Ketika membuat ketentuan tugas baru menggunakan AWS Management Console, ditemukan bagianintegrasi FireLens sehingga dapat dengan mudah menambahkan kontainer router log. Untuk informasiselengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Amazon ECS mengonversi konfigurasi log dan menghasilkan konfigurasi output Fluentd atau Fluent Bit.Konfigurasi output dipasang dalam kontainer perutean log di /fluent-bit/etc/fluent-bit.confuntuk Fluent Bit dan /fluentd/etc/fluent.conf untuk Fluentd.

Important

FireLensmendengarkan di port24224. Oleh karena itu, untuk memastikan bahwa FireLenslog router tidak dapat dijangkau di luar tugas, Anda harus mengizinkan lalu lintas masuknyapada port24224di grup keamanan yang digunakan tugas Anda. Untuk tugas yangmenggunakanawsvpcmode jaringan, ini adalah grup keamanan yang terkait dengan tugas. Untuktugas yang menggunakanhostmode jaringan, ini adalah grup keamanan yang terkait dengan

148

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas yang

menggunakanFireLenskonfigurasi

instans Amazon EC2 yang menghosting tugas. Untuk tugas yang menggunakanbridgemodejaringan, jangan membuat pemetaan port apa pun yang menggunakan port24224.

Contoh ketentuan tugas berikut mendefinisikan kontainer router log yang menggunakan Fluent Bit untukmerutekan log ke CloudWatch Log. Ini juga menentukan kontainer aplikasi yang menggunakan konfigurasilog untuk merutekan log ke Amazon Kinesis Data Firehose dan menetapkan memori yang digunakan untukmenyangga peristiwa ke 2 MiB.

{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ]}

Pasangan kunci-nilai ditentukan sebagai pilihan dalamlogConfigurationobjek yang digunakan untukmenghasilkanFluentdatauFluent Bitkonfigurasi output. Berikut ini adalah contoh kode dariFluent Bitdefinisioutput.

[OUTPUT] Name firehose Match app-firelens* region us-west-2 delivery_stream my-stream

Note

FireLens mengelola konfigurasi match. Konfigurasi ini tidak ditentukan dalam ketentuan tugasAnda.

149

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat ketentuan tugas yang

menggunakanFireLenskonfigurasi

Menggunakan metadata Amazon ECSSaat menentukanFireLenskonfigurasi dalam ketentuan tugas, Anda dapat secara opsional mengalihkannilai untukenable-ecs-log-metadata. Secara default, Amazon ECS menambahkan kolom tambahandalam entri log Anda yang membantu mengidentifikasi sumber log. Anda dapat menonaktifkan tindakan inidengan mengatur enable-ecs-log-metadata ke false.

• ecs_cluster— Nama klaster tempat tugas menjadi bagiannya.• ecs_task_arn— Nama lengkap Amazon Resource Name (ARN) dari tugas dimana kontainer

merupakan bagian dari.• ecs_task_definition— Nama definisi tugas dan revisi yang digunakan tugas.

Hal berikut ini menunjukkan sintaksis yang diperlukan ketika menentukan nilai pengaturan metadata logAmazon.

{ "containerDefinitions":[ { "essential":true, "image":"906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name":"log_router", "firelensConfiguration":{ "type":"fluentbit", "options":{ "enable-ecs-log-metadata":"true | false" } } } ]}

Menentukan file konfigurasi kustomSelain file konfigurasi yang dihasilkan secara otomatisFireLensmembuat atas nama Anda, Anda juga dapatmenentukan file konfigurasi khusus. Format file konfigurasi adalah format asli untuk router log yang Andagunakan. Untuk informasi selengkapnya, lihatFluentd Config Berkas SintaksdanFile Konfigurasi Fluent.

Dalam file konfigurasi kustom Anda, untuk tugas menggunakanbridgeatauawsvpcmode jaringan, janganatur input maju Fluentd atau Fluent Bit melalui TCP karenaFireLensmenambahkannya ke konfigurasi input.

KlasterFireLenskonfigurasi harus berisi opsi berikut untuk menentukan file konfigurasi kustom:

config-file-type

Lokasi sumber file konfigurasi kustom. Opsi yang tersedia adalah s3 atau file.

Note

Tugas yang di-host padaAWS Fargatehanya mendukungfilejenis file konfigurasi.config-file-value

Sumber untuk file konfigurasi kustom. Jikas3tipe file konfigurasi digunakan, nilai file konfigurasiadalah ARN lengkap dari bucket dan file Amazon S3. Jikafiletipe file konfigurasi digunakan, nilai filekonfigurasi adalah jalur lengkap dari file konfigurasi yang ada baik dalam citra kontainer atau volumeyang terpasang dalam kontainer.

150

Amazon ECS Panduan Pengguna untuk AWS FargatePemfilteran log menggunakan ekspresi reguler

Important

Saat menggunakan file konfigurasi khusus, Anda harus menentukan jalur yang berbedadari yangFireLensmenggunakan. Amazon ECS cadangan/fluent-bit/etc/fluent-bit.conffilepath untuk Fluent Bit dan/fluentd/etc/fluent.confuntuk Fluentd.

Contoh berikut menunjukkan sintaksis yang diperlukan saat menentukan konfigurasi kustom.

Important

Untuk menentukan file konfigurasi khusus yang di-hosting di Amazon S3, pastikan Anda telahmembuat peran IAM eksekusi tugas dengan izin yang tepat. Untuk informasi selengkapnya, lihatIzin IAM yang diperlukan (p. 144).

Berikut ini menunjukkan sintaksis yang diperlukan saat menentukan konfigurasi kustom.

{ "containerDefinitions":[ { "essential":true, "image":"906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name":"log_router", "firelensConfiguration":{ "type":"fluentbit", "options":{ "config-file-type":"s3 | file", "config-file-value":"arn:aws:s3:::mybucket/fluent.conf | filepath" } } } ]}

Note

Tugas yang di-hosting di AWS Fargate hanya mendukung tipe file konfigurasi file.

Pemfilteran log menggunakan ekspresi regulerFluentddanFluent Bitkeduanya mendukung pemfilteran log berdasarkan kontennya. FireLens menyediakanmetode sederhana untuk mengaktifkan pemfilteran ini. Dalam konfigurasi log options pada ketentuankontainer, Anda dapat menentukan kunci khusus exclude-pattern dan include-pattern yangmengambil ekspresi reguler sebagai nilainya. Kunci exclude-pattern menyebabkan semua log yangcocok dengan ekspresi reguler yang akan dijatuhkan. Dengan include-pattern, hanya log yang cocokdengan ekspresi regulernya yang dikirim. Kunci ini dapat digunakan bersamaan.

Contoh berikut mendemonstrasikan cara menggunakan filter ini.

{ "containerDefinitions":[ { "logConfiguration":{ "logDriver":"awsfirelens", "options":{ "@type":"cloudwatch_logs", "log_group_name":"firelens-testing", "auto_create_stream":"true",

151

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

"use_tag_as_stream":"true", "region":"us-west-2", "exclude-pattern":"^[a-z][aeiou].*$", "include-pattern":"^.*[aeiou]$" } } } ]}

Menggabungkan pesan log multiline atau stack-traceDimulai denganAWSuntuk versi Fluent Bit 2.22.0, filter multiline disertakan. Filter multiline membantumenggabungkan pesan log yang awalnya milik satu konteks tetapi dibagi di beberapa catatan atau barislog. Untuk informasi lebih lanjut tentang filter multiline, lihatDokumentasi Fluent Bit.

Contoh umum dari pesan log split adalah:

• Jejak tumpukan. Ikuti langkah-langkah di bawah ini untuk menggabungkan pesan yang dibagi denganbaris baru.

• Aplikasi yang mencetak log pada beberapa baris. Ikuti langkah-langkah di bawah ini untukmenggabungkan pesan yang dibagi dengan baris baru.

• Pesan log yang dibagi karena mereka lebih panjang dari ukuran buffer runtime max yang ditentukan.Anda dapat menggabungkan pesan log dibagi berdasarkan runtime kontainer dengan mengikuti contohdi GitHub: Contoh FireLens: Concatenate Partial/Split Kontainer Log.

Bandingkan gambar log di bawah ini untuk menentukan apakah Anda memerlukan filter multiline.

Before

Gambar berikut menunjukkan CloudWatch Log konsol dengan pengaturan log default denganbeberapa entri untuk setiap baris dalam jejak tumpukan.

152

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

153

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

After

Gambar berikut menunjukkan CloudWatch Log konsol dengan pengaturan log multiline dengan satuentri yang mencakup semua baris dalam jejak tumpukan dilogBidang.

Untuk mengurai log dan menggabungkan baris yang dibagi karena baris baru, Anda dapat menggunakansalah satu dari dua pilihan ini.

• Buat file parser Anda sendiri yang berisi aturan untuk mengurai dan menggabungkan baris yangtermasuk dalam pesan yang sama.

• Gunakan parser bawaan Fluent Bit. Untuk daftar bahasa yang didukung oleh parser bawaan Fluent Bit,lihatDokumentasi Fluent Bit.

Tutorial berikut memandu Anda melalui langkah-langkah untuk setiap kasus penggunaan. Langkah-langkah menunjukkan cara menggabungkan multilines dan mengirim log ke Amazon CloudWatch. Andadapat menentukan tujuan yang berbeda untuk log Anda.

Izin IAM yang diperlukanUntuk setiap kasus penggunaan, Anda harus terlebih dahulu memastikan bahwa Anda memiliki izinIAM yang diperlukan untuk agen kontainer untuk menarik gambar kontainer dari Amazon ECR dan agarkontainer merutekan log ke CloudWatch Log.

Untuk izin ini, Anda harus memiliki peran berikut:

• Sebuah peran tugas IAM.• IAM eksekusi tugas Amazon.

Membuat peran IAM

Peran tugas ini memberikan FireLens log router kontainer izin yang diperlukan untuk rute log ke tujuan.Dalam contoh ini kita routing log untuk CloudWatch Log. Untuk membuat peran ini, buat kebijakan denganizin untuk membuat aliran log, grup log, dan menulis peristiwa log. Kemudian kaitkan kebijakan tersebutdengan peran tersebut.

154

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilihKebijakandan kemudian pilihMembuat Kebijakan.3. PilihJSONdan tempel izin berikut:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" }]}

4. Pilih Berikutnya: Tagdan tambahkan tag apa pun ke kebijakan untuk membantu Anda mengaturnya.Lalu pilih Selanjutnya:. Tinjau.

5. PadaKebijakan tinjauanhalaman, untukNamaketik nama unik untuk kebijakan. Dalam contoh ini, kamiakan menggunakanecs-policy-for-firelens. Anda juga dapat menentukan deskripsi opsionaluntuk kebijakan.

6. Pilih Buat kebijakan untuk menyelesaikan.7. Di panel navigasi, pilihPerandan kemudian pilihBuat peran.8. DiJenis entitas tepercayabagian, pilihLayanan AWS.9. UntukKasus penggunaan, pilihLayanan Wadah Elastic..10. PilihTugas Layanan Wadah Elasticdan kemudianSelanjutnya.11. Associate peran denganecs-policy-for-firelenskebijakan yang Anda buat dan pilihSelanjutnya.12. Masukkan nama unik untuk peran. Dalam contoh ini, gunakan:ecs-tugas-peran-untuk-firelens.

Pastikan bahwa Anda memiliki peran IAM eksekusi tugas Amazon ECS

Anda harus memiliki peran eksekusi tugas untuk memberikan izin agen kontainer untuk menarik gambarkontainer dari Amazon ECR.

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilihPerandan kemudian mencariecsTaskExecutionRole.3. Jika Anda tidak melihatecsTaskExecutionRolePeran, Anda harus membuat peran. Untuk informasi

tentang cara membuat peran, lihatPeran IAM eksekusi tugas ECS AmazondiPanduan PengembangAmazon Elastic Container Service.

Contoh: Gunakan parser yang Anda buat

Dalam contoh ini, Anda akan menyelesaikan langkah berikut:

1. Membangun dan meng-upload gambar untuk wadah Fluent Bit.2. Membangun dan meng-upload gambar untuk aplikasi demo multiline yang berjalan, gagal, dan

menghasilkan jejak tumpukan multiline.3. Buat definisi tugas dan jalankan tugas.4. Melihat log untuk memverifikasi bahwa pesan yang menjangkau beberapa baris muncul bersambung.

155

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

Membangun dan meng-upload gambar untuk wadah Fluent Bit

Gambar ini akan mencakup file parser di mana Anda menentukan ekspresi reguler dan file konfigurasi yangreferensi file parser.

1. Buat folder dengan namaFluentBitDockerImage.2. Dalam folder, buat file parser yang berisi aturan untuk mengurai log dan menggabungkan baris yang

termasuk dalam pesan yang sama.

a. Tempelkan konten berikut ini di file parser:

[MULTILINE_PARSER] name multiline-regex-test type regex flush_timeout 1000 # # Regex rules for multiline parsing # --------------------------------- # # configuration hints: # # - first state always has the name: start_state # - every field in the rule must be inside double quotes # # rules | state name | regex pattern | next state # ------|---------------|-------------------------------------------- rule "start_state" "/(Dec \d+ \d+\:\d+\:\d+)(.*)/" "cont" rule "cont" "/^\s+at.*/" "cont"

Saat Anda menyesuaikan pola regex Anda, kami sarankan Anda menggunakan editor ekspresireguler untuk menguji ekspresi.

b. Simpan file sebagai parsers_multiline.conf.3. DalamFluentBitDockerImagefolder, membuat file konfigurasi kustom yang mereferensikan file

parser yang Anda buat di langkah sebelumnya.

Untuk informasi selengkapnya tentang file konfigurasi kustom, lihatMenentukan file konfigurasikustomdiPanduan Pengembang Amazon Elastic Container Service

a. Tempelkan konten berikut ini di file:

[SERVICE] flush 1 log_level info parsers_file /parsers_multiline.conf [FILTER] name multiline match * multiline.key_content log multiline.parser multiline-regex-test

Note

Anda harus menggunakan jalur absolut parser.b. Simpan file sebagai extra.conf.

4. DalamFluentBitDockerImagefolder, membuat Dockerfile dengan gambar Fluent Bit dan parser dankonfigurasi file yang Anda buat.

a. Tempelkan konten berikut ini di file:

156

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

FROM public.ecr.aws/aws-observability/aws-for-fluent-bit:latest

ADD parsers_multiline.conf /parsers_multiline.confADD extra.conf /extra.conf

b. Simpan file sebagai Dockerfile.5. Menggunakan Dockerfile, membangun gambar Fluent Bit kustom dengan parser dan file konfigurasi

kustom disertakan.

Note

Anda dapat menempatkan file parser dan file konfigurasi di mana saja dalam gambarDocker kecuali/fluent-bit/etc/fluent-bit.confsebagai path file ini digunakan olehFireLens.

a. Bangun citra:docker build -t fluent-bit-multiline-image .

Di mana:fluent-bit-multiline-imageadalah nama untuk gambar dalam contoh ini.b. Pastikan bahwa citra telah dibuat dengan benar:docker images —filter

reference=fluent-bit-multiline-image

Jika berhasil, output menunjukkan citra danlatestTag.6. Unggah citra Fluent Bit khusus ke Amazon Elastic Container Registry.

a. Buat repositori Amazon ECR untuk menyimpan citra:aws ecr create-repository --repository-name fluent-bit-multiline-repo --region us-east-1

Di mana:fluent-bit-multiline-repoadalah nama repositori danus-east-1adalah wilayahdalam contoh ini.

Output memberi Anda rincian repositori baru.b. Tandai gambar Anda denganrepositoryUrinilai dari output sebelumnya:docker tag

fluent-bit-multiline-image repositoryUri

Contoh: docker tag fluent-bit-multiline-image xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-repo

c. Jalankan gambar docker untuk memverifikasi itu berjalan dengan benar:docker images —filter reference=repositoryUri

Dalam output, nama repositori berubah dari fluent-bit-multiline-repo kerepositoryUri.d. Autentikasi ke Amazon ECR dengan menjalankanaws ecr get-login-passwordperintah

dan menentukan ID registri yang ingin Anda autentikasi ke:aws ecr get-login-password | docker login --username AWS --password-stdin registryID.dkr.ecr.region.amazonaws.com

Contoh: ecr get-login-password | docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com

Sebuah pesan login yang berhasil akan muncul.e. Dorong gambar ke Amazon ECR:docker push registry

ID.dkr.ecr.region.amazonaws.com/repository name

Contoh: docker push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-repo

157

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

Membangun dan meng-upload gambar untuk aplikasi multiline demo

Gambar ini akan mencakup file script Python yang menjalankan aplikasi dan file log sampel.

Ketika Anda menjalankan tugas, aplikasi mensimulasikan berjalan, kemudian gagal dan menciptakan jejaktumpukan.

1. Membuat folder bernamamultiline-app:mkdir multiline-app2. Buat file skrip Python.

a. Dalammultiline-appfolder, membuat file dan nama itumain.py.b. Tempelkan konten berikut ini di file:

import osimport timefile1 = open('/test.log', 'r')Lines = file1.readlines() count = 0

for i in range(10): print("app running normally...") time.sleep(1)

# Strips the newline characterfor line in Lines: count += 1 print(line.rstrip())print(count)print("app terminated.")

c. Simpan file main.py.3. Buat file log contoh.

a. Dalammultiline-appfolder, membuat file dan nama itutest.log.b. Tempelkan konten berikut ini di file:

single line...Dec 14 06:41:08 Exception in thread "main" java.lang.RuntimeException: Something has gone wrong, aborting! at com.myproject.module.MyProject.badMethod(MyProject.java:22) at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18) at com.myproject.module.MyProject.anotherMethod(MyProject.java:14) at com.myproject.module.MyProject.someMethod(MyProject.java:10) at com.myproject.module.MyProject.main(MyProject.java:6)another line...

c. Simpan file test.log.4. Dalammultiline-appfolder, buat Dockerfile.

a. Tempelkan konten berikut ini di file:

FROM public.ecr.aws/amazonlinux/amazonlinux:latestADD test.log /test.log

WORKDIR /usr/local/bin

COPY main.py .

158

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

CMD ["python3", "main.py"]

b. Simpan file Dockerfile.5. Menggunakan Dockerfile, membangun gambar.

a. Bangun citra:docker build -t multiline-app-image .

Di mana:multiline-app-imageadalah nama untuk gambar dalam contoh ini.b. Pastikan bahwa citra telah dibuat dengan benar:docker images —filter

reference=multiline-app-image

Jika berhasil, output menunjukkan citra danlatestTag.6. Unggah citra ke Amazon Elastic Container Registry.

a. Buat repositori Amazon ECR untuk menyimpan citra:aws ecr create-repository --repository-name multiline-app-repo --region us-east-1

Di mana:multiline-app-repoadalah nama repositori danus-east-1adalah wilayah dalamcontoh ini.

Output memberi Anda rincian repositori baru. CatatanrepositoryUrinilai karena Andamembutuhkannya pada langkah selanjutnya.

b. Tandai gambar Anda denganrepositoryUrinilai dari output sebelumnya:docker tagmultiline-app-image repositoryUri

Contoh: docker tag multiline-app-image xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/multiline-app-repo

c. Jalankan gambar docker untuk memverifikasi itu berjalan dengan benar:docker images —filter reference=repositoryUri

Dalam output, nama repositori berubah darimultiline-app-repokerepositoryUrinilai.d. Dorong citra ke Amazon ECR:docker push

aws_account_id.dkr.ecr.region.amazonaws.com/repository name

Contoh: docker push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/multiline-app-repo

Buat definisi tugas dan jalankan tugas

1. Buat file definisi tugas dengan nama filemultiline-task-definition.json.2. Tempelkan konten berikut ini dimultiline-task-definition.jsonBerkas:

{ "family": "firelens-example-multiline", "taskRoleArn": "task role ARN, "executionRoleArn": "execution role ARN", "containerDefinitions": [ { "essential": true, "image": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-image:latest", "name": "log_router", "firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/extra.conf" }

159

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

}, "memoryReservation": 50 }, { "essential": true, "image": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/multiline-app-image:latest", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "cloudwatch_logs", "region": "us-east-1", "log_group_name": "multiline-test/application", "auto_create_group": "true", "log_stream_prefix": "multiline-" } }, "memoryReservation": 100 } ], "requiresCompatibilities": ["FARGATE"], "networkMode": "awsvpc", "cpu": "256", "memory": "512"}

Ganti hal berikut dimultiline-task-definition.jsondefinisi tugas:

a. task role ARN

Untuk menemukan ARN peran tugas, buka konsol IAM. PilihPerandan menemukanecs-task-role-for-firelensperan tugas yang Anda buat. Pilih peran dan salinARNyang munculdiRingkasanbagian.

b. execution role ARN

Untuk menemukan ARN peran eksekusi, buka konsol IAM. PilihPerandanmenemukanecsTaskExecutionRoleperan. Pilih peran dan salinARNyang munculdiRingkasanbagian.

c. aws_account_id

Menemukanaws_account_id, masuk keAWS Management Console. Pilih nama pengguna Andadi kanan atas dan salin ID Akun Anda.

d. us-east-1

Ganti wilayah jika perlu.3. Mendaftarkan file definisi tugas:aws ecs register-task-definition --cli-input-json

file://multiline-task-definition.json --region us-east-1

4. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.5. Di panel navigasi, pilihKetentuan tugasdan kemudian pilihfirelens-example-multilinekeluarga

karena kami mendaftarkan definisi tugas untuk keluarga ini di baris pertama dari definisi tugas di atas.6. Pilih versi terbaru.7. PilihTindakan,Jalankan Tugas.8. UntukTipe peluncuran, pilihJauh.9. Untuk Subnet, pilih subnet yang tersedia untuk tugas Anda.10. Pilih Jalankan Tugas.

160

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

Verifikasi bahwa pesan log multiline di Amazon CloudWatch muncul bersatu

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.2. Dari panel navigasi, perluaskanBeberapa catatandan pilihlahGrup log.3. Pilihmultiline-test/applicatiogrup log.4. Pilih log. Lihat pesan. Baris yang cocok dengan aturan dalam file parser digabungkan dan muncul

sebagai satu pesan.

Cuplikan log berikut menunjukkan garis yang digabungkan dalam satu event Java stack trace:

{ "container_id": "xxxxxx", "container_name": "app", "source": "stdout", "log": "Dec 14 06:41:08 Exception in thread \"main\" java.lang.RuntimeException: Something has gone wrong, aborting!\n at com.myproject.module.MyProject.badMethod(MyProject.java:22)\n at com.myproject.module.MyProject.oneMoreMethod(MyProject.java:18)\n at com.myproject.module.MyProject.anotherMethod(MyProject.java:14)\n at com.myproject.module.MyProject.someMethod(MyProject.java:10)\n at com.myproject.module.MyProject.main(MyProject.java:6)", "ecs_cluster": "default", "ecs_task_arn": "arn:aws:ecs:us-east-1:xxxxxxxxxxxx:task/default/xxxxxx", "ecs_task_definition": "firelens-example-multiline:2"}

Cuplikan log berikut menunjukkan bagaimana pesan yang sama muncul hanya dengan satu baris jikaAnda menjalankan kontainer ECS yang tidak dikonfigurasi untuk menggabungkan pesan log multiline.

{ "log": "Dec 14 06:41:08 Exception in thread \"main\" java.lang.RuntimeException: Something has gone wrong, aborting!", "container_id": "xxxxxx-xxxxxx", "container_name": "app", "source": "stdout", "ecs_cluster": "default", "ecs_task_arn": "arn:aws:ecs:us-east-1:xxxxxxxxxxxx:task/default/xxxxxx", "ecs_task_definition": "firelens-example-multiline:3"}

Contoh: Gunakan parser bawaan Fluent Bit

Dalam contoh ini, Anda akan menyelesaikan langkah berikut:

1. Membangun dan meng-upload gambar untuk wadah Fluent Bit.2. Membangun dan meng-upload gambar untuk aplikasi demo multiline yang berjalan, gagal, dan

menghasilkan jejak tumpukan multiline.3. Buat definisi tugas dan jalankan tugas.4. Melihat log untuk memverifikasi bahwa pesan yang menjangkau beberapa baris muncul bersambung.

Membangun dan meng-upload gambar untuk wadah Fluent Bit

Gambar ini akan mencakup file konfigurasi yang mereferensikan parser Fluent Bit.

1. Buat folder dengan namaFluentBitDockerImage.

161

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

2. DalamFluentBitDockerImagefolder, membuat file konfigurasi kustom yang referensi Fluent Bitbuilt-in file parser.

Untuk informasi selengkapnya tentang file konfigurasi kustom, lihatMenentukan file konfigurasikustomdiPanduan Pengembang Amazon Elastic Container Service

a. Tempelkan konten berikut ini di file:

[FILTER] name multiline match * multiline.key_content log multiline.parser go

b. Simpan file sebagai extra.conf.3. DalamFluentBitDockerImagefolder, membuat Dockerfile dengan gambar Fluent Bit dan parser dan

konfigurasi file yang Anda buat.

a. Tempelkan konten berikut ini di file:

FROM public.ecr.aws/aws-observability/aws-for-fluent-bit:latestADD extra.conf /extra.conf

b. Simpan file sebagai Dockerfile.4. Menggunakan Dockerfile, buat gambar Fluent Bit kustom dengan file konfigurasi khusus yang

disertakan.

Note

Anda dapat menempatkan file konfigurasi di mana saja dalam gambar Docker kecuali/fluent-bit/etc/fluent-bit.confsebagai path file ini digunakan oleh FireLens.

a. Bangun citra:docker build -t fluent-bit-multiline-image .

Di mana:fluent-bit-multiline-imageadalah nama untuk gambar dalam contoh ini.b. Pastikan bahwa citra telah dibuat dengan benar:docker images —filter

reference=fluent-bit-multiline-image

Jika berhasil, output menunjukkan citra danlatestTag.5. Unggah citra Fluent Bit khusus ke Amazon Elastic Container Registry.

a. Buat repositori Amazon ECR untuk menyimpan citra:aws ecr create-repository --repository-name fluent-bit-multiline-repo --region us-east-1

Di mana:fluent-bit-multiline-repoadalah nama repositori danus-east-1adalah wilayahdalam contoh ini.

Output memberi Anda rincian repositori baru.b. Tandai gambar Anda denganrepositoryUrinilai dari output sebelumnya:docker tag

fluent-bit-multiline-image repositoryUri

Contoh: docker tag fluent-bit-multiline-image xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-repo

c. Jalankan gambar docker untuk memverifikasi itu berjalan dengan benar:docker images —filter reference=repositoryUri

Dalam output, nama repositori berubah dari fluent-bit-multiline-repo kerepositoryUri.

162

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

d. Autentikasi ke Amazon ECR dengan menjalankanaws ecr get-login-passwordperintahdan menentukan ID registri yang ingin Anda autentikasi ke:aws ecr get-login-password | docker login --username AWS --password-stdin registryID.dkr.ecr.region.amazonaws.com

Contoh: ecr get-login-password | docker login --username AWS --password-stdin xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com

Sebuah pesan login yang berhasil akan muncul.e. Dorong citra ke Amazon ECR:docker push registry

ID.dkr.ecr.region.amazonaws.com/repository name

Contoh: docker push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-repo

Membangun dan meng-upload gambar untuk aplikasi multiline demo

Gambar ini akan mencakup file script Python yang menjalankan aplikasi dan file log sampel.

1. Membuat folder bernamamultiline-app:mkdir multiline-app2. Buat file skrip Python.

a. Dalammultiline-appfolder, membuat file dan nama itumain.py.b. Tempelkan konten berikut ini di file:

import osimport timefile1 = open('/test.log', 'r')Lines = file1.readlines() count = 0

for i in range(10): print("app running normally...") time.sleep(1)

# Strips the newline characterfor line in Lines: count += 1 print(line.rstrip())print(count)print("app terminated.")

c. Simpan file main.py.3. Buat file log contoh.

a. Dalammultiline-appfolder, membuat file dan nama itutest.log.b. Tempelkan konten berikut ini di file:

panic: my panic

goroutine 4 [running]:panic(0x45cb40, 0x47ad70) /usr/local/go/src/runtime/panic.go:542 +0x46c fp=0xc42003f7b8 sp=0xc42003f710 pc=0x422f7cmain.main.func1(0xc420024120) foo.go:6 +0x39 fp=0xc42003f7d8 sp=0xc42003f7b8 pc=0x451339runtime.goexit()

163

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

/usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003f7e0 sp=0xc42003f7d8 pc=0x44b4d1created by main.main foo.go:5 +0x58

goroutine 1 [chan receive]:runtime.gopark(0x4739b8, 0xc420024178, 0x46fcd7, 0xc, 0xc420028e17, 0x3) /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc420053e30 sp=0xc420053e00 pc=0x42503cruntime.goparkunlock(0xc420024178, 0x46fcd7, 0xc, 0x1000f010040c217, 0x3) /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc420053e70 sp=0xc420053e30 pc=0x42512eruntime.chanrecv(0xc420024120, 0x0, 0xc420053f01, 0x4512d8) /usr/local/go/src/runtime/chan.go:506 +0x304 fp=0xc420053f20 sp=0xc420053e70 pc=0x4046b4runtime.chanrecv1(0xc420024120, 0x0) /usr/local/go/src/runtime/chan.go:388 +0x2b fp=0xc420053f50 sp=0xc420053f20 pc=0x40439bmain.main() foo.go:9 +0x6f fp=0xc420053f80 sp=0xc420053f50 pc=0x4512efruntime.main() /usr/local/go/src/runtime/proc.go:185 +0x20d fp=0xc420053fe0 sp=0xc420053f80 pc=0x424badruntime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc420053fe8 sp=0xc420053fe0 pc=0x44b4d1

goroutine 2 [force gc (idle)]:runtime.gopark(0x4739b8, 0x4ad720, 0x47001e, 0xf, 0x14, 0x1) /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc42003e768 sp=0xc42003e738 pc=0x42503cruntime.goparkunlock(0x4ad720, 0x47001e, 0xf, 0xc420000114, 0x1) /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc42003e7a8 sp=0xc42003e768 pc=0x42512eruntime.forcegchelper() /usr/local/go/src/runtime/proc.go:238 +0xcc fp=0xc42003e7e0 sp=0xc42003e7a8 pc=0x424e5cruntime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003e7e8 sp=0xc42003e7e0 pc=0x44b4d1created by runtime.init.4 /usr/local/go/src/runtime/proc.go:227 +0x35

goroutine 3 [GC sweep wait]:runtime.gopark(0x4739b8, 0x4ad7e0, 0x46fdd2, 0xd, 0x419914, 0x1) /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc42003ef60 sp=0xc42003ef30 pc=0x42503cruntime.goparkunlock(0x4ad7e0, 0x46fdd2, 0xd, 0x14, 0x1) /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc42003efa0 sp=0xc42003ef60 pc=0x42512eruntime.bgsweep(0xc42001e150) /usr/local/go/src/runtime/mgcsweep.go:52 +0xa3 fp=0xc42003efd8 sp=0xc42003efa0 pc=0x419973runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003efe0 sp=0xc42003efd8 pc=0x44b4d1created by runtime.gcenable /usr/local/go/src/runtime/mgc.go:216 +0x58one more line, no multiline

c. Simpan file test.log.4. Dalammultiline-appfolder, buat Dockerfile.

a. Tempelkan konten berikut ini di file:

164

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

FROM public.ecr.aws/amazonlinux/amazonlinux:latestADD test.log /test.log

WORKDIR /usr/local/bin

COPY main.py .

CMD ["python3", "main.py"]

b. Simpan file Dockerfile.5. Menggunakan Dockerfile, membangun gambar.

a. Bangun citra:docker build -t multiline-app-image .

Di mana:multiline-app-imageadalah nama untuk gambar dalam contoh ini.b. Pastikan bahwa citra telah dibuat dengan benar:docker images —filter

reference=multiline-app-image

Jika berhasil, output menunjukkan citra danlatestTag.6. Unggah citra ke Amazon Elastic Container Registry.

a. Buat repositori Amazon ECR untuk menyimpan citra:aws ecr create-repository --repository-name multiline-app-repo --region us-east-1

Di mana:multiline-app-repoadalah nama repositori danus-east-1adalah wilayah dalamcontoh ini.

Output memberi Anda rincian repositori baru. CatatanrepositoryUrinilai karena Andamembutuhkannya pada langkah selanjutnya.

b. Tandai gambar Anda denganrepositoryUrinilai dari output sebelumnya:docker tagmultiline-app-image repositoryUri

Contoh: docker tag multiline-app-image xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/multiline-app-repo

c. Jalankan gambar docker untuk memverifikasi itu berjalan dengan benar:docker images —filter reference=repositoryUri

Dalam output, nama repositori berubah darimultiline-app-repokerepositoryUrinilai.d. Dorong citra ke Amazon ECR:docker push

aws_account_id.dkr.ecr.region.amazonaws.com/repository name

Contoh: docker push xxxxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/multiline-app-repo

Buat definisi tugas dan jalankan tugas

1. Buat file definisi tugas dengan nama filemultiline-task-definition.json.2. Tempelkan konten berikut ini dimultiline-task-definition.jsonBerkas:

{ "family": "firelens-example-multiline", "taskRoleArn": "task role ARN, "executionRoleArn": "execution role ARN", "containerDefinitions": [ { "essential": true,

165

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

"image": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/fluent-bit-multiline-image:latest", "name": "log_router", "firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/extra.conf" } }, "memoryReservation": 50 }, { "essential": true, "image": "aws_account_id.dkr.ecr.us-east-1.amazonaws.com/multiline-app-image:latest", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "cloudwatch_logs", "region": "us-east-1", "log_group_name": "multiline-test/application", "auto_create_group": "true", "log_stream_prefix": "multiline-" } }, "memoryReservation": 100 } ], "requiresCompatibilities": ["FARGATE"], "networkMode": "awsvpc", "cpu": "256", "memory": "512"}

Ganti hal berikut dimultiline-task-definition.jsondefinisi tugas:

a. task role ARN

Untuk menemukan ARN peran tugas, buka konsol IAM. PilihPerandan menemukanecs-task-role-for-firelensperan tugas yang Anda buat. Pilih peran dan salinARNyang munculdiRingkasanbagian.

b. execution role ARN

Untuk menemukan ARN peran eksekusi, buka konsol IAM. PilihPerandanmenemukanecsTaskExecutionRoleperan. Pilih peran dan salinARNyang munculdiRingkasanbagian.

c. aws_account_id

Menemukanaws_account_id, masuk keAWS Management Console. Pilih nama pengguna Andadi kanan atas dan salin ID Akun Anda.

d. us-east-1

Ganti wilayah jika perlu.3. Mendaftarkan file definisi tugas:aws ecs register-task-definition --cli-input-json

file://multiline-task-definition.json --region us-east-1

4. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.5. Di panel navigasi, pilihKetentuan tugasdan kemudian pilihfirelens-example-multilinekeluarga

karena kami mendaftarkan definisi tugas untuk keluarga ini di baris pertama dari definisi tugas di atas.

166

Amazon ECS Panduan Pengguna untuk AWS FargateMenggabungkan pesan log multiline atau stack-trace

6. Pilih versi terbaru.7. PilihTindakan,Jalankan Tugas.8. UntukTipe peluncuran, pilihJauh.9. Untuk Subnet, pilih subnet yang tersedia untuk tugas Anda.10. Pilih Jalankan Tugas.

Verifikasi bahwa pesan log multiline di Amazon CloudWatch muncul bersatu

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.2. Dari panel navigasi, perluaskanBeberapa catatandan pilihlahGrup log.3. Pilihmultiline-test/applicatiogrup log.4. Pilih log dan lihat pesannya. Baris yang cocok dengan aturan dalam file parser digabungkan dan

muncul sebagai satu pesan.

Cuplikan log berikut menunjukkan jejak tumpukan Go yang digabungkan menjadi satu peristiwa:

{ "log": "panic: my panic\n\ngoroutine 4 [running]:\npanic(0x45cb40, 0x47ad70)\n /usr/local/go/src/runtime/panic.go:542 +0x46c fp=0xc42003f7b8 sp=0xc42003f710 pc=0x422f7c\nmain.main.func1(0xc420024120)\n foo.go:6 +0x39 fp=0xc42003f7d8 sp=0xc42003f7b8 pc=0x451339\nruntime.goexit()\n /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003f7e0 sp=0xc42003f7d8 pc=0x44b4d1\ncreated by main.main\n foo.go:5 +0x58\n\ngoroutine 1 [chan receive]:\nruntime.gopark(0x4739b8, 0xc420024178, 0x46fcd7, 0xc, 0xc420028e17, 0x3)\n /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc420053e30 sp=0xc420053e00 pc=0x42503c\nruntime.goparkunlock(0xc420024178, 0x46fcd7, 0xc, 0x1000f010040c217, 0x3)\n /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc420053e70 sp=0xc420053e30 pc=0x42512e\nruntime.chanrecv(0xc420024120, 0x0, 0xc420053f01, 0x4512d8)\n /usr/local/go/src/runtime/chan.go:506 +0x304 fp=0xc420053f20 sp=0xc420053e70 pc=0x4046b4\nruntime.chanrecv1(0xc420024120, 0x0)\n /usr/local/go/src/runtime/chan.go:388 +0x2b fp=0xc420053f50 sp=0xc420053f20 pc=0x40439b\nmain.main()\n foo.go:9 +0x6f fp=0xc420053f80 sp=0xc420053f50 pc=0x4512ef\nruntime.main()\n /usr/local/go/src/runtime/proc.go:185 +0x20d fp=0xc420053fe0 sp=0xc420053f80 pc=0x424bad\nruntime.goexit()\n /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc420053fe8 sp=0xc420053fe0 pc=0x44b4d1\n\ngoroutine 2 [force gc (idle)]:\nruntime.gopark(0x4739b8, 0x4ad720, 0x47001e, 0xf, 0x14, 0x1)\n /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc42003e768 sp=0xc42003e738 pc=0x42503c\nruntime.goparkunlock(0x4ad720, 0x47001e, 0xf, 0xc420000114, 0x1)\n /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc42003e7a8 sp=0xc42003e768 pc=0x42512e\nruntime.forcegchelper()\n /usr/local/go/src/runtime/proc.go:238 +0xcc fp=0xc42003e7e0 sp=0xc42003e7a8 pc=0x424e5c\nruntime.goexit()\n /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003e7e8 sp=0xc42003e7e0 pc=0x44b4d1\ncreated by runtime.init.4\n /usr/local/go/src/runtime/proc.go:227 +0x35\n\ngoroutine 3 [GC sweep wait]:\nruntime.gopark(0x4739b8, 0x4ad7e0, 0x46fdd2, 0xd, 0x419914, 0x1)\n /usr/local/go/src/runtime/proc.go:280 +0x12c fp=0xc42003ef60 sp=0xc42003ef30 pc=0x42503c\nruntime.goparkunlock(0x4ad7e0, 0x46fdd2, 0xd, 0x14, 0x1)\n /usr/local/go/src/runtime/proc.go:286 +0x5e fp=0xc42003efa0 sp=0xc42003ef60 pc=0x42512e\nruntime.bgsweep(0xc42001e150)\n /usr/local/go/src/runtime/mgcsweep.go:52 +0xa3 fp=0xc42003efd8 sp=0xc42003efa0 pc=0x419973\nruntime.goexit()\n /usr/local/go/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc42003efe0 sp=0xc42003efd8 pc=0x44b4d1\ncreated by runtime.gcenable\n /usr/local/go/src/runtime/mgc.go:216 +0x58", "container_id": "xxxxxx-xxxxxx", "container_name": "app", "source": "stdout", "ecs_cluster": "default", "ecs_task_arn": "arn:aws:ecs:us-east-1:xxxxxxxxxxxx:task/default/xxxxxx", "ecs_task_definition": "firelens-example-multiline:2"}

167

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas contoh

Cuplikan log berikut menunjukkan bagaimana peristiwa yang sama muncul jika Anda menjalankankontainer ECS yang tidak dikonfigurasi untuk menggabungkan pesan log multiline. Bidang log berisisatu baris.

{ "log": "panic: my panic", "container_id": "xxxxxx-xxxxxx", "container_name": "app", "source": "stdout", "ecs_cluster": "default", "ecs_task_arn": "arn:aws:ecs:us-east-1:xxxxxxxxxxxx:task/default/xxxxxx", "ecs_task_definition": "firelens-example-multiline:3"

Note

Jika log Anda masuk ke file log bukan output standar, sebaiknyatentukanmultiline.parserdanmultiline.key_contentparameter konfigurasi diPluginmasukan ekorbukan Filter.

Ketentuan tugas contohBerikut ini adalah beberapa ketentuan tugas contoh yang mendemonstrasikan opsi perutean log umum.Untuk contoh lainnya, lihatContoh Amazon ECS FireLensdi GitHub.

Topik• Meneruskan log ke CloudWatch Beberapa catatan (p. 168)• Meneruskan log ke aliran pengiriman Amazon Kinesis Data Firehose (p. 169)• Meneruskan log ke Amazon OpenSearch Domain layanan (p. 170)• Mengurai log kontainer yang merupakan serial JSON (p. 171)• Meneruskan ke Fluentd atau Fluent Bit eksternal (p. 172)

Meneruskan log ke CloudWatch Beberapa catatanNote

Untuk contoh lainnya, lihatAmazon ECS FireLens contohdi GitHub.

Contoh ketentuan tugas berikut mendemonstrasikan bagaimana untuk menentukan konfigurasi logyang meneruskan log ke CloudWatch Log grup log. Untuk informasi selengkapnya, lihatApa itu AmazonCloudWatch Log?diAmazon CloudWatch Panduan Pengguna Logs.

Dalam opsi konfigurasi log, tentukan nama grup log danWilayah AWSitu ada di. Untuk memiliki Fluent Bitmembuat grup log atas nama Anda, tentukan"auto_create_group":"true", untuk mengatur fluentd-buffer-limit menggunakanlog-driver-buffer-limit. Anda juga dapat menentukan ID tugas sebagaiprefiks aliran log, yang membantu dalam penyaringan. Untuk informasi selengkapnya, lihatPlugin Fluent Bituntuk CloudWatch Beberapa catatan.

{ "family": "firelens-example-cloudwatch", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ {

168

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas contoh

"essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:latest", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "cloudwatch", "region": "us-west-2", "log_group_name": "firelens-blog", "auto_create_group": "true", "log_stream_prefix": "from-fluent-bit", "log-driver-buffer-limit": "2097152" } }, "memoryReservation": 100 } ]}

Meneruskan log ke aliran pengiriman Amazon Kinesis DataFirehose

Note

Untuk contoh lainnya, lihatAmazon ECS FireLens contohdi GitHub.

Contoh ketentuan tugas berikut mendemonstrasikan konfigurasi log yang meneruskan log ke aliranpengiriman Amazon Kinesis Data Firehose. Aliran pengiriman Kinesis Data Firehose harus sudah ada.Untuk informasi selengkapnya, lihat Membuat Aliran Pengiriman Amazon Kinesis Data Firehose diPanduan Developer Amazon Kinesis Data Firehose.

Dalam opsi konfigurasi log, tentukan nama aliran pengiriman dan Wilayah tempatnya berada. Untukinformasi selengkapnya, lihat Plugin Fluent Bit untuk Amazon Kinesis Firehose.

{ "family": "firelens-example-firehose", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": {

169

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas contoh

"type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "firehose", "region": "us-west-2", "delivery_stream": "my-stream" } }, "memoryReservation": 100 } ]}

Meneruskan log ke Amazon OpenSearch Domain layananNote

Untuk contoh lainnya, lihatAmazon ECS FireLens contohdi GitHub.

Contoh ketentuan tugas berikut mendemonstrasikan cara menentukan konfigurasi log yang meneruskanlog ke Amazon OpenSearch Layanan; domain. Amazon OpenSearch Domain layanan harus sudah ada.Untuk informasi selengkapnya, lihatApa itu Amazon OpenSearch LayanandiAmazon OpenSearch PanduanDeveloper Service.

Dalam opsi konfigurasi log, tentukan opsi log yang diperlukan untuk OpenSearch Integrasi layanan. Untukinformasi selengkapnya, lihatFluent Bit untuk Amazon OpenSearch Layanan.

{ "family": "firelens-example-opensearch", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true",

170

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas contoh

"awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver": "awsfirelens", "options": { "Name": "es", "Host": "vpc-fake-domain-ke7thhzo07jawrhmz6mb7ite7y.us-west-2.es.amazonaws.com", "Port": "443", "Index": "my_index", "Type": "my_type", "AWS_Auth": "On", "AWS_Region": "us-west-2", "tls": "On" } }, "memoryReservation": 100 } ]}

Mengurai log kontainer yang merupakan serial JSONNote

Untuk contoh lainnya, lihatAmazon ECS FireLens contohdi GitHub.

Dimulai denganAWSuntuk Fluent Bit versi 1.3, pengurai JSON disertakan dalamAWSuntuk gambar FluentBit. Contoh berikut menunjukkan cara mereferensikan pengurai JSON di FireLens konfigurasi ketentuantugas Anda.

"firelensConfiguration": { "type": "fluentbit", "options": { "config-file-type": "file", "config-file-value": "/fluent-bit/configs/parse-json.conf" }},

File konfigurasi Fluent Bit mengurai log di JSON (misalnya, jika log di tujuan Anda tampak seperti berikut initanpa penguraian JSON).

{ "source": "stdout", "log": "{\"requestID\": \"b5d716fca19a4252ad90e7b8ec7cc8d2\", \"requestInfo\": {\"ipAddress\": \"204.16.5.19\", \"path\": \"/activate\", \"user\": \"TheDoctor\"}}", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8"}

171

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas contoh

Dengan penguraian JSON, log terlihat seperti berikut.

{ "source": "stdout", "container_id": "e54cccfac2b87417f71877907f67879068420042828067ae0867e60a63529d35", "container_name": "/ecs-demo-6-container2-a4eafbb3d4c7f1e16e00" "ecs_cluster": "mycluster", "ecs_task_arn": "arn:aws:ecs:us-east-2:01234567891011:task/mycluster/3de392df-6bfa-470b-97ed-aa6f482cd7a6", "ecs_task_definition": "demo:7" "ec2_instance_id": "i-06bc83dbc2ac2fdf8" "requestID": "b5d716fca19a4252ad90e7b8ec7cc8d2", "requestInfo": { "ipAddress": "204.16.5.19", "path": "/activate", "user": "TheDoctor" }}

JSON serial diperluas ke bidang tingkat atas dalam output JSON akhir. Untuk informasi selengkapnyatentang parsing JSON, lihatParserdalam dokumentasi Fluent Bit.

Meneruskan ke Fluentd atau Fluent Bit eksternalNote

Untuk contoh lainnya, lihatAmazon ECS FireLens contohdi GitHub.

Contoh ketentuan tugas berikut mendemonstrasikan bagaimana cara untuk menentukan konfigurasi logyang meneruskan log ke host Fluentd eksternal atau Fluent Bit. Tentukan host dan port untuk lingkunganAnda.

{ "family": "firelens-example-forward", "taskRoleArn": "arn:aws:iam::123456789012:role/ecs_task_iam_role", "containerDefinitions": [ { "essential": true, "image": "906394416424.dkr.ecr.us-west-2.amazonaws.com/aws-for-fluent-bit:stable", "name": "log_router", "firelensConfiguration": { "type": "fluentbit" }, "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "firelens-container", "awslogs-region": "us-west-2", "awslogs-create-group": "true", "awslogs-stream-prefix": "firelens" } }, "memoryReservation": 50 }, { "essential": true, "image": "httpd", "name": "app", "logConfiguration": { "logDriver":"awsfirelens", "options": { "Name": "forward",

172

Amazon ECS Panduan Pengguna untuk AWS FargateAutentikasi registri privat untuk tugas

"Host": "fluentdhost", "Port": "24224" } }, "memoryReservation": 100 } ]}

Autentikasi registri privat untuk tugasAutentikasi registri privat untuk tugasAWS Secrets Managermengizinkan Anda untuk menyimpan kredensisecara aman dan kemudian mereferensikannya dalam ketentuan tugas Anda. Ini menyediakan cara untukreferensi gambar kontainer yang ada di pendaftar pribadi di luarAWSyang memerlukan otentikasi dalamdefinisi tugas Anda. Fitur ini didukung oleh tugas yang dihosting di Fargate, instans Amazon EC2, daninstans eksternal menggunakan Amazon ECS Anywhere.

Important

Jika ketentuan tugas Anda mereferensikan citra yang disimpan di Amazon ECR, topik ini tidakberlaku. Untuk informasi selengkapnya, lihatMenggunakan Citra Amazon ECR dengan AmazonECSdiPanduan Pengguna Amazon Elastic Container Registry.

Untuk tugas yang di-host di Fargate, fitur ini memerlukan versi platform1.2.0atau nantinya. Untukinformasi, lihat AWSVersi platform (p. 55).

Dalam definisi kontainer Anda, tentukanrepositoryCredentialsobjek dengan rincian rahasia yangAnda buat. Rahasia Anda referensi dapat dari yang berbedaWilayah AWSatau akun yang berbeda daritugas yang menggunakannya.

Note

Saat menggunakan API Amazon ECS,AWS CLI, atauAWSSDK, jika rahasianya ada dalam halyang samaWilayah AWSsebagai tugas yang Anda luncurkan maka Anda dapat menggunakansalah satu ARN lengkap atau nama rahasianya. Jika rahasia ada di akun yang berbeda, ARNpenuh rahasia harus ditentukan. Saat menggunakanAWS Management Console, ARN penuhrahasia harus ditentukan selalu.

Berikut ini adalah potongan ketentuan tugas yang menunjukkan parameter yang diperlukan:

"containerDefinitions": [ { "image": "private-repo/private-image", "repositoryCredentials": { "credentialsParameter": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name" } }]

Izin IAM yang diperlukan untuk autentikasi registri privPeran eksekusi tugas Amazon ECS diperlukan untuk menggunakan fitur ini. Hal ini mengizinkan agenkontainer untuk menarik citra kontainer. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugasECS Amazon (p. 363).

173

Amazon ECS Panduan Pengguna untuk AWS FargateMengaktifkan autentikasi registri privat

Untuk menyediakan akses ke rahasia yang Anda buat, tambahkan izin berikut sebagai kebijakan inline keperan eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

• secretsmanager:GetSecretValue

• kms:Decrypt—Wajib hanya jika kunci Anda menggunakan kunci KMS khusus dan bukan kunci default.Amazon Resource Name (ARN) untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.

Berikut ini adalah contoh kebijakan inline yang menambahkan izin.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:GetParameters", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ]}

Mengaktifkan autentikasi registri privatUntuk membuat rahasia dasar

Gunakan AWS Secrets Manager untuk membuat rahasia untuk kredensial registri privat Anda.

1. BukaAWS Secrets Managerkonsol dihttps://console.aws.amazon.com/secretsmanager/.2. Pilih Store a new secret (Simpan rahasia baru).3. Untuk Pilih tipe rahasia, pilih Jenis rahasia lainnya.4. Pilih Plaintext dan masukkan kredensial registri privat Anda menggunakan format berikut:

{ "username" : "privateRegistryUsername", "password" : "privateRegistryPassword"}

5. Pilih Selanjutnya.6. UntukNama rahasia, masukkan jalur opsional dan nama, sepertiproduction/

MyAwesomeAppSecretataudevelopment/TestSecret, dan memilihSelanjutnya. Anda dapatmenambahkan deskripsi secara opsional untuk membantu Anda mengingat tujuan dari rahasia ininanti.

Nama rahasia harus berupa huruf ASCII, angka, atau salah satu karakter berikut:/[email protected]. (Opsional) Di sini, Anda dapat mengonfigurasi rotasi untuk rahasia Anda. Untuk prosedur ini, biarkan

tetap Disable automatic rotation (Nonaktifkan rotasi otomatis) dan pilih Next (Berikutnya).

Untuk petunjuk tentang cara mengonfigurasi rotasi rahasia baru atau rahasia yang sudah ada,lihatMemutar AndaAWS Secrets ManagerRahasia.

8. Tinjau pengaturan Anda, lalu pilihToko rahasiauntuk menyimpan segala sesuatu yang Anda masukkansebagai rahasia baru di Secrets Manager.

174

Amazon ECS Panduan Pengguna untuk AWS FargateMenentukan data sensitif

Untuk membuat ketentuan tugas yang menggunakan autentikasi registri privat

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pada panel navigasi, pilih Ketentuan tugas.3. Pada halaman Definisi Tugas, pilih Buat Definisi Tugas baru.4. Pada Pilih kompatibilitas tipe peluncuran, pilih tipe peluncuran untuk tugas Anda, lalu Langkah

selanjutnya.5. UntukNama definisi tugas, masukkan nama untuk ketentuan tugas Anda. Mengizinkan hingga 255

huruf (huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah.6. UntukPeran eksekusi tugas, pilih peran eksekusi tugas yang ada atau pilihMembuat peran baru.

Peran ini mengotorisasi Amazon ECS untuk menarik citra privat untuk tugas Anda. Untuk informasiselengkapnya, lihat Izin IAM yang diperlukan untuk autentikasi registri priv (p. 173).

Important

JikaPeran eksekusi tugasbidang tidak muncul, pilihKonfigurasi melalui JSONdanmenambahkanexecutionRoleArnbidang untuk menentukan peran eksekusi tugas Anda.Berikut ini menunjukkan sintaksis:

"executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"

7. Untuk setiap kontainer untuk membuat ketentuan tugas Anda, selesaikan langkah berikut:

a. Di bagian Ketentuan Kontainer, pilih Tambahkan kontainer.b. UntukNama kontainer, ketikkan nama untuk kontainer Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.c. UntukCitra, ketik nama citra atau path ke citra privat Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.d. Pilih opsi Autentikasi repositori private.e. Untuk Secrets Manager ARN, masukkan Amazon Resource Name (ARN) lengkap dari rahasia

yang Anda buat sebelumnya. Nilainya harus antara 20 dan 2048 karakter.f. Isi bidang wajib yang tersisa dan bidang opsional apa pun untuk digunakan dalam ketentuan

kontainer Anda. Lebih banyak parameter ketentuan kontainer tersedia di menu Konfigurasikontainer lanjutan. Untuk informasi selengkapnya, lihat Parameter ketentuan tugas (p. 95).

g. Pilih Tambahkan.8. Saat kontainer ditambahkan, pilih Buat.

Menentukan data sensitifAnda dapat menggunakan Amazon ECS untuk menyuntikkan data sensitif ke dalam kontainerdengan menyimpan data sensitif Anda di keduaAWS Secrets Managerrahasia atauAWS SystemsManagerParameter Store parameter dan kemudian merujuknya dalam definisi kontainer Anda.

Rahasia dapat diekspos ke kontainer dengan cara berikut:

• Untuk memasukkan data sensitif ke dalam kontainer Anda sebagai variabel lingkungan, gunakanparameter ketentuan kontainer secrets.

• Untuk mereferensikan informasi sensitif dalam konfigurasi log penampung, gunakan parameterketentuan kontainer secretOptions.

Topik

175

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

• Menentukan data sensitif menggunakan Secrets Manager (p. 176)• Menentukan data sensitif menggunakan Systems Manager Parameter Store (p. 182)

Menentukan data sensitif menggunakan SecretsManagerAmazon ECS memungkinkan Anda menyuntikkan data sensitif ke dalam kontainer dengan menyimpandata sensitif Anda diAWS Secrets Managerrahasia dan kemudian mereferensikannya dalam definisikontainer Anda. Data sensitif yang disimpan dalam rahasia Secrets Manager dapat diekspos ke kontainersebagai variabel lingkungan atau sebagai bagian dari konfigurasi log.

Saat Anda menyuntikkan rahasia sebagai variabel lingkungan, Anda dapat menentukan konten lengkaprahasia, kunci JSON tertentu di dalam rahasia, atau versi tertentu dari rahasia yang akan disuntikkan.Hal ini membantu Anda mengontrol data sensitif yang diekspos ke kontainer Anda. Untuk informasiselengkapnya tentang pembuatan versi rahasia, lihatSyarat dan Konsep Utama untukAWSSecretsManagerdiAWS Secrets ManagerPanduan Pengguna.

Pertimbangan untuk menentukan data sensitif menggunakanSecrets ManagerPertimbangkan hal berikut saat menggunakan Secrets Manager untuk menentukan data sensitif untukkontainer.

• Untuk tugas Amazon ECSAWS Fargate, pertimbangkan hal berikut:• Untuk menyuntikkan konten penuh rahasia sebagai variabel lingkungan atau dalam konfigurasi log,

Anda harus menggunakan versi 1.3.0 platform atau yang lebih baru. Untuk informasi, lihat AWSVersiplatform (p. 55).

• Untuk memasukkan kunci JSON atau versi rahasia tertentu sebagai variabel lingkungan ataudalam konfigurasi log, Anda harus menggunakan versi platform1.4.0atau yang lebih baru (Linux)atau1.0.0(Jendela). Untuk informasi, lihat AWSVersi platform (p. 55).

• Hanya rahasia yang menyimpan data teks, yang merupakan rahasia yang dibuat dengan parameterSecretString CreateSecret API, yang didukung. Rahasia yang menyimpan data biner, yangmerupakan rahasia yang dibuat dengan SecretBinary parameterCreateSecretAPI tidak didukung.

• Ketika menggunakan ketentuan tugas yang mereferensikan rahasia Secrets Manager untuk mengambildata sensitif untuk kontainer Anda, jika Anda juga menggunakan VPC endpoint antarmuka, Andaharus membuat VPC endpoint antarmuka untuk Secrets Manager. Untuk informasi selengkapnya,lihat Menggunakan Secrets Manager dengan VPC Endpoint dalam Panduan Pengguna AWS SecretsManager.

• Data sensitif disuntikkan ke dalam kontainer Anda ketika kontainer awalnya dimulai. Jika rahasiakemudian diperbarui atau dirotasi, kontainer tidak menerima nilai yang diperbarui secara otomatis.Anda harus menjalankan tugas baru atau jika tugas Anda adalah bagian dari layanan yang Anda dapatmemperbarui layanan dan menggunakanMemaksa penyebaran barupilihan untuk memaksa layananmeluncurkan tugas baru.

• VPC yang digunakan tugas Anda harus memiliki resolusi DNS yang diaktifkan.

Izin IAM yang diperlukan untuk rahasia Amazon ECSUntuk menggunakan fitur ini, Anda harus memiliki peran eksekusi tugas Amazon ECS danmereferensikannya dalam ketentuan tugas Anda. Hal ini memungkinkan agen kontainer untuk menariksumber daya Secrets Manager yang diperlukan. Untuk informasi selengkapnya, lihat Peran IAM eksekusitugas ECS Amazon (p. 363).

176

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

Untuk menyediakan akses ke rahasia Secrets Manager yang Anda buat, tambahkan izin berikutsecara manual sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasi selengkapnya, lihatMenambahkan dan Menghapus Kebijakan IAM.

• secretsmanager:GetSecretValue–Wajib jika Anda mereferensikan rahasia Secrets Manager.• kms:Decrypt–Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kunci

default. ARN untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ]}

Menyuntikkan data sensitif sebagai variabel lingkunganDalam ketentuan kontainer Anda, Anda dapat menentukan hal berikut:

• Objek secrets yang berisi nama variabel lingkungan untuk diatur dalam kontainer• Amazon Resource Name (ARN) rahasia Secrets Manager• Parameter tambahan yang berisi data sensitif untuk hadir ke kontainer

Contoh berikut menunjukkan sintaks lengkap yang harus ditentukan untuk rahasia Secrets Manager.

arn:aws:secretsmanager:region:aws_account_id:secret:secret-name

Bagian berikut menjelaskan parameter tambahan. Parameter ini opsional, namun jika Anda tidakmenggunakannya, Anda harus menyertakan titik dua:untuk menggunakan nilai default. Contoh disediakandi bawah ini sebagai konteks.

json-key

Menentukan nama kunci dalam pasangan kunci-nilai dengan nilai yang ingin Anda tetapkan sebagainilai variabel lingkungan. Hanya nilai dalam format JSON yang didukung. Jika Anda tidak menentukankunci JSON, konten lengkap dari rahasia akan digunakan.

version-stage

Menentukan label tahapan dari versi rahasia yang ingin Anda gunakan. Jika label tahapan versiditentukan, Anda tidak dapat menentukan ID versi. Jika tidak ada tahap versi yang ditentukan, perilakudefault-nya adalah mengambil rahasia dengan label tahapan AWSCURRENT.

Label tahapan digunakan untuk melacak berbagai versi rahasia saat diperbarui atau dirotasi. Setiapversi rahasia memiliki satu atau beberapa label tahapan dan satu ID. Untuk informasi selengkapnya,

177

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

lihatSyarat dan Konsep Utama untukAWS Secrets ManagerdiAWS Secrets ManagerPanduanPengguna.

version-id

Menentukan pengidentifikasi unik dari versi rahasia yang ingin Anda gunakan. Jika ID versi ditentukan,Anda tidak dapat menentukan label tahapan versi. Jika tidak ada ID versi yang ditentukan, perilakudefault-nya adalah mengambil rahasia dengan label tahapan AWSCURRENT.

ID versi digunakan untuk melacak berbagai versi rahasia saat diperbarui atau dirotasi. Setiap versirahasia memiliki satu ID. Untuk informasi selengkapnya, lihatSyarat dan Konsep Utama untukAWSSecrets ManagerdiAWS Secrets ManagerPanduan Pengguna.

Untuk tutorial lengkap tentang ho untuk membuat rahasia Secrets Manager dan menyuntikkannya kedalam kontainer sebagai variabel lingkungan, lihatTutorial: Menentukan data sensitif menggunakan rahasiaSecrets Manager (p. 417).

Contoh ketentuan kontainer

Contoh berikut menunjukkan cara yang dapat Anda gunakan untuk mereferensikan rahasia SecretsManager dalam ketentuan kontainer Anda.

Example mereferensikan rahasia penuh

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika referensi teks lengkap rahasiaSecrets Manager.

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf" }] }]}

Example mereferensikan kunci tertentu dalam sebuah rahasia

Berikut ini menunjukkan contoh output darimendapatkan-rahasia-nilaiperintah yang menampilkan kontenrahasia bersama dengan label tahapan versi dan ID versi yang terkait dengan itu.

{ "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf", "Name": "appauthexample", "VersionId": "871d9eca-18aa-46a9-8785-981ddEXAMPLE", "SecretString": "{\"username1\":\"password1\",\"username2\":\"password2\",\"username3\":\"password3\"}", "VersionStages": [ "AWSCURRENT" ], "CreatedDate": 1581968848.921}

Referensikan kunci tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukan namakunci di akhir ARN.

{ "containerDefinitions": [{ "secrets": [{

178

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

"name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:username1::" }] }]}

Example mereferensikan versi rahasia tertentu

Berikut ini menunjukkan contoh output dari perintah describe-secret yang menampilkan konten rahasiayang tidak terenkripsi bersama dengan metadata untuk semua versi rahasia.

{ "ARN": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf", "Name": "appauthexample", "Description": "Example of a secret containing application authorization data.", "RotationEnabled": false, "LastChangedDate": 1581968848.926, "LastAccessedDate": 1581897600.0, "Tags": [], "VersionIdsToStages": { "871d9eca-18aa-46a9-8785-981ddEXAMPLE": [ "AWSCURRENT" ], "9d4cb84b-ad69-40c0-a0ab-cead3EXAMPLE": [ "AWSPREVIOUS" ] }}

Referensikan label tahapan versi tertentu dari output sebelumnya dalam ketentuan kontainer denganmenentukan nama kunci di akhir ARN.

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf::AWSPREVIOUS:" }] }]}

Referensikan ID versi tertentu dari output sebelumnya dalam ketentuan kontainer dengan menentukannama kunci di akhir ARN.

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:appauthexample-AbCdEf:::9d4cb84b-ad69-40c0-a0ab-cead3EXAMPLE" }] }]}

Menyuntikkan data sensitif dalam konfigurasi logDalam ketentuan kontainer Anda, saat menentukanlogConfigurationAnda dapatmenentukansecretOptionsdengan nama opsi driver log yang akan ditetapkan dalam kontainer dan

179

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

Amazon Resource Name (ARN) lengkap dari rahasia Secrets Manager yang berisi data sensitif untukdiberikan ke kontainer.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika referensi rahasia SecretsManager.

{ "containerDefinitions": [{ "logConfiguration": [{ "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080" }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:secret_name-AbCdEf" }] }] }]}

Membuat rahasia AWS Secrets ManagerAnda dapat menggunakan konsol Secrets Manager untuk membuat rahasia untuk data sensitif Anda. Untukinformasi lebih lanjut, lihat Membuat Rahasia Dasar dalam Panduan Pengguna AWS Secrets Manager.

Untuk membuat rahasia dasar

Gunakan Secrets Manager untuk membuat rahasia untuk data sensitif Anda.

1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.2. Pilih Store a new secret (Simpan rahasia baru).3. Untuk Select secret type (Pilih tipe rahasia), pilih Other type of secrets (Tipe rahasia lainnya).4. Tentukan detail rahasia khusus Anda sebagai pasangan Key (Kunci) dan Value (Nilai). Misalnya,

Anda dapat menentukan kunci UserName, lalu memberikan nama pengguna yang sesuai sebagainilainya. Tambahkan kunci kedua dengan nama Password dan teks kata sandi sebagai nilainya. Andajuga dapat menambahkan entri untuk nama basis data, dan port TCP, dan sebagainya. Anda dapatmenambahkan pasangan sebanyak yang Anda butuhkan untuk menyimpan informasi yang Andabutuhkan.

Sebagai alternatif, Anda dapat memilih tab Plaintext dan masukkan nilai rahasia dengan cara apa punyang Anda suka.

5. Pilih kunci enkripsi AWS KMS yang ingin Anda gunakan untuk mengenkripsi teks yang dilindungidalam rahasia. Jika Anda tidak memilihnya, Secrets Manager akan memeriksa apakah ada kuncidefault untuk akun tersebut, dan menggunakannya jika ada. Jika kunci default tidak ada, SecretsManager akan membuatnya untuk Anda secara otomatis. Anda juga dapat memilihTambahkan kuncibaruuntuk membuat kunci KMS khusus untuk rahasia ini. Untuk membuat kunci KMS sendiri, Andaharus memiliki izin untuk membuat kunci KMS di akun Anda.

6. Pilih Selanjutnya.7. Untuk Secret name (Nama rahasia), ketik nama dan jalur opsional, misalnya production/

MyAwesomeAppSecret atau development/TestSecret, lalu pilih Next (Berikutnya). Anda dapatmenambahkan deskripsi secara opsional untuk membantu Anda mengingat tujuan dari rahasia ininanti.

Nama rahasia harus berupa huruf ASCII, angka, atau salah satu karakter berikut:/_+=.@-.

180

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Secrets Manager

8. (Opsional) Di sini, Anda dapat mengonfigurasi rotasi untuk rahasia Anda. Untuk prosedur ini, biarkantetap Disable automatic rotation (Nonaktifkan rotasi otomatis) dan pilih Next (Berikutnya).

Untuk informasi tentang cara mengonfigurasi rotasi rahasia baru atau rahasia yang sudah ada, lihatMerotasi Rahasia AWS Secrets Manager Anda.

9. Tinjau pengaturan Anda, lalu pilihToko rahasiauntuk menyimpan segala sesuatu yang Anda masukkansebagai rahasia baru di Secrets Manager.

Membuat ketentuan tugas di konsol klasik yang mereferensikandata sensitifAnda dapat menggunakan konsol Amazon ECS untuk membuat ketentuan tugas yang mereferensi rahasiaSecrets Manager.

Untuk membuat ketentuan tugas yang menetapkan rahasia

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih ketentuan tugas, Buat ketentuan tugas baru.3. Pada halaman Pilih kompatibilitas tipe peluncuran, pilih tipe peluncuran untuk tugas Anda dan pilih

Langkah selanjutnya.4. UntukNama definisi tugas, ketik nama untuk ketentuan tugas Anda. Mengizinkan hingga 255 huruf

(huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah.5. Untuk Peran eksekusi tugas, pilih peran eksekusi tugas yang ada atau pilih Buat peran baru untuk

memiliki satu dibuat untuk Anda. Peran ini mengotorisasi Amazon ECS untuk menarik citra privat untuktugas Anda. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan untuk autentikasi registripriv (p. 173).

Important

JikaPeran eksekusi tugasbidang tidak muncul, pilihKonfigurasi melalui JSONdan secaramanual menambahkanexecutionRoleArnbidang untuk menentukan peran eksekusi tugasAnda. Kode berikut menunjukkan sintaksis:

"executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"

6. Untuk setiap kontainer untuk membuat ketentuan tugas Anda, selesaikan langkah berikut:

a. Di bawah Definisi Kontainer, pilih Tambahkan kontainer.b. UntukNama kontainer, ketikkan nama untuk kontainer Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.c. UntukCitra, ketik nama citra atau path ke citra privat Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.d. Perluas Konfigurasi kontainer lanjutan.e. Untuk data sensitif untuk menyuntikkan sebagai variabel lingkungan, di bawah Lingkungan, untuk

Variabel lingkungan, lengkapi kolom-kolom berikut:

i. Untuk Kunci, masukkan nama variabel lingkungan untuk mengatur dalam kontainer. Hal inisesuai dengan bidang name dalam bagian secrets dari ketentuan kontainer.

ii. Untuk Nilai, pilih ValueFrom. UntukTambah nilai, masukkan ARN rahasia Secrets Manageryang berisi data untuk hadir untuk kontainer Anda sebagai variabel lingkungan.

f. Untuk data sensitif yang direferensikan dalam konfigurasi log untuk kontainer, dibawahPenyimpanan dan Pencatatan, untukKonfigurasi log, lengkapi bidang berikut:

i. HapusKonfigurasi otomatis CloudWatch Beberapa catatanpilihan.

181

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Systems Manager Parameter Store

ii. Di bawah Pilihan log, untuk Kunci, masukkan nama opsi konfigurasi log untuk mengatur.iii. Untuk Nilai, pilih ValueFrom. UntukTambah nilai, masukkan ARN penuh rahasia Secrets

Manager yang berisi data untuk hadir untuk konfigurasi log Anda sebagai opsi log.g. Isi bidang wajib yang tersisa dan bidang opsional apa pun untuk digunakan dalam ketentuan

kontainer Anda. Lebih banyak parameter ketentuan kontainer tersedia di menu Konfigurasikontainer lanjutan. Untuk informasi selengkapnya, lihat Parameter ketentuan tugas (p. 95).

h. Pilih Tambahkan.7. Saat kontainer ditambahkan, pilih Buat.

Menentukan data sensitif menggunakan SystemsManager Parameter StoreAnda dapat menggunakan Amazon ECS untuk menyuntikkan data sensitif ke dalam kontainer denganmenyimpan data sensitif Anda diAWS Systems ManagerParameter Store parameter dan kemudianmerujuknya dalam definisi kontainer Anda.

Topik• Pertimbangan untuk menentukan data sensitif menggunakan Systems Manager Parameter

Store (p. 182)• Izin IAM yang diperlukan untuk rahasia Amazon ECS (p. 182)• Menyuntikkan data sensitif sebagai variabel lingkungan (p. 183)• Menyuntikkan data sensitif dalam konfigurasi log (p. 183)• Membuat parameter AWS Systems Manager Parameter Store (p. 184)• Membuat Definisi Tugas di konsol klasik yang mereferensikan data sensitif (p. 185)

Pertimbangan untuk menentukan data sensitif menggunakanSystems Manager Parameter StorePertimbangkan hal berikut saat menentukan data sensitif untuk kontainer menggunakan parameterSystems Manager Parameter Store.

• Parameter Systems Manager Parameter Store harus ada di akun yang sama dengan tugas yangdijalankan.

• Untuk tugas yang di-host di Fargate, fitur ini mengharuskan tugas Anda menggunakan versiplatform1.3.0atau yang lebih baru (untuk Linux) atau1.0.0atau yang lebih baru (untuk Windows).Untuk informasi, lihat AWSVersi platform (p. 55).

• Data sensitif disuntikkan ke dalam kontainer Anda ketika kontainer awalnya dimulai. Jika rahasia atauparameter Parameter Store kemudian diperbarui atau dirotasi, kontainer tidak menerima nilai yangdiperbarui secara otomatis. Anda harus menjalankan tugas baru atau jika tugas Anda adalah bagiandari layanan Anda dapat memperbarui layanan dan menggunakan Memaksa deployment baru untukmemaksa layanan untuk meluncurkan tugas baru.

Izin IAM yang diperlukan untuk rahasia Amazon ECSUntuk menggunakan fitur ini, Anda harus memiliki peran eksekusi tugas Amazon ECS danmereferensikannya dalam ketentuan tugas Anda. Hal ini mengizinkan agen kontainer untuk menarik yangdiperlukan sumber daya AWS Systems Manager. Untuk informasi selengkapnya, lihat Peran IAM eksekusitugas ECS Amazon (p. 363).

182

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Systems Manager Parameter Store

Untuk memberikan akses ke parameter Penyimpanan Parameter AWS Systems Manager yang Anda buat,tambahkan izin berikut secara manual sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasiselengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

• ssm:GetParameters—Wajib jika Anda mereferensikan parameter Systems Manager Parameter Storedalam ketentuan tugas.

• secretsmanager:GetSecretValue—Wajib jika Anda mereferensikan rahasia Secrets Managersecara langsung atau jika parameter Systems Manager Parameter Store Anda mereferensikan rahasiaSecrets Manager dalam ketentuan tugas.

• kms:Decrypt—Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kuncidefault. ARN untuk kunci kustom Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>", "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ]}

Menyuntikkan data sensitif sebagai variabel lingkunganDalam ketentuan kontainer Anda, tentukansecretsdengan nama variabel lingkungan yang akanditetapkan dalam kontainer dan Amazon Resource Name (ARN) lengkap parameter Systems ManagerParameter Store yang berisi data sensitif untuk diberikan ke kontainer.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format yang digunakan saat mereferensikanparameter Systems Manager Parameter Store. Jika parameter Systems Manager Parameter ada diWilayah yang sama dengan tugas yang Anda luncurkan maka Anda dapat menggunakan ARN lengkapatau nama parameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }]}

Menyuntikkan data sensitif dalam konfigurasi logDalam ketentuan kontainer Anda, saat menentukanlogConfiguration, Anda dapatmenentukansecretOptionsdengan nama opsi driver log yang akan ditetapkan dalam kontainer dan

183

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Systems Manager Parameter Store

Amazon Resource Name (ARN) lengkap parameter Systems Manager Parameter Store yang berisi datasensitif untuk diberikan ke kontainer.

Important

Jika parameter Systems Manager Parameter Store ada dalam hal yang samaWilayahAWSsebagai tugas yang Anda luncurkan, Anda dapat menggunakan ARN lengkap atau namaparameter. Jika parameter ada di Wilayah yang berbeda, ARN lengkap harus disebutkan.

Berikut ini adalah cuplikan ketentuan tugas yang menunjukkan format ketika referensi parameter SystemsManager Parameter Store.

{ "containerDefinitions": [{ "logConfiguration": [{ "logDriver": "fluentd", "options": { "tag": "fluentd demo" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }] }]}

Membuat parameter AWS Systems Manager Parameter StoreAnda dapat menggunakan konsol AWS Systems Manager untuk membuat parameter Systems ManagerParameter Store untuk data sensitif Anda. Untuk informasi lebih lanjut, lihat Panduan: Membuat danMenggunakan Parameter dalam Command (Console)diAWS Systems ManagerPanduan Pengguna.

Untuk membuat parameter Parameter Store

1. Buka konsol AWS Systems Manager di https://console.aws.amazon.com/systems-manager/.2. Di panel navigasi, pilihParameter Storedan kemudianBuat parameter.3. UntukNama, masukkan hierarki dan nama parameter (misalnya/test/database_password).4. Untuk Description (Deskripsi), ketik deskripsi opsional.5. Untuk Type, pilih String, StringList, atau SecureString.

Note

• Jika Anda memilihSecureString, yangID kuncibidang muncul. Jika Anda tidak memberikanID kunci KMS, ARN kunci KMS, nama alias, atau ARN alias, maka sistem akanmenggunakanalias/aws/ssm. Ini adalah kunci KMS default untuk Systems Manager.Untuk menghindari penggunaan kunci ini, pilih tombol kustom. Untuk informasi lebih lanjut,lihat Menggunakan Parameter String Aman dalam Panduan Pengguna AWS SystemsManager.

• Bila Anda membuat parameter string aman di konsol dengan menggunakankey-idparameter dengan baik nama alias kunci KMS kustom atau alias ARN, Anda harusmenentukan awalanalias/sebelum alias. Berikut ini adalah contoh ARN:

arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

Berikut ini adalah contoh nama alias:

184

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Systems Manager Parameter Store

alias/MyAliasName

6. Untuk Value (Nilai), ketik nilai. Misalnya, MyFirstParameter. Jika Anda memilih SecureString, nilaibertopeng saat Anda mengetik.

7. Pilih Buat Parameter.

Membuat Definisi Tugas di konsol klasik yang mereferensikandata sensitifAnda dapat menggunakan konsol Amazon ECS untuk membuat ketentuan tugas yang mereferensikanparameter Systems Manager Parameter Store.

Untuk membuat ketentuan tugas yang menetapkan rahasia

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilihdefinisi tugas,Membuat Definisi Tugas Baru.3. Pada halaman Pilih kompatibilitas tipe peluncuran, pilih tipe peluncuran untuk tugas Anda dan pilih

Langkah selanjutnya.4. UntukNama definisi tugas, ketik nama untuk ketentuan tugas Anda. Mengizinkan hingga 255 huruf

(huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah.5. UntukPeran eksekusi tugas, pilih peran eksekusi tugas yang ada atau pilihMembuat peran baru. Peran

yang dibuat mengotorisasi Amazon ECS untuk menarik citra privat untuk tugas Anda. Untuk informasiselengkapnya, lihat Izin IAM yang diperlukan untuk autentikasi registri priv (p. 173).

Important

JikaPeran eksekusi tugasbidang tidak muncul, pilihKonfigurasi melalui JSONdanmenambahkanexecutionRoleArnbidang untuk menentukan peran eksekusi tugas Anda.Kode berikut menunjukkan sintaksis:

"executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"

6. Untuk setiap kontainer untuk membuat ketentuan tugas Anda, selesaikan langkah berikut:

a. Di bawah Definisi Kontainer, pilih Tambahkan kontainer.b. UntukNama kontainer, ketikkan nama untuk kontainer Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.c. UntukCitra, ketik nama citra atau path ke citra privat Anda. Mengizinkan hingga 255 huruf (huruf

besar dan huruf kecil), angka, tanda hubung, dan garis bawah.d. Perluas Konfigurasi kontainer lanjutan.e. Untuk data sensitif untuk menyuntikkan sebagai variabel lingkungan, di bawah Lingkungan, untuk

Variabel lingkungan, lengkapi kolom-kolom berikut:

i. Untuk Kunci, masukkan nama variabel lingkungan untuk mengatur dalam kontainer. Ini sesuaidengannamebidang yang ada disecretsdari definisi kontainer.

ii. Untuk Nilai, pilih ValueFrom. UntukTambah nilai, masukkan Amazon Resource Name (ARN)dariAWS Systems ManagerParameter Store yang berisi data untuk hadir ke kontainer Andasebagai variabel lingkungan.

Note

Jika parameter Systems Manager Parameter Store ada dalam hal yangsamaWilayah AWSsebagai tugas yang Anda luncurkan, Anda dapat menggunakan

185

Amazon ECS Panduan Pengguna untuk AWS FargateMenentukan variabel lingkungan

ARN lengkap atau nama secret. Jika parameter ada di Wilayah yang berbeda makaARN penuh harus ditentukan.

f. Untuk rahasia yang direferensikan dalam konfigurasi log untuk kontainer, di bawah Penyimpanandan Pencatatan, untuk konfigurasi Log, lengkapi bidang berikut:

i. HapusKonfigurasi otomatis CloudWatch Beberapa catatanpilihan.ii. Di bawah Pilihan log, untuk Kunci, masukkan nama opsi konfigurasi log untuk mengatur.iii. Untuk Nilai, pilih ValueFrom. Untuk Tambah nilai, masukkan nama atau ARN penuh

parameter Penyimpanan Parameter AWS Systems Manager yang berisi data untuk hadiruntuk konfigurasi log Anda sebagai opsi log.

Note

Jika parameter Systems Manager Parameter Store ada dalam hal yangsamaWilayah AWSsebagai tugas yang Anda luncurkan, Anda dapat menggunakanARN lengkap atau nama secret tersebut. Jika parameter ada di Wilayah yangberbeda, ARN lengkap harus disebutkan.

g. Isi bidang wajib yang tersisa dan bidang opsional apa pun untuk digunakan dalam ketentuankontainer Anda. Lebih banyak parameter ketentuan kontainer tersedia di menu Konfigurasikontainer lanjutan. Untuk informasi selengkapnya, lihat Parameter ketentuan tugas (p. 95).

h. Pilih Tambahkan.7. Saat kontainer ditambahkan, pilih Buat.

Menentukan variabel lingkunganImportant

Sebaiknya simpan data sensitif AndaAWS Secrets Managerrahasia atauAWS SystemsManagerParameter Store. Untuk informasi selengkapnya, lihat Menentukan datasensitif (p. 175).variabel lingkungan yang ditentukan dalam definisi tugas dapat dibaca oleh semua pengguna IAMdan peran yang diperbolehkanDescribeTaskDefinitiontindakan untuk ketentuan tugas.File variabel lingkungan adalah objek di Amazon S3 dan semua pertimbangan keamanan AmazonS3 berlaku. Lihat bagian di bawahthe section called “Izin IAM yang diperlukan” (p. 188).

Anda dapat mengirimkan variabel lingkungan ke kontainer Anda dengan cara berikut:

• Secara individual menggunakan parameter ketentuan kontainer environment. Ini memetakan ke --env opsi untuk docker run.

• Dalam jumlah besar, menggunakanenvironmentFilesparameter ketentuan kontainer untukmembuat daftar satu atau lebih file yang berisi variabel lingkungan. File harus di-host di Amazon S3. Inimemetakan ke --env-file opsi untuk docker run.

Dengan menentukan variabel lingkungan dalam file, Anda dapat menyuntikkan variabel lingkungan secaramassal. Dalam ketentuan kontainer Anda, tentukanenvironmentFilesobjek dengan daftar bucketAmazon S3 yang berisi file variabel lingkungan Anda. Berkas harus menggunakan.envekstensi file danada batas sepuluh file ke ketentuan tugas.

Kami tidak menerapkan batas ukuran pada variabel lingkungan, tetapi file variabel lingkungan yang besarmungkin mengisi ruang disk. Setiap tugas yang menggunakan file variabel lingkungan menyebabkansalinan file yang akan diunduh ke disk. Kami menghapus file sebagai bagian dari pembersihan tugas.

Berikut ini adalah potongan ketentuan tugas yang menunjukkan cara menentukan variabel lingkunganindividual.

{

186

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan untuk menentukan file variabel lingkungan

"family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environment": [ { "name": "variable", "value": "value" } ], ... } ], ...}

Berikut ini adalah potongan ketentuan tugas yang menunjukkan cara menentukan file variabel lingkungan.

{ "family": "", "containerDefinitions": [ { "name": "", "image": "", ... "environmentFiles": [ { "value": "arn:aws:s3:::s3_bucket_name/envfile_object_name.env", "type": "s3" } ], ... } ], ...}

Pertimbangan untuk menentukan file variabellingkunganPertimbangkan hal berikut saat menentukan file variabel lingkungan dalam ketentuan kontainer.

• Untuk tugas Amazon ECSAWSFargate, tugas Anda harus menggunakan versi platform1.4.0atau nanti(Linux) untuk menggunakan fitur ini. Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

Verifikasi bahwa variabel didukung untuk platform sistem operasi. Untuk informasi selengkapnya, silakanlihat the section called “Ketentuan kontainer” (p. 99) dan the section called “Parameter ketentuantugas lainnya” (p. 122).

• File harus menggunakan ekstensi file .env dan pengodean UTF-8.• Setiap baris dalam file lingkungan harus berisi variabel lingkungan diVARIABLE=VALUEformat. Spasi

atau tanda kutip disertakan sebagai bagian dari nilai. Baris diawali dengan # diperlakukan sebagaikomentar dan diabaikan. Untuk informasi selengkapnya tentang sintaks file variabel lingkungan,lihatMendeklarasikan variabel lingkungan default dalam file.

Berikut ini adalah sintaks yang sesuai.

#This is a comment and will be ignored

187

Amazon ECS Panduan Pengguna untuk AWS FargateIzin IAM yang diperlukan

VARIABLE=VALUEENVIRONMENT=PRODUCTION

• Jika ada variabel lingkungan yang ditentukan menggunakan parameter environment dalam ketentuankontainer, maka akan lebih diutamakan daripada variabel yang terkandung dalam file lingkungan.

• Jika beberapa file lingkungan ditentukan dan berisi variabel yang sama, mereka diproses dalam urutanentri. Ini berarti bahwa nilai pertama dari variabel yang digunakan dan nilai-nilai berikutnya dari variabelduplikat diabaikan. Kami merekomendasikan agar Anda menggunakan nama variabel yang unik.

• Jika file lingkungan ditentukan sebagai override kontainer, file tersebut digunakan. Selain itu, filelingkungan lain yang ditentukan dalam definisi kontainer diabaikan.

Izin IAM yang diperlukanPeran eksekusi tugas Amazon ECS diperlukan untuk menggunakan fitur ini. Hal ini mengizinkan agenkontainer untuk menarik variabel lingkungan file dari Amazon S3. Untuk informasi selengkapnya, lihatPeran IAM eksekusi tugas ECS Amazon (p. 363).

Untuk menyediakan akses ke objek Amazon S3 yang Anda buat, tambahkan izin berikut secara manualsebagai kebijakan sebaris ke peran eksekusi tugas. GunakanResourceparameter untuk lingkup izin keember Amazon S3 yang berisi file variabel lingkungan. Untuk informasi selengkapnya, lihat Menambahkandan Menghapus Kebijakan IAM.

• s3:GetObject

• s3:GetBucketLocation

Pada contoh berikut, izin ditambahkan ke kebijakan inline.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::examplebucket/folder_name/env_file_name" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::examplebucket" ] } ]}

Contoh ketentuan tugasBagian ini menyediakan beberapa contoh ketentuan tugas JSON yang dapat Anda gunakan untuk mulaimembuat ketentuan tugas Anda sendiri.

188

Amazon ECS Panduan Pengguna untuk AWS FargateContoh: Webserver

Anda dapat menyalin contoh, dan kemudian menempelkannya saat Anda menggunakanKonfigurasi melaluiJSONpilihan di konsol klasik. Pastikan untuk menyesuaikan contoh, seperti menggunakan ID akun Anda.Untuk informasi selengkapnya, silakan lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63)dan Parameter ketentuan tugas (p. 95).

Untuk contoh definisi tugas lainnya, lihatAWSKetentuan Tugas Contohdi GitHub.

Topik• Contoh: Webserver (p. 189)• Contoh: driver log splunk (p. 190)• Contoh: driver log fluentd (p. 191)• Contoh: driver log gelf (p. 191)• Contoh: Dependensi kontainer (p. 192)• Ketentuan tugas sampel Windows (p. 193)

Contoh: WebserverBerikut ini adalah contoh ketentuan tugas menggunakan kontainer Linux pada tipe peluncuran Fargateyang menyiapkan 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": {

189

Amazon ECS Panduan Pengguna untuk AWS FargateContoh: driver log splunk

"operatingSystemFamily": "LINUX" }, "requiresCompatibilities": [ "FARGATE" ]}

Berikut ini adalah contoh ketentuan tugas menggunakan kontainer Windows pada tipe peluncuran Fargateyang menyiapkan server web:

{ "containerDefinitions": [ { "command": [ "New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<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>'; C:\\ServiceMonitor.exe w3svc" ], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/fargate-windows-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": { "operatingSystemFamily": "WINDOWS_SERVER_2019_CORE" }, "requiresCompatibilities": [ "FARGATE" ]}

Contoh: driver log splunkContoh berikut menunjukkan cara menggunakan driver log splunk dalam ketentuan tugas yangmengirimkan log ke layanan jarak jauh. Parameter token Splunk ditetapkan sebagai opsi rahasia

190

Amazon ECS Panduan Pengguna untuk AWS FargateContoh: driver log fluentd

karena dapat diperlakukan sebagai data sensitif. Untuk informasi selengkapnya, lihat Menentukan datasensitif (p. 175).

"containerDefinitions": [{ "logConfiguration": { "logDriver": "splunk", "options": { "splunk-url": "https://cloud.splunk.com:8080", "tag": "tag_name", }, "secretOptions": [{ "name": "splunk-token", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:splunk-token-KnrBkD"}],

Contoh: driver log fluentdContoh berikut menunjukkan cara menggunakan driver log fluentd dalam ketentuan tugas yangmengirimkan log ke layanan jarak jauh. Nilai fluentd-address ditetapkan sebagai opsi rahasiakarena dapat diperlakukan sebagai data sensitif. Untuk informasi selengkapnya, lihat Menentukan datasensitif (p. 175).

"containerDefinitions": [{ "logConfiguration": { "logDriver": "fluentd", "options": { "tag": "fluentd demo" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:fluentd-address-KnrBkD" }] }, "entryPoint": [], "portMappings": [{ "hostPort": 80, "protocol": "tcp", "containerPort": 80 }, { "hostPort": 24224, "protocol": "tcp", "containerPort": 24224 }]}],

Contoh: driver log gelfContoh berikut menunjukkan cara menggunakan driver log gelf dalam ketentuan tugas yang mengirimkanlog ke host jarak jauh dan menjalankan Logstash yang menggunakan log Gelf sebagai input. Untukinformasi selengkapnya, lihat logConfiguration (p. 109).

"containerDefinitions": [{ "logConfiguration": { "logDriver": "gelf", "options": { "gelf-address": "udp://logstash-service-address:5000", "tag": "gelf task demo" }

191

Amazon ECS Panduan Pengguna untuk AWS FargateContoh: Dependensi kontainer

}, "entryPoint": [], "portMappings": [{ "hostPort": 5000, "protocol": "udp", "containerPort": 5000 }, { "hostPort": 5000, "protocol": "tcp", "containerPort": 5000 } ]}],

Contoh: Dependensi kontainerContoh ini menunjukkan sintaksis untuk ketentuan tugas dengan beberapa kontainer tempat dependensikontainer ditentukan. Dalam ketentuan tugas berikut, kontainer envoy harus mencapai status sehat,ditentukan oleh parameter healthcheck kontainer yang diperlukan, sebelum kontainer app mulai. Untukinformasi selengkapnya, lihat Dependensi kontainer (p. 115).

{ "family": "appmesh-gateway", "runtimePlatform": { "operatingSystemFamily": "LINUX" }, "proxyConfiguration":{ "type": "APPMESH", "containerName": "envoy", "properties": [ { "name": "IgnoredUID", "value": "1337" }, { "name": "ProxyIngressPort", "value": "15000" }, { "name": "ProxyEgressPort", "value": "15001" }, { "name": "AppPorts", "value": "9080" }, { "name": "EgressIgnoredIPs", "value": "169.254.170.2,169.254.169.254" } ] }, "containerDefinitions": [ { "name": "app", "image": "application_image", "portMappings": [ { "containerPort": 9080, "hostPort": 9080, "protocol": "tcp" }

192

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas sampel Windows

], "essential": true, "dependsOn": [ { "containerName": "envoy", "condition": "HEALTHY" } ] }, { "name": "envoy", "image": "840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.15.1.0-prod", "essential": true, "environment": [ { "name": "APPMESH_VIRTUAL_NODE_NAME", "value": "mesh/meshName/virtualNode/virtualNodeName" }, { "name": "ENVOY_LOG_LEVEL", "value": "info" } ], "healthCheck": { "command": [ "CMD-SHELL", "echo hello" ], "interval": 5, "timeout": 2, "retries": 3 } } ], "executionRoleArn": "arn:aws:iam::123456789012:role/ecsTaskExecutionRole", "networkMode": "awsvpc"}

Ketentuan tugas sampel WindowsBerikut ini adalah contoh ketentuan tugas untuk membantu Anda memulai dengan kontainer Windows diAmazon ECS.

Example Aplikasi Sampel Amazon ECS Console untuk Windows

Ketentuan tugas berikut adalah aplikasi sampel konsol Amazon ECS yang diproduksi di wizard yangdijalankan pertama untuk Amazon ECS; telah di-port untuk menggunakanmicrosoft/iisGambarkontainer Windows.

{ "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "mcr.microsoft.com/windows/servercore/iis", "cpu": 1024, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<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>'; C:\\ServiceMonitor.exe w3svc"],

193

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui ketentuan tugas menggunakan konsol klasik

"portMappings": [ { "protocol": "tcp", "containerPort": 80 } ], "memory": 1024, "essential": true } ], "networkMode": "awsvpc", "memory": "1024", "cpu": "1024"}

Memperbarui ketentuan tugas menggunakan konsolklasik

SEBUAHrevisi definisi tugasadalah salinan definisi tugas saat ini dengan nilai parameter barumenggantikan yang sudah ada. Semua parameter yang tidak Anda modifikasi ada dalam revisi baru.

Untuk memperbarui ketentuan tugas, membuat revisi ketentuan tugas. Jika ketentuan tugas yangdigunakan dalam layanan, Anda harus memperbarui layanan tersebut untuk menggunakan ketentuantugas yang diperbarui.

Untuk membuat revisi ketentuan tugas

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah yang berisi ketentuan tugas Anda.3. Di panel navigasi, pilih ketentuan tugas.4. Pada ketentuan tugas, pilih kotak di sebelah kiri ketentuan tugas untuk merevisi dan memilih Buat

revisi baru.5. Pada halaman Buat revisi baru dari ketentuan tugas, buat perubahan. Misalnya, untuk mengubah

ketentuan kontainer yang ada (seperti citra kontainer, batas memori, atau port pemetaan), pilihkontainer, buat perubahan, dan kemudian pilih Memperbarui.

6. Verifikasi informasi Anda dan pilih Buat.7. Jika ketentuan tugas Anda digunakan dalam layanan, perbarui layanan Anda dengan ketentuan tugas

yang diperbarui. Untuk informasi selengkapnya, lihat Memperbarui layanan (p. 239).

Revisi ketentuan tugasJika Anda memutuskan bahwa Anda tidak lagi memerlukan revisi ketentuan tugas di Amazon ECS,Anda dapat membatalkan pendaftaran revisi ketentuan tugas sehingga tidak lagi ditampilkan di situsAndaListTaskDefinitionPanggilan API atau di konsol saat Anda ingin menjalankan tugas ataumemperbarui layanan.

Ketika Anda membatalkan pendaftaran revisi ketentuan tugas, segera ditandai sebagaiINACTIVE. Tugasdan layanan yang ada yang mereferensikan tugas revisi definisi INACTIVE terus berjalan tanpa gangguan.Layanan yang ada yang mereferensikan revisi ketentuan tugas INACTIVE masih dapat menaikkan ataumenurunkan skala dengan mengubah jumlah layanan yang diinginkan.

Anda tidak dapat menggunakan revisi ketentuan tugas INACTIVE untuk menjalankan tugasbaru atau membuat layanan baru. Anda juga tidak dapat memperbarui layanan yang ada untuk

194

Amazon ECS Panduan Pengguna untuk AWS FargateRevisi ketentuan tugas

mereferensikanINACTIVErevisi definisi tugas. Hal ini meskipun mungkin ada jendela hingga 10 menitsetelah deregistrasi di mana pembatasan ini belum berlaku.

Note

Pada saat ini, revisi ketentuan tugas INACTIVE tetap dapat ditemukan di akun Anda tanpabatas waktu. Namun, perilaku ini dapat berubah di masa mendatang. Oleh karena itu, janganmengandalkanINACTIVErevisi ketentuan tugas yang bertahan di luar siklus hidup tugas danlayanan terkait apa pun.

Untuk membatalkan pendaftaran definisi tugas baru (konsol Amazon ECS Klasik)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah yang berisi ketentuan tugas Anda.3. Di panel navigasi, pilih ketentuan tugas.4. Pada halaman ketentuan tugas, pilih keluarga ketentuan tugas yang berisi satu atau lebih revisi yang

ingin Anda batalkan pendaftarannya.5. PadaNama definisi tugasHalaman, pilih kotak di sebelah kiri setiap revisi ketentuan tugas yang ingin

dibatalkan.6. Pilih Tindakan, Batalkan Pendaftaran.7. Verifikasi informasi diKetentuan tugas Deregisterjendela, dan kemudian pilihDeregisteruntuk

menyelesaikan.

195

Amazon ECS Panduan Pengguna untuk AWS Fargate

Pengaturan akunAmazon ECS menyediakan pengaturan akun, yang menyediakan cara untuk menyertakan atau menolakfitur tertentu. Untuk setiap Wilayah, Anda dapat menyertakan atau menolak setiap pengaturan akun ditingkat akun atau untuk pengguna atau peran IAM tertentu.

Berikut adalah skenario yang didukung:

• Pengguna atau peran IAM dapat menyertakan atau menolak untuk akun pengguna individual mereka.• Pengguna atau peran IAM dapat mengatur pengaturan penyertaan atau menolak untuk semua pengguna

di akun.• Pengguna root dapat menyertakan atau menolak peran atau pengguna IAM tertentu di akun. Jika

pengaturan akun untuk pengguna root diubah, maka akan diatur ke default untuk semua pengguna danperan IAM yang belum dipilih.

Note

Pengguna gabungan memperkirakan pengaturan akun pengguna root dan tidak dapat memilikipengaturan akun eksplisit yang diatur untuk mereka.

Pengaturan akun berikut tersedia. Opsi menyertakan atau menolak harus dipilih untuk setiap pengaturanakun secara terpisah.

Amazon Resource Name (ARN) dan ID

Nama sumber daya:serviceLongArnFormat, taskLongArnFormat, dancontainerInstanceLongArnFormat

Amazon ECS memperkenalkan format baru untuk Amazon Resource Name (ARN) dan ID sumberdaya untuk layanan, dan instans kontainer Amazon ECS. Status menyertakan untuk setiap tipe sumberdaya menentukan format ARN yang digunakan sumber daya. Anda harus memilih format ARN baruuntuk menggunakan fitur seperti penandaan sumber daya untuk tipe sumber daya. Untuk informasiselengkapnya, lihat Amazon Resource Name (ARN) dan ID (p. 197).

Sumber daya hanya akan diluncurkan setelah format ARN dan ID sumber daya baru menerima statusdisertakan. Semua sumber daya yang ada tidak terpengaruh. Agar layanan dan tugas Amazon ECSdapat beralih ke format ARN dan ID sumber daya baru, layanan atau tugas tersebut harus dibuatulang. Untuk mentransisi instans kontainer ke format ARN dan ID sumber daya baru, instans kontainerharus dikosongkan dan instans kontainer baru didaftarkan ke klaster.

Note

Tugas yang diluncurkan oleh layanan Amazon ECS hanya dapat menerima format ARNdan sumber daya ID baru jika layanan dibuat pada atau setelah 16 November 2018, danpengguna IAM yang membuat layanan tersebut telah memilih format baru untuk tugas.

Wawasan Kontainer CloudWatch

Nama sumber daya: containerInsights

Wawasan Kontainer CloudWatch mengumpulkan, menggabungkan, serta merangkum metrik dan logdari aplikasi dan layanan mikro terkontainer Anda. Metrik tersebut mencakup pemanfaatan sumberdaya seperti CPU, memori, disk, dan jaringan. Wawasan Kontainer juga menyediakan informasidiagnostik, seperti kegagalan mengulang kembali kontainer, untuk membantu Anda mengisolasimasalah dan mengatasinya dengan cepat. Anda juga dapat mengatur alarm CloudWatch pada metrik

196

Amazon ECS Panduan Pengguna untuk AWS FargateAmazon Resource Name (ARN) dan ID

yang dikumpulkan oleh Wawasan Kontainer. Untuk informasi selengkapnya, lihat Amazon ECSCloudWatch Wawasan Wadah (p. 314).

Ketika Anda memilih pengaturan akun containerInsights, semua klaster baru memiliki WawasanKontainer yang diaktifkan secara default. Anda dapat menonaktifkan pengaturan ini untuk klastertertentu ketika Anda membuatnya. Anda juga dapat mengubah pengaturan ini menggunakanUpdateClusterSettings API

IPv6 VPC tumpukan dobel

Nama sumber daya: dualStackIPv6

Amazon ECS mendukung penyediaan tugas dengan alamat IPv6 selain alamat IPv4 privat primer.

Agar tugas menerima alamat IPv6, tugas harus menggunakan mode jaringan awsvpc, harusdiluncurkan dalam VPC yang dikonfigurasi untuk mode tumpukan dobel, dan pengaturan akundualStackIPv6harus diaktifkan. Untuk informasi lebih lanjut tentang kunci yang diperlukan, lihatMenggunakan VPC dalam mode tumpukan dobel (p. 137).

Important

ParameterdualStackIPv6Pengaturan akun hanya dapat diubah menggunakan AmazonECS API atauAWS CLI. Untuk informasi selengkapnya, lihat Mengubah pengaturanakun (p. 199).

Jika Anda memiliki tugas yang berjalan menggunakan mode jaringan awsvpc dalam subnetberkemampuan IPv6 antara tanggal 1 Oktober 2020 dan 2 November 2020, maka pengaturan akundualStackIPv6 default di Wilayah tempat tugas sedang dijalankan adalah disabled. Jika syarattersebut tidak terpenuhi, pengaturan dualStackIPv6 default di Wilayah adalah enabled.

Topik• Amazon Resource Name (ARN) dan ID (p. 197)• Lini masa format ARN dan ID sumber daya (p. 198)• Melihat pengaturan akun (p. 199)• Mengubah pengaturan akun (p. 199)

Amazon Resource Name (ARN) dan IDSaat sumber daya Amazon ECS dibuat, setiap sumber daya diberi Amazon Resource Name (ARN) danpengidentifikasi sumber daya (ID) yang unik. Jika Anda menggunakan alat baris perintah atau AmazonECS API untuk bekerja dengan Amazon ECS, ARN atau ID sumber daya diperlukan untuk perintahtertentu. Misalnya, jika Anda menggunakan perintah AWS CLI hentikan-tugas untuk menghentikan suatutugas, Anda harus menentukan ID atau ARN tugas dalam perintah tersebut.

Kemampuan untuk menyertakan dan menolak format Amazon Resource Name (ARN) dan ID sumber dayabaru disediakan untuk per wilayah. Saat ini, setiap akun baru yang dibuat akan disertakan secara default.

Anda dapat menyertakan atau menolak format Amazon Resource Name (ARN) dan ID sumber daya barukapan saja. Setelah Anda berhasil menyertakan, setiap sumber daya baru dibuat akan menggunakanformat baru.

Note

ID sumber daya tidak dapa diubah setelah dibuat. Oleh karena itu, menyertakan atau menolakformat baru tidak akan mempengaruhi ID sumber daya yang ada.

Bagian berikut menjelaskan cara mengubah format ARN dan ID sumber daya. Untuk informasi lebih lanjuttentang transisi ke format baru, lihatLayanan Kontainer Amazon Elastic.

197

Amazon ECS Panduan Pengguna untuk AWS FargateLini masa format ARN dan ID sumber daya

Format Amazon Resource Name (ARN)

Beberapa sumber daya memiliki nama yang mudah digunakan, seperti layanan bernama production.Dalam hal lain, Anda harus menentukan sumber daya menggunakan format Amazon Resource Name(ARN). Format ARN baru untuk tugas, dan instans kontainer Amazon ECS mencakup nama klaster. Untukinformasi lebih lanjut tentang menyertakan format baru ARN, lihat Mengubah pengaturan akun (p. 199).

Tabel berikut menunjukkan format (lama) saat ini dan format baru untuk setiap tipe sumber daya.

Tipe sumber daya ARN

Instans kontainer Lama: arn:aws:ecs:region:aws_account_id:container-instance/container-instance-id

Baru: arn:aws:ecs:region:aws_account_id:container-instance/cluster-name/container-instance-id

Layanan AmazonECS

Lama: arn:aws:ecs:region:aws_account_id:service/service-name

Baru: arn:aws:ecs:region:aws_account_id:service/cluster-name/service-name

Tugas AmazonECS

Lama: arn:aws:ecs:region:aws_account_id:task/task-id

Baru: arn:aws:ecs:region:aws_account_id:task/cluster-name/task-id

Panjang ID Sumber Daya

ID sumber daya berisi kombinasi unik dari huruf dan angka. Format ID sumber daya baru mencakup IDyang lebih pendek untuk tugas Amazon ECS dan instans kontainer. Format ID sumber daya lama adalah36 karakter. Format ID baru berisi 32 karakter kecuali tanda hubung. Untuk informasi lebih lanjut tentangmemilih format ID sumber daya baru, lihat Mengubah pengaturan akun (p. 199).

Lini masa format ARN dan ID sumber dayaTersedia lini masa untuk periode penyertaan dan menolak format Amazon Resource Name (ARN) dan IDsumber daya baru untuk sumber daya Amazon ECS. ARN dan ID sumber daya diatur saat pembuatan dantidak berubah setelah itu. Oleh karena itu, memilih atau menolak format baru tidak akan mempengaruhiARN atau ID sumber daya yang ada.

Berikut adalah tanggal penting yang terkait dengan perubahan ini.

• Mulai saat ini hingga 30 September 2020 — Kemampuan untuk menyertakan dan menolak AmazonResource Name (ARN) dan ID sumber daya baru disediakan secara per wilayah. Setiap akun baru yangdibuat akan ditolak secara default.

• 1 Oktober 2020 - 31 Maret 2021 — Semua akun baru akan disertakan ke format baru secara default.Akun yang ada yang tidak secara eksplisit menolak format baru juga disertakan. Kemampuan untukmenyertakan dan menolak terus tersedia per wilayah.

• 1 April 2021 — Semua akun akan disertakan secara default. Semua sumber daya baru yang dibuat akanmenerima format baru. Kemampuan untuk menolak tidak akan tersedia lagi.

Anda dapat mengubah pengaturan penyertaan untuk format Amazon Resource Name (ARN) dan IDsumber daya baru kapan saja, mulai saat ini hingga 1 April 2021. Setelah Anda berhasil menyertakan,setiap sumber daya baru yang dibuat akan menggunakan format baru.

198

Amazon ECS Panduan Pengguna untuk AWS FargateMelihat pengaturan akun

Melihat pengaturan akunAnda dapat menggunakan alat AWS Management Console dan AWS CLI untuk melihat pengaturan akunAnda.

Important

Pengaturan akun dualStackIPv6 hanya dapat dilihat atau diubah menggunakan AWS CLI.

Untuk melihat pengaturan akun Anda (Konsol)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di bilah navigasi di bagian atas layar, pilih Wilayah yang akan dilihat pengaturan akunnya.3. Dari dasbor, pilih Pengaturan Akun.4. PadaPengaturan Amazon ECS ARN dan ID sumber dayadanWawasan Kontainer CloudWatchBagian,

Anda dapat melihat status penyertaan untuk setiap pengaturan akun untuk pengguna dan peran IAMyang diautentikasi.

Untuk melihat pengaturan akun Anda (AWS CLI)

• daftar-akun-pengaturan (AWS CLI)

aws ecs list-account-settings --effective-settings --region us-east-1

• Cari-ECSAccountSetting (AWS Tools for Windows PowerShell)

Get-ECSAccountSetting -EffectiveSetting true -Region us-east-1

Untuk melihat pengaturan akun untuk pengguna IAM atau peran IAM tertentu (AWS CLI)

• daftar-akun-pengaturan (AWS CLI)

aws ecs list-account-settings --principal-arn arn:aws:iam::aws_account_id:user/principalName --effective-settings --region us-east-1

• Cari-ECSAccountSetting (AWS Tools for Windows PowerShell)

Get-ECSAccountSetting -PrincipalArn arn:aws:iam::aws_account_id:user/principalName -EffectiveSetting true -Region us-east-1

Mengubah pengaturan akunAnda dapat menggunakan alat AWS Management Console dan AWS CLI untuk mengubah pengaturanakun Anda.

Untuk mengubah pengaturan akun (Konsol)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dalam bilah navigasi di bagian atas layar, pilih Wilayah untuk mengubah pengaturan akun Anda.3. Dari dasbor, pilih Pengaturan Akun.

199

Amazon ECS Panduan Pengguna untuk AWS FargateMengubah pengaturan akun

4. PadaPengaturan Amazon ECS ARN dan ID sumber dayadanWawasan Kontainer CloudWatchbagian,Anda dapat memilih atau membatalkan pilihan kotak centang untuk setiap pengaturan akun untukpengguna IAM terotentikasi dan peran. Pilih Simpan setelah selesai.

Important

Pengguna IAM dan peran IAM membutuhkan izin ecs:PutAccountSetting untukmelakukan tindakan ini.

5. Pada layar konfirmasi, pilih Konfirmasi untuk menyimpan pilihan.

Untuk memodifikasi pengaturan akun default untuk semua pengguna atau peran IAM di akun Anda(AWS CLI)

Gunakan salah satu perintah berikut untuk memodifikasi pengaturan akun default untuk semua penggunaatau peran IAM di akun Anda. Perubahan ini berlaku untuk keseluruhanAWSkecuali pengguna atau peranIAM secara eksplisit mengganti pengaturan ini untuk diri mereka sendiri.

• pilih-akun-pengaturan-default (AWS CLI)

aws ecs put-account-setting-default --name serviceLongArnFormat --value enabled --region us-east-2

Anda juga dapat menggunakan perintah ini untuk mengubah pengaturan akun lainnya. Untuk melakukanhal ini, ganti parameter name dengan pengaturan akun yang sesuai.

• Tulis-ECSAccountSetting (AWS Tools for Windows PowerShell)

Write-ECSAccountSettingDefault -Name serviceLongArnFormat -Value enabled -Region us-east-1 -Force

Untuk memodifikasi pengaturan akun untuk pengguna IAM Anda (AWS CLI)

Gunakan salah satu perintah berikut untuk mengubah pengaturan akun untuk pengguna IAMAnda. Jika Anda menggunakan perintah ini sebagai pengguna root, maka perubahan berlaku untukkeseluruhanAWSkecuali pengguna atau peran IAM secara eksplisit mengganti pengaturan ini untuk dirimereka sendiri.

• pilih-akun-pengaturan (AWS CLI)

aws ecs put-account-setting --name serviceLongArnFormat --value enabled --region us-east-1

Anda juga dapat menggunakan perintah ini untuk mengubah pengaturan akun lainnya. Untuk melakukanhal ini, ganti parameter name dengan pengaturan akun yang sesuai.

• Tulis-ECSAccountSetting (AWS Tools for Windows PowerShell)

Write-ECSAccountSetting -Name serviceLongArnFormat -Value enabled -Force

Untuk memodifikasi pengaturan akun untuk pengguna IAM atau peran IAM tertentu (AWS CLI)

Gunakan salah satu perintah berikut dan tentukan ARN dari pengguna IAM, atau pengguna root yangmeminta untuk mengubah pengaturan akun untuk pengguna IAM atau peran IAM tertentu.

• pilih-akun-pengaturan (AWS CLI)

200

Amazon ECS Panduan Pengguna untuk AWS FargateMengubah pengaturan akun

aws ecs put-account-setting --name serviceLongArnFormat --value enabled --principal-arn arn:aws:iam::aws_account_id:user/principalName --region us-east-1

Anda juga dapat menggunakan perintah ini untuk mengubah pengaturan akun lainnya. Untuk melakukanhal ini, ganti parameter name dengan pengaturan akun yang sesuai.

• Tulis-ECSAccountSetting (AWS Tools for Windows PowerShell)

Write-ECSAccountSetting -Name serviceLongArnFormat -Value enabled -PrincipalArn arn:aws:iam::aws_account_id:user/principalName -Region us-east-1 -Force

201

Amazon ECS Panduan Pengguna untuk AWS Fargate

Menjadwalan tugas Amazon ECSAmazon Elastic Container Service (Amazon ECS) adalah status bersama, sistem konkurensi optimis yangmenyediakan kemampuan penjadwalan fleksibel untuk tugas dan kontainer Anda. Penjadwal Amazon ECSmenggunakan informasi status klaster yang sama dengan Amazon ECS API untuk membuat keputusanpenempatan yang tepat.

Setiap tugas yang menggunakan tipe peluncuran Fargate memiliki batas isolasi sendiri dan tidak berbagisumber daya pokok dengan tugas lainnya. Sumber daya ini termasuk kernel pokok, sumber daya CPU,sumber daya memori, dan antarmuka jaringan elastis.

Amazon ECS menyediakan penjadwal layanan untuk tugas dan aplikasi yang berjalan lama. Ini jugamenyediakan kemampuan untuk menjalankan tugas secara manual untuk pekerjaan batch atau tugaslari tunggal. Amazon ECS menyediakan satu kali setiap kali menempatkan tugas di klaster Anda. Andadapat menentukan strategi dan kendala penempatan tugas untuk menjalankan tugas yang paling sesuaidengan kebutuhan Anda. Misalnya, Anda dapat menentukan apakah tugas berjalan di beberapa AvailabilityZone atau dalam Availability Zone tunggal. Dan, bisa juga, Anda dapat mengintegrasikan tugas denganpenjadwal kustom atau pihak ketiga Anda sendiri.

Penjadwal layanan

Penjadwal layanan ini cocok untuk layanan dan aplikasi stateless yang berjalan lama. Penjadwal layananmemastikan bahwa strategi penjadwalan yang Anda tentukan diikuti dan menjadwal ulang tugas ketikatugas gagal. Sebagai contoh, jika infrastruktur pokok gagal, penjadwal layanan dapat menjadwal ulangtugas.

Ada dua strategi penjadwal layanan yang tersedia:

• REPLICAStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang diinginkanklaster Anda. Secara default tugas tersebar di seluruh Availability Zone. Anda dapat menggunakanstrategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatan tugas. Untukinformasi selengkapnya, lihat Replika (p. 214).

• DAEMONStrategi penjadwalan daemon men-deploy tepat satu tugas di setiap instans kontainer aktif yangmemenuhi semua batasan penempatan tugas yang Anda tentukan di klaster Anda. Penjadwal layananmengevaluasi batasan penempatan tugas untuk menjalankan tugas dan akan menghentikan tugas yangtidak memenuhi batasan penempatan. Saat menggunakan strategi ini, tidak perlu menentukan jumlahtugas yang diinginkan, strategi penempatan tugas, atau menggunakan kebijakan Auto Scaling Layanan.Untuk informasi selengkapnya, lihatDaemondi dalamPanduan Pengembang Layanan Wadah AmazonElastic.

Note

Tugas Fargate tidak mendukungDAEMONstrategi penjadwalan.

Penjadwal layanan bisa juga memastikan bahwa tugas terdaftar dengan penyeimbang beban Elastic LoadBalancing. Anda dapat memperbarui layanan Anda yang dikelola oleh penjadwal layanan. Ini mungkintermasuk men-deploy ketentuan tugas baru atau mengubah jumlah tugas yang diinginkan yang sedangberjalan. Secara default, penjadwal layanan menyebar tugas di beberapa Availability Zone. Namun, Andadapat menggunakan strategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatantugas. Untuk informasi selengkapnya, lihat Layanan Amazon ECS (p. 213).

Tugas yang berjalan secara manual

Tindakan RunTask cocok untuk proses seperti tugas batch yang melaksanakan pekerjaan dan kemudianberhenti. Misalnya, Anda dapat memiliki panggilan prosesRunTaskketika pekerjaan datang ke antrian.Tugas menarik pekerjaan dari antrean, melaksanakan pekerjaan, dan kemudian keluar. MenggunakanRunTask, Anda dapat mengizinkan strategi penempatan tugas default untuk mendistribusikan tugas

202

Amazon ECS Panduan Pengguna untuk AWS FargateMenjalankan tugas mandiri

secara acak di klaster Anda. Hal ini meminimalkan kemungkinan instans tunggal mendapatkan jumlahtugas yang tidak proporsional. Kalau tidak, Anda dapat menggunakan RunTask untuk menyesuaikanbagaimana penjadwal menempatkan tugas menggunakan strategi dan kendala penempatan tugas. Untukinformasi selengkapnya, lihatMenjalankan tugas mandiri (p. 203)danRunTaskdi dalamReferensi APILayanan Wadah Amazon Elastic.

Menjalankan tugas padacronJadwal -like

Jika Anda memiliki tugas untuk dijalankan pada interval yang ditetapkan di klaster Anda, Anda dapatmenggunakan konsol Amazon ECS untuk membuat EventBridge peristiwa Anda dapat menjalankan tugasuntuk operasi cadangan atau pemindaian log. Acara EventBridge yang Anda buat dapat menjalankan satuatau lebih tugas di klaster Anda pada waktu yang ditentukan. Acara terjadwal Anda dapat diatur ke intervaltertentu (jalankan setiapNmenit, jam, atau hari). Jika tidak, untuk penjadwalan yang lebih rumit, Anda dapatmenggunakancronekspresi Untuk informasi selengkapnya, lihat Tugas terjadwal (p. 205).

Daftar Isi• Menjalankan tugas mandiri (p. 203)• Tugas terjadwal (p. 205)• AWSPemeliharaan tugas Fargate (p. 210)

Menjalankan tugas mandiriSebaiknya Anda men-deploy aplikasi Anda sebagai tugas mandiri dalam beberapa situasi. Misalnya,Anda sedang mengembangkan aplikasi tetapi Anda belum siap untuk men-deploy-nya dengan penjadwallayanan. Jika aplikasi Anda adalah tugas batch satu kali atau periodik, tidak masuk akal jika aplikasi Andatetap berjalan atau memulai ulang saat selesai.

Untuk men-deploy aplikasi Anda untuk menjalankannya terus-menerus atau untuk menempatkannya dibelakang penyeimbang beban, buat layanan Amazon ECS. Untuk informasi selengkapnya, lihat LayananAmazon ECS (p. 213).

Untuk menjalankan tugas mandiri menggunakan konsol klasik

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Ketentuan tugas dan pilih ketentuan tugas yang akan dijalankan.

• Untuk menjalankan revisi terbaru ketentuan tugas, pilih kotak di sebelah kiri ketentuan tugas yangakan dijalankan.

• Untuk menjalankan ketentuan tugas revisi sebelumnya, pilih ketentuan tugas untuk melihat semuarevisi yang aktif. Terakhir, pilih revisi yang akan dijalankan.

3. Pilih Tindakan, Jalankan Tugas.4. Pada halaman Jalankan Tugas, selesaikan langkah berikut.

a. Pilih salah satu strategi penyedia kapasitas atau tipe peluncuran.

• Untuk menggunakan Strategi penyedia kapasitas dan pilih Beralih ke strategi penyediakapasitas. Kemudian, pilih apakah tugas Anda menggunakan strategi penyedia kapasitasdefault yang ditentukan untuk klaster atau strategi penyedia kapasitas kustom. Penyediakapasitas harus dikaitkan dengan klaster yang akan digunakan dalam strategi penyediakapasitas kustom. Untuk informasi selengkapnya, lihat Penyedia kapasitas AmazonECS (p. 75).

• Untuk menggunakan Jenis peluncuran, pilih Beralih ke tipe peluncuran dan pilih antaraEC2 atau EKSTERNAL. Untuk informasi selengkapnya tentang tipe peluncuran, lihat Jenispeluncuran ECS (p. 123).

b. UntukKeluarga sistem operasi, pilih sistem operasi kontainer yang tugas berjalan pada..

203

Amazon ECS Panduan Pengguna untuk AWS FargateMenjalankan tugas mandiri

c. Untuk klaster, pilih klaster yang akan digunakan.d. Untuk Jumlah tugas, masukkan jumlah tugas yang akan diluncurkan dengan ketentuan tugas ini.e. Untuk Kelompok tugas, masukkan nama grup tugas.

5. Jika ketentuan tugas Anda menggunakan mode jaringan awsvpc, lengkapi sublangkah ini. Jika tidak,lanjutkan ke langkah berikutnya.

a. Untuk Klaster VPC, pilih VPC tempat instans kontainer Anda berada.b. Untuk Subnet, pilih subnet yang tersedia untuk tugas Anda.

Important

Hanya subnet pribadi yang didukung untuk mode jaringan awsvpc. Tugas tidakmenerima alamat IP publik. Oleh karena itu, NAT gateway diperlukan untuk aksesinternet keluar, dan lalu lintas internet masuk diarahkan melalui penyeimbang beban.

c. Untuk Grup keamanan, grup keamanan diciptakan untuk tugas Anda yang mengizinkan lalulintas HTTP dari internet (0.0.0.0/0). Untuk mengedit nama atau aturan grup keamanan ini,pilihMengeditdan kemudian memodifikasi pengaturan grup keamanan Anda. Lakukan hal yangsama jika Anda ingin memilih grup keamanan yang sudah ada.

6. (Opsional) Untuk mengirim perintah, variabel lingkungan, atau peran eksekusi tugas menimpa ke satukontainer atau lebih dalam ketentuan tugas Anda, pilihOpsi Lanjutandan selesaikan langkah-langkahberikut:

Note

Jika berniat menggunakan nilai parameter dari ketentuan tugas Anda, Anda tidak perlumenentukan penggantian. Bidang ini hanya digunakan untuk mengganti nilai-nilai yangditentukan dalam ketentuan tugas.

a. UntukPengimpa Peran Tugas, pilih peran IAM untuk tugas ini untuk mengganti peran IAM tugasyang ditentukan dalam ketentuan tugas. Untuk informasi selengkapnya, lihat IAM role untuktugas (p. 369).

Hanya peran dengan hubungan kepercayaan ecs-tasks.amazonaws.com yang ditampilkan.Untuk petunjuk tentang cara membuat IAM role untuk tugas Anda, lihatMembuat IAM role dankebijakan IAM untuk tugas Anda (p. 370).

b. Untuk Penggantian Peran Eksekusi Tugas, pilih peran eksekusi tugas untuk mengganti peraneksekusi tugas yang ditentukan dalam ketentuan tugas. Untuk informasi selengkapnya, lihat PeranIAM eksekusi tugas ECS Amazon (p. 363).

c. Untuk Penggantian Kontainer, pilih kontainer sebagai tujuan pengiriman perintah ataupenggantian lingkungan variabel.

• Untuk perintah menimpa: UntukPengimpa perintah, masukkan perintah menimpa untukmengirim. Jika ketentuan kontainer Anda tidak menentukan ENTRYPOINT, format tersebutmerupakan daftar dari string tidak dikutip yang dipisahkan koma.

/bin/sh,-c,echo,$DATE

Jika ketentuan kontainer Anda menentukanENTRYPOINT(sepertish,-c), formatnya adalah stringyang tidak dikutip. String ini dikelilingi dengan tanda kutip ganda (" ") dan dianggap sebagaiargumen untuk perintah ENTRYPOINT.

while true; do echo $DATE > /var/www/html/index.html; sleep 1; done

• Untuk penggantian variabel lingkungan: PilihVariabel Lingkungan. Untuk Kunci, masukkannama variabel lingkungan Anda. Untuk Nilai, masukkan nilai string untuk nilai lingkungan Anda(tanpa tanda kutip ganda (" ")). 204

Amazon ECS Panduan Pengguna untuk AWS FargateTugas terjadwal

Penggantian variabel lingkungan ini dikirim ke kontainer dalam format berikut:

MY_ENV_VAR="This variable contains a string."

7. DiKonfigurasi penandaan tugasbagian, selesaikan langkah-langkah berikut:

a. PilihAktifkan tag terkelola ECSjika Anda ingin Amazon ECS secara otomatis menandai setiaptugas dengan tag terkelola Amazon ECS. Untuk informasi selengkapnya, lihatMenandai SumberDaya Amazon ECS.

b. UntukPropagasi tag dari, pilih salah satu dari yang berikut:

• Jangan menyebarkan- Opsi ini tidak akan menyebarkan tag apa pun.• Definisi tugas- Opsi ini akan menyebarkan tag yang ditentukan dalam definisi tugas untuk tugas.

Note

Jika Anda menentukan tag dengan yang samakeydi dalamTagBagian, itu akanmenimpa tanda yang disebarkan dari definisi tugas.

8. DiTagbagian, tentukan kunci dan nilai untuk setiap tanda yang akan dikaitkan dengan tugas tersebut.Untuk informasi selengkapnya, lihatMenandai Sumber Daya Amazon ECS.

9. Tinjau informasi tugas Anda dan pilih Jalankan Tugas.Note

Jika tugas Anda bergerak dariPENDINGkeSTOPPEDStatus, tugas Anda mungkin berhentikarena sebuah kesalahan. Hal ini juga terjadi jika menampilkanPENDINGstatus dan kemudianmenghilang dari tugas-tugas yang tercantum. Untuk informasi selengkapnya, lihat Memeriksatugas yang telah dihentikan untuk kesalahan (p. 454) di bagian pemecahan masalah.

Tugas terjadwalAmazon ECS mendukung pembuatan tugas terjadwal. Tugas terjadwal menggunakan AmazonEventBridge aturan untuk menjalankan tugas baik berdasarkan jadwal atau dalam menanggapiEventBridge peristiwa

Jika Anda ingin menjalankan tugas pada interval yang ditetapkan, seperti operasi cadangan ataupemindaian log, Anda dapat membuat tugas terjadwal yang menjalankan satu tugas atau lebih pada waktutertentu. Anda dapat menentukan interval reguler (jalankan setiap N menit, jam, atau hari), atau untukpenjadwalan yang lebih rumit, Anda dapat menggunakan ekspresi cron. Untuk informasi selengkapnya,lihatEkspresi cron dan ekspresi tingkatdi dalamAmazon EventBridge Panduan Pengguna.

Jika Anda ingin menjalankan tugas yang dipicu oleh suatu peristiwa, adaAWSKejadian terkelola untuklayanan (misalnya kejadian perubahan status instans kontainer Amazon ECS) atau Anda dapat membuatpola kejadian kustom. Untuk informasi selengkapnya, lihatPola peristiwadi dalamAmazon EventBridgePanduan Pengguna.

Daftar Isi• Membuat tugas terjadwal (p. 206)

205

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat tugas terjadwal

• Lihat tugas terjadwal Anda (p. 209)• Mengedit tugas terjadwal (p. 210)

Membuat tugas terjadwalTugas terjadwal dipicu oleh Amazon EventBridge aturan, yang dapat Anda buat menggunakan EventBridgekonsol Meskipun Anda dapat membuat tugas terjadwal di konsol Amazon ECS, saat ini EventBridge konsolmenyediakan lebih banyak fungsi sehingga langkah-langkah berikut memandu Anda melalui membuatEventBridge aturan yang memicu tugas yang dijadwalkan.

Membuat tugas terjadwal (konsol EventBridge)

1. Buka Amazon EventBridge konsol dihttps://console.aws.amazon.com/events/.2. Di panel navigasi, pilih Aturan.3. Pilih Buat aturan.4. Masukkan nama dan deskripsi untuk aturan.

Note

Aturan tidak boleh memiliki nama yang sama dengan aturan lain di Wilayah yang sama dan dibus kejadian yang sama.

5. UntukBus peristiwa, pilih bus peristiwa yang ingin Anda kaitkan dengan aturan ini. Jika Anda inginaturan ini cocok dengan kejadian yang berasal dari akun Anda, pilih bus kejadian default AWS. Saatlayanan AWS di akun Anda menghasilkan kejadian, layanan tersebut akan selalu masuk ke buskejadian default akun Anda.

6. Pilih cara menjadwalkan tugas.

Untuk membuat aturanberdasarkan...

Lakukan ini...

Peristiwa a. UntukJenis aturan,pilihAturan dengan polaevent.

b. Pilih Selanjutnya.c. UntukSumber peristiwa,

pilihAWSacara.d. UntukPola peristiwa, lakukan

salah satu hal berikut:• Untuk menggunakan

template untuk membuatpola acara Anda,pilihBentuk polaperistiwadan pilihSumberperistiwa,AWSlayanan,danJenis acara. JikaAnda memilihSemuaAcarasebagai jenisacara, semua peristiwayang dipancarkanolehAWSlayanan akancocok dengan aturan.

Untuk menyesuaikantemplate, pilihPola

206

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat tugas terjadwal

Untuk membuat aturanberdasarkan...

Lakukan ini...

kustom (editor JSON)danmembuat perubahanAnda.

• Untuk menggunakan polaacara khusus, pilihPolakustom (editor JSON)danbuat pola acara Anda.

Jadwal a. UntukJenis aturan,pilihJadwal.

b. Pilih Selanjutnya.c. UntukPola jadwal, lakukan

salah satu hal berikut:• Untuk menggunakan

ekspresi cron untukmenentukan jadwal,pilihJadwal berbutir halusyang berjalan pada waktutertentu, seperti 8:00 a.m.PST pada hari Seninpertama setiap bulandanmasukkan ekspresi cron.

• Untuk menggunakanekspresi tingkat untukmenentukan jadwal,pilihJadwal yang berjalanpada tarif reguler, sepertisetiap 10 menitdanmasukkan ekspresi tingkat.

7. Pilih Selanjutnya.8. UntukJenis target, pilihAWSlayanan.9. UntukPilih target, pilihTugas ECS.10. UntukKluster, pilih klaster Amazon ECS.11. Untuk Ketentuan tugas, pilih keluarga ketentuan tugas.12. Untuk Revisi ketentuan tugas, pilih antara Terbaru atau Revisi dan pilih revisi ketentuan tugas tertentu

yang akan digunakan.13. Untuk Jumlah, tentukan jumlah tugas yang akan dijalankan.14. Pilih bagaimana tugas terjadwal didistribusikan di seluruh infrastruktur klaster Anda.

Metode distribusi Langkah-langkah

Strategi penyedia kapasitas a. DiOpsi komputasibagian,pilihStrategi penyediakapasitas.

b. Pilih strategi:• Untuk menggunakan

strategi penyediakapasitas default klaster,pilihGunakan klasterdefault.

207

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat tugas terjadwal

Metode distribusi Langkah-langkah• Jika klaster Anda

tidak memiliki strategipenyedia kapasitasdefault, atau untukmenggunakan strategikhusus, pilihGunakankustom,Strategipenyedia kapasitasdantentukan strategipenyedia kapasitaskhusus Anda denganmenentukanMendasarkan,Penyediakapasitas, danBerat.

Note

Untuk menggunakanpenyedia kapasitasdalam strategi,penyedia kapasitasharus dikaitkandengan klaster.Untuk informasiselengkapnya tentangstrategi penyediakapasitas, lihatPenyedia kapasitasAmazon ECS (p. 75).

Jenis peluncuran a. DiOpsi komputasibagian,pilihTipe peluncuran.

b. UntukTipe peluncuran, pilihjenis peluncuran.

c. (Opsional) Ketika tipepeluncuran Fargatediwajibkan, untuk Versiplatform, tentukan versiplatform yang akandigunakan. Jika versiplatform tidak ditentukan,versi platform LATESTdigunakan secara default.

15. Jika tugas di-host di Fargate atau menggunakanawsvpcmode jaringan, memperluasKonfigurasikankonfigurasi jaringandan tentukan konfigurasi jaringan.

a. Untuk Subnet, tentukan satu ID subnet atau lebih.b. Untuk Grup keamanan, pilih satu grup keamanan atau lebih.c. Untuk Tetapkan IP publik secara otomatis, tentukan apakah akan menetapkan alamat IP publik

dari subnet Anda ke tugas tersebut.16. (Opsional) Untuk menentukan parameter tambahan untuk tugas Anda, perluasMengonfigurasi properti

tambahan.

208

Amazon ECS Panduan Pengguna untuk AWS FargateLihat tugas terjadwal Anda

a. Untuk Grup tugas, tentukan nama grup tugas. Nama grup tugas digunakan untuk mengidentifikasisatu set tugas terkait dan digunakan bersama denganspreadStrategi penempatan tugas untukmemastikan tugas-tugas dalam grup tugas yang sama tersebar secara merata di antara instanskontainer di klaster.

b. Untuk Tanda, pilih Tambahkan tanda untuk mengaitkan tanda pasangan nilai kunci untuk tugas.c. Untuk menambahkan tag yang akan digunakan saat meninjau alokasi biaya di Laporan Biaya dan

Penggunaan Anda, untukKonfigurasi tag terkelola, pilihMengaktifkan tag terkelola. Untuk informasiselengkapnya, lihat Menandai sumber daya Anda untuk penagihan (p. 284).

d. Untuk mengaktifkan fungsi ECS Exec untuk tugas, untukKonfigurasi mengeksekusi perintah,pilihAktifkan perintah eksekusi. Untuk informasi selengkapnya, lihat Menggunakan Amazon ECSExec untuk melakukan debug (p. 445).

e. Untuk menambahkan tag yang terkait dengan definisi tugas ke tugas Anda, untukMengonfigurasitag propagasi, pilihMenyebarkan tag dari definisi tugas. Untuk informasi selengkapnya, lihatMenandai Sumber Daya Anda (p. 282).

Note

Jika Anda menentukan tag dengan kunci yang sama diTagbagian, tag yang menimpa tagyang disebarkan dari definisi tugas.

17. Untuk berbagai jenis target, EventBridge membutuhkan izin untuk mengirim peristiwa ke target. Dalamkasus ini, EventBridge dapat membuat IAM role yang diperlukan aturan Anda untuk berjalan. Lakukansalah satu dari langkah berikut ini:

• Untuk membuat IAM role secara otomatis, pilih Buat peran baru untuk sumber daya khusus ini.• Untuk menggunakan IAM role yang Anda buat sebelumnya, pilihMenggunakan peran yang adadan

pilih peran yang ada dari menu drop-down.18. (Opsional) UntukPengaturan tambahan, lakukan hal berikut:

a. Untuk Masa peristiwa maksimal, masukkan nilai antara satu menit (00:01) dan 24 jam (24:00).b. Untuk Upaya coba lagi, masukkan angka antara 0 dan 185.c. UntukAntrean Surat Mati, pilih apakah akan menggunakan antrean Amazon SQS standar sebagai

antrean surat mati. EventBridge mengirimkan kejadian yang mencocokkan aturan ini denganantrean surat mati jika tidak berhasil dikirim ke target. Lakukan salah satu dari berikut:• Pilih Tidak ada untuk tidak menggunakan antrean surat mati.• PilihPilih antrean Amazon SQS di saat iniAWSakun untuk digunakan sebagai antrean surat

matidan kemudian pilih antrian yang akan digunakan dari dropdown.• Pilih Pilihan antrean Amazon SQS di akun AWS lainnya sebagai antrean surat mati dan

kemudian masukkan ARN antrean untuk menggunakannya. Anda harus melampirkankebijakan berbasis sumber daya ke antrean yang memberikan izin pada EventBridge untukmengirim pesan. Untuk informasi selengkapnya, lihatMemberikan izin untuk antrean suratmatidi dalamAmazon EventBridge Panduan Pengguna.

19. Pilih Selanjutnya.20. (Opsional) Masukkan satu atau lebih tanda untuk aturan. Untuk informasi selengkapnya, lihatAmazon

EventBridge tagdi dalamAmazon EventBridge Panduan Pengguna.21. Pilih Selanjutnya.22. Tinjau detail aturan dan pilihBuat aturan.

Lihat tugas terjadwal AndaTugas terjadwal Anda dapat dilihat di konsol Amazon ECS klasik. Anda juga dapat melihat AmazonEventBridge aturan yang memicu tugas yang dijadwalkan di EventBridge konsol

209

Amazon ECS Panduan Pengguna untuk AWS FargateMengedit tugas terjadwal

Untuk melihat tugas terjadwal Anda (konsol Amazon ECS)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih klaster tempat tugas terjadwal Anda dijalankan.3. Pada halaman Klaster: nama-klaster, pilih tab Tugas Terjadwal.4. Semua tugas terjadwal Anda tercantum.

Mengedit tugas terjadwalTugas terjadwal Anda dapat diedit di konsol Amazon ECS klasik. Anda juga dapat mengedit AmazonEventBridge aturan yang memicu tugas yang dijadwalkan di EventBridge konsol

Untuk mengedit tugas terjadwal (konsol Amazon ECS)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih klaster tempat Anda mengedit tugas terjadwal.3. Pada halaman Klaster: nama-klaster, pilih Tugas terjadwal.4. Pilih kotak di sebelah kiri aturan jadwal untuk diedit, dan pilih Edit.5. Edit bidang tersebut untuk memperbarui dan pilih Perbarui.

AWSPemeliharaan tugas FargateSaatAWSmenentukan bahwa pembaruan keamanan atau infrastruktur diperlukan untuk tugasAmazon ECS yang di-hostAWS Fargate, tugas harus dihentikan dan tugas baru diluncurkan untukmenggantikannya.

Untuk tugas yang merupakan bagian dari layanan Amazon ECS, jika ada masalah dengan host yangmendasarinya,AWSmenghentikan tugas. Selain itu, scheduler layanan juga meluncurkan tugas barudalam upaya untuk mempertahankan jumlah yang diinginkan untuk layanan. Ketika ini terjadi, tidakada pemberitahuan pensiun tugas yang dikirim. Namun, jika ada masalah keamanan dengan hostatau versi platform yang mendasari yang digunakan tugas, pemberitahuan pensiun tugas dikirim keAndaAWS Health Dashboard. Pemberitahuan juga dikirim ke alamat email yang terkait dengan akuntersebut. Pemberitahuan pensiun tugas memberikan rincian tentang masalah ini, tanggal pensiun tugas,dan apa langkah selanjutnya. Untuk informasi selengkapnya, lihat Memahami pemberitahuan tugaspensiun (p. 211).

Untuk tugas mandiri, ketika ada masalah dengan host yang mendasari atau masalah keamanan denganversi platform yang digunakan tugas,AWSmengirimkan pemberitahuan pensiun tugas keAWS HealthDashboard. Pemberitahuan juga dikirim ke alamat email yang terkait dengan akun tersebut. Pemberitahuanpensiun tugas memberikan rincian tentang masalah ini, tanggal pensiun tugas, dan apa langkahselanjutnya. Untuk informasi selengkapnya, lihat Memahami pemberitahuan tugas pensiun (p. 211).

Ketika tugas dihentikan di salah satu skenario yang disebutkan di sini, Anda dapat menggambarkantugas berhenti untuk mengambilstoppedReasonnilai ParameterstoppedReasonmengandungECS isperforming maintenance on the underlying infrastructure hosting the taskpesanmenunjukkan bahwa tugas dihentikan karena masalah pemeliharaan tugas.

Important

Untuk mempersiapkan proses pensiun tugas, sebaiknya Anda menguji perilaku aplikasi Andadengan menyimulasikan skenario ini. Anda dapat melakukannya dengan menghentikan tugasindividual dalam layanan Anda untuk menguji ketahanannya.

Tabel berikut menjelaskan skenario ini.

210

Amazon ECS Panduan Pengguna untuk AWS FargateMemahami pemberitahuan tugas pensiun

Jenis tugas Isu Action

Masalah host Pemberitahuan pensiun tugasdikirim menggunakanAWSHealth Dashboarddan kirim emailJika tidak ada tindakan yangdiambil oleh tanggal pensiuntugas,AWSmenghentikan tugas.

Tugas mandiri

Kerentanan keamanan Pemberitahuan pensiun tugasdikirim menggunakanAWSHealth Dashboarddan kirim emailJika tidak ada tindakan yangdiambil oleh tanggal pensiuntugas,AWSmenghentikan tugas.

Masalah host Tugas dihentikan olehAWSdanscheduler layanan meluncurkantugas baru dalam upaya untukmempertahankan jumlahkeinginan untuk layanan. Tidakada pemberitahuan yang dikirim.

Tugas layanan

Kerentanan keamanan Pemberitahuan pensiun tugasdikirim menggunakanAWSHealth Dashboarddan kirim emailJika tidak ada tindakan yangdiambil oleh tanggal pensiuntugas,AWSmenghentikantugas dan scheduler layananmeluncurkan tugas baru dalamupaya untuk mempertahankanjumlah yang diinginkan layanan.

Memahami pemberitahuan tugas pensiunKetika pemberitahuan pensiun tugas dikirim, Anda akan diberitahu melalui email tentang pensiun yangtertunda. Email dikirim sebelum kejadian dengan ID tugas dan tanggal pensiun. Email ini dikirim kealamat yang terkait dengan akun Anda. Ini adalah alamat email yang sama yang Anda gunakan untukmasuk keAWS Management Console. Jika Anda menggunakan akun email yang tidak Anda periksasecara teratur, Anda dapat menggunakanAWS Health Dashboarduntuk menentukan apakah tugas Andadijadwalkan untuk pensiun. Anda dapat memperbarui informasi kontak untuk akun Anda diPengaturanAkunhalaman.

Ketika sebuah tugas mencapai tanggal pensiun yang dijadwalkan, tugas dihentikan atau diakhiri olehAWS.Ini jika belum dihentikan. Untuk tugas layanan, saat tugas dihentikan, penjadwal layanan meluncurkantugas yang baru untuk menggantikannya untuk memastikan layanan mempertahankan jumlah yangdiinginkan. Untuk tugas mandiri, mereka dihentikan dan Anda bertanggung jawab untuk meluncurkanpenggantinya.

Bekerja dengan tugas yang dijadwalkan untuk pensiunNote

Prosedur ini hanya berlaku untuk tugas layanan. Untuk tugas mandiri, cukup hentikan danjalankan tugas mandiri baru.

211

Amazon ECS Panduan Pengguna untuk AWS FargateMemahami pemberitahuan tugas pensiun

Untuk tugas layanan, saat tugas dihentikan, penjadwal layanan memulai tugas yang baru untukmenggantikannya setelah mencapai tanggal pensiun yang dijadwalkan. Penjadwal layananmempertahankan jumlah layanan yang diinginkan. Untuk memperbarui tugas layanan Anda sebelumtanggal pensiun, Anda dapat menggunakan langkah-langkah berikut. Untuk informasi selengkapnya, lihatMemperbarui layanan (p. 239).

Untuk memperbarui layanan yang sedang berjalan (AWS Management Console)

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di bilah navigasi, pilih Wilayah tempat klaster Anda berada.3. Di panel navigasi, pilih Klaster.4. Padaklasterhalaman, pilih nama klaster tempat layanan Anda berada.5. Pada Klaster: nama, pilih Layanan.6. Centang kotak di sebelah kiri layanan untuk memperbarui dan pilih Perbarui.7. Pada halaman Konfigurasi layanan, informasi layanan Anda telah diisi sebelumnya. Pilih Paksa

deployment baru dan pilih Langkah selanjutnya.

Note

Saat Anda memaksa deployment baru, penjadwal meluncurkan tugas baru menggunakanversi platform yang ditambal. Tugas Anda tidak mengharuskan Anda memilih versiplatform yang berbeda untuk diperbarui. Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

8. Pada halaman Konfigurasi jaringan dan Mengatur Auto Scaling (opsional), pilih Langkah selanjutnya.9. Pilih Layanan pembaruan untuk menyelesaikan dan memperbarui layanan Anda.

Untuk memperbarui layanan yang sedang berjalan (AWS CLI)

1. Dapatkan Amazon Resource Name (ARN) untuk layanan ini.

aws ecs list-services --cluster cluster_name --region region

Outputnya adalah sebagai berikut.

{ "serviceArns": [ "arn:aws:ecs:region:aws_account_id:service/MyService" ]}

2. Memperbarui layanan Anda yang men-deploy tugas baru.

Anda mungkin harus mengaturforce-new-deployment optiontergantung pada jenis penyebaranAnda dan opsi layanan yang diubah. Untuk informasi tentang kapan harus mengaturforce-new-deployment option, lihatlahlayanan pembaruandi dalamAWS CLIReferensi Perintah.

aws ecs update-service --service serviceArn --cluster cluster_name --region region

Jika Anda menggunakan tugas mandiri, maka Anda dapat memulai tugas baru untuk menggantikannya.Untuk informasi selengkapnya, lihat Menjalankan tugas mandiri (p. 203).

212

Amazon ECS Panduan Pengguna untuk AWS FargateKonsep penjadwal layanan

Layanan Amazon ECSLayanan Amazon ECS memungkinkan Anda untuk menjalankan dan mempertahankan sejumlah instanstertentu dari definisi tugas secara bersamaan di klaster Amazon ECS. Jika ada tugas yang gagal ataudihentikan karena alasan apa pun, penjadwal layanan Amazon ECS meluncurkan instans penentuan tugaslainnya untuk menggantikannya guna mempertahankan jumlah tugas yang diinginkan dalam layanan.

Selain mempertahankan jumlah tugas yang diinginkan dalam layanan, Anda dapat menjalankan layanansecara opsional di belakang penyeimbang beban. Penyeimbang beban mendistribusikan lalu lintas keseluruh tugas yang terkait dengan layanan.

Topik• Konsep penjadwal layanan (p. 213)• Konsep layanan tambahan (p. 214)• Parameter ketentuan layanan (p. 214)• Membuat layanan Amazon ECS (p. 227)• Memperbarui layanan (p. 239)• Menghapus layanan (p. 242)• Tipe Deployment Amazon ECS (p. 243)• Penyeimbangan beban layanan (p. 256)• Penskalaan otomatis layanan (p. 267)• Penemuan Layanan (p. 276)• Logika throttle layanan (p. 279)

Konsep penjadwal layananPenjadwal layanan sangat cocok untuk layanan dan aplikasi stateless yang berjalan lama. Penjadwallayanan memastikan bahwa strategi penjadwalan yang Anda tentukan diikuti dan menjadwal ulang tugassaat tugas gagal (misalnya, jika infrastruktur pokok gagal karena beberapa alasan). Strategi dan batasanpenempatan tugas dapat digunakan untuk menyesuaikan cara penjadwal menempatkan dan mengakhiritugas. Jika tugas dalam layanan berhenti, penjadwal meluncurkan tugas baru untuk menggantikannya.Proses ini berlanjut hingga layanan Anda mencapai jumlah tugas berjalan yang diinginkan berdasarkanstrategi penjadwalan (juga disebut sebagai tipe layanan) yang digunakan layanan.

Penjadwal layanan menyertakan logika yang membatasi seberapa sering tugas dimulai ulang jika berulangkali gagal memulai. Jika tugas dihentikan tanpa memasukkan status RUNNING, maka penjadwal layananmulai memperlambat upaya peluncuran dan mengeluarkan pesan kejadian layanan secara bertahap, yangditentukan oleh tugas yang memiliki stempel waktu startedAt. Perilaku ini mencegah sumber daya yangtidak perlu digunakan untuk tugas yang gagal, sehingga memberi Anda kesempatan untuk menyelesaikanmasalah. Setelah layanan diperbarui, penjadwal layanan melanjutkan perilaku normal. Untuk informasiselengkapnya, lihat Logika throttle layanan (p. 279) dan Pesan peristiwa layanan (p. 463).

Ada dua strategi penjadwal layanan yang tersedia:

• REPLICAStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang diinginkanklaster Anda. Secara default tugas tersebar di seluruh Availability Zone. Anda dapat menggunakanstrategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatan tugas. Untukinformasi selengkapnya, lihat Replika (p. 214).

• DAEMON—Strategi penjadwalan daemon men-deploy tepat satu tugas pada setiap instans kontaineraktif yang memenuhi semua kendala penempatan tugas yang Anda tentukan di klaster Anda. Penjadwal

213

Amazon ECS Panduan Pengguna untuk AWS FargateReplika

layanan mengevaluasi batasan penempatan tugas untuk menjalankan tugas dan akan menghentikantugas yang tidak memenuhi batasan penempatan. Saat menggunakan strategi ini, tidak perlumenentukan jumlah tugas yang diinginkan, strategi penempatan tugas, atau menggunakan kebijakanAuto Scaling Layanan. Untuk informasi selengkapnya, lihatDaemondiPanduan Pengembang AmazonElastic.

Note

Tugas Fargate tidak mendukungDAEMONstrategi penjadwalan.

ReplikaStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang diinginkan di klasterAnda.

Saat membuat layanan yang menjalankan tugas di Fargate, saat penjadwal layanan meluncurkan tugasbaru atau berhenti menjalankan tugas, penjadwal layanan akan mempertahankan keseimbangan di seluruhAvailability Zone. Tidak perlu menentukan strategi atau batasan penempatan tugas.

Konsep layanan tambahan• Anda dapat secara opsional menjalankan layanan di belakang penyeimbang beban. Untuk informasi

selengkapnya, lihat Penyeimbangan beban layanan (p. 256).• Anda dapat menentukan konfigurasi deployment untuk layanan Anda. Deployment dipicu dengan

memperbarui ketentuan tugas atau jumlah layanan yang diinginkan. Selama deloyment, penjadwallayanan menggunakan parameter persentase minimum yang sehat dan persentase maksimumuntuk menentukan strategi deployment. Untuk informasi selengkapnya, lihat Parameter ketentuanlayanan (p. 214).

• Anda dapat mengonfigurasi layanan Anda secara opsional untuk menggunakan penemuan layananAmazon ECS. Penemuan layananAWS Cloud MapAPI penamaan auto untuk mengelola entri DNS untuktugas layanan Anda, membuatnya dapat ditemukan dalam VPC Anda. Untuk informasi selengkapnya,lihat Penemuan Layanan (p. 276).

• Saat Anda menghapus layanan, jika masih ada tugas berjalan yang memerlukan pembersihan, statuslayanan berpindah dariACTIVEkepadaDRAINING, dan layanan tidak lagi terlihat di konsol atau diListServices Operasi API. Setelah semua tugas dialihkan, baik ke status STOPPING ataupun STOPPED,maka status layanan bergerak dari DRAINING ke INACTIVE. Layanan diDRAININGatauINACTIVEstatusmasih dapat dilihat dengan DescribeServices Operasi API. Namun, di future,INACTIVElayanan dapatdibersihkan dan dibersihkan dari penyimpanan catatan Amazon ECS, dan DescribeServices panggilanpada layanan tersebut mengembalikanServiceNotFoundExceptionkesalahan.

Parameter ketentuan layananDefinisi layanan menentukan cara menjalankan layanan Amazon ECS Anda. Parameter berikut dapatditetapkan dalam ketentuan layanan.

Tipe peluncuranlaunchType

Jenis: String

Nilai yang valid: EC2 | FARGATE | EXTERNAL

214

Amazon ECS Panduan Pengguna untuk AWS FargateStrategi penyedia kapasitas

Diperlukan: Tidak

Jenis peluncuran untuk menjalankan layanan Anda. Jika jenis peluncuran tidakditentukan,EC2digunakan secara default. Untuk informasi selengkapnya, lihat Jenis peluncuranECS (p. 123).

Jika launchType ditentukan, parameter capacityProviderStrategy harus dihilangkan.

Strategi penyedia kapasitascapacityProviderStrategy

Jenis: Array objek

Diperlukan: Tidak

Strategi penyedia kapasitas untuk digunakan dalam layanan.

Strategi penyedia kapasitas terdiri dari satu penyedia kapasitas atau lebih bersama dengan basedan weight yang ditetapkan padanya. Penyedia kapasitas harus dikaitkan dengan klaster sebelumditentukan dalam strategi penyedia kapasitas. Parameter PutClusterCapacityProviders API digunakanuntuk mengaitkan penyedia kapasitas dengan klaster. Hanya penyedia kapasitas dengan statusACTIVE atau UPDATING yang dapat digunakan.

Jika capacityProviderStrategy ditetapkan, parameter launchType harusdihilangkan. Jika tidak ada capacityProviderStrategy atau launchType ditentukan,defaultCapacityProviderStrategy untuk klaster digunakan.

Jika menetapkan penyedia kapasitas yang menggunakan grup Auto Scaling, penyedia kapasitas harussudah dibuat. Penyedia kapasitas baru dapat dibuat dengan CreateCapacityProvider Operasi API.

Untuk menggunakanAWSPenyedia kapasitas Fargate, tentukanbaikFARGATEatauFARGATE_SPOTpenyedia kapasitas. ParameterAWSPenyedia kapasitas Fargatetersedia untuk semua akun dan hanya perlu dikaitkan dengan klaster yang akan digunakan.

Parameter PutClusterCapacityProviders Operasi API digunakan untuk memperbarui daftar penyediakapasitas yang tersedia untuk klaster setelah klaster dibuat.capacityProvider

Jenis: Tali

Diperlukan: Ya

Nama singkat atau ARN lengkap dari penyedia kapasitas.weight

Jenis: Bulat

Rentang valid: Bilangan bulat antara 0 dan 1.000.

Diperlukan: Tidak

Nilai berat menunjuk persentase relatif dari jumlah total tugas yang diluncurkan yang harusmenggunakan penyedia kapasitas yang ditentukan.

Misalnya, jika Anda memiliki strategi yang berisi dua penyedia kapasitas dan keduanya memilikiberat 1, maka ketika basis terpenuhi, tugas akan dibagi secara merata ke dua penyedia kapasitas.Menggunakan logika yang sama, jika Anda menentukan berat sebesar 1 untuk capacityProviderA

215

Amazon ECS Panduan Pengguna untuk AWS FargateKetentuan tugas

dan berat sebesar 4 untuk capacityProviderB, maka untuk setiap satu tugas yang dijalankanmenggunakan capacityProviderA, empat tugas akan menggunakan capacityProviderB.

base

Jenis: Bulat

Rentang valid: Bilangan bulat antara 0 dan 100.000.

Diperlukan: Tidak

Nilai dasar menandakan berapa banyak tugas, dengan angka minimum, yang berjalan padapenyedia kapasitas tertentu. Hanya satu penyedia kapasitas dalam strategi penyedia kapasitasdapat memiliki basis yang ditentukan.

Ketentuan tugastaskDefinition

Jenis: Tali

Diperlukan: Tidak

Parameterfamilydanrevision(family:revision) atau Amazon Resource Name (ARN) lengkapdari definisi tugas yang akan dijalankan dalam layanan Anda. Jika revision tidak ditentukan, revisiACTIVE terbaru dari keluarga yang ditentukan digunakan.

Ketentuan tugas harus ditentukan ketika menggunakan pembaruan bergulir (ECS) pengendalideployment.

Sistem operasi platformplatformFamily

Tipe: string

Diperlukan: Bersyarat

Default: Linux

Parameter ini diperlukan untuk layanan Amazon ECS yang dihosting di Fargate.

Parameter ini diabaikan untuk layanan Amazon ECS yang dihosting diAmazon EC2.

Sistem operasi pada kontainer yang menjalankan layanan. Nilai-nilai yangbenarLINUX,WINDOWS_SERVER_2019_FULLdanWINDOWS_SERVER_2019_CORE.

ParameterplatformFamilynilai untuk setiap tugas yang Anda tentukan untuklayanan harus sesuai dengan layananplatformFamilynilai. Misalnya, jika AndamengaturplatformFamilykepadaWINDOWS_SERVER_2019_FULL, yangplatformFamilynilaiuntuk semua tugas harusWINDOWS_SERVER_2019_FULL.

Versi platformplatformVersion

Jenis: Tali

216

Amazon ECS Panduan Pengguna untuk AWS FargateKluster

Diperlukan: Tidak

Versi platform tempat tugas Anda dalam layanan berjalan. Versi platform hanya ditentukan untuktugas menggunakan tipe peluncuran Fargate. Jika salah satu tidak ditentukan, versi terbaru (LATEST)digunakan secara default.

AWSVersi platform Fargate digunakan untuk merujuk ke lingkungan runtime tertentu untuk infrastrukturtugas Fargate. Saat menentukanLATESTversi platform saat menjalankan tugas atau membuatlayanan, Anda mendapatkan versi platform terbaru yang tersedia untuk tugas Anda. Saat Andameningkatkan layanan, tugas tersebut menerima versi platform yang ditentukan pada penyebaranlayanan saat ini. Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

Klustercluster

Jenis: Tali

Diperlukan: Tidak

Nama pendek atau Amazon Resource Name (ARN) lengkap dari klaster untuk menjalankan layananAnda. Jika Anda tidak menentukan klaster,defaultcluster diasumsikan.

Nama layananserviceName

Jenis: Tali

Diperlukan: Ya

Nama layanan Anda. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tandahubung, dan garis bawah. Nama layanan harus unik dalam sebuah klaster, tetapi Anda dapat memilikilayanan yang bernama sama di beberapa klaster dalam satu Wilayah atau lebih.

Strategi penjadwalanschedulingStrategy

Jenis: String

Nilai yang valid: REPLICA

Diperlukan: Tidak

Strategi penjadwalan yang boleh digunakan. Jika strategi penjadwalan tidak ditentukan, maka strategiREPLICA digunakan. Untuk informasi selengkapnya, lihat Konsep penjadwal layanan (p. 213).

Ada dua strategi penjadwal layanan yang tersedia:• REPLICAStrategi penjadwalan replika menempatkan dan mempertahankan jumlah tugas yang

diinginkan klaster Anda. Secara default tugas tersebar di seluruh Availability Zone. Anda dapatmenggunakan strategi penempatan tugas dan kendala untuk menyesuaikan keputusan penempatantugas. Untuk informasi selengkapnya, lihat Replika (p. 214).

217

Amazon ECS Panduan Pengguna untuk AWS FargateJumlah yang diinginkan

• DAEMON—Strategi penjadwalan daemon men-deploy tepat satu tugas pada setiap instans kontaineraktif yang memenuhi semua kendala penempatan tugas yang Anda tentukan di klaster Anda.Penjadwal layanan mengevaluasi batasan penempatan tugas untuk menjalankan tugas danakan menghentikan tugas yang tidak memenuhi batasan penempatan. Saat menggunakanstrategi ini, tidak perlu menentukan jumlah tugas yang diinginkan, strategi penempatantugas, atau menggunakan kebijakan Auto Scaling Layanan. Untuk informasi selengkapnya,lihatDaemondiPanduan Pengembang Amazon Elastic.

Note

Tugas Fargate tidak mendukungDAEMONstrategi penjadwalan.

Jumlah yang diinginkandesiredCount

Jenis: Bulat

Diperlukan: Tidak

Jumlah instansiasi ketentuan tugas tertentu untuk ditempatkan dan terus berjalan di klaster Anda.

Parameter ini diperlukan jika strategi penjadwalan REPLICA digunakan. Jika layanan menggunakanstrategi penjadwalan DAEMON, parameter ini bersifat opsional.

Konfigurasi deploymentdeploymentConfiguration

Jenis: Objek

Diperlukan: Tidak

Parameter deployment opsional yang mengontrol berapa banyak tugas berjalan selama deplyment danurutan berhenti dan memulai tugas.maximumPercent

Jenis: Bulat

Diperlukan: Tidak

Jika layanan menggunakan tipe deployment (ECS) pembaruan bergulir, parametermaximumPercent mewakili batas atas pada jumlah tugas layanan Anda yang diizinkanuntuk berada di status RUNNING atau PENDING selama deployment, sebagai persentase daridesiredCount (dibulatkan ke bawah ke bilangan bulat terdekat). Parameter ini memungkinkanAnda untuk menentukan ukuran batch deployment. Misalnya, jika layanan Anda menggunakanpenjadwal layanan REPLICA dan memiliki desiredCount dari empat tugas dan nilaimaximumPercent sebesar 200%, penjadwal bisa memulai empat tugas baru sebelummenghentikan empat tugas sebelumnya (asalkan klaster sumber daya yang diperlukan untukmelakukan ini tersedia). Nilai maximumPercent default untuk layanan yang menggunakanpenjadwal layanan REPLICA adalah 200%.

Jika layanan Anda menggunakan tipe penjadwal layanan DAEMON, maximumPercent harus tetappada angka 100%, yang merupakan nilai default.

Jumlah maksimum tugas selama deployment adalah desiredCount dikalikan denganmaximumPercent/100, dibulatkan ke bawah ke nilai integer terdekat.

218

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi deployment

Jika layanan menggunakan biru/hijau (CODE_DEPLOY) atauEXTERNALjenis penyebaran dantugas yang menggunakan jenis peluncuran EC2,persen maksimumnilai diatur ke nilai defaultdan digunakan untuk menentukan batas atas pada jumlah tugas dalam layanan yang tersisadiRUNNINGnegara saat instance kontainer berada diDRAININGstatus. Jika tugas dalam layananmenggunakan tipe peluncuran Fargate, nilai persen maksimal tidak digunakan, meskipun akandikembalikan ketika menjelaskan layanan Anda.

minimumHealthyPercent

Jenis: Bulat

Diperlukan: Tidak

Jika layanan menggunakan tipe deployment (ECS) pembaruan bergulir,minimumHealthyPercent menunjukkan batas bawah jumlah tugas layanan yang harustetap dalam status RUNNING selama deployment, sebagai persentase dari desiredCount(dibulatkan ke atas ke bilangan bulat terdekat). Parameter ini memungkinkan Anda untuk men-deploy tanpa menggunakan kapasitas klaster tambahan. Misalnya, jika layanan Anda memilikidesiredCount dari empat tugas dan minimumHealthyPercent dari 50%, penjadwal layanandapat menghentikan dua tugas yang ada untuk membebaskan kapasitas klaster sebelum memulaidua tugas baru.

Untuk layanan yang tidak menggunakan penyeimbang beban, berikut ini harus diperhatikan:• Sebuah layanan dianggap baik jika semua kontainer penting dalam tugas dalam layanan lulus

pemeriksaan kondisi.• Jika tugas tidak memiliki kontainer penting yang mewajibkan pemeriksaan kondisi, penjadwal

layanan akan menunggu selama 40 detik setelah tugas mencapai status RUNNING sebelumtugas terhitung sebagai total persen kondisi minimal.

• Jika tugas memiliki satu atau lebih kontainer penting yang mewajibkan pemeriksaan kondisi,penjadwal layanan akan menunggu tugas hingga mencapai status yang sehat sebelum terhitungsebagai total persentase kondisi minimal. Sebuah tugas dianggap baik ketika semua kontainerpenting dalam tugas telah lulus pemeriksaan kondisi. Jumlah waktu tunggu penjadwal layananditentukan oleh pengaturan pemeriksaan kondisi kontainer. Untuk informasi selengkapnya, lihatPemeriksaan kondisi (p. 103).

Untuk layanan yang benar-benar menggunakan penyeimbang beban, berikut ini harusdiperhatikan:• Jika tugas tidak memiliki kontainer penting yang mewajibkan pemeriksaan kondisi, penjadwal

layanan akan menunggu pemeriksaan kesehatan grup target penyeimbang beban untukmengembalikan status sehat sebelum tugas terhitung sebagai total persentase kondisi minimal.

• Jika tugas memiliki kontainer penting dengan mewajibkan pemeriksaan kondisi, penjadwallayanan akan menunggu kedua tugas hingga mencapai status yang sehat dan pemeriksaankesehatan grup target penyeimbang beban untuk mengembalikan status yang sehat sebelumtugas terhitung sebagai total persentase kondisi minimum.

Nilai default untuk layanan replika untuk minimumHealthyPercent adalah 100%. NilaiminimumHealthyPercent default untuk layanan yang menggunakan jadwal layanan DAEMONadalah 0% untuk AWS CLI, SKD AWS, dan API dan 50% untuk AWS Management Console.

Jumlah minimal tugas sehat selama deployment adalah desiredCount dikalikan denganminimumHealthyPercent/100, dibulatkan ke atas ke nilai bilangan bulat terdekat.

Jika layanan menggunakan biru/hijau (CODE_DEPLOY) atauEXTERNALjenis penyebaran danmenjalankan tugas-tugas yang menggunakan jenis peluncuran EC2,persen sehat minimumnilaidiatur ke nilai default dan digunakan untuk menentukan batas bawah pada jumlah tugasdalam layanan yang tetap berada di dalamRUNNINGnegara saat instance kontainer beradadiDRAININGstatus. Jika layanan menggunakan biru/hijau (CODE_DEPLOY) atauEXTERNALtipe

219

Amazon ECS Panduan Pengguna untuk AWS FargatePengendali deployment

deployment dan menjalankan tugas yang menggunakan tipe peluncuran Fargate, nilai persenkondisi minimal tidak digunakan, meskipun akan dikembalikan saat menjelaskan layanan Anda.

Pengendali deploymentdeploymentController

Jenis: Objek

Diperlukan: Tidak

Pengendali deployment yang bisa digunakan untuk layanan. Jika pengendali deployment tidakditentukan, maka digunakan pengendali ECS. Untuk informasi selengkapnya, lihat Tipe DeploymentAmazon ECS (p. 243).type

Jenis: String

Nilai yang valid: ECS | CODE_DEPLOY | EXTERNAL

Wajib: ya

Tipe pengendali deployment yang bisa digunakan. Tersedia tiga tipe pengendali deployment:ECS

Tipe deployment (ECS) pembaruan bergulir mencakup penggantian versi yang berjalansekarang dari kontainer dengan versi terbaru. Jumlah Amazon ECS kontainer yangditambahkan atau dihapus dari layanan selama pembaruan bergulir dikendalikan denganmenyesuaikan jumlah minimum dan maksimum tugas sehat yang diizinkan selamadeployment layanan, sebagaimana ditentukan dalamdeploymentConfiguration.

CODE_DEPLOY

Biru/hijau (CODE_DEPLOYTipe deployment menggunakan model deployment yang ditenagaioleh CodeDeploy, yang mengizinkan Anda memverifikasi deployment baru suatu layanansebelum mengirim lalu lintas produksi padanya.

EXTERNAL

Jenis deployment eksternal memungkinkan Anda untuk menggunakan pengendali deploymentpihak ketiga untuk melakukan kendali penuh atas proses deployment untuk layanan AmazonECS.

Penempatan tugasplacementStrategy

Jenis: Array objek

Diperlukan: Tidak

Strategi batasan objek yang akan digunakan untuk tugas-tugas dalam layanan Anda. Anda dapatmenentukan maksimal empat aturan strategi per layanan.type

Jenis: String

220

Amazon ECS Panduan Pengguna untuk AWS FargateTanda

Nilai yang valid: random | spread | binpack

Diperlukan: Tidak

Tipe strategi penempatan. Strategi penempatan random menempatkan tugas pada kandidatyang tersedia secara acak. Strategi penempatan spread menyebarkan penempatan di seluruhkandidat yang tersedia secara merata berdasarkan parameter field. Strategi binpackmenempatkan tugas pada kandidat yang tersedia yang memiliki jumlah sumber daya paling sedikityang ditentukan dengan parameter field. Sebagai contoh, jika Anda binpack pada memori,tugas ditempatkan pada instans dengan jumlah sisa memori yang paling sedikit (tapi masih cukupuntuk menjalankan tugas).

field

Jenis: Tali

Diperlukan: Tidak

Bidang tempat menerapkan strategi penempatan. Untuk strategi penempatan spread, nilai yangvalid adalah instanceId (atau host, yang memiliki efek yang sama), atau setiap platform atauatribut kustom yang diterapkan ke instans kontainer, seperti attribute:ecs.availability-zone. Untuk strategi penempatan binpack, nilai yang valid adalah cpu dan memory. Untukstrategi penempatan random, bidang ini tidak digunakan.

Tandatags

Jenis: Array objek

Diperlukan: Tidak

Metadata yang Anda terapkan ke layanan untuk membantu Anda mengkategorikan dan mengaturnya.Setiap tanda terdiri atas sebuah kunci dan sebuah nilai opsional, yang keduanya Anda tentukan.Ketika layanan dihapus, tag akan dihapus juga. Maksimum 50 tag dapat diterapkan untuk layanan.Untuk informasi selengkapnya, lihat Menandai sumber daya Amazon ECS Anda (p. 281).key

Jenis: String

Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.

Diperlukan: Tidak

Salah satu bagian pasangan nilai kunci yang membentuk tanda. Kunci adalah label umum yangbertindak seperti kategori untuk nilai tanda yang lebih spesifik.

value

Jenis: String

Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.

Diperlukan: Tidak

Bagian opsional pasangan nilai kunci yang membentuk tanda. Nilai bertindak sebagai deskriptordalam kategori tanda (kunci).

221

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi jaringan

enableECSManagedTags

Jenis: Boolean

Nilai yang valid: true | false

Diperlukan: Tidak

Menentukan apakah akan menggunakan tag terkelola Amazon ECS untuk tugas-tugas dalam layanan.Jika tidak ada nilai yang ditentukan, nilai defaultnya adalah false. Untuk informasi selengkapnya, lihatMenandai sumber daya Anda untuk penagihan (p. 284).

propagateTags

Jenis: String

Nilai yang valid: TASK_DEFINITION | SERVICE

Diperlukan: Tidak

Menentukan apakah akan menyalin tag dari definisi tugas atau layanan untuk tugas dalam layanan.Jika tidak ada nilai yang ditentukan, tanda tidak disalin. Tanda hanya dapat disalin ke tugas selamapembuatan layanan. Untuk menambahkan tag ke tugas setelah pembuatan layanan atau pembuatantugas, gunakanTagResourceTindakan API.

Konfigurasi jaringannetworkConfiguration

Jenis: Objek

Diperlukan: Tidak

Konfigurasi jaringan untuk layanan. Parameter ini diperlukan untuk ketentuan tugas yangmenggunakan mode jaringan awsvpc untuk menerima Antarmuka Jaringan Elastisnya sendiri, danmode jaringan lainnya tidak didukung. Jika menggunakan tipe peluncuran Fargate,awsvpcModusjaringan diperlukan. Untuk informasi selengkapnya, lihatFargate tugasdiPanduan Pengguna AmazonElasticAWS Fargate..awsvpcConfiguration

Jenis: Objek

Diperlukan: Tidak

Sebuah objek yang menunjukkan subnet dan grup keamanan untuk tugas atau layanan.subnets

Jenis: Array string

Diperlukan: Ya

Subnet yang terkait dengan tugas atau layanan. Ada batas subnet yang dapat ditentukan perawsvpcConfiguration adalah 16 subnet.

securityGroups

Jenis: Array string

222

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi jaringan

Diperlukan: Tidak

Grup keamanan yang terkait dengan tugas atau layanan. Jika Anda tidak menentukan grupkeamanan, maka digunakan grup keamanan default untuk VPC. Terdapat batas 5 grupkeamanan yang dapat ditentukan per awsvpcConfiguration.

assignPublicIP

Jenis: String

Nilai yang valid: ENABLED | DISABLED

Diperlukan: Tidak

Apakah antarmuka jaringan elastis tugas menerima alamat IP publik. Jika nilai tidakditentukan, maka digunakan nilai default DISABLED.

healthCheckGracePeriodSeconds

Jenis: Bulat

Diperlukan: Tidak

Periode waktu, dalam detik, bahwa penjadwal Layanan Amazon ECS harus mengabaikanpemeriksaan kondisi target Elastic Load Balancing yang tidak sehat, pemeriksaan kondisi kontainer,dan pemeriksaan kondisi Route 53 setelah tugas memasuki layananRUNNINGstatus. Ini hanya berlakujika layanan Anda dikonfigurasi untuk menggunakan penyeimbang beban. Jika layanan Anda memilikipenyeimbang beban yang ditetapkan dan Anda tidak menentukan nilai masa tenggang pemeriksaankesehatan, nilai default0digunakan.

Jika tugas layanan membutuhkan waktu beberapa saat untuk memulai dan menanggapi pemeriksaankondisi, Anda dapat menentukan masa tenggang pemeriksaan kondisi hingga 2.147.483.647 detikselama penjadwal layanan ECS mengabaikan status pemeriksaan kondisi. Masa tenggang ini dapatmencegah penjadwal layanan ECS menandai tugas dengan kondisi tidak baik dan menghentikannyasebelum tugas tersebut muncul.

Jika Anda tidak menggunakan Elastic Load Balancing, kami sarankan AndamenggunakanstartPerioddalam definisi tugas parameter pemeriksaan kesehatan. Untuk informasiselengkapnya, lihatPemeriksaan kondisi.

loadBalancers

Jenis: Array objek

Diperlukan: Tidak

Sebuah objek penyeimbang beban menunjukkan penyeimbang beban untuk digunakan denganlayanan Anda. Untuk layanan yang menggunakan Application Load Balancer atau Network LoadBalancer, batas yang diberlakukan untuk melampirkan grup target ke sebuah layanan adalah lima.

Setelah Anda membuat layanan, nama penyeimbang beban atau ARN grup target, nama kontainerdan port kontainer yang ditentukan dalam ketentuan layanan bersifat tetap.

Untuk Penyeimbang Beban Klasik, objek ini harus berisi nama penyeimbang beban, nama kontainer(seperti yang muncul dalam ketentuan kontainer), dan port kontainer untuk mengakses daripenyeimbang beban. Ketika tugas dari layanan ini ditempatkan pada instans kontainer, instanskontainer didaftarkan dengan penyeimbang beban yang ditentukan di sini.

Untuk Penyeimbang Beban Aplikasi dan Penyeimbang Beban Jaringan, objek ini harus berisi ARNtarget penyeimbang beban, nama kontainer (seperti yang muncul dalam ketentuan kontainer), dan port

223

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi jaringan

kontainer untuk mengakses dari penyeimbang beban. Ketika tugas dari layanan ini ditempatkan padainstans kontainer, instans kontainer dan port kombinasi terdaftar sebagai target dalam grup target yangditentukan di sini.targetGroupArn

Jenis: Tali

Diperlukan: Tidak

ARN lengkap dari grup target Elastic Load Balancing yang terkait dengan layanan.

ARN grup target hanya ditentukan saat menggunakan Application Load Balancer atauPenyeimbang Beban Jaringan. Jika Anda menggunakan Classic Load Balancer, ARN grup targetharus dihilangkan.

loadBalancerName

Jenis: Tali

Diperlukan: Tidak

Nama penyeimbang beban untuk dikaitkan dengan layanan.

Nama penyeimbang beban hanya ditentukan saat menggunakan Classic Load Balancer. JikaAnda menggunakan Application Load Balancer atau Penyeimbang Beban Jaringan, parameternama penyeimbang beban harus dihilangkan.

containerName

Jenis: Tali

Diperlukan: Tidak

Nama kontainer (seperti yang muncul dalam ketentuan kontainer) yang dikaitkan denganpenyeimbang beban.

containerPort

Jenis: Bulat

Diperlukan: Tidak

Port pada kontainer untuk dikaitkan dengan penyeimbang beban. Port ini harus sesuai dengancontainerPort dalam ketentuan tugas yang digunakan oleh tugas dalam layanan. Untuk tugasyang menggunakan tipe peluncuran EC2, instans kontainer harus mengizinkan lalu lintas masukpadahostPortpemetaan port.

role

Jenis: Tali

Diperlukan: Tidak

Nama pendek atau ARN lengkap dari peran IAM yang memungkinkan Amazon ECS untuk melakukanpanggilan ke penyeimbang beban Anda atas nama Anda. Parameter ini hanya diizinkan jika Andamenggunakan penyeimbang beban dengan grup target tunggal untuk layanan Anda, dan definisi tugasAnda tidak menggunakan ketentuanawsvpcmode jaringan. Jika Anda menentukan role parameter,Anda juga harus menentukan objek penyeimbang beban dengan loadBalancers parameter.

Jika peran yang Anda tentukan memiliki jalur selain /, maka Anda harus menentukan ARN peranpenuh (dianjurkan) atau awalan nama peran dengan jalur. Misalnya, jika peran dengan nama bar

224

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi jaringan

memiliki jalur dari /foo/ maka Anda akan menentukan /foo/bar sebagai nama peran. Untukinformasi selengkapnya, lihatNama dan Jalur yang RamahdiPanduan Pengguna IAM.

Important

Jika akun Anda telah membuat peran terkait layanan Amazon ECS, peran tersebut digunakansecara default untuk layanan Anda kecuali Anda menentukan peran di sini. Peran terkaitlayanan diperlukan jika definisi tugas Anda menggunakan awsvpc mode jaringan, dalam halini Anda tidak harus menentukan peran di sini. Untuk informasi selengkapnya, lihat Perantertaut layanan untuk Amazon ECS (p. 356).

serviceRegistries

Jenis: Array objek

Diperlukan: Tidak

Detail konfigurasi pencari layanan untuk layanan Anda. Untuk informasi selengkapnya, lihat PenemuanLayanan (p. 276).registryArn

Jenis: Tali

Diperlukan: Tidak

ARN registri layanan. Registri layanan yang didukung saat ini adalah AWS Cloud Map. Untukinformasi selengkapnya, lihatBekerja dengan LayanandiAWS Cloud MapPanduan Pengembang.

port

Jenis: Bulat

Diperlukan: Tidak

Nilai port yang digunakan jika layanan pencari layanan Anda menetapkan catatan SRV. Kolom iniwajib diisi jika mode jaringan awsvpc dan catatan SRV digunakan.

containerName

Jenis: Tali

Diperlukan: Tidak

Nilai nama kontainer, yang sudah ditentukan dalam ketentuan tugas, yang digunakan untuklayanan pencari layanan Anda. Jika ketentuan tugas yang menentukan tugas layanan Andamenggunakan mode jaringan bridge atau host, Anda harus menentukan kombinasicontainerName dan containerPort dari ketentuan tugas. Jika ketentuan tugas yangditentukan oleh tugas layanan Anda menggunakan mode jaringan awsvpc dan tipe catatan SRVDNS digunakan, Anda harus menentukan apakah akan menggunakan salah satu kombinasicontainerName dan containerPort atau nilai port, tetapi tidak keduanya.

containerPort

Jenis: Bulat

Diperlukan: Tidak

Nilai port, yang sudah ditentukan dalam ketentuan tugas, yang akan digunakan untuklayanan pencari layanan Anda. Jika ketentuan tugas yang ditentukan oleh tugas layananAnda menggunakan mode jaringan bridge atau host, Anda harus menentukan kombinasi

225

Amazon ECS Panduan Pengguna untuk AWS FargateToken klien

containerName dan containerPort dari ketentuan tugas. Jika ketentuan tugas yangditentukan oleh tugas layanan Anda menggunakan mode jaringan awsvpc dan tipe catatan SRVDNS digunakan, Anda harus menentukan apakah akan menggunakan salah satu kombinasicontainerName dan containerPort atau nilai port, tetapi tidak keduanya.

Token klienclientToken

Jenis: Tali

Diperlukan: Tidak

Pengidentifikasi unik dan peka huruf besar yang Anda sediakan untuk memastikan idempotensi daripermintaan tersebut. Diizinkan hingga 32 karakter ASCII.

Templat definisi layananBerikut ini menunjukkan representasi JSON dari definisi layanan Amazon ECS.

{ "cluster": "", "serviceName": "", "taskDefinition": "", "loadBalancers": [ { "targetGroupArn": "", "loadBalancerName": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "desiredCount": 0, "clientToken": "", "launchType": "FARGATE", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementStrategy": [ { "type": "spread", "field": ""

226

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan

} ], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "ENABLED" } }, "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "CODE_DEPLOY" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "SERVICE"}

Anda dapat membuat templat ketentuan layanan ini menggunakan perintah AWS CLI berikut.

aws ecs create-service --generate-cli-skeleton

Membuat layanan Amazon ECSSaat Anda membuat layanan Amazon ECS, Anda menentukan parameter dasar yang menentukanapa yang membentuk layanan dan bagaimana seharusnya berperilaku. Parameter ini membuat definisilayanan. Untuk informasi selengkapnya, lihat Parameter ketentuan layanan (p. 214).

Untuk layanan yang di-hosting di instans Fargate atau Amazon EC2, Anda dapat mengonfigurasipenyeimbang beban Elastic Load Balancing secara opsional untuk mendistribusikan lalu lintas di seluruhkontainer di layanan Anda. Untuk informasi selengkapnya, lihat Penyeimbangan beban layanan (p. 256).

Note

Saat menggunakan penyeimbang beban dengan layanan yang di-hosting di instans AmazonEC2, instans dapat menerima lalu lintas dari penyeimbang beban Anda. Anda dapat mengizinkanlalu lintas ke semua port pada instans Anda dari grup keamanan penyeimbang beban gunamemastikan bahwa lalu lintas dapat menjangkau kontainer apa pun yang menggunakan port yangditetapkan secara dinamis.

Membuat layanan menggunakan konsol Amazon ECSImportant

Amazon ECS telah menyediakan pengalaman konsol baru untuk membuat layanan. Untukinformasi selengkapnya, lihat Membuat layanan menggunakan konsol baru (p. 69).

227

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

Jika Anda membuat layanan Windows untuk jenis peluncuran Fargate, Anda harus menggunakankonsol klasik.

Konsol Amazon ECS menyediakan wizard layanan pembuatan yang memandu Anda untuk melewati setiaplangkah untuk membuat layanan. Gunakan halaman berikut untuk menjelaskan setiap langkah secara lebihdetail.

Topik• Langkah 1: Mengonfigurasi parameter layanan dasar (p. 228)• Langkah 2: Mengonfigurasi jaringan (p. 230)• Langkah 3: Mengonfigurasi layanan Anda untuk menggunakan penyeimbang beban (p. 231)• Langkah 4: Mengonfigurasi layanan Anda untuk menggunakan Service Discovery (p. 236)• Langkah 5: Mengkonfigurasi layanan Anda untuk menggunakan Service Auto Scaling (p. 236)• Langkah 6: Tinjau dan buat layanan Anda (p. 239)

Langkah 1: Mengonfigurasi parameter layanan dasarImportant

Amazon ECS telah menyediakan pengalaman konsol baru untuk membuat layanan. Untukinformasi selengkapnya, lihat Membuat layanan menggunakan konsol baru (p. 69).

Semua layanan memerlukan beberapa parameter konfigurasi dasar yang menentukan layanan, sepertipenentuan tugas yang akan digunakan, klaster mana yang harus dijalankan oleh layanan, berapa banyaktugas yang harus ditempatkan untuk layanan, dan seterusnya. Ini disebut penentuan layanan. Untukinformasi selengkapnya tentang parameter yang ditentukan dalam penentuan layanan, lihat Parameterketentuan layanan (p. 214).

Prosedur ini mencakup pembuatan layanan dengan parameter definisi layanan dasar yang diperlukan.Setelah mengonfigurasi parameter ini, Anda dapat membuat layanan atau melanjutkan ke proseduruntuk konfigurasi definisi layanan opsional, seperti mengonfigurasi layanan Anda untuk menggunakanpenyeimbang beban.

Note

Jika klaster Anda dikonfigurasi dengan strategi penyedia kapasitas default, Anda hanya akandapat membuat layanan menggunakan strategi penyedia kapasitas default saat menggunakankonsol. Demikian juga, jika tidak ada penyedia kapasitas default yang ditentukan, Anda hanyadapat menggunakan tipe peluncuran saat membuat layanan menggunakan konsol. Saat ini tidakmungkin untuk memiliki strategi campuran menggunakan penyedia kapasitas dan tipe peluncurandi dalam konsol.

Untuk mengonfigurasi parameter definisi layanan dasar

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di bilah navigasi, pilih Wilayah tempat klaster Anda berada.3. Di panel navigasi, pilih Penentuan tugas dan pilih penentuan tugas untuk membuat layanan Anda.4. Pada halaman Nama Penentuan Tugas, pilih revisi penentuan tugas untuk membuat layanan Anda.5. Tinjau penentuan tugas, dan pilih Tindakan, Buat layanan.6. Pada halaman Mengonfigurasi layanan, selesaikan langkah-langkah berikut.

a. Pilih salah satu strategi penyedia kapasitas atau tipe peluncuran.

• Untuk menggunakan Strategi penyedia kapasitas, pilih Mengalihkan ke strategi penyediakapasitas dan kemudian pilih apakah layanan Anda harus menggunakan strategi penyedia

228

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

kapasitas default yang ditentukan untuk klaster atau strategi penyedia kapasitas kustom.Penyedia kapasitas harus sudah dikaitkan dengan klaster agar dapat digunakan dalam strategipenyedia kapasitas kustom. Untuk informasi selengkapnya, lihat Penyedia kapasitas AmazonECS (p. 75).

• Untuk menggunakan Jenis peluncuran, pilih Mengalihkan ke tipe peluncuran dan pilihFARGATE, EC2, atau EKSTERNAL. Untuk informasi selengkapnya tentang tipe peluncuran,lihat Jenis peluncuran ECS (p. 123).

b. UntukSistem operasi platform, jika Anda memilih jenis peluncuran Fargate, maka pilih platformsistem operasi. Misalnya,LINUX.

c. UntukVersi platform, jika Anda memilih penyedia kapasitas Fargate atau tipe peluncuran Fargate,maka pilih versi platform yang akan digunakan.

Note

SaatTERBARUversi platform yang dipilih, kami memvalidasi sistem operasi yangditentukan untuk tugas, dan kemudian mengatur versi platform yang sesuai. Jika SistemOperasi diatur keWindows-Server-2019-FullatauWindows-Server-2019-Core,yang1.0.0platform yang digunakan. Jika sistem operasi Linux,1.4.0versi platform yangdigunakan.

d. Kluster: Pilih klaster untuk membuat layanan Anda.e. Nama layanan: Ketikkan nama unik untuk layanan Anda.f. Tipe layanan: Pilih strategi penjadwalan untuk layanan Anda. Untuk informasi selengkapnya, lihat

Konsep penjadwal layanan (p. 213).g. Jumlah tugas: Jika Anda memilihREPLICAjenis layanan, ketik jumlah tugas yang akan diluncurkan

dan dipertahankan di klaster Anda.

Note

Jika tipe peluncuran Anda adalah EC2, dan penentuan tugas menggunakan pemetaanport host statis pada instans kontainer Anda, maka Anda memerlukan setidaknyasatu instans kontainer dengan port tertentu yang tersedia di klaster Anda untuk setiaptugas di layanan Anda. Pembatasan ini tidak berlaku jika penentuan tugas Andamenggunakan pemetaan port host dinamis dengan mode jaringan bridge. Untukinformasi selengkapnya, lihat portMappings (p. 101).

h. Jika Anda menggunakan tipe deployment Pembaruan bergulir, maka isi parameter konfigurasideployment berikut. Untuk informasi selengkapnya tentang bagaimana parameter ini digunakan,lihat Konfigurasi deployment (p. 218).

• Persen sehat minimum: Tentukan batas bawah jumlah tugas layanan Anda yang harus tetapada diRUNNINGnegara selama deployment, sebagai persentase dari jumlah tugas yangdiinginkan oleh layanan (dibulatkan ke bilangan bulat terdekat).

• persen maksimum: Tentukan batas atas jumlah tugas layanan Anda yang diizinkandalamRUNNINGatauPENDINGnegara selama deployment, sebagai persentase dari jumlah tugasyang diinginkan oleh layanan (dibulatkan ke bilangan bulat terdekat).

7. Untuk Pemutus sirkuit deployment, pilih logika pemutus sirkuit deployment. Untuk informasiselengkapnya, lihat the section called “Menggunakan pemutus sirkuit deployment” (p. 244).

8. Pada halaman Deployment, selesaikan langkah-langkah berikut.

a. Untuk Jenis deployment, pilih apakah layanan Anda harus menggunakan deploymentpembaruan bergulir atau deployment biru/hijau menggunakan AWS CodeDeploy. Untuk informasiselengkapnya, lihat Tipe Deployment Amazon ECS (p. 243).

b. Jika Anda memilih tipe deployment biru/hijau, selesaikan langkah-langkah berikut:

i. Untuk Konfigurasi deployment, pilih konfigurasi deployment yang akan digunakan untuklayanan. Hal ini menentukan bagaimana lalu lintas dialihkan saat set tugas Anda diperbarui.Untuk informasi selengkapnya, lihatDeployment Biru/Hijau dengan CodeDeploy (p. 246)

229

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

ii. UntukPeran layanan untuk CodeDeploypilih peran layanan IAMAWS CodeDeploy. Untukinformasi selengkapnya, lihatAmazon ECS CodeDeploy IAM Role (p. 374)

9. DiKonfigurasi penandaan tugasbagian, selesaikan langkah-langkah berikut:

a. PilihAktifkan tag terkelola ECSjika Anda ingin Amazon ECS secara otomatis menandai tugasdalam layanan dengan tag terkelola Amazon ECS. Untuk informasi selengkapnya, lihatMenandaiSumber Daya Amazon ECS.

b. UntukPropagasi tag dari, pilih salah satu dari yang berikut:

• Jangan menyebarkan- Opsi ini tidak akan menyebarkan tag apa pun ke layanan.• Layanan— Opsi ini akan menyebarkan tag yang ditentukan pada layanan Anda ke setiap tugas

dalam layanan.• Definisi tugas— Opsi ini akan menyebarkan tag yang ditentukan dalam definisi tugas untuk

tugas dalam layanan.

Note

Jika Anda menentukan tag dengan yang samakeydiTagbagian, itu akan mengganti tagyang disebarkan baik dari layanan maupun definisi tugas.

10. DiTagbagian, tentukan kunci dan nilai untuk setiap tanda yang akan dikaitkan dengan tugas. Untukinformasi selengkapnya, lihatMenandai Sumber Daya Amazon ECS.

11. Pilih Langkah selanjutnya dan navigasikan ke Langkah 2: Mengonfigurasi jaringan (p. 230).

Langkah 2: Mengonfigurasi jaringanImportant

Amazon ECS telah menyediakan pengalaman konsol baru untuk membuat layanan. Untukinformasi selengkapnya, lihat Membuat layanan menggunakan konsol baru (p. 69).

Jika penentuan tugas layanan Anda menggunakan mode jaringan awsvpc, Anda harus mengonfigurasiVPC, subnet, dan grup keamanan untuk layanan Anda.

Jika penentuan tugas layanan Anda menggunakan mode jaringan bridge, host, atau none, makaAnda dapat lanjut ke langkah berikutnya, Langkah 3: Mengonfigurasi layanan Anda untuk menggunakanpenyeimbang beban (p. 231).

Untuk tugas yang dihosting di instans Amazon EC2,awsvpcMode jaringan tidak menyediakan ENI tugasdengan alamat IP publik. Untuk mengakses internet, tugas yang di-hosting di instans Amazon EC2 dapatdiluncurkan di subnet privat yang dikonfigurasi untuk menggunakan gateway NAT. Untuk informasi lebihlanjut, lihat NAT Gateway di Panduan Pengguna Amazon VPC. Akses jaringan masuk harus dari dalamVPC menggunakan alamat IP privat atau nama host DNS, atau dirutekan melalui penyeimbang beban daridalam VPC. Tugas yang diluncurkan dalam subnet publik tidak mempunyai akses internet.

Untuk mengonfigurasi pengaturan VPC dan grup keamanan untuk layanan Anda

1. Jika Anda belum melakukannya, ikuti prosedur konfigurasi layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

2. UntukVPC klaster, jika Anda meng-hosting tugas di instans Amazon EC2, pilih VPC tempat instansAnda berada. Jika Anda meng-hosting tugas di Fargate, pilih VPC yang harus digunakan olehAmazon ECS untuk tugas Fargate. Pastikan VPC yang Anda pilih tidak dikonfigurasi agar memerlukanpenyewaan perangkat keras khusus, karena hal tersebut tidak didukung oleh Fargate.

3. Untuk Subnet, pilih subnet yang tersedia untuk penempatan tugas layanan Anda.4. Untuk Grup keamanan, grup keamanan telah dibuat untuk tugas layanan Anda, yang mengizinkan lalu

lintas HTTP dari internet (0.0.0.0/0). Untuk mengedit nama atau aturan grup keamanan ini, atau

230

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

untuk memilih grup keamanan yang sudah ada, pilih Edit dan kemudian modifikasi pengaturan grupkeamanan Anda.

5. Untuk Tetapkan IP Publik Secara Otomatis, pilih apakah tugas Anda akan menerima alamat IP publik.Untuk tugas di Fargate, agar dapat menarik citra kontainer, maka tugas tersebut harus menggunakansubnet publik dan diberi alamat IP publik atau subnet privat yang memiliki rute ke internet ataugateway NAT yang dapat merutekan permintaan ke internet.

6. Jika Anda mengonfigurasi layanan untuk menggunakan penyeimbang beban atau jika Andamenggunakan tipe deployment biru/hijau, lanjutkan ke Langkah 3: Mengonfigurasi layanan Andauntuk menggunakan penyeimbang beban (p. 231). Jika Anda tidak mengonfigurasi layanan untukmenggunakan penyeimbang beban, maka Anda dapat memilih Tidak ada sebagai tipe penyeimbangbeban, dan beralih ke bagian selanjutnya, Langkah 5: Mengkonfigurasi layanan Anda untukmenggunakan Service Auto Scaling (p. 236).

Langkah 3: Mengonfigurasi layanan Anda untuk menggunakanpenyeimbang beban

Important

Amazon ECS telah menyediakan pengalaman konsol baru untuk membuat layanan. Untukinformasi selengkapnya, lihat Membuat layanan menggunakan konsol baru (p. 69).

Layanan dapat dikonfigurasi untuk menggunakan penyeimbang beban untuk mendistribusikan lalu lintasmasuk ke dalam tugas di layanan Anda. Jika layanan Anda menggunakan tipe deployment pembaruanbergulir, maka ini adalah opsional. Jika layanan Anda menggunakan tipe deployment biru/hijau, makalayanan tersebut harus menggunakan Application Load Balancer atau Network Load Balancer.

Jika Anda tidak mengonfigurasi layanan untuk menggunakan penyeimbang beban, maka Anda dapatmemilih Tidak ada sebagai tipe penyeimbang beban, dan beralih ke bagian selanjutnya, Langkah 4:Mengonfigurasi layanan Anda untuk menggunakan Service Discovery (p. 236).

Jika penyeimbang beban Elastic Load Balancing yang tersedia, maka Anda dapat melampirkannya kelayanan dengan prosedur berikut, atau Anda dapat mengonfigurasi penyeimbang beban baru. Untukinformasi selengkapnya, lihat Membuat penyeimbang beban (p. 259).

Important

Sebelum mengikuti prosedur ini, Anda harus membuat sumber daya Elastic Load Balancing.

Topik• Mengonfigurasi penyeimbang beban untuk tipe deployment pembaruan bergulir (p. 231)• Mengonfigurasi penyeimbang beban untuk tipe deployment biru/hijau (p. 233)

Mengonfigurasi penyeimbang beban untuk tipe deployment pembaruan bergulir

Jika tugas layanan Anda membutuhkan waktu untuk memulai dan merespons pemeriksaankondisi Elastic Load Balancing, Anda dapat menentukan masa tenggang pemeriksaan kondisihingga2,147,483,647detik. Selama waktu itu, penjadwal layanan mengabaikan status pemeriksaankondisi. Masa tenggang ini dapat mencegah penjadwal layanan menandai tugas dengan kondisi tidak baikdan menghentikannya sebelum tugas tersebut muncul. Ini hanya berlaku jika layanan Anda dikonfigurasiuntuk menggunakan penyeimbang beban.

Untuk mengonfigurasi masa tenggang pemeriksaan kondisi

1. Jika Anda belum melakukannya, ikuti prosedur konfigurasi layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

231

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

2. UntukMasa tenggang pemeriksaan kesehatan: Masukkan periode waktu, dalam detik, bahwapenjadwal Layanan Amazon ECS harus mengabaikan pemeriksaan kondisi target Elastic LoadBalancing yang tidak sehat setelah tugas pertama kali dimulai.

Untuk mengonfigurasi layanan Anda agar dapat menggunakan penyeimbang beban, maka Anda harusmemilih tipe penyeimbang beban yang akan digunakan dengan layanan Anda.

Untuk memilih tipe penyeimbang beban

1. Jika Anda belum melakukannya, ikuti prosedur pembuatan layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

2. Untuk Jenis penyeimbang beban, pilih tipe penyeimbang beban yang akan digunakan dengan layananAnda:

Application Load Balancer

Mengizinkan kontainer menggunakan pemetaan port host dinamis, yang mengizinkan Andauntuk menempatkan banyak tugas menggunakan port yang sama pada satu instans kontainer.Beberapa layanan dapat menggunakan port listener yang sama pada penyeimbang beban tunggaldengan perutean dan jalur berbasis aturan.

Network Load Balancer

Mengizinkan kontainer menggunakan pemetaan port host dinamis, yang mengizinkan Andauntuk menempatkan banyak tugas menggunakan port yang sama pada satu instans kontainer.Beberapa layanan dapat menggunakan port listener yang sama pada penyeimbang beban tunggaldengan perutean berbasis aturan.

Classic Load Balancer

Memerlukan pemetaan port host statis (hanya satu tugas yang diizinkan per instans kontainer);perutean dan jalur berbasis aturan tidak didukung.

Kami sarankan supaya Anda menggunakan Application Load Balancer untuk layanan Amazon ECSsehingga Anda dapat memanfaatkan fitur-fitur canggih yang tersedia bagi layanan tersebut.

3. UntukPilih peran IAM untuk layanan, pilihBuat peran baruuntuk membuat peran tertaut layananAmazon ECS atau memilih peran tertaut layanan yang sudah ada.

4. Untuk Nama ELB, pilih nama penyeimbang beban yang akan digunakan dengan layanan Anda. Hanyapenyeimbang beban yang sesuai dengan tipe penyeimbang beban yang Anda pilih sebelumnya yangterlihat di sini.

5. Langkah selanjutnya tergantung pada tipe penyeimbang beban untuk layanan Anda. Jika Andatelah memilih Application Load Balancer, ikuti langkah-langkah diMengonfigurasi ApplicationLoad Balancer (p. 232). Jika Anda telah memilih Network Load Balancer, ikuti langkah-langkahdiMengonfigurasi Network Load Balancer (p. 233).

Mengonfigurasi Application Load Balancer

1. Untuk Kontainer bagi keseimbangan beban, pilih kombinasi kontainer dan port dari penentuan tugastempat penyeimbang beban harus mendistribusikan lalu lintas, dan kemudian pilih Tambahkanpenyeimbang beban.

2. Untuk Port listener, pilih port dan protokol listener yang Anda buat di Membuat Application LoadBalancer (p. 260) (jika ada), atau pilih buat baru untuk membuat listener baru, dan kemudianmasukkan nomor port serta pilih protokol port untuk Protokol listener.

3. Untuk Nama grup target, pilih grup target yang Anda buat di Membuat Application LoadBalancer (p. 260) (jika ada), atau pilih buat baru untuk membuat grup target baru.

232

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukanuntuk jenis peluncuran Fargate), grup target Anda harus menggunakanipsebagai tipe target,bukaninstance. Hal ini karena tugas yang menggunakanawsvpcMode jaringan terkaitdengan elastic network interface, bukan instans Amazon EC2.

4. (Opsional) Jika Anda memilih untuk membuat grup target baru, selesaikan bidang berikut ini:

• Untuk Nama grup target, nama default disediakan untuk Anda.• Untuk Protokol grup target, masukkan protokol yang akan digunakan untuk merutekan lalu lintas ke

tugas Anda.• Untuk Pola jalur, jika listener Anda tidak memiliki aturan sama sekali, pola jalur default (/)

digunakan. Jika listener Anda sudah memiliki aturan default, maka Anda harus memasukkan polajalur yang cocok dengan lalu lintas yang ingin Anda kirimkan ke grup target layanan Anda. Misalnya,jika layanan Anda merupakan aplikasi web yang disebut web-app, dan Anda ingin supaya lalulintas yang cocok dengan http://my-elb-url/web-app untuk dirutekan ke layanan, makaAnda akan memasukkan /web-app* sebagai pola jalur Anda. Untuk informasi selengkapnya,lihatListenerRulesdiPanduan Pengguna untuk Penyeimbang Beban Aplikasi.

• Untuk Jalur pemeriksaan kondisi, masukkan jalur tempat penyeimbang beban harus mengirimkanping pemeriksaan kondisi.

5. Setelah Anda selesai mengonfigurasi Application Load Balancer, pilihLangkah selanjutnya.

Mengonfigurasi Network Load Balancer

1. Untuk Kontainer bagi keseimbangan beban, pilih kombinasi kontainer dan port dari penentuan tugastempat penyeimbang beban harus mendistribusikan lalu lintas, dan kemudian pilih Tambahkanpenyeimbang beban.

2. Untuk Port listener, pilih port dan protokol listener yang Anda buat di Membuat Network LoadBalancer (p. 263) (jika ada), atau pilih buat baru untuk membuat listener baru, dan kemudianmasukkan nomor port serta pilih protokol port untuk Protokol listener.

3. Untuk Nama grup target, pilih grup target yang Anda buat di Membuat Network LoadBalancer (p. 263) (jika ada), atau pilih buat baru untuk membuat grup target baru.

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukanuntuk jenis peluncuran Fargate), grup target Anda harus menggunakanipsebagai tipe target,bukaninstance. Hal ini karena tugas yang menggunakanawsvpcMode jaringan terkaitdengan elastic network interface, bukan instans Amazon EC2.

4. (Opsional) Jika Anda memilih untuk membuat grup target baru, selesaikan bidang berikut ini:

• Untuk Nama grup target, nama default disediakan untuk Anda.• Untuk Protokol grup target, masukkan protokol yang akan digunakan untuk merutekan lalu lintas ke

tugas Anda.• Untuk Jalur pemeriksaan kondisi, masukkan jalur tempat penyeimbang beban harus mengirimkan

ping pemeriksaan kondisi.5. Setelah Anda selesai mengonfigurasi Network Load Balancer, pilihLangkah Selanjutnya.

Mengonfigurasi penyeimbang beban untuk tipe deployment biru/hijau

Untuk mengonfigurasi layanan yang menggunakan tipe deployment biru/hijau untuk menggunakanpenyeimbang beban, maka Anda harus menggunakan Penyeimbang Beban Aplikasi atau Network LoadBalancer.

233

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

Untuk memilih tipe penyeimbang beban

1. Jika Anda belum melakukannya, ikuti prosedur pembuatan layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

2. Untuk Jenis penyeimbang beban, pilih tipe penyeimbang beban yang akan digunakan dengan layananAnda:

Application Load Balancer

Mengizinkan kontainer menggunakan pemetaan port host dinamis, yang mengizinkan Andauntuk menempatkan banyak tugas menggunakan port yang sama pada satu instans kontainer.Beberapa layanan dapat menggunakan port listener yang sama pada penyeimbang beban tunggaldengan perutean dan jalur berbasis aturan.

Network Load Balancer

Mengizinkan kontainer menggunakan pemetaan port host dinamis, yang mengizinkan Andauntuk menempatkan banyak tugas menggunakan port yang sama pada satu instans kontainer.Beberapa layanan dapat menggunakan port listener yang sama pada penyeimbang beban tunggaldengan perutean berbasis aturan.

Kami sarankan supaya Anda menggunakan Application Load Balancer untuk layanan Amazon ECSsehingga Anda dapat memanfaatkan fitur-fitur canggih yang tersedia bagi layanan tersebut.

3. Untuk Nama penyeimbang beban, pilih nama penyeimbang beban yang akan digunakan denganlayanan Anda. Hanya penyeimbang beban yang sesuai dengan tipe penyeimbang beban yang Andapilih sebelumnya yang terlihat di sini.

4. Langkah selanjutnya tergantung pada tipe penyeimbang beban untuk layanan Anda. Jika Andatelah memilih Application Load Balancer, ikuti langkah-langkah diMengonfigurasi ApplicationLoad Balancer (p. 232). Jika Anda telah memilih Network Load Balancer, ikuti langkah-langkahdiMengonfigurasi Network Load Balancer (p. 233).

Untuk mengonfigurasi Application Load Balancer untuk tipe deployment biru/hijau

1. Untuk Kontainer untuk keseimbangan beban, pilih kombinasi kontainer dan port dari penentuantugas saat penyeimbang beban harus mendistribusikan lalu lintas, dan kemudian pilih Tambahkanpenyeimbang beban.

2. Untuk Port listener produksi, pilih port dan protokol listener yang anda buat di Membuat ApplicationLoad Balancer (p. 260) (jika ada), atau pilih buat baru untuk membuat listener baru, dan kemudianmasukkan nomor port serta pilih protokol port untuk Protokol listener produksi.

3. (Opsional) PilihUji listenerjika Anda ingin mengonfigurasi port dan protokol listener di penyeimbangbeban untuk menguji pembaruan layanan Anda sebelum merutekan lalu lintas ke set tugas Anda yangbaru. Selesaikan langkah berikut:

• Untuk Port listener uji, pilih port dan protokol listener yang ingin Anda uji lalu lintasnya, atau pilihbuat baru untuk membuat listener baru, dan kemudian masukkan nomor port serta pilih protokolport untuk Protokol listener uji.

4. Untuk deployment biru/hijau, diperlukan dua grup target. Setiap grup target mengikat tugas terpisahyang ditetapkan dalam deployment. Selesaikan langkah-langkah berikut:

a. Untuk Nama grup target 1, pilih grup target yang Anda buat di Membuat Application LoadBalancer (p. 260) (jika ada), atau pilih buat baru untuk membuat grup target baru.

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukanuntuk jenis peluncuran Fargate), grup target Anda harus menggunakanipsebagai tipe

234

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

target, bukaninstance. Hal ini karena tugas yang menggunakanawsvpcMode jaringanterkait dengan elastic network interface, bukan instans Amazon EC2.

b. (Opsional) Jika Anda memilih untuk membuat grup target baru, selesaikan bidang berikut ini:

• Untuk Nama grup target, masukkan sebuah nama untuk grup target Anda.• Untuk Protokol grup target, masukkan protokol yang akan digunakan untuk merutekan lalu lintas

ke tugas Anda.• Untuk Pola jalur, jika listener Anda tidak memiliki aturan sama sekali, pola jalur default (/)

digunakan. Jika listener Anda sudah memiliki aturan default, maka Anda harus memasukkanpola jalur yang cocok dengan lalu lintas yang ingin Anda kirimkan ke grup target layanan Anda.Misalnya, jika layanan Anda merupakan aplikasi web yang disebut web-app, dan Anda inginsupaya lalu lintas yang cocok dengan http://my-elb-url/web-app untuk dirutekan kelayanan, maka Anda akan memasukkan /web-app* sebagai pola jalur Anda. Untuk informasiselengkapnya, lihatListenerRulesdiPanduan Pengguna untuk Penyeimbang Beban Aplikasi.

• Untuk Jalur pemeriksaan kondisi, masukkan jalur tempat penyeimbang beban harusmengirimkan ping pemeriksaan kondisi.

c. Ulangi langkah-langkah untuk grup target 2.d. Setelah Anda selesai mengonfigurasi Application Load Balancer, pilihLangkah selanjutnya.

Navigasikan ke Langkah 4: Mengonfigurasi layanan Anda untuk menggunakan ServiceDiscovery (p. 236).

Untuk mengonfigurasi Network Load Balancer untuk tipe deployment biru/hijau

1. Untuk Kontainer bagi keseimbangan beban, pilih kombinasi kontainer dan port dari penentuan tugastempat penyeimbang beban harus mendistribusikan lalu lintas, dan kemudian pilih Tambahkanpenyeimbang beban.

2. Untuk Port listener, pilih port dan protokol listener yang Anda buat di Membuat Network LoadBalancer (p. 263) (jika ada), atau pilih buat baru untuk membuat listener baru, dan kemudianmasukkan nomor port serta pilih protokol port untuk Protokol listener.

3. Untuk Nama grup target, pilih grup target yang Anda buat di Membuat Network LoadBalancer (p. 263) (jika ada), atau pilih buat baru untuk membuat grup target baru.

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukanuntuk jenis peluncuran Fargate), grup target Anda harus menggunakanipsebagai tipe target,bukaninstance. Hal ini karena tugas yang menggunakanawsvpcMode jaringan terkaitdengan elastic network interface, bukan instans Amazon EC2.

4. (Opsional) Jika Anda memilih untuk membuat grup target baru, selesaikan bidang berikut ini:

• Untuk Nama grup target, masukkan sebuah nama untuk grup target Anda.• Untuk Protokol grup target, masukkan protokol yang akan digunakan untuk merutekan lalu lintas ke

tugas Anda.• Untuk Jalur pemeriksaan kondisi, masukkan jalur tempat penyeimbang beban harus mengirimkan

ping pemeriksaan kondisi.5. Setelah Anda selesai mengonfigurasi Network Load Balancer, pilihLangkah Selanjutnya. Navigasikan

ke Langkah 4: Mengonfigurasi layanan Anda untuk menggunakan Service Discovery (p. 236).

235

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

Langkah 4: Mengonfigurasi layanan Anda untuk menggunakanService DiscoveryLayanan Amazon ECS Anda dapat secara opsional menggunakan integrasi penemuan layanan, yangmemungkinkan layanan Anda dapat ditemukan melalui DNS. Untuk informasi selengkapnya, lihatPenemuan Layanan (p. 276).

Jika Anda tidak mengonfigurasi layanan untuk menggunakan penemuan layanan, maka Anda dapatmelanjutkan ke bagian berikutnya, Langkah 5: Mengkonfigurasi layanan Anda untuk menggunakan ServiceAuto Scaling (p. 236).

Cara mengkonfigurasi penemuan layanan

1. Jika Anda belum melakukannya, ikuti prosedur konfigurasi layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

2. PadaMengkonfigurasi jaringanhalaman, pilihAktifkan integrasi penemuan layanan.3. UntukNamespace, pilih namespace Amazon Route 53 yang sudah ada, jika Anda memilikinya, jika

tidak, maka pilihmembuat namespace pribadi baru.4. Jika membuat namespace baru, maka untuk Nama namespace masukkan sebuah nama deskriptif

untuk namespace Anda. Ini adalah nama yang digunakan untuk zona hosting Amazon Route 53.5. UntukMengkonfigurasi layanan penemuan layanan, pilih untuk membuat layanan discovery service

baru atau pilih layanan yang sudah ada.6. Jika membuat layanan penemuan layanan baru, untukNama Penemuan Layananmasukkan nama

deskriptif untuk layanan discovery layanan Anda. Ini digunakan sebagai prefiks untuk catatan DNSyang akan dibuat.

7. PilihAktifkan propagasi kesehatan tugas ECSjika Anda ingin agar pemeriksaan kesehatan diaktifkanuntuk layanan discovery layanan Anda.

8. UntukTipe data DNS, pilih tipe data DNS untuk dibuat untuk layanan Anda. Penemuan layananAmazon ECS hanya mendukung catatan A dan SRV, tergantung pada mode jaringan yang ditetapkanoleh definisi tugas Anda. Untuk informasi lebih lanjut tentang tipe rekaman ini, lihatTipe Rekam DNSyang DidukungdiPanduan Pengembang Amazon Route 53.

• Jika penentuan tugas yang menentukan tugas layanan Anda menggunakan mode jaringan bridgeatau host, maka hanya catatan SRV tipe yang didukung. Pilih nama kontainer dan kombinasi portuntuk dikaitkan dengan catatan.

• Jika penentuan tugas yang menentukan tugas layanan Anda menggunakan mode jaringan awsvpc,maka pilih tipe catatan A atau SRV. Jika catatan DNS tipe A dipilih, lewati ke langkah selanjutnya.Jika tipe SRV dipilih, tentukan port tempat layanan dapat ditemukan atau nama kontainer dankombinasi port untuk dikaitkan dengan catatan.

9. Untuk TTL, masukkan waktu untuk tayang (TTL) cache catatan sumber daya, dalam hitungan detik.Nilai ini menentukan berapa lama kumpulan catatan di-cache oleh resolver DNS dan peramban web.

10. Pilih Langkah selanjutnya untuk melanjutkan dan navigasikan ke Langkah 5: Mengkonfigurasi layananAnda untuk menggunakan Service Auto Scaling (p. 236).

Langkah 5: Mengkonfigurasi layanan Anda untuk menggunakanService Auto ScalingLayanan Amazon ECS Anda dapat dikonfigurasi secara opsional untuk menyesuaikan jumlah tugas yangdiinginkan di layanan Amazon ECS Anda sebagai respons terhadap alarm CloudWatch.

Amazon ECS Service Auto Scaling mendukung jenis kebijakan penskalaan berikut:

236

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

• Kebijakan penskalaan pelacakan target (p. 269)(Direkomendasikan) —Meningkatkan atau mengurangijumlah tugas yang dijalankan oleh layanan Anda berdasarkan nilai target untuk metrik tertentu. Hal ituserupa dengan cara termostat mempertahankan suhu rumah Anda. Anda memilih suhu dan termostatmelakukan sisanya.

• Kebijakan penskalaan langkah (p. 274)—Meningkatkan atau mengurangi jumlah tugas yang dijalankanlayanan berdasarkan serangkaian penyesuaian penskalaan, yang disebut penyesuaian langkah, yangbervariasi berdasarkan ukuran pelanggaran alarm.

Untuk informasi selengkapnya, lihat Penskalaan otomatis layanan (p. 267).

Untuk mengkonfigurasi parameter Service Auto Scaling dasar

1. Jika Anda belum melakukannya, ikuti prosedur konfigurasi layanan dasar di Langkah 1:Mengonfigurasi parameter layanan dasar (p. 228).

2. Pada halaman Mengatur Penskalaan Otomatis, pilih Konfigurasikan Auto Scaling Layanan untukmenyesuaikan jumlah layanan yang diinginkan Anda.

3. UntukJumlah minimum tugas, masukkan batas bawah jumlah tugas yang akan digunakan oleh ServiceAuto Scaling. Jumlah yang diinginkan layanan Anda tidak secara otomatis disesuaikan di bawahjumlah ini.

4. Untuk Jumlah tugas yang diinginkan, bidang ini sudah diisi sebelumnya dengan nilai yang Andamasukkan sebelumnya. Anda dapat mengubah jumlah layanan yang diinginkan saat ini, tetapi nilai iniharus berada di antara jumlah tugas minimum dan maksimum yang ditentukan di halaman ini.

5. UntukJumlah maksimum tugas, masukkan batas atas jumlah tugas yang akan digunakan oleh ServiceAuto Scaling. Jumlah yang diinginkan layanan Anda tidak secara otomatis disesuaikan di atas jumlahini.

6. Untuk IAM role untuk Auto Scaling Layanan, pilih ecsAutoscaleRole. Jika peran ini tidak ada, pilihBuat peran baru agar konsol membuatkannya untuk Anda.

7. Prosedur berikut menyediakan langkah-langkah untuk membuat kebijakan pelacakan target ataupunpenskalaan langkah untuk layanan Anda. Pilih tipe kebijakan penskalaan yang Anda inginkan.

Langkah-langkah ini membantu Anda membuat kebijakan penskalaan pelacakan target dan CloudWatchyang dapat digunakan untuk memicu aktivitas penskalaan untuk layanan Anda.

Untuk mengonfigurasi kebijakan penskalaan pelacakan target untuk layanan Anda

1. Untuk Jenis kebijakan penskalaan, pilih Pelacakan target.2. Untuk Nama kebijakan, masukkan sebuah nama deskriptif untuk kebijakan Anda.3. Untuk Metrik layanan ECS, pilih metrik yang akan dilacak. Metrik berikut tersedia:

• ECSServiceAveragePemanfaatan— Pemanfaatan CPU rata-rata layanan.• ECSServiceAverageMemorypemanfaatan— Pemanfaatan memori rata-rata layanan.• AlbRequestCountpertarget—Jumlah permintaan yang diselesaikan per target dalam grup target

Application Load Balancer.4. Untuk Nilai target, masukkan nilai metrik yang harus dipertahankan oleh kebijakan. Sebagai contoh,

gunakan nilai target 1000 untuk ALBRequestCountPerTarget, atau nilai target 75 (%) untukECSServiceAverageCPUUtilization.

5. Untuk Periode pendinginan penskalaan keluar, masukkan jumlah waktu, dalam detik, setelah aktivitaspenskalaan keluar selesai sebelum aktivitas penskalaan keluar lainnya dapat dimulai. Selamaperiode pendinginan menskalakan keluar berlaku, kapasitas yang telah ditambahkan oleh aktivitasmenskalakan keluar sebelumnya yang memulai pendinginan, dihitung sebagai bagian dari kapasitasyang diinginkan untuk menskalakan keluar berikutnya. Tujuannya adalah untuk menskalakan keluarsecara terus menerus (tetapi tidak berlebihan).

237

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat layanan menggunakan konsol Amazon ECS

6. Untuk Periode pendinginan penskalaan kedalam, masukkan jumlah waktu, dalam detik, setelahaktivitas penskalaan kedalam selesai sebelum aktivitas penskalaan kedalam lainnya dapat dimulai.Periode pendinginan penskalaan kedalam digunakan untuk memblokir permintaan menskalakankedalam berikutnya hingga habis masa berlakunya. Tujuannya adalah untuk menskalakan kedalamsecara konservatif guna melindungi ketersediaan aplikasi Anda. Namun, jika alarm lain memicuaktivitas penskalaan naik selama periode jeda pakai setelah penskalaan turun, Service Auto Scalinglangsung melakukan penskalaan terhadap target yang dapat diskalakan.

7. (Opsional) Untuk menonaktifkan tindakan penskalaan untuk kebijakan ini, pilihNonaktifkan skala-in.Hal ini mengizinkan Anda untuk membuat kebijakan penskalaan kedalam terpisah untuk penskalaanberikutnya.

8. Pilih Langkah selanjutnya.

Langkah-langkah ini membantu Anda membuat kebijakan penskalaan langkah dan CloudWatch yangdapat digunakan untuk memicu aktivitas penskalaan untuk layanan Anda. Anda dapat membuatalarm Menskalakan keluar untuk meningkatkan jumlah yang diinginkan dari layanan Anda, dan alarmMenskalakan kedalam untuk menurunkan jumlah yang diinginkan dari layanan Anda.

Untuk mengonfigurasi kebijakan penskalaan langkah untuk layanan Anda

1. Untuk Jenis kebijakan penskalaan, pilih Penskalaan langkah.2. Untuk Nama kebijakan, masukkan sebuah nama deskriptif untuk kebijakan Anda.3. UntukJalankan kebijakan saat, pilih CloudWatch alarm untuk digunakan untuk meningkatkan atau

menurunkan skala layanan Anda.

Anda dapat menggunakan CloudWatch alarm yang telah Anda buat sebelumnya, atau Anda dapatmemilih untuk membuat alarm baru. ParameterBuat alarm barualur kerja memungkinkan Anda untukmembuat CloudWatch alarm yang didasarkan padaCPUUtilizationdanMemoryUtilizationdarilayanan yang Anda ciptakan. Untuk menggunakan metrik lainnya, Anda dapat membuat alarm diCloudWatch konsol dan kemudian kembali ke wizard ini untuk memilih alarm itu.

4. (Opsional) Jika Anda memilih untuk membuat alarm baru, selesaikan langkah berikut.

a. Untuk Nama alarm, masukkan sebuah nama deskriptif untuk alarm Anda. Misalnya, jika alarmAnda akan terpicu ketika pemanfaatan CPU layanan melebihi 75%, Anda dapat memanggilservice_name-cpu-gt-75 alarm.

b. Untuk Metrik layanan ECS, pilih metrik layanan yang akan digunakan untuk alarm Anda. Untukinformasi selengkapnya, lihat Penskalaan otomatis layanan (p. 267).

c. Untuk Ambang batas, masukkan informasi berikut untuk mengonfigurasi alarm:

• Pilih CloudWatch statistik untuk alarm Anda (nilai defaultRata-ratabekerja dalam banyak kasus).Untuk informasi selengkapnya, lihatStatistikdiAmazon CloudWatch Panduan Pengguna.

• Pilih operator pembanding untuk alarm Anda dan masukkan nilai yang akan diperiksa olehoperator pembanding (misalnya, > dan 75).

• Masukkan jumlah periode berturut-turut sebelum alarm dipicu dan panjang periode. Misalnya,dua periode 5 menit berturut-turut akan memakan waktu 10 menit sebelum alarm dipicu. Karenatugas Amazon ECS Anda dapat meningkatkan dan menurunkan skala dengan cepat, makapertimbangkan untuk menggunakan jumlah periode berturut-turut yang rendah dan durasiperiode yang singkat untuk bereaksi terhadap alarm sesegera mungkin.

d. Pilih Simpan.5. Untuk Tindakan penskalaan, masukkan informasi berikut untuk mengonfigurasi bagaimana layanan

merespons alarm:

• Pilih apakah akan menambah, mengurangi, atau menetapkan jumlah tertentu yang diinginkan untuklayanan Anda.

238

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui layanan

• Jika Anda memilih untuk menambah atau mengurangi tugas, masukkan jumlah tugas (ataupersentase tugas yang sudah ada) untuk menambah atau mengurangi saat tindakan penskalaandipicu. Jika Anda memilih untuk mengatur jumlah yang diinginkan, masukkan jumlah yang diinginkanyang harus diatur oleh layanan Anda saat tindakan penskalaan terpicu.

• (Opsional) Jika Anda memilih untuk menambah atau mengurangi tugas, pilih apakah nilaisebelumnya digunakan sebagai bilangan bulat atau nilai persentase dari jumlah yang diinginkan dansudah ada sebelumnya.

• Masukkan batas bawah penyesuaian penskalaan langkah Anda. Secara default, untuk tindakanpenskalaan pertama Anda, nilai ini merupakan jumlah metrik saat alarm Anda terpicu. Misalnya,tindakan penskalaan berikut menambah 100% dari jumlah yang diinginkan yang sudah adasebelumnya saat pemanfaatan CPU lebih besar dari 75%.

6. (Opsional) Anda dapat mengulangi Step 5 (p. 238) untuk mengonfigurasi beberapa tindakanpenskalaan untuk alarm tunggal (misalnya, untuk menambah satu tugas jika pemanfaatan CPU antara75-85%, dan untuk menambah dua tugas jika pemanfaatan CPU lebih besar dari 85%).

7. (Opsional) Jika Anda memilih untuk menambah atau mengurangi persentase dari jumlah yangdiinginkan dan sudah ada sebelumnya, maka masukkan nilai kenaikan minimum untuk Menambahkantugas dengan penambahan N tugas.

8. Untuk Periode pendinginan, masukkan jumlah detik di antara tindakan penskalaan.9. Ulangi Step 1 (p. 238) melalui Step 8 (p. 239) untuk kebijakan Menskalakan kedalam dan pilih

Simpan.10. Pilih Langkah selanjutnya untuk melanjutkan dan navigasikan ke Langkah 6: Tinjau dan buat layanan

Anda (p. 239).

Langkah 6: Tinjau dan buat layanan AndaSetelah Anda mengonfigurasi parameter definisi layanan dasar dan mengonfigurasi jaringan layanan,penyeimbang beban, penemuan layanan, dan penskalaan otomatis secara opsional, maka Anda dapatmeninjau konfigurasi Anda. Lalu, pilih Buat Layanan untuk menyelesaikan pembuatan layanan Anda.

Note

Setelah Anda membuat layanan, ARN grup target atau nama penyeimbang beban, namakontainer, dan port kontainer yang ditentukan dalam ketentuan layanan bersifat tetap. Anda dapatmenggunakanAWS CLIatau SDK untuk memodifikasi konfigurasi load balancer. Untuk informasitentang cara mengubah konfigurasi, lihatUpdateServicediReferensi API Amazon Elastic Container.Anda tidak dapat menambahkan, menghapus, atau mengubah konfigurasi penyeimbang bebandari layanan yang sudah ada. Jika Anda memperbarui ketentuan tugas untuk layanan, namakontainer dan port kontainer yang ditentukan ketika layanan dibuat harus tetap dalam ketentuantugas.

Memperbarui layananAnda dapat memperbarui layanan yang ada untuk mengubah beberapa parameter konfigurasi layanan,seperti jumlah tugas yang dipelihara oleh layanan, penentuan tugas yang digunakan oleh tugas, atau jikatugas Anda menggunakan tipe peluncuran Fargate, Anda dapat mengubah versi platform yang digunakanoleh layanan Anda. Layanan yang menggunakan versi platform Linux tidak dapat diperbarui untukmenggunakan versi platform Windows dan sebaliknya. Jika Anda memiliki aplikasi yang membutuhkan

239

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui layanan

kapasitas lebih besar, maka Anda dapat menaikkan skala layanan. Jika Anda memiliki kapasitas yang tidakdigunakan untuk menurunkan skala, maka Anda dapat mengurangi jumlah tugas yang diinginkan dalamlayanan dan mengosongkan sumber daya.

Jika Anda ingin menggunakan citra kontainer yang diperbarui untuk tugas Anda, Anda dapat membuatrevisi penentuan tugas baru dengan citra tersebut dan men-deploy-nya ke layanan Anda denganmenggunakan opsi memaksa deployment baru di dalam konsol.

Penjadwal layanan menggunakan parameter persentase minimum dan maksimum yang sehat (dalamkonfigurasi deployment untuk layanan) untuk menentukan strategi deployment.

Jika layanan menggunakan tipe deployment (ECS) pembaruan bergulir, persentase minimum yang sehatmewakili batas bawah jumlah tugas dalam layanan yang harus tetap berada dalam status RUNNINGselama deployment, sebagai persentase jumlah tugas yang diinginkan (dibulatkan ke atas ke bilanganbulat terdekat). Parameter ini juga berlaku saat setiap instance kontainer berada diDRAININGmenyatakanjika layanan berisi tugas menggunakan jenis peluncuran EC2. Parameter ini memungkinkan Anda untukmen-deploy tanpa menggunakan kapasitas klaster tambahan. Sebagai contoh, jika layanan Anda memilikijumlah empat tugas yang diinginkan dan persentase minimum yang sehat adalah 50%, maka penjadwaldapat menghentikan dua tugas yang sudah ada untuk membebaskan kapasitas klaster sebelum memulaidua tugas baru. Tugas untuk layanan yang tidak menggunakan penyeimbang beban dianggap sehat jikaberada dalam status RUNNING. Tugas untuk layanan yang menggunakan penyeimbang beban dianggapsehat jika berada dalam status RUNNING dan dilaporkan sehat oleh penyeimbang beban. Nilai default untukpersentase minimum yang sehat adalah 100%.

Jika layanan menggunakan tipe deployment (ECS) pembaruan bergulir, maka parameter persentasemaksimum mewakili batas atas pada jumlah tugas dalam layanan yang diperbolehkan dan berada dalamstatus RUNNING atau PENDING selama deployment, sebagai persentase dari jumlah tugas yang diinginkan(dibulatkan ke bawah ke bilangan bulat terdekat). Parameter ini juga berlaku saat setiap instance kontainerberada diDRAININGmenyatakan jika layanan berisi tugas menggunakan jenis peluncuran EC2. Parametertersebut memungkinkan Anda untuk menentukan ukuran batch deployment. Misalnya, jika layananAnda memiliki jumlah empat tugas yang diinginkan dan nilai persentase maksimum adalah 200%, makapenjadwal boleh memulai empat tugas baru sebelum menghentikan empat tugas yang lama. Syaratnya,sumber daya klaster yang diperlukan untuk melakukan hal itu tersedia. Nilai default untuk persentasemaksimum adalah 200%.

Jika layanan menggunakan biru/hijau (CODE_DEPLOY) jenis penyebaran dan tugas yang menggunakanjenis peluncuran EC2,persen sehat minimumdanpersen maksimumnilai diatur ke nilai default. Itu semuahanya digunakan untuk menentukan batas bawah dan atas pada jumlah tugas dalam layanan yang tersisadan berada dalam status RUNNING saat instans kontainer berada dalam status DRAINING. Jika tugasdalam layanan menggunakan tipe peluncuran Fargate, nilai persentase kondisi baik dan persentasemaksimum tidak digunakan. Saat ini mereka terlihat saat menjelaskan layanan Anda.

Saat penjadwal layanan mengganti tugas selama pembaruan, maka layanan terlebih dahulu menghapustugas dari penyeimbang beban (jika digunakan) dan menunggu koneksi dialihkan. Kemudian, dockerstop yang setara dikeluarkan untuk kontainer yang berjalan dalam tugas. Hal ini menyebabkan sinyalSIGTERM dan waktu habis dalam 30 detik, setelah SIGKILL dikirim dan kontainer dihentikan secarapaksa. Jika kontainer menangani sinyal SIGTERM dengan baik dan keluar dalam waktu 30 detik dari saatmenerimanya, maka sinyal SIGKILL tidak dikirim. Penjadwal layanan memulai dan menghentikan tugasseperti yang ditentukan melalui pengaturan persentase minimum dan maksimum yang sehat.

Important

Jika Anda mengubah port yang digunakan oleh kontainer dalam penentuan tugas, maka Andamungkin perlu memperbarui grup keamanan untuk instans kontainer agar berfungsi dengan portyang diperbarui.Jika layanan Anda menggunakan penyeimbang beban, maka konfigurasi penyeimbang bebanyang ditentukan untuk layanan Anda pada saat dibuat tidak dapat diubah. Jika Anda memperbaruiketentuan tugas untuk layanan, nama kontainer dan port kontainer yang ditentukan ketika layanandibuat harus tetap dalam ketentuan tugas.

240

Amazon ECS Panduan Pengguna untuk AWS FargateMemperbarui layanan menggunakan konsol klasik

Untuk mengubah nama penyeimbang beban, nama kontainer, atau port kontainer yang terkaitdengan konfigurasi penyeimbang beban layanan, Anda harus membuat layanan baru.Amazon ECS tidak secara otomatis memperbarui grup keamanan yang terkait denganpenyeimbang beban Elastic Load Balancing atau instans kontainer Amazon ECS.

Topik• Memperbarui layanan menggunakan konsol klasik (p. 241)

Memperbarui layanan menggunakan konsol klasikImportant

Amazon ECS telah menyediakan pengalaman konsol baru untuk memperbarui layanan. Untukinformasi selengkapnya, lihat Memperbarui layanan menggunakan konsol baru (p. 71).

Untuk memperbarui layanan yang sedang berjalan

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di bilah navigasi, pilih Wilayah tempat klaster Anda berada.3. Di panel navigasi, pilih Klaster.4. Pada halaman Klaster, pilih nama klaster tempat layanan Anda berada.5. Pada Klaster: nama, pilih Layanan.6. Centang kotak di sebelah kiri layanan untuk memperbarui dan pilih Perbarui.7. Pada halaman Konfigurasi layanan, informasi layanan Anda sudah terisi sebelumnya. Ubah penentuan

tugas, strategi penyedia kapasitas, versi platform, konfigurasi deployment, atau jumlah tugas yangdiinginkan (atau kombinasi itu semua). Agar layanan Anda memulai deployment baru, yang akanmenghentikan dan meluncurkan kembali semua tugas menggunakan konfigurasi baru, pilih Paksadeployment baru. Pilih Langkah selanjutnya setelah selesai mengubah konfigurasi layanan.

Note

Layanan yang menggunakan penyedia kapasitas grup Auto Scaling tidak dapat diperbaruiuntuk menggunakan penyedia kapasitas Fargate dan sebaliknya.Layanan yang menggunakan versi platform Linux tidak dapat diperbarui untuk menggunakanversi platform Windows dan sebaliknya.

8. Pada halaman Konfigurasi deployment, jika layanan Anda menggunakan tipe deployment biru/hijau,maka komponen deployment layanan Anda sudah terisi sebelumnya. Konfirmasikan pengaturanberikut.

a. UntukNama aplikasi, pilih aplikasi CodeDeploy tempat layanan Anda menjadi bagiannya.b. UntukNama grup deployment, pilih grup deployment Codedeploy tempat layanan Anda menjadi

bagiannya.c. Pilih hook kejadian siklus hidup deployment dan fungsi Lambda terkait untuk mengeksekusi

sebagai bagian dari revisi deployment layanan baru. Kait siklus hidup yang tersedia adalah:

• BeforeInstall— Gunakan hook kejadian siklus hidup deployment ini untuk memanggil fungsiLambda sebelum set tugas pengganti dibuat. Hasil dari fungsi Lambda pada kejadian siklushidup ini tidak memicu rollback.

• AfterInstall— Gunakan hook kejadian siklus hidup deployment ini untuk memanggil fungsiLambda setelah set tugas pengganti dibuat. Hasil dari fungsi Lambda pada kejadian siklushidup ini dapat memicu rollback.

• BeforeAllowTraffic— Gunakan hook kejadian siklus hidup deployment ini untuk memanggilfungsi Lambda sebelum lalu lintas produksi dirutekan ulang ke set tugas pengganti. Hasil darifungsi Lambda pada kejadian siklus hidup ini dapat memicu rollback.

241

Amazon ECS Panduan Pengguna untuk AWS FargateMenghapus layanan

• AfterAllowTraffic— Gunakan hook kejadian siklus hidup deployment ini untuk memanggil fungsiLambda setelah lalu lintas produksi dirutekan ulang ke set tugas pengganti. Hasil dari fungsiLambda pada kejadian siklus hidup ini dapat memicu rollback.

Untuk informasi selengkapnya tentang kait siklus hidup, lihatAppSpec 'kait' BagiandiAWSCodeDeployPanduan Pengguna.

9. Pilih Langkah Selanjutnya.10. Pada halaman Konfigurasi jaringan, informasi jaringan Anda telah terisi sebelumnya. Di bagian

Penyeimbangan beban, jika layanan Anda menggunakan tipe deployment biru/hijau, maka pilih listeneruntuk dikaitkan dengan grup target. Ubah masa tenggang pemeriksaan kondisi (jika diinginkan) danpilih Langkah selanjutnya.

11. (Opsional) Anda dapat menggunakan Service Auto Scaling untuk meningkatkan dan menurunkanskala layanan secara otomatis sebagai respons terhadap CloudWatch alarm.

a. Di bawahKonfigurasi opsional, pilihMengonfigurasi Auto Scaling Layanan.b. Lanjutkan ke Langkah 5: Mengkonfigurasi layanan Anda untuk menggunakan Service Auto

Scaling (p. 236).c. Selesaikan langkah-langkah di bagian tersebut dan kemudian kembali.

12. Pilih Perbarui Layanan untuk menyelesaikan dan memperbarui layanan Anda.

Menghapus layananAnda dapat menghapus layanan Amazon ECS menggunakan konsol. Sebelum penghapusan, skalalayanan diturunkan secara otomatis ke nol. Jika Anda memiliki penyeimbang beban atau sumberdaya penemuan layanan yang terkait dengan layanan, maka sumber daya tersebut tidak terpengaruholeh penghapusan layanan. Untuk menghapus sumber daya Elastic Load Balancing, lihat salahsatu topik berikut, tergantung pada tipe penyeimbang beban Anda: Menghapus Application LoadBalanceratauMenghapus Penyeimbang Beban Jaringan. Untuk menghapus sumber daya penemuanlayanan Anda, ikuti prosedur di bawah ini.

Classic console

Gunakan prosedur berikut untuk menghapus layanan Amazon ECS.

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di bilah navigasi, pilih Wilayah tempat klaster Anda berada.3. Di panel navigasi, pilih Klaster dan pilih nama klaster tempat layanan Anda berada.4. Pada halaman Klaster : nama, pilih Layanan.5. Centang kotak di sebelah kiri layanan untuk memperbarui, dan pilih Hapus.6. Konfirmasikan penghapusan layanan dengan memasukkan frasa teks, dan pilih Hapus.

AWS CLI

Untuk menghapus sumber daya penemuan layanan yang tersisa, Anda dapat menggunakan AWS CLIuntuk menghapus layanan penemuan layanan dan namespace penemuan layanan.

1. Pastikan bahwa versi terbaru dari AWS CLI diinstal dan dikonfigurasi. Untuk informasiselengkapnya tentang penginstalan atau pemutakhiran AWS CLI Anda, lihat Menginstal AWSCommand Line Interface.

2. Ambil kembali ID layanan penemuan layanan untuk dihapus.

242

Amazon ECS Panduan Pengguna untuk AWS FargateJenis deployment

aws servicediscovery list-services --region <region_name>

Note

Jika layanan discovery tidak dikembalikan, lanjutkan ke langkah 4.3. Dengan menggunakan layanan discovery ID dari output sebelumnya, hapus layanan.

aws servicediscovery delete-service --id <service_discovery_service_id> --region <region_name>

4. Ambil ID namespace discovery layanan untuk dihapus.

aws servicediscovery list-namespaces --region <region_name>

5. Dengan menggunakan ID namespace layanan dari output sebelumnya, hapus namespace.

aws servicediscovery delete-namespace --id <service_discovery_namespace_id> --region <region_name>

Tipe Deployment Amazon ECSJenis deployment Amazon ECS menentukan strategi deployment yang digunakan oleh layanan Anda. Adatiga tipe deployment: pembaruan bergulir, biru/hijau, dan eksternal.

Anda dapat melihat informasi tentang jenis penyebaran layanan pada halaman rincianlayanan, atau dengan menggunakandescribe-servicesAPI Untuk informasi selengkapnya,lihatDescribeServicesdiReferensi Amazon Elastic.

Topik• Pembaruan bergulir (p. 243)• Deployment Biru/Hijau dengan CodeDeploy (p. 246)• Deployment (p. 250)

Pembaruan bergulirSaatPembaruan bergulir(ECSJenis deployment digunakan untuk layanan Anda, saat deployment barudimulai, penjadwal layanan Amazon ECS akan menggantikan tugas yang sedang berjalan dengantugas baru. Jumlah tugas yang ditambahkan atau dihapus oleh Amazon ECS dari layanan selamapembaruan bergulir dikendalikan oleh konfigurasi deployment. Konfigurasi deployment terdiri dari nilai-nilai minimumHealthyPercent dan maximumPercent yang ditentukan saat layanan dibuat, namun jugadapat diperbarui di layanan yang sudah ada.

minimumHealthyPercent mewakili batas bawah pada jumlah tugas yang seharusnya berjalan untuklayanan selama deployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlahtugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke atas. Sebagai contoh, jika persentaseminimum yang sehat adalah 50 dan jumlah tugas yang diinginkan adalah empat, maka penjadwal dapatmenghentikan dua tugas yang sudah ada sebelum memulai dua tugas baru. Demikian juga, jika persentaseminimum yang sehat adalah 75% dan jumlah tugas yang diinginkan adalah dua, maka penjadwal tidakdapat menghentikan tugas apa pun karena nilai yang dihasilkan juga dua.

maximumPercent mewakili batas atas jumlah tugas yang harus berjalan untuk layanan selamadeployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlah tugas yang

243

Amazon ECS Panduan Pengguna untuk AWS FargatePembaruan bergulir

diinginkan untuk layanan. Nilai ini dibulatkan ke bawah. Misalnya jika persen maksimum200dan jumlahtugas yang diinginkan adalah empat maka penjadwal dapat memulai empat tugas baru sebelummenghentikan empat tugas yang sudah ada. Demikian juga, jika persentase maksimum adalah 125 danjumlah tugas yang diinginkan adalah tiga, maka penjadwal tidak dapat memulai tugas apa pun karena nilaiyang dihasilkan juga tiga.

Important

Saat pengaturan persentase minimum atau maksimum yang sehat, Anda harus memastikanbahwa penjadwal dapat menghentikan atau memulai setidaknya satu tugas saat deploymentdipicu. Jika layanan Anda memiliki deployment yang macet akibat konfigurasi deployment yangtidak valid, maka pesan kejadian layanan akan dikirimkan. Untuk informasi selengkapnya, lihatLayanan (nama layanan) tidak dapat menghentikan atau memulai tugas selama deploymentdikarenakan konfigurasi layanan deployment. Perbarui minimumHealthyPercent atau nilaimaximumPercent dan coba lagi. (p. 465).

Saat deployment layanan baru dimulai atau saat deployment selesai, Amazon ECS mengirimkan kejadianperubahan status deployment layanan ke EventBridge. Hal ini menyediakan cara terprogram untukmemantau status deployment layanan Anda. Untuk informasi selengkapnya, lihat Peristiwa perubahanstatus deployment layanan (p. 311).

Untuk membuat layanan Amazon ECS baru yang menggunakan tipe deployment pemutakhiran bergulir,lihatMembuat layanan Amazon ECS (p. 227).

Menggunakan pemutus sirkuit deploymentSecara default, saat layanan yang menggunakan tipe deployment pembaruan bergulir memulai deploymentbaru, penjadwal layanan akan meluncurkan tugas baru hingga jumlah yang diinginkan tercapai. Anda dapatmenggunakan logika pemutus sirkuit deployment secara opsional pada layanan, yang akan menyebabkandeployment ke status gagal jika tidak dapat mencapai kondisi stabil. Logika pemutus sirkuit deploymentjuga dapat memicu Amazon ECS untuk memutar kembali ke deployment terakhir yang diselesaikan setelahkegagalan deployment.

Berikutcreate-service AWS CLIcontoh menunjukkan cara membuat layanan Linux saat pemutus sirkuitdeployment diaktifkan dengan rollback.

aws ecs create-service \ --service-name MyService \ --deployment-controller type=ECS \ --desired-count 2 \ --deployment-configuration "deploymentCircuitBreaker={enable=true,rollback=true}" \ --task-definition sample-fargate:1 \ --launch-type FARGATE \ --platform-os LINUX \ --platform-version 1.4.0 \ --network-configuration "awsvpcConfiguration={subnets=[subnet-12344321],securityGroups=[sg-12344321],assignPublicIp=ENABLED}"

Berikut ini adalah hal yang harus dipertimbangkan saat mengaktifkan logika pemutus sirkuit deploymentpada layanan.

• Pemutus sirkuit deployment hanya didukung untuk layanan Amazon ECS yang menggunakanpembaruan bergulir (ECS) deployment controller dan jangan gunakan Classic Load Balancer.

• Jika deployment layanan memiliki setidaknya satu tugas yang berhasil dijalankan, maka logika pemutussirkuit tidak akan terpicu, terlepas dari deployment yang memiliki tugas gagal sebelumnya atau di masamendatang.

• Ada dua parameter baru yang ditambahkan ke respons tindakan API DescribeServices yangmenyediakan wawasan tentang status deployment, rolloutState dan rolloutStateReason. Saatdeployment baru dimulai, status peluncuran dimulai dalam status IN_PROGRESS. Saat layanan mencapai

244

Amazon ECS Panduan Pengguna untuk AWS FargatePembaruan bergulir

kondisi stabil, status peluncuran bertransisi ke COMPLETED. Jika layanan gagal mencapai kondisi stabildan pemutus sirkuit diaktifkan, maka deployment akan beralih ke status FAILED. Sebuah deploymentdalam status FAILED tidak akan meluncurkan tugas baru apa pun.

• Selain kejadian perubahan status deployment layanan yang dikirim oleh Amazon ECS untuk deploymentyang telah dimulai dan telah selesai, Amazon ECS juga mengirimkan kejadian saat deployment denganpemutus sirkuit yang diaktifkan gagal. Kejadian ini menyediakan detail tentang mengapa deploymentgagal atau jika deployment dimulai karena rollback. Untuk informasi selengkapnya, lihat Peristiwaperubahan status deployment layanan (p. 311).

• Jika deployment baru dimulai karena deployment yang sebelumnya gagal dan rollback diaktifkan, makabidang reason kejadian perubahan status deployment layanan akan menunjukkan bahwa deploymentdimulai karena rollback.

Ambang batas kegagalan

Pemutus sirkuit penyebaran menghitung nilai ambang batas, dan kemudian menggunakan nilai untukmenentukan kapan harus memindahkan penyebaran keFAILEDstatus.

Pemutus sirkuit penyebaran memiliki ambang minimum 10 dan ambang maksimum 200. danmenggunakan nilai dalam rumus berikut untuk menentukan kegagalan penyebaran.

Minimum threshold <= 0.5 * desired task count => maximum threshold

Bila hasil perhitungan kurang dari minimal 10, ambang kegagalan diatur ke 10. Bila hasil perhitungan lebihbesar dari maksimum 200, ambang kegagalan diatur ke 200.

Note

Anda tidak dapat mengubah salah satu nilai ambang batas.

Ada dua tahap untuk pemeriksaan status penyebaran.

1. Pemutus sirkuit penyebaran memonitor tugas-tugas yang merupakan bagian dari penyebaran danmemeriksa tugas-tugas yang ada diRUNNINGstatus. Scheduler mengabaikan kriteria kegagalan ketikatugas dalam penyebaran saat ini berada diRUNNINGnegara dan hasil ke tahap berikutnya. Ketikatugas gagal untuk mencapai dalamRUNNINGnegara, pemutus sirkuit penyebaran meningkatkan jumlahkegagalan per satu. Ketika jumlah kegagalan sama dengan ambang batas, penyebaran ditandaisebagaiFAILED.

2. Tahap ini dimasukkan ketika ada salah satu tugas lagi dalamRUNNINGstatus. Pemutus sirkuitpenyebaran melakukan pemeriksaan kesehatan pada sumber daya berikut untuk tugas-tugas dalampenyebaran saat ini:• Penyeimbang beban Elastic Load Balancing• AWS Cloud Map layanan• Pemeriksaan kontainer Amazon ECS

Ketika pemeriksaan kesehatan gagal untuk tugas, pemutus sirkuit penyebaran meningkatkan jumlahkegagalan per satu. Ketika jumlah kegagalan sama dengan ambang batas, penyebaran ditandaisebagaiFAILED.

Tabel berikut menunjukkan beberapa contoh.

Jumlah tugas yang diinginkan Perhitungan Ambang

110 <= 0.5 * 1 => 200

10 (nilai yang dihitung kurangdari minimum)

245

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment Biru/Hijau dengan CodeDeploy

Jumlah tugas yang diinginkan Perhitungan Ambang

2510 <= 0.5 * 25 => 200

13 (nilainya dibulatkan ke atas)

40010 <= 0.5 * 400 => 200

200

80010 <= 0.5 * 800 => 200

200 (nilai yang dihitung lebihbesar dari maksimum)

Untuk contoh tambahan tentang menggunakan opsi rollback, lihatMengumumkan pemutus sirkuit AmazonECS.

Deployment Biru/Hijau dengan CodeDeployParameterbiru/hijauTipe deployment menggunakan model deployment biru/hijau yang dikendalikan olehCodeDeploy. Jenis deployment ini memungkinkan Anda untuk memverifikasi deployment baru layanansebelum mengirimkan lalu lintas produksi ke deployment baru tersebut. Untuk informasi selengkapnya,lihatApa itu CodeDeploy?diAWS CodeDeployPanduan Pengguna.

Ada tiga cara lalu lintas dapat beralih selama deployment biru/hijau:

• Kenari— Lalu lintas dialihkan dalam dua tahap peningkatan. Anda dapat memilih dari opsi Canary yangtelah ditentukan sebelumnya yang menentukan persentase lalu lintas yang dialihkan ke set tugas yangdiperbarui pada kenaikan pertama dan interval, dalam menit, sebelum lalu lintas yang tersisa dialihkanpada kenaikan kedua.

• linier— Trac digeser dalam peningkatan yang sama dengan jumlah menit yang sama di antara setiapkenaikan. Anda dapat memilih dari opsi linier yang telah ditentukan sebelumnya yang menentukanpersentase lalu lintas yang dialihkan pada setiap kenaikan dan jumlah menit di antara setiap kenaikan.

• Semua-di-sekali- Semua trac digeser dari set tugas asli ke set tugas yang diperbarui sekaligus.

Berikut ini adalah komponen CodeDeploy yang digunakan Amazon ECS saat layanan menggunakan tipedeployment biru/hijau:

Aplikasi CodeDeploy

Kumpulan CodeDeploy sumber daya. Ini terdiri dari satu atau beberapa grup deployment.Grup deployment CodeDeploy

Pengaturan deployment. Pengaturan tersebut terdiri dari hal-hal berikut:• Klaster dan layanan Amazon ECS• Grup target penyeimbang beban dan informasi listener• Strategi roll back deployment• Pengaturan perutean ulang lalu lintas• Pengaturan pengakhiran revisi asli• Konfigurasi deployment• Konfigurasi alarm CloudWatch yang dapat diatur untuk menghentikan deployment• SNS atau CloudWatch Pengaturan acara untuk notifikasi

Untuk informasi selengkapnya, lihatBekerja dengan Grup DeploymentdiAWS CodeDeployPanduanPengguna.

246

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment Biru/Hijau dengan CodeDeploy

konfigurasi deployment CodeDeploy

Menentukan bagaimana CodeDeploy merutekan lalu lintas produksi ke set tugas penggantiAnda selama deployment. Konfigurasi deployment canary dan linier yang telah ditentukan berikutini tersedia. Anda juga dapat membuat deployment canary dan linier yang ditentukan secarakhusus. Untuk informasi selengkapnya, lihatBekerja dengan Konfigurasi DeploymentdiAWSCodeDeployPanduan Pengguna.

Konfigurasi deployment Deskripsi

CodeDeployDefault.ECSLinear10PercentEvery1MinutesAlihkan 10 persen lalu lintas setiap menit sampaisemua lalu lintas selesai dialihkan.

CodeDeployDefault.ECSLinear10PercentEvery3MinutesAlihkan 10 persen lalu lintas setiap tiga menitsampai semua lalu lintas selesai dialihkan.

CodeDeployDefault.ECSCanary10percent5MinutesAlihkan 10 persen lalu lintas pada kenaikanpertama. Sisa 90 persen di-deploy lima menitkemudian.

CodeDeployDefault.ECSCanary10percent15MinutesAlihkan 10 persen lalu lintas pada kenaikanpertama. Sisa 90 persen di-deploy 15 menitkemudian.

CodeDeployDefault.ECSAllAtOnce Menggeser semua lalu lintas ke kontainerAmazon ECS yang diperbarui sekaligus.

Revisi

Revisi adalah CodeDeploy file spesifikasi aplikasi (file AppSpec). Di AppSpec File, Anda menentukanARN lengkap dari penentuan tugas dan port dari set tugas pengganti tempat lalu lintas akan dirutekansaat deployment baru dibuat. Nama kontainer harus merupakan salah satu dari nama kontaineryang direferensikan dalam penentuan tugas Anda. Jika konfigurasi jaringan atau versi platformtelah diperbarui dalam penentuan layanan, maka Anda juga harus menentukan detail tersebut difile AppSpec. Anda juga dapat menentukan fungsi Lambda yang akan dijalankan selama kejadiansiklus hidup deployment. Fungsi Lambda memungkinkan Anda untuk menjalankan pengujian danmengembalikan metrik selama deployment. Untuk informasi selengkapnya, lihatReferensi FilediAWSCodeDeployPanduan Pengguna.

Pertimbangan Deployment Biru/HijauPertimbangkan hal berikut saat menggunakan tipe deployment biru/hijau:

• Saat layanan Amazon ECS yang menggunakan tipe deployment biru/hijau awalnya dibuat, set tugasAmazon ECS akan dibuat.

• Anda harus mengonfigurasi layanan untuk menggunakan Application Load Balancer atau Network LoadBalancer. Classic Load Balancer tidak didukung. Berikut ini adalah persyaratan penyeimbang beban:• Anda harus menambahkan listener produksi ke penyeimbang beban, yang digunakan untuk merutekan

lalu lintas produksi.• Listener uji opsional dapat ditambahkan ke penyeimbang beban, yang digunakan untuk merutekan lalu

lintas uji. Jika Anda menentukan listener uji, CodeDeploy merutekan lalu lintas uji Anda ke set tugaspengganti selama deployment.

• Baik listener produksi maupun listener uji, harus memiliki penyeimbang beban yang sama.• Anda harus menentukan grup target untuk penyeimbang beban. Grup target merutekan lalu lintas ke

set tugas asli yang di layanan melalui listener produksi.

247

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment Biru/Hijau dengan CodeDeploy

• Ketika Network Load Balancer digunakan, hanyaCodeDeployDefault.ECSAllAtOncekonfigurasideployment didukung.

• Untuk layanan yang dikonfigurasi untuk menggunakan penskalaan otomatis layanan dan tipe deploymentbiru/hijau, penskalaan otomatis tidak akan diblokir selama deployment, akan tetapi deployment mungkinakan mengalami kegagalan di beberapa keadaan. Hal-hal berikut menjelaskan perilaku tersebut secaralebih detail.• Jika layanan penskalaan dan penyebaran dimulai, set tugas hijau dibuat dan CodeDeploy akan

menunggu hingga satu jam agar tugas hijau diatur untuk mencapai status stabil dan tidak akanmenggeser lalu lintas sampai terjadi.

• Jika layanan sedang dalam proses deployment biru/hijau dan kejadian penskalaan terjadi, maka lalulintas akan terus beralih selama 5 menit. Jika layanan tidak mencapai kondisi stabil dalam waktu 5menit, CodeDeploy akan menghentikan penyebaran dan menandainya sebagai gagal.

• Jika layanan sedang dalam proses deployment biru/hijau dan kejadian penskalaan terjadi, jumlahtugas yang diinginkan dapat disetel ke nilai yang tidak terduga. Hal ini disebabkan oleh auto scalingmengingat jumlah tugas berjalan sebagai kapasitas saat ini, yang dua kali jumlah yang sesuai tugasyang digunakan dalam perhitungan hitungan tugas yang diinginkan.

• Tugas menggunakan jenis peluncuran Fargate atauCODE_DEPLOYtipe deployment tidakmendukungDAEMONstrategi penjadwalan.

• Ketika Anda awalnya membuat CodeDeploy grup deployment dan deployment, Anda harus menentukanhal berikut:• Anda harus menentukan dua grup target untuk penyeimbang beban. Satu grup target harus menjadi

grup target awal yang ditetapkan untuk penyeimbang beban saat layanan Amazon ECS dibuat. Satu-satunya persyaratan grup target kedua adalah tidak dapat dikaitkan dengan penyeimbang beban yangberbeda dari yang digunakan oleh layanan.

• Saat Anda membuat CodeDeploy deployment untuk layanan ECS Amazon, CodeDeploy menciptakansettugas(atauset tugas hijau) dalam deployment. Jika Anda menambahkan listener uji ke penyeimbangbeban, CodeDeploy merutekan lalu lintas uji Anda ke set tugas pengganti. Ini adalah saat Anda dapatmenjalankan uji validasi apa pun. Kemudian CodeDeploy merutekan ulang lalu lintas produksi dari settugas pengganti sesuai dengan pengaturan perutean ulang lalu lintas untuk grup deployment.

Pengalaman konsol Amazon ECSAlur kerja pembuatan layanan dan pembaruan layanan di konsol Amazon ECS mendukung deploymentbiru/hijau.

Untuk membuat layanan Amazon ECS yang menggunakan tipe deployment biru/hijau, lihatMembuatlayanan Amazon ECS (p. 227).

Untuk memperbarui layanan Amazon ECS yang sudah ada yang menggunakan tipe deployment biru/hijau,lihatMemperbarui layanan (p. 239).

Saat Anda menggunakan konsol Amazon ECS untuk membuat layanan Amazon ECS menggunakan tipedeployment biru/hijau, set tugas Amazon ECS dan hal-hal berikut CodeDeploy sumber daya dibuat secaraotomatis dengan pengaturan default berikut.

Resource Pengaturan default

Nama aplikasi AppECS-<cluster[:47]>-<service[:47]>

Nama grup deployment DgpECS-<cluster[:47]>-<service[:47]>

Info penyeimbang beban grup deployment Listener produksi penyeimbang beban, listeneruji opsional, dan grup target yang ditentukanditambahkan ke konfigurasi grup deployment.

248

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment Biru/Hijau dengan CodeDeploy

Resource Pengaturan default

Pengaturan perutean ulang lalu lintas Peralihan lalu lintas — Pengaturan defaultadalahLalu lintas rute segera. Anda dapatmengubahnya di CodeDeploy konsol ataudengan memperbaruiTrafficRoutingConfig.Untuk informasi selengkapnya,lihatcreateDeploymentConfigdiAWSCodeDeployReferensi API.

Pengaturan pengakhiran revisi asli Pengaturan pengakhiran revisi asli dikonfigurasiuntuk menunggu selama 1 jam setelah lalu lintasdirutekan ulang sebelum mengakhiri set tugas biru.

Konfigurasi deployment Konfigurasi deployment diatur keCodeDeployDefault.ECSAllAtOncesecara default, yang merutekan semua lalulintas sekaligus dari set tugas biru ke set tugashijau. Konfigurasi deployment dapat diubahmenggunakan konsol AWS CodeDeploy setelahlayanan dibuat.

Konfigurasi rollback otomatis Jika deployment gagal, maka pengaturan rollbackotomatis dikonfigurasi untuk me-rollback-nyakembali.

Untuk melihat detail layanan Amazon ECS menggunakan tipe deployment biru/hijau,gunakanDeploymenttab di konsol Amazon ECS.

Untuk melihat detail CodeDeploy grup deployment di CodeDeploy konsol, lihatLihat Detail GrupDeployment dengan CodeDeploydiAWS CodeDeployPanduan Pengguna.

Untuk memodifikasi pengaturan CodeDeploy grup deployment di CodeDeploy konsol, lihatUbahPengaturan Grup Deployment dengan CodeDeploydiAWS CodeDeployPanduan Pengguna.

Dukungan untuk melakukan deployment biru/hijau telah ditambahkan untuk AWS CloudFormation. Untukinformasi selengkapnya, lihatLakukan deployment Amazon ECS biru/hijau CodeDeploy memakaiAWSCloudFormationdiAWS CloudFormationPanduan Pengguna.

Penyebaran biru/hijau diperlukan izin IAMPenerapan biru/hijau Amazon ECS dimungkinkan dengan kombinasi Amazon ECS dan CodeDeploy API.Pengguna IAM harus memiliki izin yang sesuai untuk layanan ini sebelum mereka dapat menggunakanpenerapan biru/hijau Amazon ECS diAWS Management Consoleatau denganAWS CLIatau SDK.

Selain izin IAM standar untuk membuat dan memperbarui layanan, Amazon ECS memerlukan izin berikut.Izin ini telah ditambahkan keAmazonECS_FullAccessKebijakan IAM. Untuk informasi selengkapnya, lihatAmazonecs_FullAccess (p. 348).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication",

249

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

"codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "cloudwatch:DescribeAlarms", "lambda:ListFunctions" ], "Resource": [ "*" ] } ]}

Note

Selain izin standar Amazon ECS yang diperlukan untuk menjalankan tugas dan layanan,pengguna IAM juga memerlukaniam:PassRoleizin untuk menggunakan peran IAM untuk tugas.

CodeDeploy membutuhkan izin untuk memanggil API Amazon ECS, memodifikasi Elastic Load Balancing,memanggil fungsi Lambda, dan menjelaskan CloudWatch alarm, serta izin untuk mengubah jumlah yangdiinginkan layanan Anda atas nama Anda. Sebelum membuat layanan Amazon ECS yang menggunakantipe deployment biru/hijau, maka Anda harus membuat peran IAM (ecsCodeDeployRole). Untukinformasi selengkapnya, lihat Amazon ECS CodeDeploy IAM Role (p. 374).

ParameterBuat Contoh Layanan (p. 346)danPembaruan Contoh Layanan (p. 347)Contoh kebijakanIAM menunjukkan izin yang diperlukan untuk pengguna IAM untuk menggunakan deployment biru/hijauAmazon ECS padaAWS Management Console.

DeploymentParametereksternalTipe deployment memungkinkan Anda untuk menggunakan pengendali deploymentpihak ketiga untuk melakukan kendali penuh atas proses deployment untuk layanan Amazon ECS.Detail untuk layanan Anda dikelola, baik oleh tindakan API manajemen layanan (CreateService,UpdateService, dan DeleteService) ataupun tindakan API manajemen set tugas (CreateTaskSet,UpdateTaskSet, UpdateServicePrimaryTaskSet, dan DeleteTaskSet). Setiap tindakan APImemiliki subset parameter penentuan layanan yang dapat dikelola olehnya.

Tindakan API UpdateService memperbarui jumlah yang diinginkan dan parameter masa tenggangpemeriksaan kondisi untuk suatu layanan. Jika tipe peluncuran, versi platform, detail penyeimbang beban,konfigurasi jaringan, atau penentuan tugas perlu diperbarui, maka Anda harus membuat set tugas baru.

Tindakan API UpdateTaskSet hanya memperbarui parameter skala untuk set tugas.

Tindakan API UpdateServicePrimaryTaskSet memodifikasi set tugas mana dalam layanan yangmerupakan set tugas utama. Saat Anda memanggil tindakan API DescribeServices, tindakan tersebutmengembalikan semua bidang yang ditentukan untuk set tugas utama. Jika set tugas utama untuk layanan

250

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

diperbarui, maka nilai parameter set tugas apa pun yang ada di set tugas utama baru yang berbeda dari settugas utama lama di layanan akan diperbarui ke nilai baru saat set tugas utama baru ditentukan. Jika tidakada set tugas utama yang ditentukan untuk layanan, maka saat menjelaskan layanan, bidang set tugasadalah nol.

Pertimbangan deployment eksternalPertimbangkan hal berikut saat menggunakan tipe deployment eksternal:

• Penskalaan otomatis layanan tidak didukung saat menggunakan pengendali deployment eksternal.• Jika menggunakan penyeimbang beban untuk tugas, maka tipe penyeimbang beban yang didukung

adalah Application Load Balancer atau Network Load Balancer.• Tugas menggunakan jenis peluncuran Fargate atauEXTERNALtipe deployment tidak

mendukungDAEMONstrategi penjadwalan.

Alur kerja deployment eksternalBerikut ini adalah alur kerja dasar untuk mengelola deployment eksternal di Amazon ECS.

Untuk mengelola layanan Amazon ECS menggunakan pengendali deployment eksternal

1. Buat layanan Amazon ECS. Satu-satunya parameter yang diperlukan adalah nama layanan. Andadapat menentukan parameter berikut saat membuat layanan menggunakan pengendali deploymenteksternal. Semua parameter layanan lainnya ditentukan saat membuat set tugas dalam layanan.

serviceName

Jenis: Tali

Diperlukan: Ya

Nama layanan Anda. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tandahubung, dan garis bawah. Nama layanan harus unik dalam sebuah klaster, tetapi Anda dapatmemiliki layanan yang bernama sama di beberapa klaster dalam satu Wilayah atau lebih.

desiredCount

Jumlah instantiasi dari tugas yang ditentukan menetapkan penentuan tugas untuk ditempatkandan tetap berjalan dalam layanan.

deploymentConfiguration

Parameter deployment opsional yang mengendalikan seberapa banyak tugas yang dijalankanselama deployment dan urutan penghentian serta mulainya tugas. Untuk informasi selengkapnya,lihat deploymentConfiguration.

tags

Jenis: Array objek

Diperlukan: Tidak

Metadata yang Anda terapkan ke layanan untuk membantu Anda mengkategorikan danmengaturnya. Setiap tanda terdiri atas sebuah kunci dan sebuah nilai opsional, yang keduanyaAnda tentukan. Ketika layanan dihapus, tag akan dihapus juga. Maksimum 50 tag dapatditerapkan untuk layanan. Untuk informasi selengkapnya, lihat Menandai sumber daya AmazonECS Anda (p. 281).key

Jenis: String

251

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.

Diperlukan: Tidak

Salah satu bagian pasangan nilai kunci yang membentuk tanda. Kunci adalah label umumyang bertindak seperti kategori untuk nilai tanda yang lebih spesifik.

value

Jenis: String

Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.

Diperlukan: Tidak

Bagian opsional pasangan nilai kunci yang membentuk tanda. Nilai bertindak sebagaideskriptor dalam kategori tanda (kunci).

enableECSManagedTags

Menentukan apakah akan menggunakan tag terkelola Amazon ECS untuk tugas dalam layanan.Untuk informasi selengkapnya, lihat Menandai sumber daya Anda untuk penagihan (p. 284).

propagateTags

Jenis: String

Nilai yang valid: TASK_DEFINITION | SERVICE

Diperlukan: Tidak

Menentukan apakah akan menyalin tag dari definisi tugas atau layanan untuk tugas dalamlayanan. Jika tidak ada nilai yang ditentukan, tanda tidak disalin. Tanda hanya dapat disalin ketugas selama pembuatan layanan. Untuk menambahkan tag ke tugas setelah pembuatan layananatau pembuatan tugas, gunakanTagResourceTindakan API.

healthCheckGracePeriodSeconds

Jenis: Bulat

Diperlukan: Tidak

Periode waktu, dalam detik, bahwa penjadwal Layanan Amazon ECS harus mengabaikanpemeriksaan kondisi target Elastic Load Balancing yang tidak sehat, pemeriksaan kondisikontainer, dan pemeriksaan kondisi Route 53 setelah tugas memasuki layananRUNNINGstatus.Ini hanya berlaku jika layanan Anda dikonfigurasi untuk menggunakan penyeimbang beban. Jikalayanan Anda memiliki penyeimbang beban yang ditetapkan dan Anda tidak menentukan nilaimasa tenggang pemeriksaan kesehatan, nilai default0digunakan.

Jika tugas layanan membutuhkan waktu beberapa saat untuk memulai dan menanggapipemeriksaan kondisi, Anda dapat menentukan masa tenggang pemeriksaan kondisi hingga2.147.483.647 detik selama penjadwal layanan ECS mengabaikan status pemeriksaan kondisi.Masa tenggang ini dapat mencegah penjadwal layanan ECS menandai tugas dengan kondisi tidakbaik dan menghentikannya sebelum tugas tersebut muncul.

Jika Anda tidak menggunakan Elastic Load Balancing, kami sarankan AndamenggunakanstartPerioddalam definisi tugas parameter pemeriksaan kesehatan. Untukinformasi selengkapnya, lihatPemeriksaan kondisi.

252

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

schedulingStrategy

Strategi penjadwalan yang akan digunakan. Layanan yang menggunakan pengendali deploymenteksternal hanya mendukung strategi penjadwalan REPLICA. Untuk informasi selengkapnya, lihatKonsep penjadwal layanan (p. 213).

placementConstraints

Susunan objek batasan penempatan yang akan digunakan untuk tugas di layanan Anda. Andadapat menentukan maksimal 10 batasan per tugas (batas ini mencakup batasan dalam penentuantugas dan batasan yang ditentukan pada waktu aktif). Jika Anda menggunakan tipe peluncuranFargate, kendala penempatan tugas tidak didukung.

placementStrategy

Strategi batasan objek yang akan digunakan untuk tugas-tugas dalam layanan Anda. Anda dapatmenentukan maksimal empat aturan strategi per layanan.

Berikut ini adalah contoh penentuan layanan untuk membuat layanan menggunakan pengendalideployment eksternal.

{ "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "healthCheckGracePeriodSeconds": 0, "schedulingStrategy": "REPLICA", "deploymentController": { "type": "EXTERNAL" }, "tags": [ { "key": "", "value": "" } ], "enableECSManagedTags": true, "propagateTags": "TASK_DEFINITION"}

2. Buat set tugas awal. Set tugas berisi detail berikut tentang layanan Anda:

taskDefinition

Penentuan tugas untuk tugas-tugas dalam set tugas yang akan digunakan.

253

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

launchType

Jenis: String

Nilai yang valid: EC2 | FARGATE | EXTERNAL

Diperlukan: Tidak

Jenis peluncuran untuk menjalankan layanan Anda. Jika jenis peluncuran tidakditentukan,EC2digunakan secara default. Untuk informasi selengkapnya, lihat Jenis peluncuranECS (p. 123).

Jika launchType ditentukan, parameter capacityProviderStrategy harus dihilangkan.platformVersion

Jenis: Tali

Diperlukan: Tidak

Versi platform tempat tugas Anda dalam layanan berjalan. Versi platform hanya ditentukan untuktugas menggunakan tipe peluncuran Fargate. Jika salah satu tidak ditentukan, versi terbaru(LATEST) digunakan secara default.

AWSVersi platform Fargate digunakan untuk merujuk ke lingkungan runtime tertentu untukinfrastruktur tugas Fargate. Saat menentukanLATESTversi platform saat menjalankan tugas ataumembuat layanan, Anda mendapatkan versi platform terbaru yang tersedia untuk tugas Anda.Saat Anda meningkatkan layanan, tugas tersebut menerima versi platform yang ditentukan padapenyebaran layanan saat ini. Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

loadBalancers

Objek penyeimbang beban yang mewakili penyeimbang beban yang akan digunakan bersamalayanan Anda. Saat menggunakan pengontrol deployment eksternal, hanya Application LoadBalancer dan Penyeimbang Beban Jaringan yang didukung. Jika Anda menggunakan ApplicationLoad Balancer, maka hanya satu grup target Application Load Balancer yang diperbolehkan perset tugas.

Cuplikan berikut menunjukkan contoh objek loadBalancer yang akan digunakan.

"loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 }]

Note

Saat menentukan objek loadBalancer, Anda harus menentukan targetGroupArndan menghilangkan parameter loadBalancerName.

networkConfiguration

Konfigurasi jaringan untuk layanan. Parameter ini diperlukan untuk penentuan tugas yangmenggunakan mode jaringan awsvpc untuk menerima antarmuka jaringan elastisnya sendiri,dan tidak didukung untuk mode jaringan lainnya. Untuk informasi selengkapnya, lihatFargatetugasdiPanduan Pengguna Amazon ElasticAWS Fargate..

254

Amazon ECS Panduan Pengguna untuk AWS FargateDeployment

serviceRegistries

Detail registri penemuan layanan yang akan ditetapkan ke layanan ini. Untuk informasiselengkapnya, lihat Penemuan Layanan (p. 276).

scale

Persentase titik mengambang dari jumlah tugas yang diinginkan untuk menempatkan dan agartetap berjalan di serangkaian tugas. Nilai ditetapkan sebagai total persentase dari desiredCountlayanan. Nilai yang diterima adalah angka antara 0 hingga 100.

Berikut ini adalah contoh JSON untuk membuat set tugas untuk pengendali deployment eksternal.

{ "service": "", "cluster": "", "externalId": "", "taskDefinition": "", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "" ], "securityGroups": [ "" ], "assignPublicIp": "DISABLED" } }, "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ], "serviceRegistries": [ { "registryArn": "", "port": 0, "containerName": "", "containerPort": 0 } ], "launchType": "EC2", "capacityProviderStrategy": [ { "capacityProvider": "", "weight": 0, "base": 0 } ], "platformVersion": "", "scale": { "value": null, "unit": "PERCENT" }, "clientToken": ""}

3. Saat perubahan layanan dibutuhkan, gunakan tindakan API UpdateService, UpdateTaskSet,atau CreateTaskSet tergantung pada parameter mana yang Anda perbarui. Jika Anda membuat settugas, maka gunakan parameter scale untuk setiap set tugas di layanan untuk menentukan berapa

255

Amazon ECS Panduan Pengguna untuk AWS FargatePenyeimbangan beban layanan

banyak tugas yang harus tetap berjalan di layanan. Misalnya, jika Anda memiliki layanan yang berisitasksetA dan Anda membuat tasksetB, maka Anda dapat menguji validitas tasksetB sebelumakan menransisikan lalu lintas produksi ke sana. Anda dapat mengatur scale untuk kedua set tugaske 100, dan saat Anda siap untuk menransisikan semua lalu lintas produksi ke tasksetB, Anda dapatmemperbarui scale untuk tasksetA ke 0 untuk menurunkan skalanya.

Penyeimbangan beban layananLayanan Amazon ECS Anda secara opsional dapat dikonfigurasi untuk menggunakan Elastic LoadBalancing untuk mendistribusikan lalu lintas secara merata di seluruh tugas di layanan Anda.

Note

Bila Anda menggunakan set tugas, semua tugas di set harus dikonfigurasi untuk menggunakanElastic Load Balancing atau tidak menggunakan Elastic Load Balancing.

Layanan Amazon ECSAWS Fargatemendukung jenis penyeimbang beban Application Load Balancer danNetwork Load Balancer. Application Load Balancers digunakan untuk merutekan lalu lintas HTTP/HTTPS(atau layer 7). Network Load Balancers digunakan untuk merutekan lalu lintas TCP atau UDP (atau layer4). Untuk informasi selengkapnya, lihat Jenis penyeimbang beban (p. 257).

Application Load Balancers menawarkan beberapa fitur yang membuatnya menarik untuk digunakandengan layanan Amazon ECS:

• Setiap layanan dapat melayani lalu lintas dari beberapa penyeimbang beban dan mengekspos beberapaport yang diseimbangkan beban dengan menentukan beberapa grup target.

• Application Load Balancer mengizinkan kontainer menggunakan pemetaan port host dinamis (sehinggabeberapa tugas dari layanan yang sama diizinkan per instans kontainer).

• Application Load Balancer mendukung perutean berbasis jalur dan aturan prioritas (sehingga beberapalayanan dapat menggunakan port listener yang sama pada satu Application Load Balancer).

Dengan penyeimbang beban, Anda hanya membayar apa yang Anda gunakan. Untuk informasiselengkapnya, lihat Harga Elastic Load Balancing.

Topik• Pertimbangan penyeimbangan beban layanan (p. 256)• Jenis penyeimbang beban (p. 257)• Membuat penyeimbang beban (p. 259)• Mendaftarkan beberapa grup target dengan layanan (p. 265)

Pertimbangan penyeimbangan beban layananPertimbangkan hal berikut saat Anda menggunakan penyeimbangan beban layanan.

Application Load Balancer dan Network Load BalancerpertimbanganPertimbangan berikut bersifat khusus untuk layanan Amazon ECS menggunakan Application LoadBalancer atau Penyeimbang Beban Jaringan:

• Amazon ECS memerlukan peran IAM tertaut layanan yang menyediakan izin yang diperlukan untukmendaftarkan dan membatalkan pendaftaran target dengan penyeimbang beban saat tugas dibuat dandihentikan. Untuk informasi selengkapnya, lihat Peran tertaut layanan untuk Amazon ECS (p. 356).

256

Amazon ECS Panduan Pengguna untuk AWS FargateJenis penyeimbang beban

• Untuk layanan yang menggunakan Application Load Balancer atau Penyeimbang Beban Jaringan, Andatidak dapat melampirkan lebih dari lima grup target ke layanan.

• Saat Anda membuat grup target untuk layanan Anda, Anda harus memilih ip sebagai tipe target, bukaninstance.

• Jika layanan Anda menggunakan Application Load Balancer dan memerlukan akses ke beberapa portyang diseimbangkan beban, seperti port 80 dan port 443 untuk layanan HTTP/HTTPS, maka Andadapat mengonfigurasi dua listener. Satu listener bertanggung jawab untuk HTTPS yang meneruskanpermintaan ke layanan, dan listener lainnya bertanggung jawab untuk mengarahkan permintaan HTTPke port HTTPS yang sesuai. Untuk informasi selengkapnya, lihatBuat listener ke Application LoadBalancer AndadiPanduan Pengguna untuk Penyeimbang Beban Aplikasi.

• Setelah Anda membuat layanan, ARN grup target atau nama penyeimbang beban, nama kontainer, danport kontainer yang ditentukan dalam ketentuan layanan bersifat tetap. Anda dapat menggunakanAWSCLIatau SDK untuk memodifikasi konfigurasi load balancer. Untuk informasi tentang cara mengubahkonfigurasi, lihatUpdateServicediReferensi Amazon Elastic. Anda tidak dapat menambahkan,menghapus, atau mengubah konfigurasi penyeimbang beban dari layanan yang sudah ada. Jika Andamemperbarui ketentuan tugas untuk layanan, nama kontainer dan port kontainer yang ditentukan ketikalayanan dibuat harus tetap dalam ketentuan tugas.

• Jika tugas layanan gagal memenuhi kriteria pemeriksaan kondisi penyeimbang beban, maka tugasdihentikan dan dimulai ulang. Proses ini berlanjut hingga layanan Anda mencapai jumlah tugas berjalanyang diinginkan.

• Saat menggunakan Penyeimbang Beban Jaringan yang dikonfigurasi dengan alamat IP sebagai target,permintaan dianggap berasal dari alamat IP privat Load Balancer Jaringan. Ini berarti bahwa layanandi belakang Network Load Balancer secara efektif untuk dunia segera setelah Anda mengizinkanpermintaan masuk dan pemeriksaan kondisi di dalam grup keamanan target.

• Menggunakan Network Load Balancer untuk merutekan lalu lintas UDP ke tugas Amazon ECS Anda diFargate memerlukan tugas untuk menggunakan versi platform1.4.0(Linux) atau1.0.0(Jendela).

• Meminimalkan kesalahan dalam aplikasi klien Anda dengan mengaturStopTimeoutdalam definisi tugaslebih lama dari keterlambatan deregistrasi grup target, yang seharusnya lebih panjang dari batas waktukoneksi klien Anda. Lihat Perpustakaan Pembangun untuk informasi lebih lanjut tentang konfigurasi klienyang direkomendasikankemari.

Selain itu, atribut grup target Network Load Balancer untuk penghentian koneksi menutup semua koneksiyang tersisa setelah waktu deregistrasi. Hal ini dapat menyebabkan klien untuk menampilkan pesankesalahan yang tidak diinginkan, jika klien tidak menangani mereka.

• Jika Anda mengalami masalah dengan layanan yang diaktifkan penyeimbang beban, lihat Pemecahanpermasalahan terhadap layanan penyeimbang beban (p. 467).

Jenis penyeimbang bebanElastic Load Balancing mendukung jenis Load Balancer berikut: Application Load Balancer, Network LoadBalancer, dan Classic Load Balancer. Layanan Amazon ECS dapat menggunakan jenis penyeimbangmuatan ini. Application Load Balancers digunakan untuk merutekan lalu lintas HTTP/HTTPS (atau Layer7). Network Load Balancers dan Classic Load Balancers digunakan untuk merutekan lalu lintas TCP (atauLayer 4).

Topik• Application Load Balancer (p. 258)• Network Load Balancer (p. 258)• Penyeimbang Beban Gateway (p. 259)

257

Amazon ECS Panduan Pengguna untuk AWS FargateJenis penyeimbang beban

Application Load BalancerApplication Load Balancer membuat keputusan perutean di lapisan aplikasi (HTTP/HTTPS), mendukungperutean berbasis jalur, dan dapat merutekan permintaan ke satu atau beberapa port di setiap instanskontainer di klaster Anda. Application Load Balancers mendukung pemetaan port host dinamis. Misalnya,jika ketentuan kontainer tugas Anda menentukan port 80 untuk port kontainer NGINX, dan port 0 untukport host, maka port host dipilih secara dinamis dari rentang port sementara dari instans kontainer (seperti32768 hingga 61000 pada AMI yang dioptimalkan oleh Amazon terbaru). Saat tugas diluncurkan, kontainerNGINX didaftarkan dengan Application Load Balancer sebagai kombinasi ID instans dan port, dan lalulintas didistribusikan ke ID instans dan port yang sesuai dengan kontainer tersebut. Pemetaan dinamisini mengizinkan Anda memiliki banyak tugas dari satu layanan pada instans kontainer yang sama. Untukinformasi selengkapnya, lihatPanduan Pengguna untuk Penyeimbang Beban Aplikasi.

Network Load BalancerNetwork Load Balancer membuat keputusan perutean pada layer transport (TCP/SSL). Hal itu dapatmenangani jutaan permintaan per detik. Setelah penyeimbang beban menerima koneksi, penyeimbangakan memilih target dari grup target untuk aturan default menggunakan algoritme perutean hash alur.Penyeimbang mencoba untuk membuka koneksi TCP ke target yang dipilih pada port yang ditentukandalam konfigurasi listener. Ini meneruskan permintaan tanpa mengubah header. Network Load Balancermendukung pemetaan port host dinamis. Misalnya, jika ketentuan kontainer tugas Anda menentukanport 80 untuk port kontainer NGINX, dan port 0 untuk port host, maka port host dipilih secara dinamis darirentang port sementara dari instans kontainer (seperti 32768 hingga 61000 pada AMI yang dioptimalkanoleh Amazon terbaru). Saat tugas diluncurkan, kontainer NGINX didaftarkan dengan Network LoadBalancer sebagai kombinasi ID instans dan port, dan lalu lintas didistribusikan ke ID instans dan port yangsesuai dengan kontainer tersebut. Pemetaan dinamis ini mengizinkan Anda memiliki banyak tugas dari satulayanan pada instans kontainer yang sama. Untuk informasi selengkapnya, lihatPanduan Pengguna untukPenyeimbang Beban Jaringan.

258

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

Penyeimbang Beban GatewayPenyeimbang Beban Gateway memungkinkan Anda untuk men-deploy, menskalakan, dan mengelolaperalatan virtual, seperti firewall, sistem deteksi dan pencegahan intrusi, dan sistem inspeksi paket yangmendalam. Penyeimbang Beban Gateway menggabungkan gateway jaringan transparan (yaitu, satu titikmasuk dan keluar untuk semua lalu lintas) dan mendistribusikan lalu lintas sambil menskalakan peralatanvirtual Anda dengan permintaan. Penyeimbang Beban Gateway beroperasi pada lapisan ketiga modelOpen Systems Interconnection (OSI), yaitu lapisan jaringan. Penyeimbang Beban Gateway mendengarkansemua paket IP di semua port dan meneruskan lalu lintas ke grup target yang ditentukan dalam aturanlistener. Ia mempertahankan kekakuan alur ke alat target tertentu menggunakan 5-tupel (untuk alur TCP/UDP) atau 3-tupel (untuk alur non-TCP/UDP). Penyeimbang Beban Gateway dan instans alat virtualterdaftarnya bertukar lalu lintas aplikasi menggunakan protokol GENEVE pada port 6081. Ia mendukungukuran unit transmisi maksimum (MTU) 8500 byte. Penyeimbang Beban Gateway menggunakan titikakhir Penyeimbang Beban Gateway untuk bertukar lalu lintas dengan aman melintasi batas VPC. Titikakhir Penyeimbang Beban Gateway adalah VPC endpoint yang menyediakan konektivitas privat antaraperalatan virtual di dalam VPC penyedia layanan dan server aplikasi di dalam VPC konsumen layanan.Anda men-deploy Penyeimbang Beban Gateway di VPC yang sama dengan peralatan virtual. Andamendaftarkan peralatan virtual dengan grup target untuk Penyeimbang Beban Gateway. Untuk informasiselengkapnya, lihat Panduan Pengguna Penyeimbang Beban Gateway.

Membuat penyeimbang bebanBagian ini memberikan pengenalan langsung untuk menggunakan Elastic Load Balancing melaluiAWSManagement Consoleuntuk digunakan dengan layanan Amazon ECS Anda. Di bagian ini, Anda membuatpenyeimbang beban eksternal yang menerima lalu lintas jaringan publik dan merutekannya ke instanskontainer Amazon ECS Anda.

Elastic Load Balancing mendukung jenis Load Balancer berikut: Application Load Balancer, PenyeimbangBeban Jaringan, dan Classic Load Balancer, dan layanan Amazon ECS dapat menggunakan penyeimbang

259

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

beban. Application Load Balancers digunakan untuk merutekan lalu lintas HTTP/HTTPS. Network LoadBalancers dan Classic Load Balancers digunakan untuk merutekan lalu lintas TCP atau Layer 4.

Application Load Balancer menawarkan beberapa fitur yang membuatnya menarik untuk digunakandengan layanan Amazon ECS:

• Application Load Balancer mengizinkan kontainer menggunakan pemetaan port host dinamis (sehinggabeberapa tugas dari layanan yang sama diizinkan per instans kontainer).

• Application Load Balancer mendukung perutean berbasis jalur dan aturan prioritas (sehingga beberapalayanan dapat menggunakan port listener yang sama pada satu Application Load Balancer).

Kami sarankan supaya Anda menggunakan Application Load Balancer untuk layanan Amazon ECSsehingga Anda dapat memanfaatkan fitur-fitur terbaru ini. Untuk informasi selengkapnya tentang ElasticLoad Balancing dan perbedaan di antara tipe penyeimbang beban, lihatPanduan Pengguna Elastic LoadBalancing.

Sebelum menggunakan penyeimbang beban dengan layanan Amazon ECS Anda, akun Anda harus sudahmemiliki peran tertaut layanan Amazon ECS. Untuk informasi selengkapnya, lihat Peran tertaut layananuntuk Amazon ECS (p. 356).

Topik• Membuat Application Load Balancer (p. 260)• Membuat Network Load Balancer (p. 263)

Membuat Application Load BalancerBagian ini memandu Anda melalui proses pembuatan Application Load Balancer diAWS ManagementConsole. Untuk informasi tentang cara membuat Application Load Balancer menggunakanAWS CLI,lihatlahTutorial: Membuat Application Load Balancer menggunakanAWS CLIdiPanduan Pengguna untukPenyeimbang Beban Aplikasi.

Bagian ini memandu Anda melalui proses pembuatan Application Load Balancer diAWS ManagementConsole. Untuk informasi tentang cara membuat Application Load Balancer menggunakanAWS CLI,lihatlahTutorial: Membuat Application Load Balancer menggunakanAWS CLIdiPanduan Pengguna untukPenyeimbang Beban Aplikasi.

Mengonfigurasi grup target untuk perutean

Di bagian ini, Anda membuat grup target untuk penyeimbang beban Anda dan kriteria pemeriksaan kondisiuntuk target yang terdaftar dalam grup tersebut.

Setiapkelompok target terbiasa merutekan permintaan untuk satu atau lebih target terdaftar. Ketika kondisiaturan terpenuhi, lalu lintas diteruskan ke kelompok target yang sesuai.

Penyeimbang beban Anda mendistribusikan lalu lintas antara target yang terdaftar ke grup targetnya.Saat Anda mengaitkan grup target ke layanan Amazon ECS, kontainer Amazon ECS secara otomatismendaftarkan dan membatalkan pendaftaran kontainer dengan grup target Anda. Karena Amazon ECSmenangani pendaftaran target, maka Anda tidak menambahkan target ke grup target Anda saat ini.

Untuk membuat grup target

1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.2. Pada panel navigasi, di bawah Penyeimbangan Beban, pilih Grup Target.3. PilihBuat grup target.4. UntukPilih jenis target, pilih tipe target.

260

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukan untukjenis peluncuran Fargate), Anda harus memilihAlamat IPsebagai tipe target Ini karena tugasyang menggunakanawsvpcMode jaringan terkait dengan elastic network interface, bukaninstans Amazon EC2.

5. UntukNama kelompok target, ketik nama untuk grup target. Nama ini harus unik per wilayah per akun,dapat memiliki maksimum 32 karakter, harus berisi hanya karakter alfanumerik atau tanda hubung,dan tidak harus dimulai atau diakhiri dengan tanda hubung.

6. (Opsional)ProtokoldanPort, memodifikasi nilai default yang diperlukan.7. Jika jenis targetAlamat IP, pilihIPv4.8. UntukVPC, pilih Virtual Private Cloud (VPC). Perhatikan bahwa untukAlamat IPjenis target, VPC yang

tersedia untuk seleksi adalah yang mendukungJenis alamat IPbahwa Anda memilih pada langkahsebelumnya.

9. (Opsional) UntukVersi protokol, tinggalkan default.10. (Opsional) DiPemeriksaan kondisibagian, biarkan pengaturan default.11. (Opsional) Tambahkan satu atau lebih tag sebagai berikut:

a. Perluas bagianTag.b. PilihTambahkan tanda.c. Masukkan kunci dan nilai untuk tanda tersebut.

12. Pilih Selanjutnya.13. PilihBuat grup target.

Tentukan penyeimbang beban Anda

Pertama-tama, sediakan beberapa informasi konfigurasi dasar untuk penyeimbang beban Anda, sepertinama, jaringan, dan listener.

Listener adalah proses memeriksa permintaan koneksi. Listener dikonfigurasi dengan protokol dan portuntuk koneksi frontend (klien ke penyeimbang beban), serta protokol dan port untuk koneksi backend(penyeimbang beban ke instans backend). Dalam contoh ini, Anda mengonfigurasi listener yang menerimapermintaan HTTP pada port 80, dan kemudian mengirimkannya ke kontainer di tugas Anda pada port 80menggunakan HTTP.

Untuk mengonfigurasi penyeimbang beban dan listener

1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.2. Pada panel navigasi, di bawah PENYEIMBANGAN BEBAN, pilih Penyeimbang beban.3. Pilih Buat Penyeimbang Beban.4. Di bawahApplication Load Balancer, pilihBuat.5. Di bawahKonfigurasi aturan dasar, lakukan hal berikut:

a. Untuk Name penyeimbang beban, masukkan nama untuk penyeimbang beban Anda. Sebagaicontoh, my-alb. Nama Application Load Balancer Anda harus unik dalam rangkaian ApplicationLoad Balancer dan Network Load Balancer untuk Wilayah. Nama dapat memiliki maksimum 32karakter, dan hanya berisi karakter alfanumerik dan tanda hubung. Mereka tidak dapat memulaiatau diakhiri dengan tanda hubung, atau denganinternal-.

b. Untuk Skema, pilih Mengakses Internet atau Internal. Penyeimbang beban yang menghadap keinternet merutekan permintaan dari klien ke target melalui internet. Pengimbang beban internalmerutekan permintaan ke target menggunakan alamat IP privat.

261

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

c. UntukJenis alamat IP, pilihIPv4atauDualstack. GunakanIPv4jika klien Anda menggunakanalamat IPv4 untuk berkomunikasi dengan penyeimbang beban. PilihDualstackjika klien Andamenggunakan alamat IPv4 dan IPv6 untuk berkomunikasi dengan penyeimbang beban.

6. Di bawahPemetaan jaringan, lakukan hal berikut:

a. Untuk VPC, pilih VPC yang sama dengan yang Anda gunakan untuk instans kontainer tempatAnda ingin menjalankan layanan.

b. UntukPemetaan, pilih kotak centang untuk Availability Zone yang akan digunakan untukpenyeimbang beban Anda. Jika ada satu subnet untuk Availability Zone tersebut, maka subnettersebut akan dipilih. Jika ada lebih dari satu subnet untuk Availability Zone tersebut, maka pilihsalah satu subnet. Anda hanya dapat memilih satu subnet per Availability Zone. Konfigurasisubnet penyeimbang beban Anda harus menyertakan semua Availability Zone tempat instanskontainer Anda berada.

7. Di bawahGrup keamanan, lakukan hal berikut:

UntukGrup keamanan, pilih grup keamanan yang sudah ada, atau buat yang baru.

Grup keamanan untuk penyeimbang beban Anda harus mengizinkannya untuk berkomunikasidengan target terdaftar pada port listener dan port pemeriksaan kondisi. Konsol dapat membuat grupkeamanan untuk penyeimbang beban atas nama Anda dengan aturan yang mengizinkan komunikasiini. Anda juga dapat membuat grup keamanan dan memilihnya sebagai gantinya. Untuk informasitentang cara membuat grup keamanan, lihatGrup keamanan untuk Application Load BalancerAndadiApplication Elastic Load Balancing Elastic.

(Opsional) Untuk membuat grup keamanan baru untuk penyeimbang beban, pilihMembuat grupkeamanan baru.

8. Di bawahPendengar dan perutean, lakukan hal berikut:

Listener default menerima lalu lintas HTTP di port 80. Anda dapat menyimpan protokol dan portdefault. UntukTindakan default, pilih grup target yang Anda buat. Anda dapat memilih secaraopsionalTambahkan listeneruntuk menambahkan listener lain (misalnya, listener HTTPS).

Jika Anda membuat listener HTTPS, konfigurasikan yang diperlukan

Saat Anda menggunakan HTTPS untuk listener penyeimbang beban, Anda harus men-deploy sertifikatSSL pada penyeimbang beban. Penyeimbang beban menggunakan sertifikat untuk mengakhirikoneksi dan mendekripsi permintaan dari klien sebelum mengirimkannya mereka ke target. DibawahPengaturan pendengar yang aman, lakukan hal berikut:

a. Untuk Pilih kebijakan, pilih kebijakan keamanan yang telah ditentukan sebelumnya. Untuk detailtentang kebijakan keamanan, lihatKebijakan keamanandiApplication Elastic Load BalancingElastic.

b. Untuk Sertifikat SSL default, lakukan salah satu hal berikut:

• Jika Anda membuat atau mengimpor sertifikat menggunakanAWS Certificate Manager, pilihDariACM, dan kemudian pilih sertifikat.

• Jika Anda mengunggah sertifikat menggunakan IAM, pilihDari IAM, dan kemudian pilih sertifikat.• Jika Anda ingin mengimpor sertifikat ke ACM atau IAM, masukkan nama sertifikat. Kemudian,

tempelkan kunci pribadi yang dienkode PEM.9. (Opsional) Anda dapat menggunakanLayanan add-on, sepertiAWS Global Acceleratoruntuk membuat

akselerator dan mengasosiasikan penyeimbang beban dengan akselerator. Nama akseleratordapat memiliki hingga 64 karakter. Karakter yang diijinkan adalah a-z, A-Z, 0-9,. dan - (tandahubung). Setelah akselerator dibuat, Anda dapat menggunakanAWS Global Acceleratorkonsol untukmengelolanya.

10. (Opsional) Tandai Application Load Balancer Anda. Di bawahTag dan buat, lakukan hal berikut

262

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

a. Perluas bagianTag.b. PilihTambahkan tanda.c. Masukkan kunci dan nilai untuk tanda tersebut.

11. Tinjau konfigurasi Anda, dan pilih Buat penyeimbang beban.

Buat aturan grup keamanan untuk instans kontainer AndaSetelah Application Load Balancer Anda dibuat, Anda harus menambahkan aturan masuk ke grupkeamanan instans kontainer yang mengizinkan lalu lintas dari penyeimbang beban untuk mencapaikontainer.

Untuk mengizinkan lalu lintas masuk dari penyeimbang beban Anda ke instans kontainer Anda

1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.2. Di panel navigasi, pilih Grup Keamanan.3. Pilih grup keamanan yang digunakan oleh instans kontainer Anda. Jika Anda membuat instans

kontainer dengan menggunakan wizard menjalankan pertama Amazon ECS, maka grup keamanan inimungkin akan memiliki deskripsi,ECS Diizinkan Port.

4. PilihInboundtab, dan kemudian pilihEdit aturan masuk.5. Untuk Jenis, pilih Semua lalu lintas.6. UntukSumber, pilihKhusus, dan kemudian pilih grup keamanan Application Load Balancer. Aturan ini

mengizinkan semua lalu lintas dari Application Load Balancer untuk mencapai kontainer dalam tugasyang terdaftar dengan penyeimbang beban Anda.

7. Untuk menyelesaikan, pilih Simpan.

Membuat layanan Amazon ECSSetelah penyeimbang beban dan grup target Anda dibuat, Anda dapat menentukan grup target dalampenentuan layanan saat membuat layanan. Saat setiap tugas untuk layanan Anda dimulai, kombinasipenampung dan port yang ditentukan dalam penentuan layanan didaftarkan dengan grup target Anda, danlalu lintas dirutekan dari penyeimbang beban ke kontainer tersebut. Untuk informasi selengkapnya, lihatMembuat layanan Amazon ECS (p. 227).

Membuat Network Load BalancerBagian ini memandu Anda untuk melalui proses pembuatan Network Load Balancer diAWS ManagementConsole.

Tentukan penyeimbang beban AndaPertama-tama, sediakan beberapa informasi konfigurasi dasar untuk penyeimbang beban Anda, sepertinama, jaringan, dan listener.

Listener adalah proses yang memeriksa permintaan koneksi. Listener dikonfigurasi dengan protokol danport untuk koneksi frontend (klien ke penyeimbang beban), serta protokol dan port untuk koneksi backend(penyeimbang beban ke instans backend). Dalam contoh ini, Anda mengonfigurasi penyeimbang bebanyang berhadapan dengan Internet di jaringan yang dipilih dengan listener yang menerima lalu lintas TCPpada port 80.

Untuk menentukan penyeimbang beban Anda

1. Buka konsol Amazon EC2 di https://console.aws.amazon.com/ec2/.2. Dari bilah navigasi, pilih wilayah untuk penyeimbang beban Anda. Pastikan untuk memilih wilayah

yang sama dengan yang Anda pilih untuk instans kontainer Amazon ECS Anda.

263

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat penyeimbang beban

3. Di panel navigasi, di bawah PENYEIMBANGAN BEBAN, pilih Penyeimbang Beban.4. Pilih Buat Penyeimbang Beban.5. PadaPilih tipe penyeimbang bebanhalaman, pilihBuatdi bawahNetwork Load Balancer.6. Selesaikan halaman Konfigurasikan Penyeimbang Beban sebagai berikut:

a. Untuk Nama, ketikkan nama untuk penyeimbang beban Anda.b. Untuk Skema, pilih salah satu dari berhadapan dengan internet atau internal. Penyeimbang beban

yang berhadapan dengan internet merutekan permintaan dari klien melalui internet ke target.Penyeimbang beban internal merutekan permintaan ke target menggunakan alamat IP privat.

c. Untuk Listeners, defaultnya adalah listener yang menerima lalu lintas TCP pada port 80. Andadapat mempertahankan pengaturan listener default, memodifikasi protokol atau port listener, ataumemilih Tambahkan listener untuk menambahkan listener lainnya.

d. UntukAvailability Zone, pilih VPC yang Anda gunakan untuk instans Amazon EC2 Anda. Untuksetiap Availability Zone yang Anda gunakan untuk meluncurkan instans Amazon EC2 Anda, pilihAvailability Zone lalu pilih subnet publik untuk Availability Zone tersebut. Untuk mengaitkan alamatIP Elastis dengan subnet, pilih alamat tersebut dari IP Elastis.

e. Pilih Next: Configure Routing.

Konfigurasikan peruteanAnda mendaftarkan target, seperti instans Amazon EC2, dengan grup target. Grup target yang Andakonfigurasikan dalam langkah ini digunakan sebagai grup target dalam aturan listener, yang meneruskanpermintaan ke grup target. Untuk informasi selengkapnya, lihatGrup Target untuk Penyeimbang BebanJaringan AndadiPanduan Pengguna untuk Penyeimbang Beban Jaringan.

Untuk mengonfigurasi grup target Anda

1. Untuk Grup target, biarkan tetap default, Grup target baru.2. Untuk Nama, ketikkan nama untuk grup target.3. Atur Protokol dan Port sesuai kebutuhan.4. Untuk Jenis target, pilih apakah akan mendaftarkan target Anda dengan ID instans atau alamat IP.

Important

Jika definisi tugas layanan Anda menggunakanawsvpcmode jaringan (yang diperlukan untukjenis peluncuran Fargate), Anda harus memilihipsebagai tipe target, bukaninstance. Halini karena tugas yang menggunakanawsvpcMode jaringan terkait dengan elastic networkinterface, bukan instans Amazon EC2.Anda tidak dapat mendaftarkan instans berdasarkan ID instans jika mereka memiliki jenisinstans berikut: C1, CC1, CC2, CR1, CR1, CR1, G2, G2, G2, G2, M2, M2, M2, M2, M2, M2,M2, M2, M2, M Anda dapat mendaftarkan instans tipe ini berdasarkan alamat IP.

5. Untuk Pemeriksaan kondisi, pertahankan pengaturan pemeriksaan kondisi default.6. Pilih Next: Register Targets.

Daftarkan target dengan grup targetPenyeimbang beban Anda mendistribusikan lalu lintas antara target yang terdaftar ke grup targetnya.Saat Anda mengaitkan grup target ke layanan Amazon ECS, kontainer Amazon ECS secara otomatismendaftarkan dan membatalkan pendaftaran kontainer dengan grup target Anda. Karena Amazon ECSmenangani pendaftaran target, maka Anda tidak menambahkan target ke grup target Anda saat ini.

Melewati pendaftaran target

1. Di bagian Instans terdaftar, pastikan bahwa tidak ada instans yang dipilih untuk pendaftaran.

264

Amazon ECS Panduan Pengguna untuk AWS FargateMendaftarkan beberapa grup target dengan layanan

2. Pilih Berikutnya: Tinjauuntuk pergi ke halaman berikutnya di wizard.

Tinjau dan buatTinjau penyeimbang beban dan konfigurasi grup target Anda, dan kemudian pilih Buat untuk membuatpenyeimbang beban Anda.

Membuat layanan Amazon ECSSetelah penyeimbang beban dan grup target Anda dibuat, Anda dapat menentukan grup target dalampenentuan layanan saat membuat layanan. Saat setiap tugas untuk layanan Anda dimulai, kombinasipenampung dan port yang ditentukan dalam penentuan layanan didaftarkan dengan grup target Anda, danlalu lintas dirutekan dari penyeimbang beban ke kontainer tersebut. Untuk informasi selengkapnya, lihatMembuat layanan Amazon ECS (p. 227).

Mendaftarkan beberapa grup target dengan layananLayanan Amazon ECS Anda dapat menayangkan lalu lintas dari beberapa penyeimbang beban danmengekspos beberapa port yang diseimbangkan beban saat Anda menentukan beberapa grup targetdalam ketentuan layanan.

Untuk membuat layanan yang menetapkan beberapa grup target, Anda harus membuat layananmenggunakan API Amazon ECS, SDK,AWS CLI, atauAWS CloudFormationtemplat. Setelah layanandibuat, Anda dapat melihat layanan dan grup target yang terdaftar dengan AWS Management Console.Anda harus menggunakanUpdateServiceuntuk memodifikasi konfigurasi penyeimbang beban darilayanan yang sudah ada.

Beberapa grup target dapat ditentukan dalam penentuan layanan menggunakan format berikut. Untuksintaksis lengkap penentuan layanan, lihat Templat definisi layanan (p. 226).

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"container_name", "containerPort":container_port }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"container_name", "containerPort":container_port }]

Pertimbangan beberapa grup targetHal-hal berikut harus dipertimbangkan saat Anda menentukan beberapa grup target dalam penentuanlayanan.

• Untuk layanan yang menggunakan Application Load Balancer atau Penyeimbang Beban Jaringan, Andatidak dapat melampirkan lebih dari lima grup target ke layanan.

• Penentuan beberapa grup target dalam penentuan layanan hanya didukung dalam kondisi berikut:• Layanan harus menggunakan Application Load Balancer atau Network Load Balancer.• Layanan harus menggunakan tipe pengendali deployment (ECS) pembaruan bergulir.

265

Amazon ECS Panduan Pengguna untuk AWS FargateMendaftarkan beberapa grup target dengan layanan

• Penentuan beberapa grup target didukung untuk layanan yang berisi tugas menggunakan tipepeluncuran Fargate maupun EC2.

• Saat membuat layanan yang menetapkan beberapa grup target, peran tertaut layanan Amazon ECSharus dibuat. Peran dibuat dengan menghilangkan parameter role dalam permintaan API, atau propertiRole di AWS CloudFormation. Untuk informasi selengkapnya, lihat Peran tertaut layanan untuk AmazonECS (p. 356).

Contoh penentuan layananBerikut adalah beberapa contoh kasus penggunaan untuk menentukan beberapa grup target dalampenentuan layanan. Untuk sintaksis penentuan layanan lengkap, lihat Templat definisi layanan (p. 226).

Contoh: Memiliki penyeimbang beban terpisah untuk lalu lintas internal daneksternalDalam kasus penggunaan berikut, layanan menggunakan dua penyeimbang beban terpisah, satu untuklalu lintas internal dan yang kedua untuk lalu lintas yang berhadapan dengan internet, untuk kontainer danport yang sama.

"loadBalancers":[ //Internal ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"nginx", "containerPort":8080 }, //Internet-facing ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"nginx", "containerPort":8080 }]

Contoh: Mengekspos beberapa port dari wadah yang samaDalam kasus penggunaan berikut, layanan menggunakan satu penyeimbang beban, akan tetapimengekspos beberapa port dari kontainer yang sama. Misalnya, kontainer Jenkins mungkin mengeksposport 8080 untuk antarmuka web Jenkins dan port 50000 untuk API.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"jenkins", "containerPort":8080 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"jenkins", "containerPort":50000 }

266

Amazon ECS Panduan Pengguna untuk AWS FargatePenskalaan otomatis layanan

]

Contoh: Mengekspos port dari beberapa kontainerDalam kasus penggunaan berikut, layanan menggunakan satu penyeimbang beban dan dua grup targetuntuk mengekspos port dari kontainer terpisah.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"webserver", "containerPort":80 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"database", "containerPort":3306 }]

Penskalaan otomatis layananPenskalaan Otomatisadalah kemampuan untuk menambah atau mengurangi jumlah tugas yangdiinginkan di layanan Amazon ECS Anda secara otomatis. Amazon ECS memanfaatkan layananPenskalaan Application Auto Scaling untuk menyediakan fungsionalitas ini. Untuk informasi selengkapnya,lihatPanduan Pengguna Auto Scaling Aplikasi.

Amazon ECS menerbitkan CloudWatch metrik dengan rata-rata penggunaan CPU dan memori layananAnda. Untuk informasi selengkapnya, lihat Pemanfaatan layanan (p. 300). Anda dapat menggunakanini dan lainnya CloudWatch metrik untuk menskalakan keluar layanan Anda (menambahkan lebih banyaktugas) guna menangani permintaan yang tinggi pada jam-jam sibuk, dan untuk menskalakan kedalamlayanan Anda (menjalankan lebih sedikit tugas) untuk mengurangi biaya selama periode pemanfaatan yangrendah.

Amazon ECS Service Auto Scaling mendukung tipe penskalaan otomatis berikut:

• Kebijakan penskalaan pelacakan target (p. 269)—Tambahkan atau kurangi jumlah tugas yangdijalankan oleh layanan Anda berdasarkan nilai target untuk metrik tertentu. Hal itu serupa dengan caratermostat mempertahankan suhu rumah Anda. Anda memilih suhu dan termostat melakukan sisanya.

• Kebijakan penskalaan langkah (p. 274)—Meningkatkan atau mengurangi jumlah tugas yang dijalankanlayanan berdasarkan serangkaian penyesuaian penskalaan, yang disebut penyesuaian langkah, yangbervariasi berdasarkan ukuran pelanggaran alarm.

• Penskalaan Terjadwal—Meningkatkan atau mengurangi jumlah tugas yang dijalankan oleh layanan Andaberdasarkan tanggal dan waktu.

penskalaan otomatis dan deployment layananPenskalaan Otomatis menonaktifkan proses penskalaan kedalam sementara deployment Amazon ECSsedang berlangsung. Namun, proses penskalaan keluar terus terjadi, kecuali ditangguhkan, selamadeployment. Jika Anda ingin menangguhkan proses penskalaan keluar saat deployment dalam progres,lakukan langkah-langkah berikut.

267

Amazon ECS Panduan Pengguna untuk AWS FargateDiperlukan izin IAM untuk penskalaan auto layanan

1. Memanggilmenjelaskan-scalable-targetperintah, menentukan ID sumber daya layanan ECS yangterkait dengan target yang dapat diskalakan di Application Auto Scaling (Contoh: service/default/sample-webapp). Catat outputnya. Anda akan membutuhkannya saat memanggil perintahberikutnya.

2. Panggil perintah register-scalable-target, menentukan ID sumber daya, namespace, dan dimensiyang dapat diskalakan. Tentukan true, baik untuk DynamicScalingInSuspended maupunDynamicScalingOutSuspended.

3. Setelah deployment selesai, Anda dapat memanggil perintah register-scalable-target untukmelanjutkan penskalaan.

Untuk informasi lebih lanjut, lihat Menangguhkan dan melanjutkan penskalaan untuk Application AutoScaling.

Diperlukan izin IAM untuk penskalaan auto layananPenskalaan otomatis layanan dimungkinkan dengan kombinasi Amazon ECS, CloudWatch, dan APIApplication Auto Scaling. Layanan dibuat dan diperbarui dengan Amazon ECS, alarm dibuat denganCloudWatch, dan kebijakan penskalaan dibuat dengan Application Auto Scaling.

Selain izin IAM standar untuk membuat dan memperbarui layanan, pengguna IAM yang mengaksespengaturan Service Auto Scaling harus memiliki izin yang sesuai untuk layanan yang mendukungpenskalaan dinamis. Pengguna IAM harus memiliki izin untuk menggunakan tindakan yang ditunjukkandalam contoh kebijakan berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:*", "ecs:DescribeServices", "ecs:UpdateService", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarmHistory", "cloudwatch:DescribeAlarmsForMetric", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "cloudwatch:DisableAlarmActions", "cloudwatch:EnableAlarmActions", "iam:CreateServiceLinkedRole", "sns:CreateTopic", "sns:Subscribe", "sns:Get*", "sns:List*" ], "Resource": [ "*" ] } ]}

ParameterBuat Contoh Layanan (p. 346)danPembaruan Contoh Layanan (p. 347)Contoh kebijakanIAM menunjukkan izin yang diperlukan bagi pengguna IAM untuk menggunakan Service Auto ScalingdiAWS Management Console.

268

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan pelacakan target

Layanan Application Auto Scaling juga memerlukan izin untuk menjelaskan layanan Amazon ECSAnda dan CloudWatch alarm, dan izin untuk memodifikasi jumlah layanan yang diinginkan atasnama Anda. Parametersns:izin adalah untuk pemberitahuan yang CloudWatch mengirimkan ketopik Amazon SNS ketika ambang batas telah terlampaui. Jika Anda menggunakan penskalaanotomatis untuk layanan Amazon ECS, penskalaan otomatis akan menciptakan peran tertaut layananbernamaAWSServiceRoleForApplicationAutoScaling_ECSService. Peran tertaut layanan inimemberikan izin Application Auto Scaling untuk mendeskripsikan alarm untuk kebijakan Anda, memantaujumlah tugas layanan yang berjalan saat ini, dan mengubah jumlah layanan yang diinginkan. PeranAmazon ECS terkelola asli untuk Application Auto Scaling adalahecsAutoscaleRole, tetapi tidak lagidiperlukan. Peran tertaut-layanan adalah peran default untuk Application Auto Scaling. Untuk informasiselengkapnya, lihat Peran yang ditautkan dengan layanan untuk Application Auto Scaling dalam PanduanPengguna Application Auto Scaling.

Kebijakan penskalaan pelacakan targetDengan kebijakan penskalaan pelacakan target, Anda memilih metrik dan menetapkan nilai target. AmazonECS Service Auto Scaling membuat dan mengelola CloudWatch alarm yang memicu kebijakan penskalaandan menghitung penyesuaian penskalaan berdasarkan metrik dan nilai target. Kebijakan penskalaanmenambahkan atau menghapus tugas layanan sebagaimana diperlukan untuk menjaga metrik pada,atau mendekati nilai target yang ditentukan. Selain menjaga agar metrik tetap mendekati nilai target,kebijakan penskalaan pelacakan target juga menyesuaikan dengan fluktuasi metrik akibat pola beban yangberfluktuasi, serta meminimalkan fluktuasi yang cepat dalam jumlah tugas yang berjalan di layanan Anda.

Pertimbangan-pertimbanganPerhatikan pertimbangan berikut.

• Kebijakan penskalaan pelacakan target mengasumsikan bahwa itu harus melakukan penskalaan keluarsaat metrik yang ditentukan berada di atas nilai target. Anda tidak dapat menggunakan kebijakanpenskalaan pelacakan target untuk menskalakan keluar jika metrik yang ditentukan berada di bawah nilaitarget.

• Kebijakan penskalaan pelacakan target tidak melakukan penskalaan saat metrik yang ditentukan tidakmemiliki data yang mencukupi. Kebijakan penskalaan pelacakan target tidak melakukan penskalaankedalam karena tidak menafsirkan data yang tidak mencukupi sebagai pemanfaatan yang rendah.

• Anda mungkin melihat kesenjangan antara nilai target dan titik data metrik yang aktual. Hal ini karenaService Auto Scaling selalu bertindak konservatif dengan membulatkan ke atas atau ke bawah saatmenentukan berapa banyak kapasitas yang dapat ditambahkan atau dihapus. Hal ini mencegahnyamenambahkan kapasitas yang tidak mencukupi atau membuang terlalu banyak kapasitas.

• Untuk memastikan ketersediaan aplikasi, layanan menskalakan keluar secara proporsional ke dalammetrik secepat mungkin, namun penskalaan kedalam meningkat secara bertahap.

• Penskalaan Otomatis menonaktifkan proses penskalaan kedalam sementara deployment AmazonECS sedang berlangsung. Namun, proses penskalaan keluar terus terjadi, kecuali ditangguhkan,selama deployment. Untuk informasi selengkapnya, lihat penskalaan otomatis dan deploymentlayanan (p. 267).

• Anda dapat memiliki beberapa kebijakan penskalaan pelacakan target untuk layanan Amazon ECS,asalkan masing-masing kebijakan tersebut menggunakan metrik yang berbeda. Tujuan Layanan AutoScaling adalah untuk selalu memrioritaskan ketersediaan, sehingga perilakunya berbeda tergantungpada apakah kebijakan pelacakan target siap untuk diperkecil atau diperkecil. Ia akan menskalakankeluar layanan jika salah satu kebijakan pelacakan target siap untuk diskalakan keluar, akan tetapi akanmenskalakan kedalam hanya jika semua kebijakan pelacakan target (dengan porsi penskalaan kedalamdiaktifkan) siap untuk diskalakan kedalam.

• Jangan mengedit atau menghapus CloudWatch Alarm yang dikelola Layanan Auto Scaling untukkebijakan penskalaan pelacakan target. Auto Scaling menghapus alarm secara otomatis saat Andamenghapus kebijakan penskalaan.

269

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan pelacakan target

Tutorial: Penskalaan auto layanan dengan pelacakan targetProsedur berikut membantu Anda membuat klaster Amazon ECS dan layanan yang menggunakanpelacakan target untuk menskalakan keluar (dan masuk) secara otomatis berdasarkan permintaan.

Dalam tutorial ini, Anda menggunakan wizard yang dijalankan pertama Amazon ECS untuk membuatklaster dan layanan yang berjalan di belakang penyeimbang beban Elastic Load Balancing. KemudianAnda mengonfigurasi kebijakan penskalaan pelacakan target yang menskalakan layanan Anda secaraotomatis berdasarkan beban aplikasi saat ini, yang diukur dengan pemanfaatan CPU layanan (darilayananECS, ClusterName, ServiceNamekategori di CloudWatch).

Saat pemanfaatan CPU rata-rata layanan Anda meningkat di atas 75% (artinya lebih dari 75% CPU yangdisimpan untuk layanan sedang digunakan), maka alarm skala akan memicu Service Auto Scaling untukmenambahkan tugas lain ke layanan Anda, yaitu membantu terkait beban yang meningkat. Sebaliknya,saat pemanfaatan CPU rata-rata layanan Anda turun di bawah pemanfaatan target untuk jangka waktuyang berkelanjutan, maka alarm penskalaan kedalam akan memicu penurunan jumlah yang diinginkanlayanan untuk mengosongkan sumber daya klaster tersebut untuk tugas dan layanan lain.

PrasyaratTutorial ini mengasumsikan bahwa Anda menggunakan kredensi administrator, dan Anda memiliki key pairAmazon EC2 di wilayah saat ini. Jika Anda tidak memiliki sumber daya ini, atau Anda tidak yakin, makaAnda dapat membuatnya dengan mengikuti langkah-langkah di Siapkan untuk menggunakan AmazonECS (p. 4).

Langkah 1: Membuat sebuah klaster dan layananMulailah dengan membuat klaster dan layanan menggunakan wizard lari pertama Amazon ECS. Wizardyang dijalankan pertama kali menangani pembuatan role IAM yang diperlukan untuk tutorial ini, grupAuto Scaling untuk instans kontainer Anda, dan layanan yang berjalan di belakang penyeimbang beban.Wizard juga membuat proses pembersihan menjadi lebih mudah, karena Anda dapat menghapus seluruhtumpukan AWS CloudFormation dalam satu langkah.

Untuk tutorial ini, Anda membuat sebuah klaster yang disebut service-autoscaling dan layanan yangdisebut sample-webapp.

Untuk membuat klaster dan layanan Anda

1. Buka wizard Amazon ECShttps://console.aws.amazon.com/ecs/home#/firstRun.2. Di bilah navigasi, pilih wilayah US East (N. Virginia).3. PadaLangkah 1: Wadah dan Tugas, untukDefinisi kontainer, pilihaplikasi sampel.4. Untuk Penentuan tugas, biarkan semua opsi tetap default dan pilih Selanjutnya.5. PadaLangkah 2: Layanan, untukTipe penyeimbang beban, pilihApplication Load Balancer,Selanjutnya.

Important

Application Load Balancers mengeluarkan biaya saat mereka ada di AndaAWSsumber daya.Untuk informasi lebih lanjut, lihat Harga Elastic Load Balancing.

6. PadaLangkah 3: Kluster, untukNama klaster, masukkanservice-autoscalingdan pilihSelanjutnya.7. Tinjau pilihan Anda dan kemudian pilih Buat.

Anda akan diarahkan ke halaman Status Peluncuran yang menunjukkan status peluncuran Anda sertamenjelaskan setiap langkah proses (ini dapat memakan waktu beberapa menit untuk menyelesaikansaat sumber daya klaster Anda dibuat dan diisi).

270

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan pelacakan target

8. Saat klaster dan layanan Anda dibuat, pilih Lihat layanan.

Langkah 2: Mengonfigurasi penskalaan auto layananSekarang setelah Anda meluncurkan klaster dan membuat layanan di klaster yang berjalan di belakangpenyeimbang beban, Anda dapat menggunakan Service Auto Scaling dengan membuat kebijakanpenskalaan pelacakan target.

Untuk mengkonfigurasi parameter Service Auto Scaling dasar

1. Pada halaman Layanan: sample-app-service, konfigurasi layanan Anda akan terlihat mirip dengangambar di bawah ini, meskipun revisi penentuan tugas dan nama penyeimbang beban cenderungberbeda. Pilih Perbarui untuk memperbarui layanan baru Anda.

2. PadaLayanan pembaruanhalaman, pilihLangkah selanjutnyasampai Anda sampaiLangkah 3:Mengatur Auto Scaling (opsional).

3. UntukAuto Scaling, pilihKonfigurasikan Auto Scaling Layanan untuk menyesuaikan jumlah layananyang diinginkan.

271

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan pelacakan target

4. UntukJumlah minimum tugas, masukkan1untuk batas bawah jumlah tugas yang akan digunakan olehService Auto Scaling. Jumlah yang diinginkan layanan Anda tidak secara otomatis disesuaikan dibawah jumlah ini.

5. Untuk Jumlah tugas yang diinginkan, bidang ini sudah diisi sebelumnya dengan nilai yang Andamasukkan sebelumnya. Nilai ini harus berada di antara jumlah tugas minimum dan maksimum yangditentukan di halaman ini. Biarkan nilai ini tetap 1.

6. UntukJumlah maksimum tugas, masukkan2untuk batas atas jumlah tugas yang akan digunakan olehService Auto Scaling. Jumlah yang diinginkan layanan Anda tidak secara otomatis disesuaikan di atasjumlah ini.

7. Untuk IAM role untuk Auto Scaling Layanan, pilih ecsAutoscaleRole. Jika peran ini tidak ada, makapilih Buat peran baru agar konsol membuatkannya untuk Anda.

Untuk mengonfigurasi kebijakan penskalaan pelacakan target untuk layanan Anda

1. Pilih Tambahkan kebijakan penskalaan untuk mengonfigurasi kebijakan penskalaan Anda.2. Pada halaman Tambahkan kebijakan, perbarui bidang berikut:

a. Untuk Jenis kebijakan penskalaan, pilih Pelacakan target.b. Untuk Nama kebijakan, masukkan TargetTrackingPolicy.c. Untuk Metrik layanan ECS, pilih ECSServiceAverageCPUUtilization.d. Untuk Nilai target, masukkan 75.e. Untuk Periode pendinginan penskalaan keluar, masukkan 60 detik. Aktivitas penskalaan keluar

meningkatkan jumlah tugas layanan Anda. Selama periode pendinginan penskalaan keluarberlaku, maka kapasitas yang telah ditambahkan oleh aktivitas penskalaan keluar sebelumnyayang memulai pendinginan dihitung sebagai bagian dari kapasitas yang diinginkan untukpenskalaan keluar selanjutnya. Tujuannya adalah untuk terus menskalakan keluar (namun tidakberlebihan).

f. Untuk Periode pendinginan penskalaan kedalam, masukkan 60 detik. Aktivitas penskalaankedalam mengurangi jumlah tugas layanan Anda. Periode pendinginan penskalaan kedalamdigunakan untuk memblokir permintaan penskalaan kedalam berikutnya hingga habis masaberlakunya. Tujuannya adalah untuk menskalakan kedalam secara konservatif guna melindungiketersediaan aplikasi Anda. Namun, jika alarm lain memicu aktivitas penskalaan naik selamaperiode jeda pakai setelah penskalaan turun, Service Auto Scaling langsung melakukanpenskalaan terhadap target yang dapat diskalakan.

g. Pilih Simpan.3. Pilih Langkah selanjutnya.4. Tinjau semua pilihan Anda dan kemudian pilih Perbarui Layanan.5. Saat status layanan Anda selesai diperbarui, pilih Lihat Layanan.

Langkah 3: Memicu aktivitas penskalaanSetelah layanan Anda dikonfigurasi dengan Service Auto Scaling, Anda dapat memicu aktivitas penskalaandengan mendorong pemanfaatan CPU layanan Anda ke dalamALARMstatus. Karena contoh dalam tutorialini adalah aplikasi web yang berjalan di belakang penyeimbang beban, Anda dapat mengirim ribuanpermintaan HTTP ke layanan Anda (menggunakan penyeimbang beban ApacheBench utilitas) untuklonjakan pemanfaatan CPU layanan di atas jumlah ambang batas. Lonjakan ini akan memicu alarm, yangpada gilirannya akan memicu aktivitas penskalaan untuk menambahkan satu tugas ke layanan Anda.

Setelah ApacheBench utilitas menyelesaikan permintaan, pemanfaatan CPU layanan akan turun di bawahambang batas 75% Anda, memicu aktivitas penskalaan kedalam yang mengembalikan jumlah layananyang diinginkan ke 1.

272

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan pelacakan target

Untuk memicu aktivitas penskalaan untuk layanan Anda

1. Dari halaman tampilan utama layanan Anda di konsol, pilih nama penyeimbang beban untukmelihat detailnya di konsol Amazon EC2. Anda memerlukan nama DNS penyeimbang beban,yang seharusnya akan terlihat seperti EC2Contai-EcsElast-SMAKV74U23PH-96652279.us-east-1.elb.amazonaws.com.

2. Menggunakan ApacheBench (ab) untuk membuat ribuan permintaan HTTP ke penyeimbang bebanAnda dalam waktu singkat.

Note

Perintah ini diinstal secara default di macOS, dan juga tersedia untuk banyak distribusi Linux.Misalnya, Anda dapat menginstalabdi Amazon Linux dengan perintah berikut:

$ sudo yum install -y httpd24-tools

Jalankan perintah berikut, dengan mengganti nama DNS penyeimbang beban Anda.

$ ab -n 100000 -c 1000 http://EC2Contai-EcsElast-SMAKV74U23PH-96652279.us-east-1.elb.amazonaws.com/

3. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.4. Di panel navigasi kiri, pilih Alarm.5. MenungguabPermintaan HTTP untuk memicu alarm penskalaan keluar di CloudWatch konsol. Anda

akan melihat penskalaan layanan Amazon ECS Anda dan menambahkan satu tugas ke jumlahlayanan yang diinginkan.

6. Tak lama setelah permintaan HTTP ab Anda selesai (antara 1 hingga 2 menit), skala di alarm Andaakan terpicu, dan kebijakan penskalaan kedalam mengurangi jumlah yang diinginkan layanan Andakembali ke 1.

Langkah 4: Langkah selanjutnyaPergi ke langkah selanjutnya jika Anda ingin menghapus infrastruktur dasar yang baru saja Anda buatuntuk tutorial ini. Jika tidak, Anda dapat menggunakan infrastruktur ini sebagai dasar Anda dan mencobasatu atau beberapa hal berikut:

• Untuk melihat aktivitas penskalaan ini dari konsol Amazon ECS, pilihPeristiwatab layanan. Saat kejadianpenskalaan terjadi, Anda melihat pesan informasi di sini. Misalnya:

Message: Successfully set desired count to 1. Change successfully fulfilled by ecs. Cause: monitor alarm TargetTracking-service/service-autoscaling/sample-webapp-AlarmLow-fcd80aef-5161-4890-aeb4-35dde11ff42c in state ALARM triggered policy TargetTrackingPolicy

• Jika Anda CloudWatch Wawasan Kontainer yang disiapkan dan mengumpulkan metrik AmazonECS, Anda dapat melihat data metrik di CloudWatch dasbor otomatis. Untuk informasi selengkapnya,lihatMemperkenalkan Amazon CloudWatch Wawasan Kontainer untuk Amazon ECSdiAWSBlogkomputasi.

• Pelajari cara menyiapkan CloudWatch Wawasan Kontainer. Biaya tambahan berlaku. Untuk informasiselengkapnya, lihat Amazon ECS CloudWatch Wawasan Wadah (p. 314) dan Memperbaruipengaturan klaster (p. 80).

273

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan langkah

Langkah 5: MembersihkanSaat Anda menyelesaikan tutorial ini, Anda dapat memilih untuk mempertahankan klaster, grup AutoScaling, penyeimbang beban, kebijakan penskalaan pelacakan target, dan CloudWatch alarm. Namun,jika Anda tidak secara aktif menggunakan sumber daya ini, maka Anda harus mempertimbangkan untukmembersihkannya sehingga akun Anda tidak dikenakan biaya yang tidak perlu.

Untuk menghapus klaster Anda

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi di sebelah kiri, pilih Klaster.3. Pada halaman Klaster, pilih klaster service-autoscalingkluster.4. Pilih Hapus Klaster, Hapus. Mungkin perlu waktu beberapa menit hingga tumpukan AWS

CloudFormation klaster selesai dibersihkan.

Kebijakan penskalaan langkahMeskipun penskalaan otomatis layanan Amazon ECS mendukung kebijakan penskalaan langkahApplication Auto Scaling, sebaiknya gunakan kebijakan penskalaan pelacakan target. Misalnya, jika Andaingin menskalakan layanan saat pemanfaatan CPU turun di bawah atau naik di atas level tertentu, buatkebijakan penskalaan pelacakan target berdasarkan metrik pemanfaatan CPU yang disediakan olehAmazon ECS. Untuk informasi selengkapnya, lihat Kebijakan penskalaan pelacakan target (p. 269).

Dengan kebijakan penskalaan langkah, Anda membuat dan mengelola CloudWatch alarm yang memicuproses penskalaan. Jika alarm pelacakan target tidak berfungsi untuk kasus penggunaan Anda, makaAnda dapat menggunakan penskalaan langkah. Anda juga dapat menggunakan penskalaan pelacakantarget dengan penskalaan langkah untuk konfigurasi kebijakan penskalaan lanjutan. Misalnya, Anda dapatmengonfigurasi respons yang lebih agresif saat pemanfaatan mencapai tingkat tertentu.

Pertimbangan Auto Scaling LayananSaat menggunakan kebijakan penskalaan, perhatikan pertimbangan berikut:

• Amazon ECS mengirimkan metrik dalam interval 1 menit ke CloudWatch. Metrik tidak tersedia hinggaklaster dan layanan mengirim metrik ke CloudWatch, dan Anda tidak dapat membuat CloudWatch alarmuntuk metrik yang belum ada.

• Kebijakan penskalaan mendukung periode pendinginan. Ini adalah jumlah detik untuk menunggu hinggaaktivitas penskalaan sebelumnya berlaku.• Dengan kebijakan penskalaan, tujuannya adalah untuk terus menerus (tetapi tidak berlebihan)

menskalakan naik. Setelah Service Auto Scaling berhasil menskalakan keluar menggunakan kebijakanpenskalaan, maka mulai menghitung waktu jeda pakai. Kebijakan penskalaan tidak akan lagimeningkatkan kapasitas yang diinginkan kecuali jika penskalaan keluar yang lebih besar dipicu atauperiode pendinginan berakhir. Selama periode pendinginan penskalaan keluar berlaku, kapasitas yangditambahkan dengan cara memulai aktivitas penskalaan keluar dihitung sebagai bagian dari kapasitasyang diinginkan untuk aktivitas penskalaan keluar berikutnya.

• Untuk kejadian penskalaan kedalam, tujuannya adalah untuk melakukan penskalaan kedalam secarakonservatif guna melindungi ketersediaan aplikasi Anda, sehingga aktivitas penskalaan kedalamdiblokir hingga periode pendinginan berakhir. Namun, jika alarm lain memicu aktivitas penskalaan naikselama periode pendinginan penskalaan turun, Service Auto Scaling langsung melakukan penskalaannaik terhadap target. Dalam hal ini, periode pendinginan penskalaan kedalam berhenti dan tidakselesai.

• Penjadwal layanan ECS menghormati jumlah yang diinginkan setiap saat, namun selama Anda memilikikebijakan penskalaan aktif dan alarm pada layanan, Layanan Auto Scaling dapat mengubah jumlah yangdiinginkan yang Anda atur secara manual.

274

Amazon ECS Panduan Pengguna untuk AWS FargateKebijakan penskalaan langkah

• Jika jumlah yang diinginkan layanan diatur di bawah nilai kapasitas minimalnya, dan alarm memicuaktivitas penskalaan keluar, maka Service Auto Skalaan jumlah yang diinginkan hingga nilai kapasitasminimal, dan kemudian melanjutkan penskalaan keluar sesuai kebutuhan, berdasarkan kebijakanpenskalaan yang terkait dengan alarm. Namun, kegiatan penskalaan kedalam tidak menyesuaikanjumlah yang diinginkan, karena sudah di bawah nilai kapasitas minimal.

• Jika jumlah yang diinginkan layanan diatur di atas nilai kapasitas maksimalnya, dan alarm memicuaktivitas Auto Scaling kedalam, berdasarkan kebijakan penskalaan yang terkait dengan alarm. Namun,aktivitas penskalaan keluar tidak menyesuaikan jumlah yang diinginkan, karena sudah di atas nilaikapasitas maksimal.

• Selama aktivitas penskalaan, jumlah tugas berjalan yang aktual dalam layanan adalah nilai yangdigunakan Layanan Auto Scaling sebagai titik awalnya, dibandingkan dengan jumlah yang diinginkan,yang merupakan kapasitas pemrosesan yang seharusnya. Hal ini mencegah penskalaan yangberlebihan (runaway) yang tidak dapat dipenuhi, misalnya, jika tidak ada sumber daya instanskontainer yang cukup untuk menempatkan tugas tambahan. Jika nantinya kapasitas instans kontainertersedia, maka aktivitas penskalaan yang tertunda kemungkinan akan berhasil, dan kemudian aktivitaspenskalaan lebih lanjut dapat diteruskan setelah periode pendinginan.

• Jika Anda ingin jumlah tugas Anda menskalakan ke nol saat tidak ada pekerjaan yang harusdiselesaikan, maka atur kapasitas minimalnya adalah 0. Dengan kebijakan penskalaan pelacakantarget, saat kapasitas aktual adalah 0 dan metrik menunjukkan bahwa ada permintaan beban kerja,maka Service Auto Scaling menunggu satu titik data dikirim sebelum menskalaan keluar. Dalamhal ini, penskalaan otomatis layanan akan menskalakan keluar berdasarkan jumlah minimal yangmemungkinkan sebagai titik awal, dan kemudian melanjutkan penskalaan berdasarkan jumlah tugasberjalan yang aktual.

• Penskalaan Otomatis menonaktifkan proses penskalaan kedalam sementara deployment AmazonECS sedang berlangsung. Namun, proses penskalaan keluar terus terjadi, kecuali ditangguhkan,selama deployment. Untuk informasi selengkapnya, lihat penskalaan otomatis dan deploymentlayanan (p. 267).

Pengalaman konsol Amazon ECSAuto Scaling layanan mati secara default. Anda dapat mengaktifkannya dengan mengonfigurasi kebijakanpenskalaan dariAuto Scalingtab layanan Anda diAWS Management Consoleuntuk Amazon ECS.

Untuk step-by-step panduan untuk bekerja dengan kebijakan penskalaan dari konsol, lihatMembuatlayanan Amazon ECS (p. 227)danMemperbarui layanan (p. 239). Untuk panduan pelacakan target, lihatKebijakan penskalaan pelacakan target (p. 269).

Saat Anda mengonfigurasi kebijakan penskalaan untuk layanan di konsol Amazon ECS, layanan Andasecara otomatis terdaftar sebagai target yang dapat diskalakan dengan Application Auto Scaling, dankebijakan penskalaan Anda secara otomatis berlaku segera setelah berhasil dibuat.

AWS CLI dan pengalaman SDKService Auto Scaling dimungkinkan dengan kombinasi Amazon ECS, CloudWatch, dan API ApplicationAuto Scaling. Layanan dibuat dan diperbarui dengan Amazon ECS, alarm dibuat dengan CloudWatch, dankebijakan penskalaan dibuat dengan Application Auto Scaling.

Untuk informasi selengkapnya tentang operasi API spesifik ini, lihatReferensi Amazon Elastic, yangAmazonCloudWatch Referensi API, danReferensi API Auto Scaling Aplikasi. Untuk informasi lebih lanjuttentangAWS CLIperintah untuk layanan ini, lihatecs,CloudWatch, danaplikasi-autoscalingbagianAWSCLIReferensi Perintah.

275

Amazon ECS Panduan Pengguna untuk AWS FargatePenemuan Layanan

Untuk mengonfigurasi kebijakan penskalaan untuk layanan Amazon ECS AndamenggunakanAWS CLI

1. Daftarkan layanan ECS Anda sebagai target yang dapat diskalakan menggunakan perintah register-scalable-target.

2. Buat kebijakan penskalaan menggunakan perintah put-scaling-policy.3. [Penskalaan langkah] Buat alarm yang memicu kebijakan penskalaan menggunakan perintah put-

metric-alarm.

Untuk informasi selengkapnya tentang konfigurasi kebijakan penskalaan menggunakanAWS CLI,lihatPanduan Pengguna Auto Scaling Aplikasi.

Penemuan LayananLayanan Amazon ECS Anda dapat dikonfigurasi secara opsional untuk menggunakan Amazon ECSService Discovery. Penemuan layananAWS Cloud MapTindakan API untuk mengelola ruang namaHTTP dan DNS untuk layanan Amazon ECS Anda. Untuk informasi selengkapnya, lihatApaAWS CloudMap?diAWS Cloud MapPanduan Pengembang.

Penemuan layanan tersedia dalam hal berikutAWSWilayah:

Nama Wilayah Wilayah

AS Timur (Virginia Utara) us-east-1

US East (Ohio) us–east-2

US West (Northern California) us-west-1

US West (Oregon) as-barat-2

Afrika (Cape Town) af-selatan-1

Asia Pasifik (Hong Kong) ap-timur-1

Asia Pasifik (Mumbai) ap-south-1

Asia Pacific (Tokyo) ap-northeast-1

Asia Pacific (Seoul) ap-northeast-2

Asia Pacific (Singapore) ap-southeast-1

Asia Pacific (Sydney) ap-southeast-2

Asia Pacific (Jakarta) ap-southeast-3

Canada (Central) ca-sentral-1

China (Beijing) cn-north-1

China (Ningxia) cn-northwest-1

Europe (Frankfurt) eu-central-1

Europe (Ireland) eu-west-1

Europe (London) eu-west-2

276

Amazon ECS Panduan Pengguna untuk AWS FargateKonsep Penemuan Layanan

Nama Wilayah Wilayah

Europe (Paris) eu-west-3

Eropa (Milan) eu-south-1

Eropa (Stockholm) eu-utara-1

Timur Tengah (Bahrain) me-selatan-1

Amerika Selatan (São Paulo) sa-east-1

AWS GovCloud (US-East) us-gov-east-1

AWS GovCloud (AS-Barat) us-gov-west-1

Konsep Penemuan LayananPenemuan layanan terdiri dari komponen-komponen berikut:

• Namespace Penemuan Layanan: Sekelompok logis layanan penemuan layanan yang berbagi namadomain yang sama, sepertiexample.com. Ini adalah nama domain tempat Anda ingin merutekan lalulintas. Anda dapat membuat namespace dengan panggilan keaws servicediscovery create-private-dns-namespaceperintah atau konsol klasik Amazon ECS. Anda dapat menggunakanawsservicediscovery list-namespacesperintah untuk melihat informasi ringkasan tentang ruangnama yang dibuat oleh akun saat ini. Untuk informasi selengkapnya tentang perintah discovery layanan,lihatcreate-private-dns-namespacedanlist-namespacesdiAWS Cloud Map(penemuanlayanan)AWS CLIPanduan referensi.

• Layanan penemuan layanan: Ada dalam namespace discovery layanan dan terdiri dari nama layanandan konfigurasi DNS untuk namespace. Layanan tersebut menyediakan komponen inti berikut:• Registri layanan: Memungkinkan Anda untuk mencari layanan melalui DNS atauAWS Cloud

MapTindakan API dan mendapatkan kembali satu atau beberapa titik akhir yang tersedia yang dapatdigunakan untuk terkoneksi ke layanan.

• Penemuan instans layanan: Ada dalam layanan discovery layanan dan terdiri dari atribut yang terkaitdengan setiap layanan Amazon ECS di direktori layanan.• Atribut instance: Metadata berikut ditambahkan sebagai atribut kustom untuk setiap layanan Amazon

ECS yang dikonfigurasi untuk menggunakan discovery layanan:• AWS_INSTANCE_IPV4— UntukAcatatan, alamat IPv4 yang Route 53 kembali dalam menanggapi

kueri DNS danAWS Cloud Mapkembali ketika menemukan rincian contoh, misalnya,192.0.2.44.• AWS_INSTANCE_PORT— Nilai port yang terkait dengan layanan penemuan layanan.• AVAILABILITY_ZONE— Availability Zone tempat tugas diluncurkan. Untuk tugas yang

menggunakan tipe peluncuran EC2, itu adalah Availability Zone tempat instans kontainer berada.Untuk tugas yang menggunakan tipe peluncuran Fargate, ini adalah Availability Zone tempat elasticnetwork interface berada.

• REGION— Wilayah tempat tugas ada.• ECS_SERVICE_NAME- Nama layanan Amazon ECS yang menjadi miliknya.• ECS_CLUSTER_NAME- Nama klaster Amazon ECS tempat tugasnya.• EC2_INSTANCE_ID— ID dari contoh kontainer tugas ditempatkan pada. Atribut kustom ini tidak

ditambahkan jika tugas menggunakan tipe peluncuran Fargate.• ECS_TASK_DEFINITION_FAMILY— Keluarga definisi tugas yang tugas menggunakan.• ECS_TASK_SET_EXTERNAL_ID— Jika set tugas dibuat untuk penyebaran eksternal dan dikaitkan

dengan layanan penemuan registri, makaECS_TASK_SET_EXTERNAL_IDatribut akan berisi IDeksternal dari set tugas.

277

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan penemuan layanan

• Pemeriksaan kondisi Amazon ECS: Amazon ECS melakukan pemeriksaan kondisi tingkat kontainersecara berkala. Jika titik akhir tidak lulus pemeriksaan kondisi, maka titik akhir akan dihapus dariperutean DNS dan ditandai dengan kondisi tidak baik.

Pertimbangan penemuan layananHal berikut ini yang harus dipertimbangkan saat menggunakan layanan discovery:

• Penemuan layanan didukung untuk tugas di Fargate yang menggunakan versi platform 1.1.0 atau yanglebih baru. Untuk informasi selengkapnya, lihat AWSVersi platform (p. 55).

• Layanan yang dikonfigurasi untuk menggunakan penemuan layanan memiliki batas 1.000 tugas perlayanan. Hal ini disebabkan oleh kuota layanan Route 53.

• Alur kerja Create Service di konsol Amazon ECS hanya mendukung pendaftaran layanan ke dalamnamespace DNS privat. SaatAWS Cloud Mapnamespace DNS privat dibuat, zona host privat 53 akandibuat secara otomatis.

• Atribut DNS VPC harus dikonfigurasi untuk resolusi DNS yang berhasil. Untuk informasi tentang caramengonfigurasi atribut, lihatDukungan DNS di VPC AndadiPanduan Pengguna Amazon VPC.

• Catatan DNS yang dibuat untuk layanan penemuan layanan selalu mendaftar dengan alamat IP privatuntuk tugas tersebut, bukan alamat IP publik, bahkan saat namespace publik digunakan.

• Penemuan layanan mengharuskan tugas menentukan baikawsvpc,bridge, atauhostMode jaringan(nonetidak didukung).

• Jika definisi tugas layanan menggunakanawsvpcmode jaringan, Anda dapat membuat kombinasicatatan A atau SRV untuk setiap tugas layanan. Jika Anda menggunakan catatan SRV, maka portdiperlukan.

• Jika definisi tugas layanan menggunakanbridgeatauhostmode jaringan, catatan SRV adalah satu-satunya jenis catatan DNS yang didukung. Membuat catatan SRV untuk setiap tugas layanan. CatatanSRV harus menentukan kombinasi nama kontainer dan port kontainer dari penentuan tugas.

• Catatan DNS untuk layanan discovery service dapat dikuerikan dalam VPC Anda. Mereka menggunakanformat berikut: <service discovery service name>.<service discovery namespace>.

• Saat melakukan kueri DNS pada nama layanan, catatan A mengembalikan satu set alamat IP yangsesuai dengan tugas Anda. Catatan SRV mengembalikan satu set alamat IP dan port per tugas.

• Jika Anda memiliki delapan catatan kondisi baik atau kurang dari itu, maka Route 53 menanggapi semuakueri DNS dengan semua catatan kondisi baik.

• Saat semua catatan tidak sehat, Route 53 akan merespons kueri DNS dengan hingga delapan catatanyang tidak sehat.

• Anda dapat mengonfigurasi penemuan layanan untuk layanan ECS yang berada di belakangpenyeimbang beban, namun lalu lintas penemuan layanan selalu dirutekan ke tugas dan bukanpenyeimbang beban.

• Penemuan layanan tidak mendukung penggunaan Classic Load Balancers.• Dianjurkan untuk menggunakan pemeriksaan kondisi tingkat kontainer yang dikelola oleh Amazon ECS

untuk layanan discovery layanan Anda.• HealthCheckCustomConfig—Amazon ECS mengelola pemeriksaan kesehatan atas nama Anda.

Amazon ECS menggunakan informasi dari pemeriksaan kontainer dan kesehatan, serta status tugasAnda, untuk memperbarui kesehatanAWS Cloud Map. Hal ini ditentukan dengan menggunakan--health-check-custom-configparameter saat membuat layanan penemuan layanan Anda. Untukinformasi selengkapnya, lihatHealthCheckCustomConfigdiAWS Cloud MapReferensi API.

• Jika Anda menggunakan konsol Amazon ECS, maka alur kerja akan menciptakan satu layananpenemuan layanan per layanan ECS. Konsol tersebut memetakan semua alamat IP tugas sebagaicatatan A, atau alamat IP tugas dan port sebagai catatan SRV.

• Penemuan layanan hanya dapat dikonfigurasi saat pertama kali membuat layanan. Pembaruan layananyang sudah ada untuk mengonfigurasi penemuan layanan untuk pertama kalinya atau mengubahkonfigurasi saat ini tidak didukung.

278

Amazon ECS Panduan Pengguna untuk AWS FargatePengalaman konsol Amazon ECS

• ParameterAWS Cloud Mapsumber daya yang dibuat saat layanan discovery digunakan harusdibersihkan secara manual.

Pengalaman konsol Amazon ECSAlur kerja pembuatan layanan di konsol Amazon ECS mendukung penemuan layanan. Penemuan layananhanya dapat dikonfigurasi saat pertama kali membuat layanan. Pembaruan layanan yang sudah adauntuk mengonfigurasi penemuan layanan untuk pertama kalinya atau mengubah konfigurasi saat ini tidakdidukung.

Untuk membuat layanan Amazon ECS baru yang menggunakan penemuan layanan, lihatMembuat layananAmazon ECS (p. 227).

Harga Penemuan LayananPelanggan yang menggunakan penemuan layanan Amazon ECS dikenakan biaya untuk sumber dayaRoute 53 danAWS Cloud Mapoperasi API penemuan. Hal ini membutuhkan biaya untuk membuat zonayang di-hosting Route 53 dan kueri ke registri layanan. Untuk informasi selengkapnya, lihatAWS CloudMapHargadiAWS Cloud MapPanduan Pengembang.

Amazon ECS melakukan pemeriksaan kondisi tingkat kontainer dan memaparkannya keAWS CloudMapoperasi API pemeriksaan kustom. Layanan tersebut saat ini tersedia untuk pelanggan tanpa biayatambahan. Jika Anda mengonfigurasi pemeriksaan kondisi jaringan tambahan untuk tugas yang diekspossecara publik, maka Anda akan dikenakan biaya untuk pemeriksaan kondisi tersebut.

Logika throttle layananPenjadwal layanan Amazon ECS menyertakan logika yang membatasi seberapa sering tugas layanandiluncurkan jika berulang kali gagal memulai.

Jika tugas untuk layanan ECS berulang kali gagal memasuki status RUNNING (berprogres langsungdari PENDING ke STOPPED), maka waktu di antara upaya memulai ulang berikutnya secara bertahapditingkatkan hingga maksimal 15 menit. Periode maksimal ini dapat berubah di masa mendatang dan tidakboleh dianggap permanen. Perilaku ini mengurangi efek tugas yang tidak dapat dimulai pada sumber dayaklaster Amazon ECS atau biaya infrastruktur Fargate. Jika layanan Anda memicu logika throttle, makaAnda akan menerima hal berikut Pesan kejadian layanan (p. 465):

(service service-name) is unable to consistently start tasks successfully.

Amazon ECS tidak pernah menghentikan layanan yang gagal untuk mencoba lagi, juga tidak mencobamengubahnya dengan cara apa pun selain meningkatkan waktu di antara memulai ulang. Logika throttlelayanan tidak menyediakan parameter yang dapat disesuaikan oleh pengguna.

Jika Anda memperbarui layanan untuk menggunakan penentuan tugas baru, maka layanan Anda akansegera kembali ke status normal dan bukan di-throttling. Untuk informasi selengkapnya, lihat Memperbaruilayanan (p. 239).

Berikut ini adalah beberapa penyebab umum yang memicu logika tersebut:

• Agen kontainer Amazon ECS tidak dapat menarik citra Docker tugas Anda. Hal ini dapat disebabkanoleh nama citra, citra, atau tanda kontainer yang buruk, atau kurangnya autentikasi atau izin registriprivat. Dalam hal ini, Anda juga melihat CannotPullContainerError di menghentikan kesalahantugas (p. 454).

279

Amazon ECS Panduan Pengguna untuk AWS FargateLogika throttle layanan

Important

Tugas yang dihentikan setelah mencapai status RUNNING tidak memicu logika throttle ataupesan kejadian layanan terkait. Misalnya, jika pemeriksaan kondisi Elastic Load Balancing yanggagal untuk layanan menyebabkan tugas ditandai dengan kondisi tidak baik, dan Amazon ECSmembatalkan pendaftarannya, maka hal tersebut tidak memicu throttle. Bahkan jika perintahkontainer tugas segera keluar dengan kode keluar bukan nol, maka tugas telah dipindahkanke status RUNNING. Tugas yang secara langsung gagal akibat karena kesalahan perintah tidakmemicu throttle atau pesan kejadian layanan.

280

Amazon ECS Panduan Pengguna untuk AWS FargateMenandai Sumber Daya Anda

Sumber daya dan tandaSumber daya Amazon ECS, yang meliputi ketentuan tugas, klaster, tugas, layanan, dan instans kontainer,ditugaskan sebuah Amazon Resource Name (ARN) dan pengidentifikasi (ID) sumber daya unik. Sumberdaya ini dapat ditandai dengan nilai yang Anda tetapkan, guna membantu Anda dalam mengatur danmengidentifikasi sumber daya tersebut.

Topik berikut menyediakan gambaran umum tentang sumber daya dan tanda tersebut, serta menunjukkanbagaimana Anda dapat menggunakannya.

Daftar Isi• Menandai sumber daya Amazon ECS Anda (p. 281)• Service Quotas Amazon ECS (p. 287)• Wilayah yang Didukung untuk Amazon ECS diAWSJauh (p. 291)• Laporan penggunaan Amazon ECS (p. 293)

Menandai sumber daya Amazon ECS AndaUntuk membantu Anda mengelola sumber daya Amazon ECS, Anda dapat menetapkan metadata Andasendiri ke setiap sumber daya menggunakantag. Topik ini memberikan gambaran umum tentang tanda diAmazon ECS dan bagaimana Anda dapat membuatnya.

Untuk menggunakan fitur ini, Anda harus ikut serta ke dalam format Amazon Resource Name (ARN) danpengenal (ID) sumber daya baru. Untuk informasi selengkapnya, lihat Amazon Resource Name (ARN) danID (p. 197).

Important

Jangan menambahkan informasi pengenal pribadi (PII) atau informasi rahasia atau sensitif lainnyadalam tanda. Tag dapat diakses oleh banyak layanan AWS, termasuk penagihan. Tanda tidakdimaksudkan untuk digunakan dalam data privat atau sensitif.

Dasar tandaTanda adalah sebuah label yang Anda tetapkan ke sebuah sumber daya AWS. Setiap tanda terdiri darisebuah kunci dan sebuah nilai opsional, yang keduanya Anda tentukan.

Tanda memungkinkan Anda untuk mengategorikan sumber daya AWS Anda dengan berbagai cara,misalnya, berdasarkan tujuan, pemilik, atau lingkungan. Pengategorian ini berguna ketika Anda memilikibanyak sumber daya dari tipe yang sama. Anda dapat mengidentifikasi sumber daya tertentu dengan cepatberdasarkan tag yang Anda tetapkan padanya. Misalnya, Anda dapat menentukan serangkaian tandauntuk instans kontainer Amazon ECS akun Anda untuk membantu melacak pemilik dan tingkat tumpukaninstans.

Sebaiknya Anda merancang seperangkat kunci tanda yang memenuhi kebutuhan Anda untuk setiap jenissumber daya. Penggunaan seperangkat kunci tanda yang konsisten akan mempermudah Anda dalammengelola sumber daya Anda. Anda dapat mencari dan menyaring sumber daya berdasarkan tanda yangAnda tambahkan.

Tanda tidak memiliki makna semantik bagi Amazon ECS dan diterjemahkan sebagai serangkaian karaktersaja. Selain itu, tanda tidak secara otomatis ditetapkan ke sumber daya Anda. Anda dapat mengedit kunci

281

Amazon ECS Panduan Pengguna untuk AWS FargateMenandai Sumber Daya Anda

dan nilai tanda, dan Anda dapat membuang tanda dari sumber daya kapan saja. Anda dapat mengatur nilaitanda ke string kosong, akan tetapi Anda tidak dapat mengatur nilai tanda ke nol. Jika Anda menambahkantanda yang memiliki kunci yang sama dengan tanda yang ada pada sumber daya tersebut, nilai baru akanmenimpa nilai sebelumnya. Jika Anda menghapus sumber daya, semua tanda untuk sumber daya jugaakan dihapus.

Anda dapat bekerja dengan tanda dengan menggunakanAWS Management Console, yangAWS CLI, danAPI Amazon ECS.

Jika Anda menggunakan AWS Identity and Access Management (IAM), Anda dapat mengontrol penggunapada akun AWS Anda yang memiliki izin untuk mengelola tanda.

Menandai Sumber Daya AndaAnda dapat memberi tag pada tugas, layanan, definisi tugas, dan klaster Amazon ECS.

Important

Jangan menambahkan informasi pengenal pribadi (PII) atau informasi rahasia atau sensitiflainnya dalam tag. Tag dapat diakses oleh banyak layanan AWS, termasuk penagihan. Tag tidakdimaksudkan untuk digunakan dalam data sensitif atau privat.

Jika Anda menggunakan konsol Amazon ECS, Anda dapat menerapkan tanda ke sumber daya baru atauyang sudah ada dengan menggunakanTagtab pada halaman sumber daya yang relevan setiap saat. BilaAnda menggunakan opsi tag yang dikelola Amazon ECS (Propagasi tag darioption), tanda disalin dariketentuan tugas atau layanan ke sebuah tugas. Hal ini dapat dilakukan saat Anda menjalankan tugas ataumembuat layanan.

Jika Anda menggunakan API Amazon ECS,AWS CLI, atauAWSSDK, Anda dapat menerapkan tagke sumber daya baru menggunakantagsparameter pada tindakan API yang relevan. Atau, sebagaialternatif, Anda dapat menggunakan tindakan API TagResource untuk menerapkan tanda ke sumberdaya yang sudah ada. Untuk informasi selengkapnya, lihat TagResource. Parameter propagateTags dapatdigunakan untuk menyalin tanda dari ketentuan tugas atau layanan ke tugas. Hal ini dapat dilakukansaat Anda menjalankan tugas atau membuat layanan. Untuk informasi selengkapnya, lihat RunTask danCreateService.

Selain itu, beberapa tindakan pembuatan sumber daya memungkinkan Anda menentukan tanda untuksumber daya saat sumber daya dibuat. Jika tanda tidak dapat diterapkan saat sumber daya sedang dibuat,kami memutar kembali proses pembuatan sumber daya. Hal ini untuk memastikan bahwa sumber dayadibuat dengan tanda atau tidak dibuat sama sekali, dan tidak ada sumber daya yang dibiarkan tanpa tandakapan saja. Dengan menandai sumber daya saat sedang dibuat, Anda dapat menghilangkan kebutuhanuntuk menjalankan skrip penandaan khusus setelah pembuatan sumber daya.

Saat Anda menggunakan opsi tag terkelola ECS, Amazon ECS secara otomatis menyebarkan tag ke tugasAnda baik dari definisi tugas atau layanan Anda.

Tabel berikut menjelaskan sumber daya Amazon ECS yang dapat ditandai, dan sumber daya yang dapatditandai saat dibuat.

Dukungan pemberian tag pada sumber daya Amazon ECS

Resource Mendukung tanda Penyebaran tandaSupport

Mendukung penandaansaat pembuatan (APIAmazon ECS,AWSCLI,AWSSDK)

Tugas Amazon ECS Ya Ya, dari ketentuantugas.

Ya

282

Amazon ECS Panduan Pengguna untuk AWS FargateBatasan tanda

Resource Mendukung tanda Penyebaran tandaSupport

Mendukung penandaansaat pembuatan (APIAmazon ECS,AWSCLI,AWSSDK)

Layanan Amazon ECS Ya Ya, baik dari ketentuantugas ataupun layananke dalam tugas dalamlayanan.

Ya

Set tugas Amazon ECS Ya Tidak Ya

Definisi tugas AmazonECS

Ya Tidak Ya

Klaster Amazon ECS Ya Tidak Ya

Instans eksternalAmazon ECS

Ya Tidak Tidak, Anda dapatmenambahkantanda setelahinstans eksternaldidaftarkan ke klastermenggunakanAWSManagementConsoleatau denganmenggunakan APIAmazon ECS,AWS CLI,atauAWSSDK. Untukinformasi selengkapnya,lihat Menambahkan danmenghapus tanda padasumber daya individualdengan menggunakankonsol klasik (p. 285).

Penyedia kapasitasAmazon ECS

Ya. TelahDitetapkanFARGATEdanFARGATE_SPOTPenyediakapasitas tidak dapatdiberi tag.

Tidak Ya

Batasan tandaBatasan dasar berikut berlaku untuk tanda

• Jumlah maksimum tanda per sumber daya – 50• Untuk setiap sumber daya, setiap kunci tag harus unik, dan setiap kunci tag hanya dapat memiliki satu

nilai.• Panjang kunci maksimum – 128 karakter Unicode dalam UTF-8• Panjang nilai maksimum – 256 karakter Unicode dalam UTF-8• Jika skema penandaan Anda digunakan di beberapa layanan dan sumber daya, ingatlah bahwa layanan

lain mungkin memiliki pembatasan pada karakter yang diizinkan. Karakter-karakter yang diizinkan secaraumum adalah: huruf, angka, dan spasi yang dapat diwakili dalam UTF-8, beserta karakter-karakterberikut: + - = . _ : / @.

• Kunci dan nilai tanda peka terhadap huruf besar dan kecil.

283

Amazon ECS Panduan Pengguna untuk AWS FargateMenandai sumber daya Anda untuk penagihan

• Jangan gunakan aws:, AWS:, atau kombinasi huruf besar atau kecil sebagai prefiks, baik untuk kunciataupun nilai. Ini disimpan hanya untuk penggunaan AWS. Anda tidak dapat mengedit atau menghapuskunci atau nilai tanda dengan prefiks ini. Tanda dengan prefiks ini tidak dihitung, berlawanan dengantanda milik Anda per batas sumber daya.

Menandai sumber daya Anda untuk penagihanSaat Anda menggunakan tanda yang dikelola Amazon ECS, Amazon ECS secara otomatis menandaisemua tugas yang baru diluncurkan dengan nama klaster. Untuk tugas-tugas milik layanan, merekajuga ditandai dengan nama layanan. Tanda terkelola ini berguna saat meninjau alokasi biaya setelahmengaktifkannya di Laporan Biaya dan Penggunaan Anda. Untuk informasi selengkapnya, lihat Laporanpenggunaan Amazon ECS (p. 293).

Untuk melihat biaya sumber daya gabungan, Anda dapat mengatur informasi penagihan berdasarkansumber daya yang memiliki nilai kunci tanda yang sama. Misalnya, Anda dapat memberi tanda padabeberapa sumber daya dengan nama aplikasi tertentu, lalu organisir informasi penagihan Anda untukmelihat total biaya aplikasi tersebut pada beberapa layanan. Untuk informasi selengkapnya tentangpengaturan laporan alokasi biaya dengan tanda, lihat Laporan Alokasi Biaya Bulanan dalam PanduanPengguna AWS Billing.

Important

Untuk menggunakan fitur ini, Anda harus ikut serta ke dalam format Amazon Resource Name(ARN) dan pengenal (ID) sumber daya baru. Untuk informasi selengkapnya, lihat AmazonResource Name (ARN) dan ID (p. 197).Note

Jika Anda telah mengaktifkan pelaporan, data untuk bulan ini tersedia untuk dilihat setelah 24 jam.

Bekerja dengan tanda menggunakan konsolDengan menggunakan konsol Amazon ECS, Anda dapat mengelola tanda yang terkait dengan tugas,layanan, ketentuan tugas, klaster, atau instans kontainer yang baru atau yang sudah ada.

Saat Anda memilih halaman khusus sumber daya di konsol Amazon ECS, halaman tersebut akanmenampilkan daftar sumber daya tersebut. Misalnya, jika Anda memilihklasterdari panel navigasi,konsol menampilkan daftar klaster Amazon ECS. Saat Anda memilih sumber daya dari salah satu daftar(misalnya, klaster tertentu) yang mendukung tanda ini, Anda dapat melihat dan mengelola tandanya di tabTanda.

Important

Jangan menambahkan informasi pengenal pribadi (PII), atau informasi rahasia atau sensitiflainnya dalam tanda. Tag dapat diakses oleh banyak layanan AWS, termasuk penagihan. Tandatidak dimaksudkan untuk digunakan dalam data privat atau sensitif.

Isi• Penambahan tanda pada sumber daya individu selama peluncuran (p. 284)• Menambahkan dan menghapus tanda pada sumber daya individual dengan menggunakan konsol

klasik (p. 285)

Penambahan tanda pada sumber daya individu selamapeluncuranSumber daya berikut memungkinkan Anda untuk menentukan tanda saat membuat sumber daya.

284

Amazon ECS Panduan Pengguna untuk AWS FargateBekerja dengan tanda menggunakan CLI atau API

Tugas Konsol

Jalankan satu tugas atau lebih. Menjalankan tugasmandiri (p. 203)

Buat sebuah layanan. Membuat layanan AmazonECS (p. 227)

Buat satu set tugas. Deployment (p. 250)

Daftarkan ketentuan tugas. Membuat ketentuan tugasmenggunakan konsolbaru (p. 63)

Buat sebuah klaster. Membuat klaster menggunakankonsol klasik (p. 74)

Menambahkan dan menghapus tanda pada sumber dayaindividual dengan menggunakan konsol klasikAmazon ECS memungkinkan Anda untuk menambahkan atau menghapus tanda yang terkait denganklaster, layanan, tugas, dan ketentuan tugas secara langsung dari halaman sumber daya.

Untuk menambahkan tanda ke sumber daya individu

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah yang akan digunakan.3. Di panel navigasi, pilih tipe sumber daya (misalnya, Klaster).4. Pilih sumber daya dari daftar sumber daya dan pilih tab Tanda, Edit.5. Di kotak dialog Edit Tanda, tentukan kunci dan nilai untuk setiap tanda, dan kemudian pilih Simpan.

Untuk menghapus tanda dari sumber daya individu

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah untuk digunakan.3. Di panel navigasi, pilih tipe sumber daya (misalnya, Klaster).4. Pilih sumber daya dari daftar sumber daya dan pilih Tanda, Edit.5. Pada halaman Edit Tanda, pilih ikon Hapus untuk setiap tanda yang ingin Anda hapus, dan pilih

Simpan.

Bekerja dengan tanda menggunakan CLI atau APIGunakan hal-hal berikut untuk menambahkan, memperbarui, mencantumkan, dan menghapus tanda untuksumber daya Anda. Dokumentasi yang sesuai menyediakan contoh.

Important

Jangan menambahkan informasi pengenal pribadi (PII) atau informasi rahasia atau sensitif lainnyadalam tanda. Tag dapat diakses oleh banyak layanan AWS, termasuk penagihan. Tag tidakdimaksudkan untuk digunakan dalam data sensitif atau privat.

285

Amazon ECS Panduan Pengguna untuk AWS FargateBekerja dengan tanda menggunakan CLI atau API

Dukungan pemberian tag pada sumber daya Amazon ECS

Tugas AWS CLI Tindakan API

Tambahkan atau timpa satu ataubeberapa tanda.

tag-resource TagResource

Hapus satu atau beberapa tanda. untag-resource UntagResource

Contoh berikut menunjukkan cara menandai atau menghapus tanda pada sumber daya menggunakanAWS CLI.

Contoh 1: Tandai klaster yang ada

Perintah berikut akan menandai klaster yang sudah ada.

aws ecs tag-resource --resource-arn resource_ARN --tags key=stack,value=dev

Contoh 2: Untag klaster yang ada

Perintah berikut akan menghapus tanda dari klaster yang sudah ada.

aws ecs untag-resource --resource-arn resource_ARN --tag-keys tag_key

Contoh 3: Membuat daftar tanda untuk sumber daya

Perintah berikut akan mencantumkan tanda terkait dengan sumber daya yang sudah ada.

aws ecs list-tags-for-resource --resource-arn resource_ARN

Beberapa tindakan pembuatan sumber daya memungkinkan Anda untuk menentukan tanda saat membuatsumber daya. Tindakan berikut mendukung penandaan saat pembuatan.

Tugas AWS CLI AWS Tools for WindowsPowerShell

Tindakan API

Jalankan satu atau beberapa tugas. run-task Start-ECSTask RunTask

Buat sebuah layanan. buat-layanan New-ECSService CreateService

Buat satu set tugas. create-task-set New-ECSTaskSet CreateTaskSet

Daftarkan sebuah ketentuan tugas. register-task-definition

Register-ECSTaskDefinition

RegisterTaskDefinition

Buat sebuah klaster. create-cluster New-ECSCluster CreateCluster

Contoh berikut menunjukkan cara menerapkan tanda saat Anda membuat sumber daya.

Contoh 1: Buat klaster dan terapkan sebuah tag

Perintah berikut akan membuat klaster yang dinamai devcluster dan menambahkan tanda dengan teamkunci dan devs nilai.

aws ecs create-cluster --cluster-name devcluster --tags key=team,value=devs

286

Amazon ECS Panduan Pengguna untuk AWS FargateKuota layanan

Contoh 2: Buat layanan dan terapkan sebuah tag

Perintah berikut akan membuat layanan yang dinamai application dan menambahkan tanda denganstack kunci dan dev nilai.

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev

Contoh 3: Buat layanan dengan tanda dan sebarkan tanda

Parameter --propagateTags dapat digunakan untuk menyalin tanda, baik dari ketentuan tugas ataupunlayanan ke dalam tugas dalam sebuah layanan. Perintah berikut membuat layanan dengan tanda danmenyebarkannya ke tugas dalam layanan tersebut.

aws ecs create-service --service-name application --task-definition task-def-app --tags key=stack,value=dev --propagateTags Service

Service Quotas Amazon ECSTabel berikut menyediakan kuota layanan default, yang juga disebut sebagai batas, untuk Amazon ECSuntuk sebuahAWSakun. Untuk informasi lebih lanjut tentang kuota layanan untuk lainnyaAWSlayananyang dapat Anda gunakan dengan Amazon ECS, seperti Elastic Load Balancing dan Auto Scaling,lihatAWSservice quotasdiReferensi Umum Amazon Web Services. Untuk informasi tentang API throttling diAmazon ECS API, lihatMeminta throttling untuk API Amazon ECS.

Service Quotas Amazon ECSBerikut ini adalah Amazon ECS service quotas.

Nama Default DapatDisesuaikan

Deskripsi

Penyedia kapasitas per klaster Setiap Wilayah yangdidukung: 10

Tidak Jumlah maksimum penyediakapasitas yang dapatdikaitkan dengan klaster.

Classic Load Balancer per layanan Setiap Wilayah yangdidukung: 1

Tidak Jumlah maksimum ClassicLoad Balancer per layanan.

Klaster per akun Setiap Wilayah yangdidukung: 10.000

Ya Jumlah klaster per akun

Instans kontainer per klaster Setiap Wilayah yangdidukung: 5.000

Tidak Jumlah instans kontainerper klaster

Instans kontainer per tugas awal Setiap Wilayah yangdidukung: 10

Tidak Jumlah maksimum instanskontainer yang ditentukandalam sebuah StartTaskTindakan API.

Kontainer per ketentuan tugas Setiap Wilayah yangdidukung: 10

Tidak Jumlah maksimumketentuan kontainer dalamketentuan tugas.

Sesi ECS Exec Setiap Wilayah yangdidukung: 20

Ya Jumlah maksimum sesiECS Exec per kontainer.

287

Amazon ECS Panduan Pengguna untuk AWS FargateService Quotas Amazon ECS

Nama Default DapatDisesuaikan

Deskripsi

Tingkat tugas yang diluncurkan olehlayanan padaAWSJauh

Setiap Wilayah yangdidukung: 500

Ya Jumlah maksimum tugasyang dapat disediakanper layanan per menit diFargate oleh penjadwallayanan Amazon ECS.

Tingkat tugas yang diluncurkan olehlayanan pada instans Amazon EC2 atauEksternal

Setiap Wilayah yangdidukung: 500

Ya Jumlah maksimum tugasyang dapat disediakan perlayanan per menit padainstans Amazon EC2 atauEksternal oleh penjadwallayanan Amazon ECS.

Revisi per keluarga ketentuan tugas Setiap Wilayah yangdidukung: 1.000.000

Tidak Jumlah maksimum revisi perkeluarga ketentuan tugas.Membatalkan pendaftaranrevisi ketentuan tugas tidakmengecualikannya daridisertakan dalam batas ini.

Grup keamanan per awsvpcConfiguration Setiap Wilayah yangdidukung: 5

Tidak Jumlah maksimum grupkeamanan yang ditentukandalam awsvpcConfiguration.

Layanan per klaster Setiap Wilayah yangdidukung: 5.000

Ya Jumlah maksimum layananper klaster

Subnet per AWSVPCConfiguration Setiap Wilayah yangdidukung: 16

Tidak Jumlah maksimum subnetyang ditentukan dalamawsvpcConfiguration.

Tanda per sumber daya Setiap Wilayah yangdidukung: 50

Tidak Jumlah maksimum tag persumber daya. Hal ini berlakuuntuk ketentuan tugas,klaster, dan layanan.

Grup target per layanan Setiap Wilayah yangdidukung: 5

Tidak Jumlah maksimum gruptarget per layanan, jikamenggunakan ApplicationLoad Balancer atauPenyeimbang BebanJaringan.

Ukuran definisi tugas Setiap Wilayahyang didukung: 64Kilobyte

Tidak Ukuran maksimumketentuan tugas dalam KiB.

Tugas dalam keadaan PROVISIONING percluster

Setiap Wilayah yangdidukung: 300

Tidak Jumlah maksimum tugasyang menunggu dalamkeadaan penyediaan perklaster. Kuota ini hanyaberlaku untuk tugas yangdiluncurkan menggunakanpenyedia kapasitas grupEC2 Auto Scaling.

288

Amazon ECS Panduan Pengguna untuk AWS FargateAWS Fargate service quotas

Nama Default DapatDisesuaikan

Deskripsi

Tugas yang diluncurkan per run-task Setiap Wilayah yangdidukung: 10

Tidak Jumlah maksimum tugasyang dapat diluncurkan perRunTask Tindakan API.

Tugas per layanan Setiap Wilayah yangdidukung: 5.000

Ya Jumlah maksimum tugasper layanan (jumlah yangdiinginkan).

Note

Layanan yang dikonfigurasi untuk menggunakan penemuan layanan Amazon ECS memilikibatas 1.000 tugas per layanan. Hal ini disebabkan oleh AWS Cloud Map service quotas untukjumlah instans per layanan. Untuk informasi selengkapnya, lihatAWS Cloud MapservicequotasdiReferensi Umum Amazon Web Services.

Note

Dalam prakteknya, tingkat peluncuran tugas juga tergantung pada pertimbangan lain sepertigambar kontainer yang akan diunduh dan dibongkar, pemeriksaan kesehatan dan integrasilainnya diaktifkan, seperti mendaftarkan tugas dengan penyeimbang beban. Anda akan melihatvariasi tarif peluncuran tugas dibandingkan dengan kuota yang ditunjukkan di atas berdasarkanfitur yang telah Anda aktifkan untuk layanan Amazon ECS Anda. Untuk informasi selengkapnya,lihatmempercepat penerapan Amazon ECSdalam Panduan Praktik Terbaik Amazon ECS.

AWS Fargate service quotasBerikut ini adalah Amazon ECS di AWS Fargate service quotas.

Nama Default DapatDisesuaikan

Deskripsi

Jumlah sumber daya Fargate SesuaiPermintaan

Setiap Wilayah yangdidukung: 1.000

Ya Jumlah maksimum tugasAmazon ECS dan podAmazon EKS yang berjalanbersamaan di Fargatedalam akun ini di Wilayahsaat ini.

Jumlah sumber daya Fargate Spot Setiap Wilayah yangdidukung: 1.000

Ya Jumlah maksimum tugasAmazon ECS yang berjalansecara bersamaan padaFargate Spot di akun ini diWilayah saat ini.

Note

Fargate juga memberlakukan tugas Amazon ECS dan batas laju peluncuran Pod Amazon EKS.Untuk informasi selengkapnya, lihatBatas throttling Fargate.

289

Amazon ECS Panduan Pengguna untuk AWS FargateMengelola Amazon ECS danAWS FargateService

Quotas diAWS Management Console

Mengelola Amazon ECS danAWS FargateServiceQuotas diAWS Management ConsoleAmazon ECS telah terintegrasi dengan Service Quotas, sebuahAWSlayanan yang memungkinkan Andamelihat dan mengelola kuota dari lokasi pusat. Untuk informasi selengkapnya, lihat Apa itu ServiceQuotas? di Panduan Pengguna Service Quotas.

Service Quotas mempermudah Anda mencari nilai kuota layanan Amazon ECS Anda.

AWS Management Console

Untuk melihat service quotas Amazon ECS dan Fargate menggunakanAWS ManagementConsole

1. Buka konsol Service Quotas di https://console.aws.amazon.com/servicequotas/.2. Di panel navigasi, pilih Layanan AWS.3. DariAWSjasadaftar, cari dan pilihLayanan Amazon Elastic Container (Amazon ECS)atauAWS

Fargate.

Dalam daftar service quotas, Anda dapat melihat nama service quotas, nilai terapan (jikatersedia), kuota default AWS, dan apakah nilai kuota dapat disesuaikan.

4. Untuk melihat informasi tambahan tentang service quotas, seperti deskripsi, pilih nama kuota.5. (Opsional) Untuk meminta peningkatan kuota, pilih kuota yang ingin Anda tingkatkan, pilih Minta

penambahan kuota, masukkan atau pilih informasi yang diperlukan, dan pilih Permintaan.

Untuk mengolah lebih banyak dengan kuota layanan menggunakan AWS Management Console LihatPanduan Pengguna Service Quotas. Untuk meminta penambahan kuota, lihat Meminta penambahankuota di Panduan Pengguna Service Quotas.

AWS CLI

Untuk melihat service quotas Amazon ECS dan Fargate menggunakanAWS CLI

Jalankan perintah berikut untuk menampilkan kuota Amazon ECS default.

aws service-quotas list-aws-default-service-quotas \ --query 'Quotas[*].{Adjustable:Adjustable,Name:QuotaName,Value:Value,Code:QuotaCode}' \ --service-code ecs \ --output table

Jalankan perintah berikut untuk menampilkan kuota Fargate default.

aws service-quotas list-aws-default-service-quotas \ --query 'Quotas[*].{Adjustable:Adjustable,Name:QuotaName,Value:Value,Code:QuotaCode}' \ --service-code fargate \ --output table

Jalankan perintah berikut untuk menampilkan kuota Fargate yang diterapkan.

aws service-quotas list-service-quotas \ --service-code fargate

290

Amazon ECS Panduan Pengguna untuk AWS FargateAWSWilayah Fargate

Note

Amazon ECS tidak mendukung kuota yang diterapkan.

Untuk bekerja lebih banyak dengan service quotas gunakan AWS CLI, lihat Service Quotas AWS CLICommand Reference. Untuk meminta kenaikan kuota, lihat request-service-quota-increaseperintah di AWS CLI Command Reference.

Wilayah yang Didukung untuk Amazon ECSdiAWSJauh

Daftar Isi• Daerah yang Didukung untuk kontainer Linux diAWSJauh (p. 291)• Daerah yang Didukung untuk kontainer Windows diAWSJauh (p. 292)

Daerah yang Didukung untuk kontainer LinuxdiAWSJauhKontainer Amazon ECS Linux diAWS Fargatedidukung di Wilayah berikut. ID Availability Zone yangdidukung dicatat saat berlaku.

Nama Wilayah Wilayah

US East (Ohio) us-east-2

US East (N. Virginia) us-east-1

US West (N. California) us-west-1 (usw1-az1 &usw1-az3saja

US West (Oregon) as-barat-2

Afrika (Cape Town) af-selatan-1

Asia Pasifik (Hong Kong) ap-timur-1

Asia Pasifik (Mumbai) ap-south-1

Asia Pacific (Tokyo) ap-northeast-1 (apne1-az1,apne1-az2,&apne1-az4saja

Asia Pacific (Seoul) ap-northeast-2

Asia Pacific (Osaka) ap-northeast-3

Asia Pacific (Singapore) ap-southeast-1

Asia Pacific (Sydney) ap-southeast-2

Asia Pacific (Jakarta) ap-southeast-3

Canada (Central) ca-sentral-1 (cac1-az1 &cac1-az2saja

China (Beijing) cn-north-1 (cnn1-az1 &cnn1-az2saja

China (Ningxia) cn-northwest-1

291

Amazon ECS Panduan Pengguna untuk AWS FargateDaerah yang Didukung untuk

kontainer Windows diAWSJauh

Nama Wilayah Wilayah

Europe (Frankfurt) eu-central-1

Europe (Ireland) eu-west-1

Europe (London) eu-west-2

Europe (Paris) eu-west-3

Eropa (Milan) eu-south-1

Eropa (Stockholm) eu-north-1

South America (Sao Paulo) sa-east-1

Timur Tengah (Bahrain) me-south-1

AWS GovCloud (AS-Timur) us-gov-east-1

AWS GovCloud (AS-Barat) us-gov-west-1

Daerah yang Didukung untuk kontainer WindowsdiAWSJauhKontainer Amazon ECS Windows diAWS Fargatedidukung di Wilayah berikut. ID Availability Zone yangdidukung dicatat saat berlaku.

Nama Wilayah Wilayah

US East (Ohio) us-east-2

US East (N. Virginia) us-east-1 (use1-az1,use1-az2,use1-az4,use1-az5, &use1-az6saja

US West (N. California) us-west-1 (usw1-az1 &usw1-az3saja

US West (Oregon) us-west-2 us-west-2 (usw2-az1,usw2-az2,&usw2-az3saja

Afrika (Cape Town) af-selatan-1

Asia Pasifik (Hong Kong) ap-timur-1

Asia Pasifik (Mumbai) ap-south-1

Asia Pacific (Osaka) ap-northeast-3

Asia Pacific (Seoul) ap-northeast-2

ap-northeast-2 (apne2-az1, &apne2-az3saja

Asia Pacific (Singapore) ap-southeast-1

Asia Pacific (Sydney) ap-southeast-2

Asia Pacific (Tokyo) ap-northeast-1 (apne1-az1,apne1-az2,&apne1-az4saja

292

Amazon ECS Panduan Pengguna untuk AWS FargateLaporan Penggunaan

Nama Wilayah Wilayah

Canada (Central) ca-sentral-1 (cac1-az1 &cac1-az2saja

Eropa (Irlandia) eu-west-1

Europe (London) eu-west-2

Europe (Paris) eu-west-3

Eropa (Milan) eu-south-1

Eropa (Stockholm) eu-north-1

South America (Sao Paulo) sa-east-1

Timur Tengah (Bahrain) me-south-1

Laporan penggunaan Amazon ECSAWSmenyediakan alat pelaporan gratis bernama Cost Explorer yang memungkinkan Anda menganalisisbiaya dan penggunaan sumber daya Amazon ECS Anda.

Cost Explorer merupakan alat gratis yang dapat Anda gunakan untuk melihat grafik penggunaan danbiaya. Anda dapat melihat data dari 13 bulan terakhir, dan memperkirakan berapa banyak yang akan Andabelanjakan untuk tiga bulan ke depan. Anda dapat menggunakan Cost Explorer untuk melihat pola terkaitberapa banyak sumber daya AWS yang Anda belanjakan dari waktu ke waktu. Misalnya, Anda dapatmenggunakannya untuk mengidentifikasi area yang memerlukan penyelidikan lebih lanjut dan melihat trenyang dapat Anda gunakan untuk memahami biaya Anda. Anda juga dapat menentukan rentang waktuuntuk data, dan melihat data waktu menurut hari atau bulan.

Data pengukuran dalam Laporan Biaya dan Penggunaan menunjukkan penggunaan di semua tugasAmazon ECS Anda. Data pengukuran meliputi penggunaan CPU sebagai vCPU-Hours dan penggunaanmemori sebagai GB-Hours untuk setiap tugas yang dijalankan. Bagaimana data tersebut disajikantergantung pada tipe peluncuran tugas.

Untuk tugas yang menggunakan tipe peluncuran Fargate,lineItem/OperationkolommenunjukkanFargateTaskdan Anda akan melihat biaya yang terkait dengan setiap tugas.

Anda juga dapat menggunakan tanda yang dikelola Amazon ECS untuk mengidentifikasikan layanan atauklaster yang dimiliki setiap tugas. Untuk informasi selengkapnya, lihat Menandai sumber daya Anda untukpenagihan (p. 284).

Important

Data pengukuran hanya dapat dilihat untuk tugas yang diluncurkan pada atau setelah tanggal16 November 2018. Tugas yang diluncurkan sebelum tanggal tersebut tidak menampilkan datapengukuran.

Berikut adalah contoh beberapa bidang yang dapat Anda urutkan data alokasi biayanya denganmenggunakan Cost Explorer.

• Nama klaster• Nama layanan• Tanda sumber daya• Jenis peluncuran

293

Amazon ECS Panduan Pengguna untuk AWS FargateLaporan Penggunaan

• Wilayah• Jenis penggunaan

Untuk informasi lebih lanjut tentang membuat AWS Laporan Biaya dan Penggunaan, lihat Laporan Biayadan Penggunaan AWS di AWS Billing Panduan Pengguna.

294

Amazon ECS Panduan Pengguna untuk AWS FargateAlat pemantauan

Memantau Amazon ECSAnda dapat memantau sumber daya Amazon ECS Anda menggunakan Amazon CloudWatch, yangmengumpulkan dan memproses data mentah dari Amazon ECS menjadi metrik yang dapat dibacadan mendekati waktu nyata. Statistik ini dicatat dalam jangka waktu dua minggu, sehingga Anda dapatmengakses informasi historis dan mendapatkan perspektif yang lebih baik tentang performa klaster ataulayanan Anda. Data metrik Amazon ECS secara otomatis dikirimkan ke CloudWatch dalam periode 1menit. Untuk informasi selengkapnya tentang CloudWatch, lihatAmazon CloudWatch Panduan Pengguna.

Pemantauan adalah bagian penting dari pemeliharaan keandalan, ketersediaan, dan performa AmazonECS dan performa AndaAWSsolusi. Anda harus mengumpulkan data pemantauan dari semua bagiansolusi AWS sehingga Anda dapat melakukan debug kegagalan multititik secara lebih mudah jika terjadikegagalan. Namun sebelum mulai memantau Amazon ECS; Anda harus membuat rencana pemantauanyang mencakup jawaban atas pertanyaan berikut:

• Apa sasaran pemantauan Anda?• Sumber daya apa yang akan Anda pantau?• Seberapa sering Anda akan memantau sumber daya ini?• Alat pemantauan apa yang akan Anda gunakan?• Siapa yang akan melakukan tugas pemantauan?• Siapa yang harus diberi tahu saat terjadi kesalahan?

Ketika Anda menggunakan tipe peluncuran Fargate, Anda mendapatkan metrik pemanfaatan CPU danmemori untuk setiap layanan Anda untuk membantu pemantauan lingkungan Anda.

Langkah berikutnya adalah menetapkan baseline untuk performa Amazon ECS normal di lingkungan Anda,dengan mengukur performa di berbagai waktu dan dalam kondisi beban yang berbeda. Saat memantauAmazon ECS, simpan data pemantauan historis sehingga Anda dapat membandingkannya dengan dataperforma baru, mengidentifikasi pola performa normal dan anomali performa, dan merancang metode untukmengatasi masalah.

Topik• Alat pemantauan (p. 295)• Amazon ECS CloudWatch metrik (p. 297)• Metrik penggunaan AWS Fargate (p. 302)• ECS Amazon ECS dan EventBridge (p. 303)• Amazon ECS CloudWatch Wawasan Wadah (p. 314)• Mengumpulkan data pelacakan aplikasi (p. 316)• Mengumpulkan metrik aplikasi (p. 319)• Mencatat panggilan API Amazon ECS denganAWS CloudTrail (p. 324)

Alat pemantauanAWSmenyediakan berbagai alat yang dapat Anda gunakan untuk memantau Amazon ECS. Anda dapatmengonfigurasi beberapa alat ini untuk melakukan pemantauan untuk Anda, sementara beberapaalat memerlukan intervensi manual. Kami menyarankan agar Anda mengautomasi tugas pemantauansebanyak mungkin.

295

Amazon ECS Panduan Pengguna untuk AWS FargateAlat Otomatis

Alat pemantauan otomatisAnda dapat menggunakan alat pemantauan otomatis berikut untuk melihat Amazon ECS dan melaporkansaat terjadi kesalahan:

• Amazon CloudWatch Alarm — Melihat metrik tunggal selama periode waktu yang Anda tentukan, danlakukan satu atau beberapa tindakan berdasarkan nilai metrik relatif terhadap ambang batas tertentuselama sejumlah periode waktu. Tindakan ini adalah pengiriman notifikasi ke topik Amazon SimpleNotification Service (Amazon SNS) atau kebijakan Amazon EC2 Auto Scaling. Alarm CloudWatch tidakakan meminta tindakan hanya karena berada dalam status tertentu; status harus berubah dan bertahanbegitu selama beberapa periode tertentu. Untuk informasi selengkapnya, lihat Amazon ECS CloudWatchmetrik (p. 297).

Untuk layanan dengan tugas yang menggunakan tipe peluncuran Fargate, Anda dapat menggunakanCloudWatch alarm untuk menskalakan dan menskalakan tugas di layanan Anda berdasarkanCloudWatch metrik, seperti pemanfaatan CPU dan memori. Untuk informasi selengkapnya, lihatPenskalaan otomatis layanan (p. 267).

• Amazon CloudWatch Mencatat — Memantau, menyimpan, dan mengakses file log dari kontainer ditugas Amazon ECS Anda dengan menentukanawslogslog driver dalam definisi tugas Anda. Untukinformasi selengkapnya, lihat Menggunakan driver log awslogs (p. 138).

• Amazon CloudWatch Events — Cocokkan peristiwa dan rutekan mereka ke satu fungsi atau alirantarget untuk membuat perubahan, menangkap informasi status, dan mengambil tindakan korektif. Untukinformasi selengkapnya, lihatECS Amazon ECS dan EventBridge (p. 303)dalam panduan ini danApaitu Amazon CloudWatch Peristiwa?diAmazon CloudWatch Panduan Pengguna Peristiwa.

• AWS CloudTrailpemantauan log - Berbagi file log antar akun, monitor CloudTrail log file secara realtime dengan mengirim mereka ke CloudWatch Mencatat, menulis aplikasi pemrosesan log di Java, danmemvalidasi bahwa berkas log Anda tidak berubah setelah pengiriman oleh CloudTrail. Untuk informasiselengkapnya, lihatMencatat panggilan API Amazon ECS denganAWS CloudTrail (p. 324)dalampanduan ini, danBekerja dengan CloudTrail File LogdiAWS CloudTrailPanduan Pengguna.

Alat pemantauan manualBagian penting lainnya dari pemantauan Amazon ECS melibatkan pemantauan secara manual itemyang CloudWatch alarm tidak menutupi. CloudWatch,Trusted Advisor, dan lainnyaAWSdashboard konsolmenyediakan at-a-glance melihat status AndaAWSlingkungan. Kami menyarankan Anda untuk memeriksafile log pada instans kontainer Anda dan kontainer dalam tugas Anda.

• Halaman beranda CloudWatch:• Alarm dan status saat ini• Grafik alarm dan sumber daya• Status kesehatan layanan

Selain itu, Anda dapat menggunakan CloudWatch untuk melakukan hal berikut:• Buat dasbor yang disesuaikan untuk memantau layanan yang Anda pedulikan.• Data metrik grafik untuk memecahkan masalah dan menemukan tren.• Cari dan telusuri semua metrik sumber daya AWS Anda.• Buat dan edit alarm untuk menerima pemberitahuan tentang masalah.

• AWS Trusted Advisor dapat membantu memantau sumber daya AWS Anda untuk meningkatkanperforma, keandalan, keamanan, dan efektivitas biaya. Empat pemeriksaan Trusted Advisor tersediabagi semua pengguna; lebih dari 50 pemeriksaan tersedia bagi pengguna dengan perencanaandukungan Bisnis atau Korporasi. Untuk informasi selengkapnya, lihat AWS Trusted Advisor.

296

Amazon ECS Panduan Pengguna untuk AWS FargateMetrik CloudWatch

Amazon ECS CloudWatch metrikAnda dapat memantau sumber daya Amazon ECS Anda menggunakan Amazon CloudWatch, yangmengumpulkan dan memproses data mentah dari Amazon ECS menjadi metrik yang dapat dibacadan mendekati waktu nyata. Statistik ini dicatat dalam jangka waktu dua minggu, sehingga Anda dapatmengakses informasi historis dan mendapatkan perspektif yang lebih baik tentang performa klaster ataulayanan Anda. Data metrik Amazon ECS secara otomatis dikirimkan ke CloudWatch dalam periode 1menit. Untuk informasi selengkapnya tentang CloudWatch, lihatAmazon CloudWatch Panduan Pengguna.

Amazon ECS mengumpulkan metrik untuk klaster dan layanan. Anda harus mengaktifkan AmazonECS CloudWatch Wawasan Kontainer untuk metrik per-tugas, termasuk penggunaan CPU dan memori.Untuk informasi selengkapnya tentang Wawasan Wadah, lihatAmazon ECS CloudWatch WawasanWadah (p. 314).

Topik• Mengaktifkan CloudWatch metrik (p. 297)• Metrik dan dimensi yang tersedia (p. 297)• Pemanfaatan layanan (p. 300)• Jumlah tugas layanan RUNNING (p. 300)• Melihat metrik Amazon ECS (p. 301)

Mengaktifkan CloudWatch metrikLayanan Amazon ECS yang menggunakan tipe peluncuran Fargate diaktifkan untuk metrik pemanfaatanCPU dan memori CloudWatch secara otomatis, sehingga Anda tidak perlu melakukan langkah manual apapun.

Metrik dan dimensi yang tersediaBagian berikut mencantumkan metrik dan dimensi yang dikirimkan Amazon ECS ke Amazon CloudWatch.

Metrik Amazon ECSAmazon ECS menyediakan metrik bagi Anda untuk memantau sumber daya Anda. Anda dapat mengukurreservasi dan pemanfaatan CPU dan memori di klaster Anda secara keseluruhan, dan pemanfaatan CPUdan memori pada layanan di klaster Anda. Untuk beban kerja GPU, Anda dapat mengukur reservasi GPUdi klaster Anda.

Metrik yang tersedia bergantung pada tipe peluncuran tugas dan layanan dalam klaster Anda. Jika Andamenggunakan tipe peluncuran Fargate untuk layanan Anda, metrik pemanfaatan CPU dan memoridisediakan untuk membantu pemantauan layanan Anda. Untuk tipe peluncuran EC2, Amazon ECSmenyediakan reservasi CPU, memori, dan GPU serta metrik pemanfaatan CPU dan memori di tingkatklaster dan layanan. Anda perlu memantau instans Amazon EC2 yang membuat infrastruktur utama Andasecara terpisah.

Amazon ECS mengirimkan metrik berikut ke CloudWatch setiap menit. Saat Amazon ECS mengumpulkanmetrik, ia mengumpulkan beberapa titik data setiap menit. Kemudian mengagregat mereka ke satu titikdata sebelum mengirim data ke CloudWatch. Dalam CloudWatch, satu sampel sebenarnya merupakanagregat dari beberapa titik data selama satu menit.

Namespace AWS/ECS mencakup metrik berikut.

297

Amazon ECS Panduan Pengguna untuk AWS FargateMetrik dan dimensi yang tersedia

CPUReservation

Persentase unit CPU yang disimpan oleh tugas yang berjalan tugas di klaster.

Cluster CPU reservasi (metrik ini hanya dapat disaring olehClusterName) diukur sebagai jumlahunit CPU yang disimpan oleh tugas Amazon ECS di klaster, dibagi dengan jumlah unit CPU yangterdaftar untuk semua instans kontainer dalam klaster. Hanya instans kontainer di status ACTIVE atauDRAINING yang akan memengaruhi metrik reservasi CPU. Metrik ini hanya digunakan untuk tugasyang menggunakan tipe peluncuran EC2.

Dimensi yang valid: ClusterName.

Statistik valid: Rata-rata, Minimum, Jumlah, Jumlah Sampel. Statistik yang paling berguna adalahRata-rata.

Unit: Persen.CPUUtilization

Persentase unit CPU yang digunakan dalam klaster atau layanan.

Pemanfaatan Cluster CPU (metrik yang disaring olehClusterNametanpaServiceName) diukursebagai jumlah unit CPU yang digunakan oleh tugas Amazon ECS di klaster, dibagi dengan jumlahunit CPU yang terdaftar untuk semua instans kontainer dalam klaster. Hanya instans kontainerdengan status ACTIVE atau DRAINING yang akan memengaruhi metrik pemanfaatan CPU. Metrikpemanfaatan CPU klaster hanya digunakan untuk tugas yang menggunakan tipe peluncuran EC2.

Pemanfaatan CPU layanan (metrik yang difilter oleh ClusterName dan ServiceName) diukursebagai jumlah unit CPU yang digunakan oleh tugas milik layanan, dibagi dengan jumlah unit CPUyang disimpan untuk tugas milik layanan. Metrik pemanfaatan CPU layanan digunakan untuk tugasyang menggunakan Fargate dan tipe peluncuran EC2.

Dimensi yang valid: ClusterName, ServiceName.

Statistik valid: Rata-rata, Minimum, Jumlah, Jumlah Sampel. Statistik yang paling berguna adalahRata-rata.

Unit: Persen.MemoryReservation

Persentase memori yang disimpan oleh tugas yang berjalan di klaster.

Reservasi memori klaster (metrik ini hanya dapat disaring olehClusterName) diukur sebagai jumlahmemori yang disimpan oleh tugas Amazon ECS di klaster, dibagi dengan jumlah memori yangterdaftar untuk semua instans kontainer dalam klaster. Hanya instans kontainer di status ACTIVE atauDRAINING yang akan mempengaruhi metrik reservasi memori. Metrik ini hanya digunakan untuk tugasyang menggunakan tipe peluncuran EC2.

Dimensi yang valid: ClusterName.

Statistik valid: Rata-rata, Minimum, Jumlah, Jumlah Sampel. Statistik yang paling berguna adalahRata-rata.

Unit: Persen.MemoryUtilization

Persentase memori yang digunakan dalam klaster atau layanan.

Pemanfaatan memori cluster (metrik yang disaring olehClusterNametanpaServiceName) diukursebagai jumlah memori yang digunakan oleh tugas Amazon ECS di klaster, dibagi dengan jumlah

298

Amazon ECS Panduan Pengguna untuk AWS FargateMetrik dan dimensi yang tersedia

memori yang terdaftar untuk semua instans kontainer dalam klaster. Hanya instans kontainer di statusACTIVE atau DRAINING yang akan memengaruhi metrik pemanfaatan memori. Metrik pemanfaatanmemori klaster hanya digunakan untuk tugas yang menggunakan tipe peluncuran EC2.

Pemanfaatan memori layanan (metrik yang difilter oleh ClusterName dan ServiceName) diukursebagai jumlah memori yang digunakan oleh tugas milik layanan, dibagi dengan jumlah memori yangdisimpan untuk tugas milik layanan. Metrik pemanfaatan memori layanan digunakan untuk tugas yangmenggunakan tipe peluncuran Fargate dan EC2.

Dimensi yang valid: ClusterName, ServiceName.

Statistik valid: Rata-rata, Minimum, Jumlah, Jumlah Sampel. Statistik yang paling berguna adalahRata-rata.

Unit: Persen.GPUReservation

Persentase total GPU tersedia yang disimpan oleh tugas yang berjalan di klaster.

Reservasi GPU klaster diukur sebagai jumlah GPU yang disimpan oleh tugas Amazon ECS di klaster,dibagi dengan jumlah GPU yang tersedia di semua instans kontainer yang mendukung GPU dalamklaster. Hanya instans kontainer di status ACTIVE atau DRAINING yang akan memengaruhi metrikreservasi GPU.

Dimensi yang valid: ClusterName.

Statistik valid: Rata-rata, Minimum, Jumlah, Jumlah Sampel. Statistik yang paling berguna adalahRata-rata.

Unit: Persen.

Note

Jika Anda menggunakan tugas dengan jenis peluncuran EC2 dan memiliki instans kontainerLinux, agen kontainer Amazon ECS bergantung pada Dockerstatsmetrik untuk mengumpulkandata CPU dan memori untuk setiap kontainer yang berjalan pada instance. Untuk instans performayang dapat dilonjakkan (instans T3, T3a, dan T2), metrik pemanfaatan CPU dapat mencerminkandata yang berbeda dibandingkan dengan metrik CPU tingkat instans.

Dimensi untuk metrik ECS AmazonMetrik Amazon ECS menggunakanAWS/ECSnamespace dan menyediakan metrik untuk dimensi berikut.Metrik untuk dimensi hanya mencerminkan sumber daya dengan tugas yang sedang berjalan selamaperiode tertentu. Misalnya, jika Anda memiliki sebuah klaster dengan satu layanan di dalamnya namunlayanan tersebut tidak memiliki tugasRUNNINGnegara, tidak akan ada metrik yang dikirim ke CloudWatch.Jika Anda memiliki dua layanan dan salah satunya memiliki tugas yang sedang berjalan sementara yangsatunya tidak, hanya metrik untuk layanan dengan tugas yang sedang berjalanlah yang akan dikirim.

ClusterName

Dimensi ini memfilter data yang Anda minta untuk semua sumber daya di klaster tertentu. Semuametrik Amazon ECS disaring olehClusterName.

ServiceName

Dimensi ini memfilter data yang Anda minta untuk semua sumber daya di layanan tertentu dalamklaster tertentu.

299

Amazon ECS Panduan Pengguna untuk AWS FargatePemanfaatan layanan

Pemanfaatan layananPemanfaatan layanan diukur sebagai persentase CPU dan memori yang digunakan oleh tugas AmazonECS yang dimiliki layanan di klaster bila dibandingkan dengan CPU dan memori yang ditentukan dalamketentuan tugas layanan. Metrik ini didukung untuk layanan dengan tugas yang menggunakan tipepeluncuran Fargate.

(Total CPU units used by tasks in service) x 100Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)

(Total MiB of memory used by tasks in service) x 100Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

Setiap menitnya, agen kontainer Amazon ECSterkait dengan setiap tugasmenghitung jumlah unit CPU danMiB memori yang saat ini sedang digunakan untuk setiap tugas yang dimiliki oleh layanan, dan informasiini dilaporkan kembali ke Amazon ECS. Jumlah CPU dan memori yang digunakan untuk semua tugasyang dimiliki oleh layanan yang berjalan di klaster dihitung, dan angka tersebut dilaporkan ke CloudWatchsebagai persentase dari total sumber daya yang ditentukan untuk layanan dalam definisi tugas layanan.Jika Anda menentukan soft limit (memoryReservation), maka ketentuan tersebut digunakan untukmenghitung jumlah memori yang disimpan. Jika tidak, hard limit (memory) akan digunakan. Untuk informasiselengkapnya tentang hard limit dan soft limit, lihat Parameter Ketentuan tugas.

Note

Dalam contoh ini, pemanfaatan CPU hanya akan pergi di atas 100% ketika unit CPU didefinisikanpada tingkat kontainer. Jika Anda menentukan unit CPU pada tingkat tugas, pemanfaatan tidakakan pergi di atas batas tingkat tugas yang ditentukan.

Jumlah tugas layanan RUNNINGAnda dapat menggunakan CloudWatch metrik untuk melihat jumlah tugas di layanan Anda yang adadiRUNNINGnegara. Misalnya, Anda dapat mengatur CloudWatch alarm untuk metrik ini untuk mengingatkanAnda jika jumlah tugas yang berjalan di layanan Anda turun di bawah nilai yang ditentukan.

Untuk melihat jumlah tugas yang berjalan di layanan

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.2. Pada panel navigasi, pilihMetrik,Semua metrik.3. PadaJelajahitab, pilihECSnamespace.4. Pilih ClusterName, ServiceName lalu pilih metrik apa pun (CPUUtilization atau

MemoryUtilization) yang sesuai dengan layanan untuk melihat tugas yang berjalan.5. Pada tab Metrik grafik, ubah Periode ke 1 Menit dan Statistik ke Jumlah Sampel.

Nilai yang ditampilkan dalam grafik menunjukkan jumlah tugas RUNNING dalam layanan.

300

Amazon ECS Panduan Pengguna untuk AWS FargateMelihat metrik Amazon ECS

Melihat metrik Amazon ECSSetelah Anda mengaktifkan CloudWatch metrik untuk Amazon ECS, Anda dapat melihat metrik tersebut diAmazon ECS dan CloudWatch konsol. Konsol Amazon ECS menyediakan tampilan maksimum, minimum,dan rata-rata 24 jam untuk Andametrik layanan. Parameter CloudWatch konsol menyediakan tampilansumber daya yang halus dan dapat disesuaikan, serta jumlah tugas yang berjalan dalam layanan.

Topik• Melihat metrik layanan menggunakan konsol Amazon ECS (p. 301)• Melihat metrik Amazon ECS menggunakan konsol CloudWatch (p. 302)

Melihat metrik layanan menggunakan konsol Amazon ECSMetrik pemanfaatan CPU dan memori Amazon ECS tersedia di konsol Amazon ECS. Tampilan yangdisediakan untuk metrik klaster menunjukkan nilai rata-rata, minimum, dan maksimum dalam periode 24jam sebelumnya, dengan titik data yang tersedia dalam interval 5 menit. Untuk informasi selengkapnya,lihat Pemanfaatan layanan (p. 300).

New console

1. Buka konsol baru dihttps://console.aws.amazon.com/ecs/v2.2. Pilih klaster yang metriknya ingin Anda lihat.3. PadaKluster:nama klusterhalaman, pilih layanan.

Metrik tersedia di bawahKondisi.

Classic console

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih klaster yang berisi layanan yang metriknya ingin Anda lihat.3. Pada Klaster: halaman nama-klaster, pilih Layanan.4. Pilih layanan yang metriknya ingin Anda lihat.5. Pada Layanan: nama-layanan, pilih Metrik.

301

Amazon ECS Panduan Pengguna untuk AWS FargateMetrik penggunaan

Melihat metrik Amazon ECS menggunakan konsol CloudWatchMetrik layanan Amazon ECS juga dapat dilihat di konsol CloudWatch. Konsol tersebut menyediakantampilan metrik Amazon ECS yang paling detail, dan Anda dapat menyesuaikan tampilan sesuai dengankebutuhan Anda. Anda dapat melihat Pemanfaatan layanan (p. 300) dan Jumlah tugas layananRUNNING (p. 300). Untuk informasi selengkapnya tentang CloudWatch, lihatAmazon CloudWatchPanduan Pengguna.

Untuk melihat metrik di CloudWatch konsol

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.2. DiMetrikbagian di panel navigasi, pilihSemua Metrik,ECS.3. Pilih metrik untuk dilihat. Metrik klaster dicakup sebagai ECS > ClusterName dan metrik pemanfaatan

layanan dicakup sebagai ECS > ClusterName, ServiceName. Contoh berikut menunjukkanpemanfaatan CPU klaster dan memori.

Metrik penggunaan AWS FargateAnda dapat menggunakan CloudWatch metrik penggunaan untuk memberikan visibilitas pada penggunaansumber daya akun Anda. Gunakan metrik ini untuk memvisualisasikan penggunaan layanan Anda saat iniCloudWatch grafik dan dasbor.

Metrik penggunaan AWS Fargate sesuai dengan service quotas AWS. Anda dapat mengonfigurasi alarmyang memperingatkan ketika penggunaan Anda mendekati kuota layanan. Untuk informasi lebih lanjuttentang kuota layanan Fargate, lihat AWS Fargate service quotas (p. 289).

AWS Fargate memuat metrik berikut ini di namespace AWS/Usage.

Metrik Deskripsi

ResourceCount Jumlah sumber daya tertentu yang berjalan di akun Anda. Sumberdaya ditentukan oleh dimensi yang terkait dengan metrik.

Dimensi berikut ini digunakan untuk memilah penggunaan metrik yang dipublikasikan oleh AWS Fargate.

Dimensi Deskripsi

Service Nama dari layanan AWS yang berisi sumber daya. Untuk metrikpenggunaan AWS Fargate, nilai untuk dimensi ini adalah Fargate.

302

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat CloudWatch alarm untuk memantau

metrik penggunaan sumber daya Fargate

Dimensi Deskripsi

Type Jenis entitas yang dilaporkan. Saat ini, satu-satunya nilai yang validuntuk penggunaan metrik AWS Fargate adalah Resource.

Resource Tipe sumber daya yang sedang berjalan.

Saat ini,AWS Fargatemengembalikan informasi tentang penggunaanSesuai Permintaan Fargate dan Fargate Anda. Nilai sumber dayauntuk penggunaan Sesuai Permintaan Fargate adalahOnDemanddanuntuk Fargate Spot ituSpot.

Note

Penggunaan Sesuai Permintaan Fargate menggabungkanpod Amazon EKS yang menggunakan Fargate, tugasAmazon ECS berperan sebagai tipe peluncuran Fargate danperan dari Amazon ECS adalah FARGATE sebagai penyediakapasitas.

Class Kelas sumber daya yang ditelusuri. Saat ini, AWS Fargate tidakmenggunakan dimensi kelas.

Membuat CloudWatch alarm untuk memantau metrikpenggunaan sumber daya FargateAWS Fargatememberi CloudWatch metrik penggunaan yang sesuai denganAWSKuota Layananuntuk Penggunaan Sumber Daya Sesuai Permintaan Fargate. Di konsol Service Quotas, Anda dapatmemvisualisasikan penggunaan Anda pada grafik dan mengonfigurasi alarm yang memperingatkan Andaketika penggunaan mendekati kuota layanan. Untuk informasi selengkapnya, lihat Metrik penggunaan AWSFargate (p. 302).

Gunakan langkah-langkah berikut untuk membuat CloudWatch alarm berdasarkan salah satu metrikpenggunaan sumber daya Fargate.

Untuk membuat alarm berdasarkan pada kuota penggunaan Fargate Anda (AWS ManagementConsole)

1. Buka konsol Service Quotas di https://console.aws.amazon.com/servicequotas/.2. Di panel navigasi, pilih Layanan AWS.3. Dari daftar Layanan AWS, cari dan pilih AWS Fargate.4. Di daftar Kuota layanan, Pilih kuota penggunaan Fargate yang ingin Anda buat untuk alarm.5. Di Amazon CloudWatch Acara bagian alarm, pilihBuat.6. Untuk Ambang batas Alarm, pilih persentase nilai kuota yang ingin Anda tetapkan sebagai nilai alarm.7. Untuk Nama Alarm, masukkan nama untuk alarm, lalu pilih Buat.

ECS Amazon ECS dan EventBridgeAmazon EventBridge memungkinkan Anda untuk mengotomatisasiAWSlayanan dan merespons peristiwasistem secara otomatis seperti masalah ketersediaan aplikasi atau perubahan sumber daya. PeristiwadariAWSlayanan dikirimkan ke EventBridge dalam waktu dekat real time. Anda dapat menuliskan aturansederhana untuk menunjukkan peristiwa mana yang sesuai kepentingan Anda, dan tindakan otomatis yang

303

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

diambil ketika suatu peristiwa sesuai dengan suatu aturan. Tindakan yang dapat dipicu secara otomatismeliputi hal berikut:

• Menambahkan peristiwa ke grup log di CloudWatch Beberapa catatan• Mengambil fungsi AWS Lambda• Meminta Perintah Amazon EC2 Run• Mengirim peristiwa ke Amazon Kinesis Data Streams• Mengaktifkan mesin keadaan AWS Step Functions• Memberitahu topik Amazon SNS atau antrean Amazon Simple Queue Service (Amazon SQS)

Untuk informasi selengkapnya, lihatMemulai dengan Amazon EventBridgediAmazon EventBridge PanduanPengguna.

Anda dapat menggunakan peristiwa Amazon ECS untuk EventBridge untuk menerima notifikasi secarahampir waktu nyata mengenai status klaster Amazon ECS Anda saat ini. Saatmenggunakan tipepeluncuran Fargate, Anda dapat melihat status tugas Anda. Untuk layanan, Anda dapat melihat peristiwayang berkaitan dengan kondisi layanan Anda.

Dengan menggunakan EventBridge, Anda dapat membangun penjadwal kustom di atas Amazon ECSyang bertanggung jawab untuk mengatur tugas di klaster dan memantau status klaster mendekati waktunyata. Anda dapat menghapus penjadwalan dan kode pemantauan yang terus menjajak pendapat layananAmazon ECS untuk perubahan status dan sebagai gantinya menangani perubahan status AmazonECS secara tidak sinkron menggunakan apa pun EventBridge Target. Target mungkin termasukAWSLambdaAmazon Simple Queue Service, Amazon Simple Notification Service, atau Amazon Kinesis DataStreams.

Aliran peristiwa Amazon ECS memastikan bahwa setiap peristiwa disampaikan setidaknya satu kali. Jikaperistiwa duplikat dikirim, peristiwa menyediakan informasi yang cukup untuk mengidentifikasi duplikat.Untuk informasi selengkapnya, lihat Menangani acara (p. 313).

Peristiwa relatif berurutan, sehingga Anda dapat dengan mudah memberitahu kapan suatu peristiwa terjadidalam kaitannya dengan peristiwa lain.

Topik• Peristiwa Amazon ECS (p. 304)• Menangani acara (p. 313)

Peristiwa Amazon ECSAmazon ECS melacak status masing-masing tugas dan layanan Anda. Jika status tugas atau layananberubah, peristiwa akan dipicu dan dikirim ke Amazon EventBridge. Peristiwa ini diklasifikasikansebagai peristiwa perubahan status tugas dan peristiwa tindakan layanan. Peristiwa dan kemungkinanpenyebabnya dijelaskan secara lebih detail di bagian berikut.

Note

Amazon ECS dapat menambahkan tipe, dan detail peristiwa lainnya di masa future. Jika Andasecara terprogram mendeserialisasi data JSON peristiwa, pastikan bahwa aplikasi Anda siapmenangani properti yang tidak diketahui untuk menghindari masalah jika dan ketika propertitambahan ditambahkan.

Peristiwa perubahan status kontainer dan perubahan status tugas berisi dua bidang version: satu dibagian utama peristiwa, dan satu di objek detail peristiwa. Berikut ini menjelaskan perbedaan antara duabidang tersebut:

304

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

• Bidang version dalam bagian utama peristiwa diatur ke 0 pada semua peristiwa. Untuk informasiselengkapnya tentang parameter EventBridge, lihatPola Peristiwa dan PeristiwadiAmazon EventBridgePanduan Pengguna.

• Bidang version dalam objek detail peristiwa menggambarkan versi sumber daya terkait. Setiapkali sumber daya berubah status, versi ini bertambah. Karena peristiwa dapat dikirim beberapa kali,bidang ini mengizinkan Anda untuk mengidentifikasi peristiwa duplikat. Peristiwa duplikat memilikiversi yang sama di objek detail. Jika Anda mereplikasistatus tugas dengan EventBridge, Andadapat membandingkan versi sumber daya yang dilaporkan oleh API Amazon ECS dengan versi yangdilaporkan dalam EventBridge untuk sumber daya (di dalamdetailobjek) untuk memverifikasi bahwaversi dalam aliran acara Anda saat ini.

Peristiwa tindakan layanan hanya berisi bidang version dalam bagian utama.

Peristiwa perubahan status tugasSkenario berikut memicu peristiwa perubahan status tugas:

Anda memanggil operasi API StartTask, RunTask, atau StopTask, baik secara langsung atau denganAWS Management Console, AWS CLI, atau SDK.

Memulai atau menghentikan tugas membuat sumber daya tugas baru atau mengubah status sumberdaya tugas yang ada.

Penjadwal layanan Amazon ECS memulai atau menghentikan tugas.

Memulai atau menghentikan tugas membuat sumber daya tugas baru atau mengubah status sumberdaya tugas yang ada.

Agen kontainer Amazon ECS memanggilSubmitTaskStateChangeOperasi API.

Agen kontainer Amazon ECS memantau status-mutugasdan melaporkan setiap perubahan negara.Perubahan status dapat mencakup perubahan dari PENDING ke RUNNING atau dari RUNNING keSTOPPED.

Kontainer dalam tugas mengubah status.

Agen kontainer Amazon ECS memantau status kontainer dalam tugas. Misalnya, jika suatu kontaineryang berjalan di dalam tugas berhenti, pengubahan status kontainer ini memicu peristiwa.

Tugas yang menggunakan penyedia kapasitas Fargate Spot menerima pemberitahuan penghentian.

Saat tugas menggunakan penyedia kapasitas FARGATE_SPOT dan berhenti karena gangguan Spot,peristiwa perubahan status tugas dipicu.

Example Peristiwa perubahan status tugas

Peristiwa perubahan status tugas disampaikan dalam format berikut. Parameterdetailbagian bawahmenyerupaiTugasobjek yang dikembalikan dariDescribeTasksOperasi API diReferensi API LayananWadah Amazon Elastic. Jika kontainer Anda menggunakan gambar yang di-hosting dengan Amazon ECR,makaimageDigestbidang dikembalikan.

Note

Nilainya untukcreatedAt,connectivityAt,pullStartedAt,startedAt,pullStoppedAt,danupdatedAtbidang adalah cap waktu UNIX dalam respon dari DescribeTasks tindakansedangkan dalam acara perubahan keadaan tugas mereka ISO string timestamps.

Untuk informasi lebih lanjut tentang CloudWatch Peristiwa parameter, lihatPola Peristiwa danPeristiwadiAmazon EventBridge Panduan Pengguna.

305

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

{ "version": "0", "id": "3317b2af-7005-947d-b652-f55e762e571a", "detail-type": "ECS Task State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-01-23T17:57:58Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad" ], "detail": { "attachments": [ { "id": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "type": "eni", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnet-abcd1234" }, { "name": "networkInterfaceId", "value": "eni-abcd1234" }, { "name": "macAddress", "value": "0a:98:eb:a7:29:ba" }, { "name": "privateIPv4Address", "value": "10.0.0.139" } ] } ], "availabilityZone": "us-west-2c", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/FargateCluster", "containers": [ { "containerArn": "arn:aws:ecs:us-west-2:111122223333:container/cf159fd6-3e3f-4a9e-84f9-66cbe726af01", "lastStatus": "RUNNING", "name": "FargateApp", "image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/hello-repository:latest", "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6", "runtimeId": "ad64cbc71c7fb31c55507ec24c9f77947132b03d48d9961115cf24f3b7307e1e", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "networkInterfaces": [ { "attachmentId": "1789bcae-ddfb-4d10-8ebe-8ac87ddba5b8", "privateIpv4Address": "10.0.0.139" } ], "cpu": "0" } ], "createdAt": "2020-01-23T17:57:34.402Z", "launchType": "FARGATE",

306

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

"cpu": "256", "memory": "512", "desiredStatus": "RUNNING", "group": "family:sample-fargate", "lastStatus": "RUNNING", "overrides": { "containerOverrides": [ { "name": "FargateApp" } ] }, "connectivity": "CONNECTED", "connectivityAt": "2020-01-23T17:57:38.453Z", "pullStartedAt": "2020-01-23T17:57:52.103Z", "startedAt": "2020-01-23T17:57:58.103Z", "pullStoppedAt": "2020-01-23T17:57:55.103Z", "updatedAt": "2020-01-23T17:57:58.103Z", "taskArn": "arn:aws:ecs:us-west-2:111122223333:task/FargateCluster/c13b4cb40f1f4fe4a2971f76ae5a47ad", "taskDefinitionArn": "arn:aws:ecs:us-west-2:111122223333:task-definition/sample-fargate:1", "version": 4, "platformVersion": "1.3.0" }}

Peristiwa tindakan layananAmazon ECS mengirimkan peristiwa tindakan layanan dengan tipe detailTindakan Layanan ECS.Tidak seperti peristiwa perubahan status instans kontainer dan tugas, peristiwa tindakan layanan tidakmencakup nomor versi di bidang tanggapan details. Berikut ini adalah pola peristiwa yang digunakanuntuk membuat EventBridge aturan untuk peristiwa tindakan layanan Amazon ECS. Untuk informasiselengkapnya, lihatMembuat EventBridge AturandiAmazon EventBridge Panduan Pengguna.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Service Action" ]}

Amazon ECS mengirimkan acara denganINFO,WARN, danERRORtipe peristiwa. Berikut ini adalah peristiwatindakan layanan.

Peristiwa tindakan layanan dengan tipe peristiwa INFO

SERVICE_STEADY_STATE

Kondisi layanan ini baik dan pada jumlah tugas yang diinginkan, sehingga mencapai status stabil.Layanan scheduler melaporkan status secara berkala, sehingga Anda mungkin menerima pesan inibeberapa kali.

TASKSET_STEADY_STATE

Tugas yang ditetapkan dalam kondisi baik dan pada jumlah tugas yang diinginkan, sehingga mencapaistatus stabil.

CAPACITY_PROVIDER_STEADY_STATE

Penyedia kapasitas yang terkait dengan layanan mencapai status stabil.

307

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

SERVICE_DESIRED_COUNT_UPDATED

Ketika penjadwal layanan memperbarui jumlah hitungan yang diinginkan untuk set layanan atau tugas.Peristiwa ini tidak dikirim ketika jumlah yang diinginkan diperbarui secara manual oleh pengguna.

Peristiwa tindakan layanan dengan tipe peristiwa WARN

SERVICE_TASK_START_IMPAIRED

Layanan ini tidak dapat berhasil memulai tugas secara konsisten.SERVICE_DISCOVERY_INSTANCE_UNHEALTHY

Layanan yang menggunakan penemuan layanan berisi tugas yang kondisinya tidak baik. Penjadwallayanan mendeteksi bahwa kondisi tugas dalam registri layanan tidak baik.

Peristiwa tindakan layanan dengan tipe peristiwa ERROR

SERVICE_DAEMON_PLACEMENT_CONSTRAINT_VIOLATED

Tugas dalam layanan yang menggunakan strategi penjadwal layanan DAEMON tidak lagi memenuhistrategi kendala penempatan untuk layanan.

ECS_OPERATION_THROTTLED

Penjadwal layanan telah dibatasi karena batas throttling API Amazon ECS.SERVICE_DISCOVERY_OPERATION_THROTTLED

Penjadwal layanan telah dibatasi karena batas throttling API AWS Cloud Map. Hal ini dapat terjadipada layanan yang dikonfigurasi untuk menggunakan penemuan layanan.

SERVICE_TASK_PLACEMENT_FAILURE

Penjadwal layanan tidak dapat menempatkan tugas. Penyebabnya akan dijelaskan dalam bidangreason.

Penyebab umum terpicunya peristiwa layanan adalah karena kurangnya sumber daya di klasteruntuk menempatkan tugas. Misalnya, kurangnya kapasitas CPU atau memori pada instans kontaineryang tersedia atau tidak tersedianya instans kontainer. Penyebab umum lainnya adalah ketika agenkontainer Amazon ECS terputus di instans kontainer, sehingga penjadwal tidak dapat menempatkantugas.

SERVICE_TASK_CONFIGURATION_FAILURE

Penjadwal layanan tidak dapat menempatkan tugas karena kesalahan konfigurasi. Penyebabnya akandijelaskan dalam bidang reason.

Penyebab umum terpicunya peristiwa layanan ini adalah karena penandaan sedang diterapkanuntuk layanan tetapi pengguna atau peran tidak memilih format Amazon Resource Name (ARN) barudi Wilayah. Untuk informasi selengkapnya, lihat Amazon Resource Name (ARN) dan ID (p. 197).Penyebab umum lainnya adalah Amazon ECS tidak dapat mengasumsikan peran IAM task yangdisediakan.

Example Peristiwa status stabil layanan

Peristiwa status stabil layanan disampaikan dalam format berikut. Untuk informasi lebih lanjut tentangEventBridge parameter, lihatPola Peristiwa dan PeristiwadiAmazon EventBridge Panduan Pengguna.

{

308

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

"version": "0", "id": "af3c496d-f4a8-65d1-70f4-a69d52e9b584", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:27:22Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:27:22.695Z" }}

Example Peristiwa status stabil penyedia kapasitas

Peristiwa status stabil penyedia kapasitas disampaikan dalam format berikut.

{ "version": "0", "id": "b9baa007-2f33-0eb1-5760-0d02a572d81f", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:37:00Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "CAPACITY_PROVIDER_STEADY_STATE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/ASG-tutorial-capacity-provider" ], "createdAt": "2019-11-19T19:37:00.807Z" }}

Example Peristiwa gangguan memulai tugas layanan

Peristiwa gangguan memulai tugas layanan disampaikan dalam format berikut.

{ "version": "0", "id": "57c9506e-9d21-294c-d2fe-e8738da7e67d", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "WARN", "eventName": "SERVICE_TASK_START_IMPAIRED",

309

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

"clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "createdAt": "2019-11-19T19:55:38.725Z" }}

Example Peristiwa kegagalan penempatan tugas layanan

Peristiwa kegagalan penempatan tugas disampaikan dalam format berikut. Untuk informasi lebih lanjuttentang EventBridge parameter, lihatPola Peristiwa dan PeristiwadiAmazon EventBridge PanduanPengguna.

Dalam contoh berikut, tugas mencoba untuk menggunakan penyedia kapasitas FARGATE_SPOT tetapipenjadwal layanan tidak dapat memperoleh kapasitas Fargate Spot.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "capacityProviderArns": [ "arn:aws:ecs:us-west-2:111122223333:capacity-provider/FARGATE_SPOT" ], "reason": "RESOURCE:FARGATE", "createdAt": "2019-11-06T19:09:33.087Z" }}

Pada contoh berikut untuk jenis peluncuran EC2, tugas dicoba untuk diluncurkan pada InstansKontainer2dd1b186f39845a584488d2ef155c131tapi scheduler layanan tidak dapat menempatkantugas karena CPU yang tidak mencukupi.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6d0468b", "detail-type": "ECS Service Action", "source": "aws.ecs", "account": "111122223333", "time": "2019-11-19T19:55:38Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_TASK_PLACEMENT_FAILURE", "clusterArn": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "containerInstanceArns": [ "arn:aws:ecs:us-west-2:111122223333:container-instance/default/2dd1b186f39845a584488d2ef155c131" ], "reason": "RESOURCE:CPU", "createdAt": "2019-11-06T19:09:33.087Z"

310

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

}}

Peristiwa perubahan status deployment layananAmazon ECS mengirimkan kejadian status perubahan penerapan layanan dengan tipe detailPerubahanStatus ECS. Berikut ini adalah pola peristiwa yang digunakan untuk membuat EventBridge Aturan untukperistiwa perubahan status penerapan layanan Amazon ECS. Untuk informasi selengkapnya, lihatMembuatEventBridge AturandiAmazon EventBridge Panduan Pengguna.

{ "source": [ "aws.ecs" ], "detail-type": [ "ECS Deployment State Change" ]}

Amazon ECS mengirimkan acara denganINFOdanERRORtipe peristiwa. Berikut adalah peristiwa perubahanstatus deployment layanan.

SERVICE_DEPLOYMENT_IN_PROGRESS

Deployment layanan sedang berlangsung. Peristiwa ini dikirim untuk deployment awal dan deploymentrollback.

SERVICE_DEPLOYMENT_COMPLETED

Deployment layanan telah selesai. Peristiwa ini dikirim setelah layanan mencapai status stabil setelahdeployment.

SERVICE_DEPLOYMENT_FAILED

Deployment layanan gagal. Peristiwa ini dikirim untuk layanan yang mengaktifkan logika pemutussirkuit deployment.

Example Peristiwa deployment layanan sedang berlangsung

Peristiwa deployment layanan yang sedang berlangsung disampaikan ketika deployment awal danrollback dimulai. Perbedaan antara keduanya ada di bidang reason. Untuk informasi lebih lanjut tentangEventBridge parameter, lihatPola Peristiwa dan PeristiwadiAmazon EventBridge Panduan Pengguna.

Berikut ini menampilkan contoh output untuk permulaan deployment awal.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3a6EXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z",

311

Amazon ECS Panduan Pengguna untuk AWS FargatePeristiwa Amazon ECS

"reason": "ECS deployment deploymentId in progress." }}

Berikut ini menampilkan contoh output untuk permulaan deployment rollback. Bidang reason menyediakanID deployment yang digunakan untuk mematalkan layanan.

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_IN_PROGRESS", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: rolling back to deploymentId deploymentID." }}

Example Peristiwa deployment layanan yang telah selesai

Peristiwa status deployment layanan yang telah selesai disampaikan dalam format berikut. Untuk informasiselengkapnya, lihat Pembaruan bergulir (p. 243).

{ "version": "0", "id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "INFO", "eventName": "SERVICE_DEPLOYMENT_COMPLETED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment deploymentID completed." }}

Example Peristiwa deployment layanan yang gagal

Peristiwa deployment layanan yang gagal disampaikan dalam format berikut. Peristiwa deployment layananyang gagal hanya akan dikirim untuk layanan yang mengaktifkan logika pemutus sirkuit deployment. Untukinformasi selengkapnya, lihat Pembaruan bergulir (p. 243).

{ "version": "0",

312

Amazon ECS Panduan Pengguna untuk AWS FargateMenangani acara

"id": "ddca6449-b258-46c0-8653-e0e3aEXAMPLE", "detail-type": "ECS Deployment State Change", "source": "aws.ecs", "account": "111122223333", "time": "2020-05-23T12:31:14Z", "region": "us-west-2", "resources": [ "arn:aws:ecs:us-west-2:111122223333:service/default/servicetest" ], "detail": { "eventType": "ERROR", "eventName": "SERVICE_DEPLOYMENT_FAILED", "deploymentId": "ecs-svc/123", "updatedAt": "2020-05-23T11:11:11Z", "reason": "ECS deployment circuit breaker: task failed to start." }}

Menangani acaraAmazon ECS mengirimkan peristiwa padasetidaknya sekalidasar. Ini berarti Anda mungkin menerimabeberapa salinan dari peristiwa tertentu. Selain itu, peristiwa mungkin tidak dikirimkan ke listener peristiwaAnda sesuai urutan peristiwa yang terjadi.

Untuk mengaktifkan peristiwa sesuai urutan yang benar, kolom detail dari setiap peristiwa berisiproperti version. Setiap kali sumber daya mengubah status, version ini bertambah. Peristiwaduplikat memiliki version yang sama di objek detail. Jika Anda mereplikasistatus tugas denganEventBridge, Anda dapat membandingkan versi sumber daya yang dilaporkan oleh API Amazon ECSdenganversiondilaporkan EventBridge untuk sumber daya untuk memverifikasi bahwa versi dalam aliranacara Anda saat ini. Peristiwa dengan jumlah properti versi yang lebih tinggi harus diperlakukan sebagaiperistiwa yang terjadi setelah peristiwa dengan jumlah versi yang lebih rendah.

Contoh: Menangani peristiwa diAWS LambdafungsiContoh berikut menunjukkan fungsi Lambda yang tertulis di Python 2.7 yang menangkap peristiwaperubahan status tugas dan menyimpannya ke tabel Amazon DynamoDB berikut:

• EcstaskState— Menyimpan status terbaru untuk tugas. ID tabel adalah nilai taskArn tugas.

import jsonimport boto3

def lambda_handler(event, context): id_name = "" new_record = {}

# For debugging so you can see raw event format. print('Here is the event:') print(json.dumps(event))

if event["source"] != "aws.ecs": raise ValueError("Function only supports input from events with a source type of: aws.ecs")

# Switch on task/container events. table_name = "" if event["detail-type"] == "ECS Task State Change": table_name = "ECSTaskState" id_name = "taskArn" event_id = event["detail"]["taskArn"]

313

Amazon ECS Panduan Pengguna untuk AWS FargateWawasan Kontainer CloudWatch

else: raise ValueError("detail-type for event is not a supported type. Exiting without saving event.")

new_record["cw_version"] = event["version"] new_record.update(event["detail"])

# "status" is a reserved word in DDB, but it appears in containerPort # state change messages. if "status" in event: new_record["current_status"] = event["status"] new_record.pop("status")

# Look first to see if you have received a newer version of an event ID. # If the version is OLDER than what you have on file, do not process it. # Otherwise, update the associated record with this latest information. print("Looking for recent event with same ID...") dynamodb = boto3.resource("dynamodb", region_name="us-east-1") table = dynamodb.Table(table_name) saved_event = table.get_item( Key={ id_name : event_id } ) if "Item" in saved_event: # Compare events and reconcile. print("EXISTING EVENT DETECTED: Id " + event_id + " - reconciling") if saved_event["Item"]["version"] < event["detail"]["version"]: print("Received event is a more recent version than the stored event - updating") table.put_item( Item=new_record ) else: print("Received event is an older version than the stored event - ignoring") else: print("Saving new event - ID " + event_id)

table.put_item( Item=new_record )

Amazon ECS CloudWatch Wawasan WadahWawasan Kontainer CloudWatch mengumpulkan, menggabungkan, serta merangkum metrik dan log dariaplikasi dan layanan mikro terkontainer Anda. Metrik tersebut mencakup pemanfaatan sumber daya sepertiCPU, memori, disk, dan jaringan. Metrik tersedia di dasbor otomatis CloudWatch. Untuk daftar lengkapmetrik Wadah Amazon ECS Container Wawasan, lihatMetrik Wawasan Kontainer ECS AmazondiAmazonCloudWatch Panduan Pengguna.

Data operasional dikumpulkan sebagai log acara performa. Berikut adalah entry yang menggunakanskema JSON terstruktur yang memungkinkan data dengan kardialitas tinggi diserap dan disimpan sesuaiskala. Dari data ini, CloudWatch membuat metrik teragregat dengan tingkat yang lebih tinggi di tingkatklaster, dan tugas sebagai CloudWatch metrik. Untuk informasi selengkapnya, lihatMetrik WawasanKontainer Amazon ECS;diAmazon CloudWatch Panduan Pengguna.

Important

Metrik dikumpulkan oleh CloudWatch Wawasan Wadah dikenakan biaya sebagai metrik khusus.Untuk informasi lebih lanjut tentang CloudWatch harga, lihatHarga CloudWatch. Amazon ECS

314

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan Wawasan Kontainer

juga menyediakan metrik pemantauan yang disediakan tanpa biaya tambahan. Untuk informasiselengkapnya, lihat Amazon ECS CloudWatch metrik (p. 297).

Pertimbangan Wawasan KontainerHal berikut harus dipertimbangkan ketika menggunakan CloudWatch Wawasan Kontainer.

• Metrik Wawasan Kontainer CloudWatch hanya mencerminkan sumber daya dengan tugas yang sedangberjalan selama rentang waktu yang ditentukan. Misalnya, jika Anda memiliki sebuah klaster dengan satulayanan di dalamnya namun layanan tersebut tidak memiliki tugasRUNNINGnegara, tidak akan ada metrikyang dikirim ke CloudWatch. Jika Anda memiliki dua layanan dan salah satunya memiliki tugas yangsedang berjalan sementara yang satunya tidak, maka hanya metrik untuk layanan dengan tugas yangsedang berjalan lah yang akan dikirim.

• Metrik jaringan tersedia untuk semua tugas yang dijalankan di Fargate dan tugas yang dijalankan padainstans Amazon EC2 yang menggunakanbridgeatauawsvpcmode jaringan.

Menyiapkan CloudWatch Wawasan Kontainer untukmetrik tingkat klaster dan layananWawasan Kontainer dapat diaktifkan untuk semua kluster baru yang dibuat denganmemilihcontainerInsightsPengaturan akun, pada klaster individual dengan mengaktifkannyamenggunakan pengaturan klaster selama pembuatan klaster, atau pada klaster yang ada denganmenggunakan pengaturan klaster UpdateClusterSettings API.

Memilih untukcontainerInsightspengaturan akun dapat dilakukan dengan konsol Amazon ECSdanAWS CLI. Anda harus menjalankan AWS CLI versi 1.16.200 atau yang lebih baru dari untukmenggunakan fitur ini. Untuk informasi selengkapnya tentang membuat klaster Amazon ECS, lihatMembuatklaster menggunakan konsol klasik (p. 74).

Important

Untuk menyertakan semua pengguna atau peran IAM di akun Anda ke klaster berkemampuanWawasan Kontainer menggunakan konsol

1. Sebagai pengguna root dari akun, buka konsol Amazon ECS dihttps://console.aws.amazon.com/ecs/.2. Di bilah navigasi di bagian atas layar, pilih Region yang akan disertakan ke klaster berkemampuan

Wawasan Kontainer.3. Dari dasbor, pilih Pengaturan Akun.4. UntukPengguna atau peran IAM, pastikan peran IAM instans kontainer root Anda dipilih.5. UntukWawasan Wadah, pilih kotak centang. Pilih Simpan setelah selesai.

Important

Pengguna IAM dan peran IAM membutuhkan izin ecs:PutAccountSetting untukmelakukan tindakan ini.

6. Pada layar konfirmasi, pilih Konfirmasi untuk menyimpan pilihan.

Untuk menyertakan semua pengguna atau peran IAM di akun Anda ke klaster berkemampuanWawasan Kontainer menggunakan baris perintah

Setiap pengguna di akun dapat menggunakan salah satu perintah berikut untuk memodifikasi pengaturanakun default untuk semua pengguna atau peran IAM di akun Anda. Perubahan ini berlaku untuk

315

Amazon ECS Panduan Pengguna untuk AWS FargateMengumpulkan data pelacakan aplikasi

seluruhAWSkecuali pengguna atau peran IAM secara eksplisit mengganti pengaturan ini untuk merekasendiri.

• put-account-setting-default (AWS CLI)

aws ecs put-account-setting-default --name containerInsights --value enabled --region us-east-1

• Write-ECSAccountSettingDefault (AWS Tools for Windows PowerShell)

Write-ECSAccountSettingDefault -Name containerInsights -Value enabled -Region us-east-1 -Force

Untuk menyertakan peran IAM atau instans kontainer ke klaster berkemampuan WawasanKontainer sebagai pengguna root dengan menggunakan baris perintah

Pengguna root pada akun dapat menggunakan salah satu perintah berikut dan menentukan ARN dariperan IAM utama atau peran IAM instans kontainer dalam permintaan untuk mengubah pengaturan akun.

• put-account-setting (AWS CLI)

Contoh berikut merupakan modifikasi pengaturan akun pengguna IAM tertentu:

aws ecs put-account-setting --name containerInsights --value enabled --principal-arn arn:aws:iam::aws_account_id:user/userName --region us-east-1

• Write-ECSAccountSetting (AWS Tools for Windows PowerShell)

Contoh berikut merupakan modifikasi pengaturan akun pengguna IAM tertentu:

Write-ECSAccountSetting -Name containerInsights -Value enabled -PrincipalArn arn:aws:iam::aws_account_id:user/userName -Region us-east-1 -Force

Untuk memperbarui pengaturan bagi klaster yang ada menggunakan baris perintah

Gunakan salah satu perintah berikut untuk memperbarui pengaturan untuk klaster.

• perbarui-klaster-pengaturan (AWS CLI)

aws ecs update-cluster-settings --cluster cluster_name_or_arn --settings name=containerInsights,value=enabled|disabled --region us-east-1

Mengumpulkan data pelacakan aplikasiAmazon ECS terintegrasi denganAWSDistro untuk OpenTelemetry untuk mengumpulkan datajejak dari aplikasi Anda. Amazon ECS menggunakanAWSDistro untuk OpenTelemetry kontainersidecar untuk mengumpulkan dan rute jejak data keAWS X-Ray. Untuk informasi selengkapnya,lihatMenyiapkanAWSDistro untuk OpenTelemetry Kolektor di Amazon ECS.

UntukAWSDistro untuk OpenTelemetry Kolektor untuk mengirim data pelacakan keAWS X-Ray, aplikasiAnda harus dikonfigurasi untuk membuat data pelacakan. Untuk informasi selengkapnya, lihatInstrumentingaplikasi Anda untukAWS X-RaydiAWS X-RayPanduan Pengembang.

316

Amazon ECS Panduan Pengguna untuk AWS FargateIzin IAM yang Diperlukan untukAWSDistro untuk

OpenTelemetry integrasi denganAWS X-Ray

Izin IAM yang Diperlukan untukAWSDistro untukOpenTelemetry integrasi denganAWS X-RayIntegrasi Amazon ECS denganAWSDistro untuk OpenTelemetry mengharuskan Anda membuat peranIAM tugas dan menentukan peran dalam definisi tugas Anda. Kami merekomendasikan bahwaAWSDistrountuk OpenTelemetry sidecar juga dikonfigurasi untuk merutekan log kontainer ke CloudWatch Logyang membutuhkan peran IAM eksekusi tugas dibuat dan ditentukan dalam definisi tugas Anda juga.Pengalaman konsol Amazon ECS yang baru menangani peran IAM eksekusi tugas atas nama Anda,tetapi peran IAM tugas harus dibuat secara manual. Untuk informasi selengkapnya tentang cara membuatsebuah eksekusi tugas IAM role, lihatPeran IAM eksekusi tugas ECS Amazon (p. 363).

Important

Jika Anda juga mengumpulkan metrik aplikasi menggunakanAWSDistro untuk OpenTelemetryintegrasi, pastikan peran IAM tugas Anda juga berisi izin yang diperlukan untuk integrasi tersebut.Untuk informasi selengkapnya, lihat Mengumpulkan metrik aplikasi (p. 319).

Untuk membuat peran IAM tugas untukAWSDistro untuk integrasi OpenTelemetry

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Kebijakan, Buat kebijakan.3. PadaMembuat kebijakanhalaman, beralih keJSONtab, copy dan paste kebijakan IAM berikut JSON ke

lapangan, lalu pilihSelanjutnya: Tanda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets", "xray:GetSamplingStatisticSummaries" ], "Resource": "*" } ]}

4. (Opsional) Tambahkan satu tag atau lebih ke kebijakan, lalu pilihSelanjutnya: Tinjau.5. UntukNama, tentukanAWSDistroOpenTelemetryPolicyForXray.6. UntukDeskripsi, tentukan deskripsi opsional, lalu pilihMembuat kebijakan.7. Dalam panel navigasi, pilih Peran, lalu Buat peran.8. Di bagian Pilih tipe entitas tepercaya, pilih Layanan AWS, Elastic Container Service.9. UntukPilih kasus penggunaan Anda, pilihTugas Wadah Elastic, lalu pilihSelanjutnya: Izin.10. DiMelampirkan kebijakan izinbagian, cariAWSDistroOpenTelemetryPolicyForxRay, pilih kebijakan, dan

kemudian pilihSelanjutnya: Tanda.11. UntukTambahkan tag (opsional), tentukan setiap tanda kustom untuk mengaitkan dengan kebijakan

dan kemudian pilihSelanjutnya: Tinjau.12. UntukNama peran, tentukanAmazonECS_OpenTelemetryXrayRoledan memilihlahMembuat peran.

317

Amazon ECS Panduan Pengguna untuk AWS FargateMenentukanAWSDistro untuk OpenTelemetry sespan

untukAWS X-Rayintegrasi dalam ketentuan tugas Anda

MenentukanAWSDistro untuk OpenTelemetry sespanuntukAWS X-Rayintegrasi dalam ketentuan tugasAndaPengalaman konsol Amazon ECS yang baru menyederhanakan pengalaman menciptakanAWSDistrountuk OpenTelemetry kontainer sidecar dengan menggunakanGunakan koleksi pelacakanpilihan. Untukinformasi selengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Jika Anda tidak menggunakan konsol Amazon ECS, Anda dapat menambahkanAWSDistro untukOpenTelemetry kontainer sidecar untuk ketentuan tugas Anda. Cuplikan definisi tugas berikut menunjukkandefinisi kontainer untuk menambahkanAWSDistro untuk OpenTelemetry sespan untukAWS X-Rayintegrasi.

{ "family": "otel-using-xray", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryXrayRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [{ "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.17.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-xray.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072"}

318

Amazon ECS Panduan Pengguna untuk AWS FargateMengumpulkan metrik aplikasi

Mengumpulkan metrik aplikasiParameterAWSDistro untuk OpenTelemetry (ADOT) fitur koleksi metrik di pratinjau. Pratinjauterbuka untuk semuaAWSakun. Fitur dapat ditambahkan atau diubah sebelum mengumumkanKetersediaan Umum.

Amazon ECS di Fargate mendukung pengumpulan metrik dari aplikasi Anda yang berjalan di Fargate danmengekspornya ke Amazon CloudWatch atau Amazon Managed Service untuk Prometheus. Amazon ECSmenggunakanAWSDistro untuk OpenTelemetry wadah sidecar untuk mengumpulkan dan mengarahkanmetrik aplikasi Anda ke tujuan. Pengalaman konsol Amazon ECS yang baru menyederhanakan prosespenambahan integrasi ini saat membuat definisi tugas Anda.

Topik• Mengekspor metrik aplikasi ke Amazon CloudWatch (p. 319)• Mengekspor metrik aplikasi ke Amazon Managed Service untuk Prometheus (p. 322)

Mengekspor metrik aplikasi ke Amazon CloudWatchParameterAWSDistro untuk OpenTelemetry (ADOT) fitur koleksi metrik ada di pratinjau. Pratinjauterbuka untuk semuaAWSakun. Fitur dapat ditambahkan atau diubah sebelum mengumumkanKetersediaan Umum.

Amazon ECS di Fargate mendukung mengekspor metrik aplikasi kustom Anda ke Amazon CloudWatchsebagai metrik khusus. Hal ini dilakukan dengan menambahkanAWSDistro untuk OpenTelemetry kontainersidecar untuk ketentuan tugas Anda. Pengalaman konsol Amazon ECS baru menyederhanakan prosesini dengan menambahkanGunakan koleksi metriksaat membuat ketentuan tugas baru. Untuk informasiselengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Metrik aplikasi diekspor ke CloudWatch Log dengan nama grup log/aws/ecs/application/metricsdan metrik dapat dilihat diECS/AWSOTel/Applicationnamespace. Aplikasi Anda harusdiinstrumentasi dengan OpenTelemetry SDK. Untuk informasi selengkapnya, lihatPengantarAWSDistrountuk OpenTelemetrydiAWSDistro untuk dokumentasi OpenTelemetry.

Pertimbangan-pertimbanganHal berikut ini harus dipertimbangkan saat menggunakan Amazon ECS pada integrasi FargatedenganAWSDistro untuk OpenTelemetry untuk mengirim metrik aplikasi ke Amazon CloudWatch.

• Saat integrasi ini digunakan, Amazon ECS tidak mengirimkan metrik tingkat tugas apa pun keCloudWatch Wawasan Kontainer. Anda dapat mengaktifkan Wawasan Kontainer di tingkat klasterAmazon ECS untuk menerima metrik tersebut. Untuk informasi selengkapnya, lihat Amazon ECSCloudWatch Wawasan Wadah (p. 314).

• ParameterAWSDistro untuk OpenTelemetry integrasi hanya didukung untuk beban kerja Amazon ECSyang dihosting di Fargate. Beban kerja Amazon ECS yang dihosting di instans Amazon EC2 atau instanseksternal saat ini tidak didukung.

• CloudWatch mendukung maksimum 10 dimensi per metrik. Secara default, Amazon ECSdefault untuk menyertakanTaskARN,ClusterARN,LaunchType,TaskDefinitionFamily,danTaskDefinitionRevisiondimensi untuk metrik. Sisanya 5 dimensi dapat didefinisikan olehaplikasi Anda. Jika lebih dari 10 dimensi dikonfigurasi, CloudWatch tidak bisa menampilkannya. Ketikaini terjadi, metrik aplikasi akan muncul diECS/AWSOTel/Application CloudWatch namespacemetrik tapi tanpa dimensi apapun. Anda dapat instrumen aplikasi Anda untuk menambahkan dimensitambahan. Untuk informasi selengkapnya, lihatMenggunakan CloudWatch metrik denganAWSDistrountuk OpenTelemetrydiAWSDistro untuk OpenTelemetry dokumentasi.

319

Amazon ECS Panduan Pengguna untuk AWS FargateMengekspor metrik aplikasi ke Amazon CloudWatch

Izin IAM yang Diperlukan untukAWSDistro untuk OpenTelemetryintegrasi dengan Amazon CloudWatchIntegrasi Amazon ECS denganAWSDistro untuk OpenTelemetry mengharuskan Anda membuat peranIAM tugas dan menentukan peran dalam definisi tugas Anda. Kami merekomendasikan bahwaAWSDistrountuk OpenTelemetry sidecar juga dikonfigurasi untuk merutekan log kontainer ke CloudWatch Logyang membutuhkan peran IAM eksekusi tugas dibuat dan ditentukan dalam definisi tugas Anda juga.Pengalaman konsol Amazon ECS yang baru menangani peran IAM eksekusi tugas atas nama Anda, tetapiperan IAM tugas harus dibuat secara manual dan ditambahkan ke definisi tugas Anda. Untuk informasiselengkapnya tentang eksekusi tugas IAM role, lihatPeran IAM eksekusi tugas ECS Amazon (p. 363).

Important

Jika Anda juga mengumpulkan data pelacakan aplikasi menggunakanAWSDistro untukOpenTelemetry integrasi, pastikan peran IAM tugas Anda juga berisi izin yang diperlukanuntuk integrasi tersebut. Untuk informasi selengkapnya, lihat Mengumpulkan data pelacakanaplikasi (p. 316).

Untuk membuat peran IAM tugas untukAWSDistro untuk integrasi OpenTelemetry denganCloudWatch

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Kebijakan, Buat kebijakan.3. PadaMembuat kebijakanhalaman, beralih keJSONtab, copy dan paste kebijakan IAM berikut JSON ke

lapangan, lalu pilihSelanjutnya: Tanda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "cloudwatch:PutMetricData" ], "Resource": "*" } ]}

Note

Jika aplikasi Anda memerlukan izin tambahan, Anda harus menambahkannya ke kebijakanini. Setiap definisi tugas hanya dapat menentukan satu peran IAM tugas. Misalnya, jikaAnda menggunakan file konfigurasi kustom yang disimpan di Systems Manager, Anda harusmenambahkanssm:GetParametersizin untuk kebijakan IAM ini.

4. (Opsional) Tambahkan satu tag atau lebih ke kebijakan, lalu pilihSelanjutnya: Tinjau.5. UntukNama, tentukanAWSDistroOpenTelemetryPolicyForCloudWatch.6. UntukDeskripsi, tentukan deskripsi opsional, lalu pilihMembuat kebijakan.7. Dalam panel navigasi, pilih Peran, lalu Buat peran.8. Di bagian Pilih tipe entitas tepercaya, pilih Layanan AWS, Elastic Container Service.9. UntukPilih kasus penggunaan Anda, pilihTugas Wadah Elastic, lalu pilihSelanjutnya: Izin.

320

Amazon ECS Panduan Pengguna untuk AWS FargateMengekspor metrik aplikasi ke Amazon CloudWatch

10. DiMelampirkan kebijakan izinbagian, cariAWSDistroOpenTelemetryPolicyForCloudWatch, pilihkebijakan, dan kemudian pilihSelanjutnya: Tanda.

11. UntukTambahkan tag (opsional), tentukan setiap tanda kustom untuk mengaitkan dengan kebijakandan kemudian pilihSelanjutnya: Tinjau.

12. UntukNama peran, tentukanAmazonECS_OpenTelemetryCloudWatchRoledan memilihlahMembuatperan.

MenentukanAWSDistro untuk OpenTelemetry dalam ketentuantugas AndaPengalaman konsol Amazon ECS yang baru menyederhanakan pengalaman menciptakanAWSDistrountuk OpenTelemetry kontainer sidecar dengan menggunakanGunakan koleksi metrikpilihan. Untukinformasi selengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Jika Anda tidak menggunakan konsol Amazon ECS, Anda dapat menambahkanAWSDistro untukOpenTelemetry kontainer sidecar untuk definisi tugas Anda secara manual. Contoh definisi tugas berikutmenunjukkan definisi kontainer untuk menambahkanAWSDistro untuk OpenTelemetry sespan untukAmazon CloudWatch integrasi.

{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryCloudWatchRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [{ "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{ "containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.17.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-cloudwatch.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [

321

Amazon ECS Panduan Pengguna untuk AWS FargateMengekspor metrik aplikasi ke Amazon

Managed Service untuk Prometheus

"FARGATE" ], "cpu": "1024", "memory": "3072"}

Mengekspor metrik aplikasi ke Amazon ManagedService untuk Prometheus

ParameterAWSDistro untuk OpenTelemetry (ADOT) fitur koleksi metrik ada di pratinjau. Pratinjauterbuka untuk semuaAWSakun. Fitur dapat ditambahkan atau diubah sebelum mengumumkanKetersediaan Umum.

Amazon ECS mendukung pengekspor CPU, memori, jaringan, dan metrik penyimpanan tingkat tugasAnda serta metrik aplikasi khusus Anda ke Amazon Managed Service for Prometheus. Hal ini dilakukandengan menambahkanAWSDistro untuk OpenTelemetry kontainer sidecar untuk ketentuan tugas Anda.Pengalaman konsol Amazon ECS baru menyederhanakan proses ini dengan menambahkanGunakankoleksi metriksaat membuat ketentuan tugas baru. Untuk informasi selengkapnya, lihat Membuat ketentuantugas menggunakan konsol baru (p. 63).

Metrik diekspor ke Amazon Managed Service untuk Prometheus dan dapat dilihat menggunakan dasborAmazon Managed Grafana. Aplikasi Anda harus diinstrumentasi dengan perpustakaan Prometheus ataudengan OpenTelemetry SDK. Untuk informasi selengkapnya tentang instrumentasi aplikasi Anda denganOpenTelemetry SDK, lihatPengantarAWSDistro untuk OpenTelemetrydiAWSDistro untuk dokumentasiOpenTelemetry.

Saat menggunakan pustaka Prometheus, aplikasi Anda harus mengekspos/metricsendpoint yangdigunakan untuk mengikis data metrik. Untuk informasi selengkapnya tentang menginstrumentasi aplikasiAnda dengan pustaka Prometheus, lihatPerpustakaan klien Prometheusdalam dokumentasi Prometheus.

Pertimbangan-pertimbanganHal berikut ini harus dipertimbangkan saat menggunakan Amazon ECS pada integrasi FargatedenganAWSDistro untuk OpenTelemetry untuk mengirim metrik aplikasi ke Amazon CloudWatch.

• ParameterAWSDistro untuk OpenTelemetry integrasi hanya didukung untuk beban kerja Amazon ECSyang dihosting di Fargate. Beban kerja Amazon ECS yang dihosting di instans Amazon EC2 atau instanseksternal saat ini tidak didukung.

• Amazon ECS tidak mengirimkan metrik tingkat tugas apa pun ke CloudWatch Wawasan Kontainer. Andadapat mengaktifkan Wawasan Kontainer di tingkat klaster Amazon ECS untuk menerima metrik tersebut.Untuk informasi selengkapnya, lihat Amazon ECS CloudWatch Wawasan Wadah (p. 314).

• Secara default,AWSDistro untuk OpenTelemetry mencakup semua dimensi tingkat tugas yang tersediauntuk metrik aplikasi Anda saat mengekspor ke Amazon Managed Service untuk Prometheus. Anda jugadapat instrumen aplikasi Anda untuk menambahkan dimensi tambahan. Untuk informasi selengkapnya,lihatMemulai dengan Prometheus Remote Write Exporter untuk Amazon Managed Service untukPrometheusdiAWSDistro untuk OpenTelemetry dokumentasi.

Izin IAM yang Diperlukan untukAWSDistro untuk OpenTelemetryintegrasi dengan Amazon Managed Service untuk PrometheusIntegrasi Amazon ECS dengan Amazon Managed Service untuk Prometheus menggunakanAWSDistrountuk OpenTelemetry sidecar mengharuskan Anda membuat peran IAM tugas dan menentukan perandalam definisi tugas Anda. Peran IAM tugas ini harus dibuat secara manual menggunakan langkah-langkahdi bawah ini sebelum mendaftarkan definisi tugas Anda.

322

Amazon ECS Panduan Pengguna untuk AWS FargateMengekspor metrik aplikasi ke Amazon

Managed Service untuk Prometheus

Kami merekomendasikan bahwaAWSDistro untuk OpenTelemetry sidecar juga dikonfigurasi untukmerutekan log kontainer ke CloudWatch Log yang membutuhkan peran IAM eksekusi tugas dibuat danditentukan dalam definisi tugas Anda juga. Pengalaman konsol Amazon ECS yang baru menanganiperan IAM eksekusi tugas atas nama Anda, tetapi peran IAM tugas harus dibuat secara manual. Untukinformasi selengkapnya tentang membuat peran IAM eksekusi tugas, lihatPeran IAM eksekusi tugas ECSAmazon (p. 363).

Important

Jika Anda juga mengumpulkan data pelacakan aplikasi menggunakanAWSDistro untukOpenTelemetry integrasi, pastikan peran IAM tugas Anda juga berisi izin yang diperlukanuntuk integrasi tersebut. Untuk informasi selengkapnya, lihat Mengumpulkan data pelacakanaplikasi (p. 316).

Untuk membuat peran IAM tugas untukAWSDistro untuk integrasi OpenTelemetry dengan AmazonManaged Service untuk Prometheus

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Dalam panel navigasi, pilih Peran, lalu Buat peran.3. Di bagian Pilih tipe entitas tepercaya, pilih Layanan AWS, Elastic Container Service.4. UntukPilih kasus penggunaan Anda, pilihTugas Wadah Elastic, lalu pilihSelanjutnya: Izin.5. DiMelampirkan kebijakan izinbagian, cariAmazonPrometheusRemoteWriteAccesskebijakan, pilih

kebijakan, dan kemudian pilihSelanjutnya: Tanda.6. UntukTambahkan tag (opsional), tentukan setiap tanda kustom untuk mengaitkan dengan kebijakan

dan kemudian pilihSelanjutnya: Tinjau.7. UntukNama peran, tentukanAmazonECS_OpenTelemetryPrometheusRoledan memilihlahMembuat

peran.

MenentukanAWSDistro untuk OpenTelemetry dalam ketentuantugas AndaPengalaman konsol Amazon ECS yang baru menyederhanakan pengalaman menciptakanAWSDistrountuk OpenTelemetry kontainer sidecar dengan menggunakanGunakan koleksi metrikpilihan. Untukinformasi selengkapnya, lihat Membuat ketentuan tugas menggunakan konsol baru (p. 63).

Jika Anda tidak menggunakan konsol Amazon ECS, Anda dapat menambahkanAWSDistro untukOpenTelemetry kontainer sidecar untuk definisi tugas Anda secara manual. Contoh definisi tugas berikutmenunjukkan definisi kontainer untuk menambahkanAWSDistro untuk OpenTelemetry sidecar untukAmazon Managed Service untuk integrasi Prometheus.

{ "family": "otel-using-cloudwatch", "taskRoleArn": "arn:aws:iam::111122223333:role/AmazonECS_OpenTelemetryCloudWatchRole", "executionRoleArn": "arn:aws:iam::111122223333:role/ecsTaskExecutionRole", "containerDefinitions": [{ "name": "aws-otel-emitter", "image": "application-image", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "true", "awslogs-group": "/ecs/aws-otel-emitter", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "dependsOn": [{

323

Amazon ECS Panduan Pengguna untuk AWS FargateMencatat panggilan API Amazon

ECS denganAWS CloudTrail

"containerName": "aws-otel-collector", "condition": "START" }] }, { "name": "aws-otel-collector", "image": "public.ecr.aws/aws-observability/aws-otel-collector:v0.17.0", "essential": true, "command": [ "--config=/etc/ecs/ecs-cloudwatch.yaml" ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-create-group": "True", "awslogs-group": "/ecs/ecs-aws-otel-sidecar-collector", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } } } ], "networkMode": "awsvpc", "requiresCompatibilities": [ "FARGATE" ], "cpu": "1024", "memory": "3072"}

Mencatat panggilan API Amazon ECS denganAWSCloudTrail

Amazon ECS terintegrasi denganAWS CloudTrail, layanan yang menyediakan catatan tindakan yangdiambil oleh pengguna, peran, atauAWSlayanan di Amazon ECS. CloudTrail menangkap semua panggilanAPI untuk Amazon ECS sebagai peristiwa, termasuk panggilan dari konsol Amazon ECS dan panggilankode ke operasi Amazon ECS API.

Jika Anda membuat jejak, Anda dapat mengaktifkan pengiriman berkelanjutan CloudTrail peristiwa kebucket Amazon S3, termasuk peristiwa untuk Amazon ECS. Jika Anda tidak mengonfigurasi jejak, Andamasih dapat melihat peristiwa terbaru di CloudTrail konsol diRiwayat peristiwa. Dengan menggunakaninformasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat ke AmazonECS, alamat IP asal permintaan tersebut dibuat, siapa yang membuat permintaan, kapan dibuat, dan detailtambahan lainnya.

Untuk informasi selengkapnya, lihat Panduan Pengguna AWS CloudTrail.

Informasi Amazon ECS di CloudTrailCloudTrail diaktifkan pada akun AWS Anda saat Anda membuat akun tersebut. Saat aktivitas terjadi diAmazon ECS, aktivitas tersebut direkam dalam CloudTrail acara bersama denganAWSperistiwa layanandiRiwayat peristiwa. Anda dapat melihat, mencari, dan mengunduh peristiwa terbaru di akun AWS Anda.Untuk informasi selengkapnya, lihatMelihat Peristiwa dengan CloudTrail Riwayat Peristiwa.

Untuk catatan berkelanjutan tentang peristiwa diAWSakun, termasuk peristiwa untuk Amazon ECS,membuat jejak. Jejak memungkinkan CloudTrail untuk mengirimkan file log ke bucket Amazon S3. Secaradefault, saat Anda membuat lintasan di konsol, lintasan tersebut berlaku untuk semua wilayah . Jejak

324

Amazon ECS Panduan Pengguna untuk AWS FargateMemahami entri file log Amazon ECS

mencatat peristiwa dari semua Wilayah di partisi AWS dan mengirimkan file log ke bucket Amazon S3yang Anda tentukan. Selain itu, Anda dapat mengonfigurasi layanan AWS lainnya untuk menganalisislebih lanjut dan bertindak berdasarkan data peristiwa yang dikumpulkan di log CloudTrail. Untuk informasiselengkapnya, lihat:

• Ikhtisar untuk Membuat Jejak• Layanan yang Didukung dan Integrasi CloudTrail• Mengonfigurasi Notifikasi Amazon SNS untuk CloudTrail• Menerima CloudTrail Berkas Log dari Beberapa WilayahdanMenerima CloudTrail Berkas Log dari

Beberapa Akun

Semua tindakan Amazon ECS dicatat oleh CloudTrail dan didokumentasikan dalamReferensi API LayananWadah Amazon Elastic. Misalnya, panggilan keCreateService,RunTaskdanDeleteClusterbagianmenghasilkan entri dalam CloudTrail file log.

Setiap entri peristiwa atau log berisi informasi tentang siapa yang membuat permintaan tersebut. Informasiidentitas membantu Anda menentukan hal berikut:

• Jika permintaan tersebut dibuat dengan kredensial pengguna root atau IAM.• Jika permintaan tersebut dibuat dengan kredensial keamanan sementara untuk peran atau pengguna

federasi.• Apakah permintaan dibuat oleh layanan AWS lain.

Untuk informasi lebih lanjut, lihat Elemen userIdentity CloudTrail.

Memahami entri file log Amazon ECSJejak adalah konfigurasi yang memungkinkan pengiriman peristiwa sebagai berkas log ke bucket AmazonS3 yang Anda tentukan. CloudTrail file log berisi satu atau beberapa entri log. Peristuwa mewakili satupermintaan dari sumber apa pun dan mencakup informasi tentang tindakan yang diminta, tanggal danwaktu tindakan, parameter permintaan, dan sebagainya. CloudTrail berkas log bukan jejak tumpukanpanggilan API publik yang berurutan, sehingga tidak muncul dalam urutan tertentu.

Note

Contoh-contoh ini telah diformat untuk meningkatkan keterbacaan. Dalam CloudTrail berkas log,semua entri dan peristiwa digabungkan menjadi satu baris. Selain itu, contoh ini telah dibatasipada entri tunggal Amazon ECS. Dalam nyata CloudTrail berkas log, Anda melihat entri danperistiwa dari beberapaAWSlayanan.

Contoh berikut menunjukkan CloudTrail entri log yang menunjukkanCreateClustertindakan:

{ "eventVersion": "1.04", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE:account_name", "arn": "arn:aws:sts::123456789012:user/Mary_Major", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-06-20T18:32:25Z" }, "sessionIssuer": { "type": "Role",

325

Amazon ECS Panduan Pengguna untuk AWS FargateMemahami entri file log Amazon ECS

"principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Mary_Major" } } }, "eventTime": "2018-06-20T19:04:36Z", "eventSource": "ecs.amazonaws.com", "eventName": "CreateCluster", "awsRegion": "us-east-1", "sourceIPAddress": "203.0.113.12", "userAgent": "console.amazonaws.com", "requestParameters": { "clusterName": "default" }, "responseElements": { "cluster": { "clusterArn": "arn:aws:ecs:us-east-1:123456789012:cluster/default", "pendingTasksCount": 0, "registeredContainerInstancesCount": 0, "status": "ACTIVE", "runningTasksCount": 0, "statistics": [], "clusterName": "default", "activeServicesCount": 0 } }, "requestID": "cb8c167e-EXAMPLE", "eventID": "e3c6f4ce-EXAMPLE", "eventType": "AwsApiCall", "recipientAccountId": "123456789012"}

326

Amazon ECS Panduan Pengguna untuk AWS FargateIdentity and Access Management

Layanan Wadah Amazon ElasticKeamanan cloud di AWS merupakan prioritas tertinggi. Sebagai pelanggan AWS, Anda akan mendapatkanmanfaat dari pusat data dan arsitektur jaringan yang dibangun untuk memenuhi persyaratan organisasiyang paling sensitif terhadap keamanan.

Keamanan adalah tanggung jawab bersama antara AWS dan Anda. Model tanggung jawab bersamamenggambarkan ini sebagai keamanan dari cloud dan keamanan di dalam cloud:

• Keamanan cloud – AWS bertanggung jawab untuk melindungi infrastruktur yang menjalankan layananAWS di dalam AWS Cloud. AWS juga memberi layanan yang dapat Anda gunakan dengan aman.Auditor pihak ketiga menguji dan memverifikasi efektivitas keamanan kami sebagai bagian dari programkepatuhan AWS. Untuk mempelajari tentang program kepatuhan yang berlaku di Amazon ElasticContainer Service, lihatAWSLayanan dalam Lingkup oleh Program Kepatuhan.

• Keamanan di cloud – Tanggung jawab Anda ditentukan menurut layanan AWS yang Anda gunakan.Anda juga bertanggung jawab atas faktor lain termasuk sensitivitas data Anda, persyaratan perusahaanAnda, serta hukum dan peraturan yang berlaku.

Dokumentasi ini membantu Anda memahami cara menerapkan model tanggung jawab bersama saatmenggunakan Amazon ECS. Topik berikut menunjukkan kepada Anda cara mengonfigurasi AmazonECS untuk memenuhi tujuan keamanan dan kepatuhan Anda. Anda juga belajar cara menggunakanlainnyaAWSlayanan yang dapat membantu Anda memantau dan mengamankan sumber daya AmazonECS Anda.

Topik• Identity and Access Management untuk Layanan Wadah Amazon Elastic (p. 327)• Pencatatan dan pemantauan Amazon Elastic Container Service (p. 384)• Validasi Kepatuhan untuk Layanan Wadah Amazon Elastic (p. 385)• Layanan Kontainer Amazon Elastic (p. 386)

Identity and Access Management untuk LayananWadah Amazon Elastic

AWS Identity and Access Management(IAM) adalahLayanan AWSyang membantu administratordalam mengontrol akses keAWSsumber daya. Administrator IAM mengontrol siapa yangbisamengonfirmasi(masuk) danresmi(memiliki izin) untuk menggunakan sumber daya Amazon ECS. IAMadalahLayanan AWSyang dapat Anda gunakan tanpa biaya tambahan.

Topik• Penonton (p. 328)• Mengautentikasi dengan identitas (p. 328)• Mengelola akses menggunakan kebijakan (p. 330)• Bagaimana Amazon Elastic Container Service bekerja dengan IAM (p. 332)• Contoh kebijakan berbasis identitas untuk Layanan Wadah Amazon Elastic (p. 339)• AWSLayanan Wadah Amazon Elastic Container (p. 348)• Peran tertaut layanan untuk Amazon ECS (p. 356)

327

Amazon ECS Panduan Pengguna untuk AWS FargatePenonton

• Peran IAM eksekusi tugas ECS Amazon (p. 363)• Peran IAM Anywhere (p. 367)• IAM role untuk tugas (p. 369)• Amazon ECS CodeDeploy IAM Role (p. 374)• Amazon ECS CloudWatch Peran IAM (p. 378)• Konfigurasi tambahan untuk IAM role Windows untuk tugas (p. 381)• Memecahkan masalah identitas dan akses Amazon Elastic Container Service (p. 382)

PenontonCara menggunakanAWS Identity and Access Management(IAM) berbeda-beda, tergantung pada pekerjaanyang Anda lakukan di Amazon ECS.

Pengguna layanan— Jika Anda menggunakan layanan Amazon ECS untuk melakukan tugas Anda,administrator Anda akan memberikan kredensi dan izin yang dibutuhkan. Saat Anda menggunakan lebihbanyak fitur Amazon ECS untuk melakukan tugas, Anda mungkin memerlukan izin tambahan. Memahamicara akses dikelola dapat membantu Anda untuk meminta izin yang tepat dari administrator Anda. JikaAnda tidak dapat mengakses fitur di Amazon ECS, lihatMemecahkan masalah identitas dan akses AmazonElastic Container Service (p. 382).

Administrator layanan— Jika Anda bertanggung jawab atas sumber daya Amazon ECS di perusahaanAnda, Anda mungkin memiliki akses penuh ke Amazon ECS. Anda bertanggung jawab untuk menentukanfitur Amazon ECS dan sumber daya mana yang dapat diakses karyawan Anda. Anda kemudian harusmengirimkan permintaan ke administrator IAM Anda untuk mengubah izin pengguna layanan Anda.Tinjau informasi di halaman ini untuk memahami konsep dasar IAM. Untuk mempelajari selengkapnyacara perusahaan Anda dapat menggunakan IAM dengan Amazon ECS, lihatBagaimana Amazon ElasticContainer Service bekerja dengan IAM (p. 332).

Administrator IAM— Jika Anda adalah administrator IAM, Anda mungkin ingin mempelajari detail tentangbagaimana Anda dapat menulis kebijakan untuk mengelola akses ke Amazon ECS. Untuk melihat contohkebijakan berbasis identitas Amazon ECS yang dapat Anda gunakan di IAM, lihatContoh kebijakanberbasis identitas untuk Layanan Wadah Amazon Elastic (p. 339).

Mengautentikasi dengan identitasAutentikasi adalah cara Anda untuk masuk ke AWS menggunakan kredensial identitas Anda. Untukinformasi selengkapnya tentang cara masuk menggunakan AWS Management Console, lihat Masuk keAWS Management Console sebagai pengguna IAM atau pengguna root dalam Panduan Pengguna IAM.

Anda harus terautentikasi (masuk ke AWS) sebagai pengguna root Akun AWS, pengguna IAM, ataudengan menggunakan IAM role. Anda juga dapat menggunakan autentikasi single sign-on milikperusahaan Anda, atau bahkan masuk menggunakan Google atau Facebook. Dalam kasus ini,administrator Anda sebelumnya telah menyiapkan federasi identitas menggunakan IAM role. Saat Andamengakses AWS menggunakan kredensial dari perusahaan lain, secara tidak langsung Anda mengambilsebuah peran.

Untuk masuk secara langsung ke AWS Management Console, gunakan kata sandi Anda dengan alamatemail pengguna asal atau nama pengguna IAM Anda. Anda dapat mengakses AWS secara terprogrammenggunakan kunci akses pengguna asal atau pengguna IAM Anda. AWS menyediakan SDK dan alatbaris perintah untuk menandatangani permintaan Anda secara kriptografis menggunakan kredensial Anda.Jika Anda tidak menggunakan peralatan AWS, Anda harus menandatangani sendiri permintaan tersebut.Lakukan ini menggunakan Versi Tanda Tangan 4, sebuah protokol untuk mengautentikasi permintaan APImasuk. Untuk informasi selengkapnya tentang autentikasi permintaan, lihat proses penandatanganan VersiTanda Tangan 4 dalam Referensi Umum AWS.

328

Amazon ECS Panduan Pengguna untuk AWS FargateMengautentikasi dengan identitas

Terlepas dari metode autentikasi yang Anda gunakan, Anda mungkin juga diminta untuk menyediakaninformasi keamanan tambahan. Misalnya, AWS menyarankan supaya Anda menggunakan autentikasimulti-faktor (MFA) untuk meningkatkan keamanan akun Anda. Untuk mempelajari selengkapnya, lihatMenggunakan autentikasi multi-faktor (MFA) di AWS dalam Panduan Pengguna IAM.

Pengguna root Akun AWSKetika Anda pertama kali membuatAkun AWS, Anda memulai dengan identitas masuk tunggal yangmemiliki akses penuh ke semuaLayanan AWSdan sumber daya di akun. Identitas ini disebut penggunaroot Akun AWS dan diakses dengan cara masuk menggunakan alamat email dan kata sandi yang Andagunakan saat membuat akun. Kami sangat menyarankan agar Anda tidak menggunakan penggunaroot untuk tugas sehari-hari, bahkan tugas administratif. Sebagai gantinya, patuhi praktik terbaik dalammenggunakan pengguna root saja untuk membuat pengguna IAM pertama Anda. Kemudian, kuncikredensial pengguna root dengan aman dan gunakan kredensial itu untuk melakukan beberapa tugasmanajemen akun dan layanan saja.

Pengguna dan grup IAMPengguna IAM adalah identitas dalam akun Akun AWS Anda yang memiliki izin khusus untuk satu orangatau aplikasi. Pengguna IAM dapat memiliki kredensial jangka panjang, seperti nama pengguna dan katasandi atau satu set access key. Untuk mempelajari cara membuat kunci akses, lihat Mengelola access keyuntuk pengguna IAM dalam Panduan Pengguna IAM. Saat Anda membuat access key untuk penggunaIAM, pastikan bahwa Anda melihat pasangan kunci dan menyimpannya dengan aman. Anda tidak dapatmemulihkan secret access key di masa mendatang. Sebaliknya, Anda harus membuat pasangan accesskey baru.

Grup IAM adalah identitas yang menentukan kumpulan dari para pengguna IAM. Anda tidak dapat masuksebagai kelompok. Anda dapat menggunakan grup untuk menentukan izin untuk beberapa penggunasekaligus. Grup membuat izin lebih mudah dikelola untuk set besar pengguna. Misalnya, Anda dapatmemiliki grup yang diberi nama IAMAdmins dan memberikan izin kepada grup tersebut untuk mengelolasumber daya IAM.

Para pengguna berbeda dari peran. Seorang pengguna secara unik terkait dengan satu orang atauaplikasi, tetapi peran ini dimaksudkan untuk dapat digunakan oleh siapa pun yang membutuhkannya.Pengguna memiliki kredensial jangka panjang permanen, tetapi peran memberikan kredensial sementara.Untuk mempelajari selengkapnya, lihat Kapan harus membuat pengguna IAM (bukan peran) dalamPanduan Pengguna IAM.

IAM roleIAM role adalah identitas dalam akun Akun AWS Anda yang memiliki izin khusus. Peran ini mirip denganpengguna IAM, tetapi tidak terkait dengan orang tertentu. Anda dapat menggunakan IAM role untuksementara di dalam AWS Management Console dengan cara berganti peran. Anda dapat mengambilperan dengan cara memanggil operasi API AWS CLI atau AWS atau menggunakan URL khusus. Untukinformasi selengkapnya tentang metode penggunaan peran, lihat Menggunakan IAM roles dalam PanduanPengguna IAM.

IAM role dengan kredensial sementara berguna dalam situasi berikut:

• Izin pengguna IAM sementara – Pengguna IAM dapat menggunakan IAM role untuk sementara danmendapatkan izin yang berbeda untuk tugas tertentu.

• Akses pengguna gabungan – Alih-alih membuat pengguna IAM, Anda dapat menggunakan identitasyang sudah ada dari AWS Directory Service, direktori pengguna korporasi Anda, atau penyedia identitasweb. Ini dikenal sebagai pengguna gabungan. AWS menugaskan peran kepada pengguna gabungansaat akses diminta melalui penyedia identitas. Untuk informasi selengkapnya tentang penggunagabungan, lihat Pengguna dan peran gabungan dalam Panduan Pengguna IAM.

329

Amazon ECS Panduan Pengguna untuk AWS FargateMengelola akses menggunakan kebijakan

• Akses lintas akun – Anda dapat menggunakan IAM role agar seseorang (principal tepercaya) di akunlain diizinkan untuk mengakses sumber daya di akun Anda. Peran adalah cara utama untuk memberikanakses lintas akun. Namun, dengan beberapaLayanan AWS, Anda dapat melampirkan kebijakan secaralangsung ke sumber daya (alih-alih menggunakan peran sebagai proksi). Untuk mempelajari perbedaanantara kebijakan peran dan kebijakan berbasis sumber daya untuk akses lintas akun, lihat Perbedaanantara IAM role dan kebijakan berbasis sumber daya dalam Panduan Pengguna IAM.

• Akses lintas layanan— BeberapaLayanan AWSmenggunakan fitur diLayanan AWS. Sebagai conoth,ketika Anda melakukan panggilan dalam suatu layanan, biasanya layanan tersebut menjalankan aplikasidi Amazon EC2 atau menyimpan objek di Amazon S3. Layanan mungkin melakukan ini menggunakanizin panggilan principal, menggunakan peran layanan, atau peran tertaut layanan.• Izin prinsipal – Saat Anda menggunakan pengguna IAM atau IAM role untuk melakukan tindakan

di AWS, Anda dianggap sebagai principal. Kebijakan memberikan izin kepada principal. Saat Andamenggunakan beberapa layanan, Anda mungkin melakukan tindakan yang kemudian memicutindakan lain di layanan yang berbeda. Dalam hal ini, Anda harus memiliki izin untuk melakukan keduatindakan tersebut. Untuk melihat apakah suatu tindakan memerlukan tindakan dependen tambahandalam kebijakan, lihatTindakan, sumber daya, dan kunci kondisi untuk Amazon Elastic ContainerServicediReferensi Otorisasi Layanan.

• Peran layanan – Peran layanan adalah IAM role yang diambil oleh layanan untuk melakukan tindakanatas nama Anda. Administrator IAM dapat membuat, memodifikasi, dan menghapus peran layanandari dalam IAM. Untuk informasi selengkapnya, lihatMembuat peran untuk mendelegasikan izinkeLayanan AWSdiPanduan Pengguna IAM.

• Peran yang terhubung dengan layanan— Peran tertaut layanan adalah jenis peran layanan yangtertaut denganLayanan AWS. Layanan dapat menggunakan peran untuk melakukan tindakan atasnama Anda. Peran tertaut layanan muncul di akun IAM Anda dan dimiliki oleh layanan tersebut.Administrator IAM dapat melihat, tetapi tidak dapat mengedit izin untuk peran terkait layanan.

• Aplikasi yang berjalan di Amazon EC2 – Anda dapat menggunakan IAM role untuk mengelola kredensialsementara untuk aplikasi yang berjalan pada instans EC2, dan membuat permintaan API AWS CLI atauAWS. Menyimpan access key di dalam instans EC2 lebih disarankan. Untuk menugaskan sebuah peranAWS ke instans EC2 dan membuatnya tersedia untuk semua aplikasinya, Anda dapat membuat sebuahprofil instans yang dilampirkan ke instans. Profil instans berisi peran dan memungkinkan program yangberjalan di instans EC2 untuk mendapatkan kredensial sementara. Untuk informasi selengkapnya, lihatMenggunakan IAM role untuk memberikan izin ke aplikasi yang berjalan di instans Amazon EC2 dalamPanduan Pengguna IAM.

Untuk mempelajari kapan waktunya menggunakan IAM role atau pengguna IAM, lihat Kapan harusmembuat IAM role (bukan pengguna) dalam Panduan Pengguna IAM.

Mengelola akses menggunakan kebijakanAnda mengendalikan akses di AWS dengan membuat kebijakan dan melampirkannya ke identitas IAMatau sumber daya AWS. Kebijakan adalah objek di AWS, yang saat terkait dengan identitas atau sumberdaya, akan menentukan izinnya. Anda dapat masuk sebagai pengguna root atau pengguna IAM, atauAnda dapat menggunakan IAM role. Ketika Anda kemudian membuat permintaan, AWS mengevaluasikebijakan berbasis identitas atau kebijakan berbasis sumber daya yang terkait. Izin dalam kebijakan dapatmenentukan permintaan yang diizinkan atau ditolak. Sebagian besar kebijakan disimpan di AWS sebagaidokumen JSON. Untuk informasi selengkapnya tentang struktur dan isi dokumen kebijakan JSON, lihatGambaran Umum kebijakan JSON dalam Panduan Pengguna IAM.

Administrator dapat menggunakan kebijakan JSON AWS untuk menentukan siapa yang memiliki akses kehal apa. Yaitu, principal dapat melakukan tindakan pada suatu sumber daya, dan dalam suatu syarat.

Setiap entitas IAM (pengguna atau peran) dimulai tanpa izin. Dengan kata lain, secara default, penggunatidak dapat melakukan apa pun, termasuk mengubah kata sandi mereka sendiri. Untuk memberikanizin kepada pengguna untuk melakukan sesuatu, administrator harus melampirkan kebijakan izinkepada pengguna. Atau administrator dapat menambahkan pengguna ke grup yang memiliki izin yang

330

Amazon ECS Panduan Pengguna untuk AWS FargateMengelola akses menggunakan kebijakan

dimaksudkan. Ketika administrator memberikan izin untuk grup, semua pengguna dalam grup tersebutdiberikan izin tersebut.

Kebijakan IAM mendefinisikan izin untuk suatu tindakan terlepas dari metode yang Anda gunakan untukpengoperasiannya. Misalnya, Anda memiliki kebijakan yang mengizinkan tindakan iam:GetRole.Pengguna dengan kebijakan tersebut dapat memperoleh informasi peran dari API AWS ManagementConsole, the AWS CLI, or the AWS.

Kebijakan berbasis identitasKebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke identitas,seperti pengguna IAM, grup pengguna, atau peran. Kebijakan ini mengontrol tipe tindakan yang dapatdilakukan oleh pengguna dan peran, di sumber daya mana, dan dalam syarat. Untuk mempelajari caramembuat kebijakan berbasis identitas, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Kebijakan berbasis identitas dapat dikategorikan lebih lanjut sebagai kebijakan inline atau kebijakanterkelola. Kebijakan inline disematkan secara langsung ke satu pengguna, grup, atau peran. Kebijakanterkelola adalah kebijakan mandiri yang dapat Anda lampirkan ke beberapa pengguna, grup, dan perandalam akun Akun AWS Anda. Kebijakan terkelola meliputi kebijakan yang dikelola AWS dan kebijakanyang dikelola pelanggan. Untuk mempelajari cara memilih antara kebijakan terkelola atau kebijakan inline,lihat Memilih antara kebijakan terkelola dan kebijakan inline dalam Panduan Pengguna IAM.

Kebijakan berbasis sumber dayaKebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumberdaya. Contoh kebijakan berbasis sumber daya adalah kebijakan tepercaya IAM role dan kebijakan bucketAmazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanandapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya yangdilampiri kebijakan tersebut, kebijakan menetapkan tindakan apa yang dapat dilakukan oleh principaltertentu di sumber daya tersebut dan dalam kondisi apa. Anda harus menentukan principal dalamkebijakan berbasis sumber daya. Prinsipal dapat meliputi akun, pengguna gabungan, atauLayanan AWS.

Kebijakan berbasis sumber daya merupakan kebijakan inline yang terletak di layanan tersebut. Anda tidakdapat menggunakan kebijakan yang dikelola AWS dari IAM dalam kebijakan berbasis sumber daya.

Daftar kontrol akses (ACL)Daftar kontrol akses (ACL) mengendalikan principal mana (anggota akun, pengguna, atau peran) yangmemiliki izin untuk mengakses sumber daya. ACL serupa dengan kebijakan berbasis sumber daya,meskipun tidak menggunakan format dokumen kebijakan JSON.

Amazon S3, AWS WAF, dan Amazon VPC adalah contoh layanan yang mendukung ACL. Untukmempelajari ACL selengkapnya, lihat Gambaran umum daftar kontrol akses (ACL) dalam PanduanDeveloper Amazon Simple Storage Service.

Tipe kebijakan lainnyaAWS mendukung tipe kebijakan tambahan, yang kurang umum. Tipe kebijakan ini dapat mengatur izinmaksimum yang diberikan kepada Anda oleh tipe kebijakan yang lebih umum.

• Batasan izin – Batasan izin adalah fitur lanjutan tempat Anda mengatur izin maksimum yang dapatdiberikan oleh kebijakan berbasis identitas kepada entitas IAM (pengguna atau IAM role). Anda dapatmenetapkan batas izin untuk suatu entitas. Izin yang dihasilkan adalah persimpangan antara kebijakanberbasis identitas milik entitas dan batas izinnya. Kebijakan berbasis sumber daya yang menentukanpengguna atau peran dalam bidang Principal tidak dibatasi oleh batasan izin. Penolakan eksplisitdalam salah satu kebijakan ini dapat membatalkan izin. Untuk informasi selengkapnya tentang batasanizin, lihat Batasan izin untuk entitas IAM dalam Panduan Pengguna IAM.

331

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

• Kebijakan Kontrol Layanan (SCPs) – SCP adalah kebijakan JSON yang menentukan izin maksimumuntuk sebuah organisasi atau unit organisasi (OU) di AWS Organizations. AWS Organizations adalahlayanan untuk mengelompokkan dan mengelola beberapa akun Akun AWS secara terpusat yangdimiliki oleh bisnis Anda. Jika Anda mengaktifkan semua fitur di sebuah organisasi, maka Anda dapatmenerapkan kebijakan kontrol layanan (SCP) ke salah satu atau ke semua akun Anda. SCP membatasiizin untuk entitas dalam akun anggota, termasuk setiap pengguna root Akun AWS. Untuk informasiselengkapnya tentang Organizations dan SCP, lihat Cara kerja SCP dalam Panduan Pengguna AWSOrganizations.

• Kebijakan sesi – Kebijakan sesi adalah kebijakan lanjutan yang Anda berikan sebagai parameter saatAnda membuat sesi sementara secara terprogram bagi peran atau pengguna gabungan. Izin sesi yangdihasilkan adalah persimpangan kebijakan berbasis identitas pengguna atau peran dan kebijakan sesi.Izin juga dapat berasal dari kebijakan berbasis sumber daya. Penolakan eksplisit dalam salah satukebijakan ini membatalkan izin. Untuk informasi selengkapnya, lihat Kebijakan sesi dalam PanduanPengguna IAM.

Berbagai tipe kebijakanKetika beberapa tipe kebijakan berlaku untuk sebuah permintaan, izin yang dihasilkan lebih rumit untukdipahami. Untuk mempelajari cara AWS menentukan untuk mengizinkan permintaan ketika beberapa tipekebijakan dilibatkan, lihat Logika evaluasi kebijakan dalam Panduan Pengguna IAM.

Bagaimana Amazon Elastic Container Service bekerjadengan IAMSebelum Anda menggunakan IAM untuk mengelola akses ke Amazon ECS, Anda harus memahami fiturIAM yang tersedia untuk digunakan dengan Amazon ECS.

Fitur IAM yang dapat Anda gunakan dengan Amazon Elastic Container Service

Fitur IAM Dukungan Amazon

Kebijakan berbasis identitas (p. 333) Ya

Kebijakan berbasis sumber daya (p. 333) Tidak

Tindakan kebijakan (p. 333) Ya

Sumber daya kebijakan (p. 334) Sebagian

Kunci syarat kebijakan (p. 335) Ya

ACLs (p. 337) Tidak

ABAC (tanda dalam kebijakan) (p. 337) Ya

Kredensial sementara (p. 338) Ya

Izin pelaku utama (p. 338) Ya

Peran layanan (p. 338) Ya

Peran terkait layanan (p. 338) Ya

Untuk mendapatkan tampilan tingkat tinggi tentang cara Amazon ECS dan lainnyaAWSlayanan bekerjadengan sebagian besar fitur IAM, lihatAWSlayanan yang bekerja dengan IAMdiPanduan Pengguna IAM.

332

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

Kebijakan berbasis identitas untuk Amazon ECS

Hanya mendukung kebijakan berbasis identitas Ya

Kebijakan berbasis identitas adalah dokumen kebijakan izin JSON yang dapat Anda lampirkan ke identitas,seperti pengguna IAM, grup pengguna, atau peran. Kebijakan ini mengontrol tipe tindakan yang dapatdilakukan oleh pengguna dan peran, di sumber daya mana, dan dalam syarat. Untuk mempelajari caramembuat kebijakan berbasis identitas, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Dengan kebijakan berbasis identitas IAM, Anda dapat menentukan tindakan dan sumber daya yangdiizinkan atau ditolak, serta kondisi di mana tindakan tersebut diperbolehkan atau ditolak. Anda tidakdapat menentukan pelaku utama dalam kebijakan berbasis identitas karena itu berlaku untuk penggunaatau peran yang dilampiri kebijakan. Untuk mempelajari semua elemen yang dapat Anda gunakan dalamkebijakan JSON, lihat Referensi elemen kebijakan IAM JSON dalam Panduan Pengguna IAM.

Contoh kebijakan berbasis identitas untuk Amazon ECS

Untuk melihat contoh kebijakan berbasis identitas Amazon ECS, lihatContoh kebijakan berbasis identitasuntuk Layanan Wadah Amazon Elastic (p. 339).

Kebijakan berbasis sumber daya dalam Amazon ECS

Mendukung kebijakan berbasis sumber daya Tidak

Kebijakan berbasis sumber daya adalah dokumen kebijakan JSON yang Anda lampirkan ke sumberdaya. Contoh kebijakan berbasis sumber daya adalah kebijakan tepercaya IAM role dan kebijakan bucketAmazon S3. Dalam layanan yang mendukung kebijakan berbasis sumber daya, administrator layanandapat menggunakannya untuk mengontrol akses ke sumber daya tertentu. Untuk sumber daya yangdilampiri kebijakan tersebut, kebijakan menetapkan tindakan apa yang dapat dilakukan oleh principaltertentu di sumber daya tersebut dan dalam kondisi apa. Anda harus menentukan principal dalamkebijakan berbasis sumber daya. Prinsipal dapat meliputi akun, pengguna gabungan, atauLayanan AWS.

Untuk mengaktifkan akses lintas akun, Anda dapat menentukan seluruh akun atau entitas IAM di akun lainsebagai prinsipal di kebijakan berbasis sumber daya. Menambahkan prinsipal lintas akun ke kebijakanberbasis sumber daya hanya setengah dari membangun hubungan kepercayaan. Ketika pelaku utamadan sumber daya berada di Akun AWS yang berbeda, Administrator IAM di akun tepercaya juga harusmemberikan izin kepada entitas pelaku utama (pengguna atau peran) untuk mengakses sumber daya.Izin diberikan dengan melampirkan kebijakan berbasis identitas ke entitas. Namun, jika kebijakan berbasissumber daya memberikan akses ke prinsipal dalam akun yang sama, tidak diperlukan kebijakan berbasisidentitas tambahan. Untuk informasi lebih lanjut, lihat Perbedaan IAM role dengan kebijakan berbasissumber daya dalam Panduan Pengguna IAM.

Tindakan kebijakan untuk Amazon ECS

Mendukung tindakan kebijakan Ya

Administrator dapat menggunakan kebijakan JSON AWS untuk menentukan siapa yang memiliki akses kehal apa. Yaitu, principal mana yang dapat melakukan tindakan pada sumber daya apa, dan dalam syaratapa.

333

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

Elemen Action dari kebijakan JSON menjelaskan tindakan-tindakan yang dapat Anda gunakan untukmengizinkan atau menolak akses dalam sebuah kebijakan. Tindakan kebijakan biasanya memiliki namayang sama sebagai operasi API AWS terkait. Ada beberapa pengecualian, misalnya tindakan hanyadengan izin yang tidak memiliki operasi API yang cocok. Ada juga beberapa operasi yang memerlukanbeberapa tindakan dalam kebijakan. Tindakan tambahan ini disebut tindakan dependen.

Sertakan tindakan dalam kebijakan untuk memberikan izin guna melakukan operasi yang terkait.

Untuk melihat daftar tindakan Amazon ECS, lihatTindakan yang ditentukan oleh Amazon Elastic ContainerServicediReferensi Otorisasi Layanan.

Tindakan kebijakan di Amazon ECS menggunakan prefiks berikut sebelum tindakan:

ecs

Untuk menetapkan beberapa tindakan dalam satu pernyataan, pisahkan dengan koma.

"Action": [ "ecs:action1", "ecs:action2" ]

Anda dapat menentukan beberapa tindakan menggunakan wildcard (*). Misalnya, untuk menentukansemua tindakan yang dimulai dengan kata Describe, sertakan tindakan berikut:

"Action": "ecs:Describe*"

Untuk melihat contoh kebijakan berbasis identitas Amazon ECS, lihatContoh kebijakan berbasis identitasuntuk Layanan Wadah Amazon Elastic (p. 339).

Sumber daya kebijakan untuk Amazon ECS

Mendukung sumber daya kebijakan Sebagian

Administrator dapat menggunakan kebijakan JSON AWS untuk menentukan siapa yang memiliki akses kehal apa. Yaitu, principal mana yang dapat melakukan tindakan pada sumber daya apa, dan dalam syaratapa.

Elemen kebijakan JSON Resource menentukan objek atau objek-objek yang menjadi target penerapantindakan. Pernyataan harus mencakup elemen Resource atau NotResource. Sebagai praktik terbaik,tentukan sumber daya menggunakan Amazon Resource Name (ARN). Anda dapat melakukan ini untuktindakan yang mendukung tipe sumber daya tertentu, yang dikenal sebagai izin tingkat sumber daya.

Untuk tindakan yang tidak mendukung izin tingkat sumber daya, misalnya operasi pencantuman, gunakankarakter wildcart (*) untuk menunjukkan bahwa pernyataan tersebut berlaku bagi semua sumber daya.

"Resource": "*"

Untuk melihat daftar jenis sumber daya Amazon ECS dan ARN mereka, lihatLayanan Wadah AmazonElasticdiReferensi Otorisasi Layanan. Untuk mempelajari tindakan mana yang dapat menentukan ARNsetiap sumber daya, lihatTindakan yang ditentukan oleh Amazon Elastic Container Service.

334

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

Beberapa tindakan Amazon ECS API mendukung beberapa sumber daya. Misalnya, beberapa klasterdapat direferensikan ketika memanggil tindakan API DescribeClusters. Untuk menentukan beberapasumber daya dalam pernyataan tunggal, pisahkan ARN dengan koma.

"Resource": [ "EXAMPLE-RESOURCE-1", "EXAMPLE-RESOURCE-2"

Misalnya, sumber daya klaster Amazon ECS memiliki ARN berikut:

arn:${Partition}:ecs:${Region}:${Account}:cluster/${clusterName}

Untuk menentukanmy-cluster-1danmy-cluster-2klaster dalam pernyataan Anda, gunakan ARNberikut:

"Resource": [ "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster-1", "arn:aws:ecs:us-east-1:123456789012:cluster/my-cluster-2"

Untuk menentukan semua klaster milik akun tertentu, gunakan wildcard (*):

"Resource": "arn:aws:ecs:us-east-1:123456789012:cluster/*"

Untuk definisi tugas, Anda dapat menentukan revisi terbaru, atau revisi tertentu.

Untuk menentukan definisi tugas terbaru, gunakan:

"Resource:arn:${Partition}:ecs:${Region}:${Account}:task-definition/${TaskDefinitionFamilyName}"

Untuk menentukan revisi definisi tugas tertentu, gunakan $ {taskDefinitionRevisionNumber}:

"Resource:arn:${Partition}:ecs:${Region}:${Account}:task-definition/${TaskDefinitionFamilyName}:${TaskDefinitionRevisionNumber}"

Untuk melihat contoh kebijakan berbasis identitas Amazon ECS, lihatContoh kebijakan berbasis identitasuntuk Layanan Wadah Amazon Elastic (p. 339).

Kunci ketentuan kebijakan untuk Amazon ECS

Mendukung kunci kondisi kebijakan khususlayanan

Ya

Administrator dapat menggunakan kebijakan JSON AWS untuk menentukan siapa yang memiliki akseske hal apa. Yaitu, prinsipal mana yang dapat melakukan tindakan pada sumber daya apa, dan menurutpersyaratan apa.

Elemen Condition (atau Condition blok) memungkinkan Anda menentukan syarat di mana suatupernyataan berlaku. Elemen Condition bersifat opsional. Anda dapat membuat ekspresi bersyarat yangmenggunakan operator syarat, seperti sama dengan atau kurang dari, untuk mencocokkan syarat dalamkebijakan dengan nilai dalam permintaan.

Jika Anda menentukan beberapa elemen Condition dalam pernyataan, atau beberapa kunci dalam satuelemen Condition, AWS akan mengevaluasinya denga menggunakan operasi logika AND. Jika Anda

335

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

menetapkan beberapa nilai untuk kunci syarat tunggal, AWS akan mengevaluasi syarat tersebut denganmenggunakan operasi logika OR. Semua persyaratan harus dipenuhi sebelum izin pernyataan diberikan.

Anda juga dapat menggunakan variabel placeholder saat menentukan syarat. Sebagai contoh, Andadapat memberikan izin pengguna IAM untuk mengakses sumber daya hanya jika ditandai dengan namapengguna IAM mereka. Untuk informasi lebih lanjut, lihat Elemen kebijakan IAM: variabel dan tag dalamPanduan Pengguna IAM.

AWS mendukung kunci syarat global dan kunci syarat khusus layanan. Untuk melihat semua kunci syaratglobal AWS, lihat Kunci konteks syarat global AWS dalam Panduan Pengguna IAM.

Amazon ECS mendukung kunci kondisi khusus layanan berikut yang dapat Anda gunakan untukmenyediakan penyaringan halus untuk kebijakan IAM Anda:

Kunci Syarat Deskripsi Jenis Evaluasi

aws:RequestTag/${TagKey}

Kunci konteks diformat "aws:RequestTag/tag-key":"tag-value" tempat kunci-tanda dan nilai-tanda adalah kunci tanda dan pasangan nilai.

Periksa bahwa pasangan tanda kunci-nilai hadir dalampermintaan AWS. Misalnya, Anda dapat memeriksa apakahpermintaan tersebut beserta kunci tanda "Dept" dan memilikinilai "Accounting".

Rangkaian

aws:ResourceTag/${TagKey}

Kunci konteks diformat "aws:ResourceTag/tag-key":"tag-value" tempat kunci tanda dan nilaitanda adalah kunci tanda dan pasangan nilai.

Periksa apakah tanda yang dilampirkan ke sumber dayaidentitas (pengguna atau peran) cocok dengan nama dan nilaikunci yang ditentukan.

Rangkaian

aws:TagKeys Kunci konteks ini diformat "aws:TagKeys":"tag-key"tempat kunci tanda adalah daftar kunci tanda tanpa nilai(misalnya, ["Dept","Cost-Center"]).

Periksa kunci tanda g yang hadir dalam permintaan AWS.

Rangkaian

ecs:ResourceTag/${TagKey}

Kunci konteks diformat "ecs:ResourceTag/tag-key":"tag-value" tempat kunci tanda dan nilaitanda adalah kunci tanda dan pasangan nilai.

Periksa apakah tanda yang dilampirkan ke sumber dayaidentitas (pengguna atau peran) cocok dengan nama dan nilaikunci yang ditentukan.

Rangkaian

ecs:klaster Kunci konteks diformat"ecs:cluster":"cluster-arn"dimanacluster-arnadalah klaster Amazon ECS.

ARN, Null

ecs:instanskontainer

Kunci konteks diformat "ecs:container-instances":"container-instance-arns" tempatarn-instans-kontainer adalah satu atau lebih instanskontainer ARN.

ARN, Null

ecs:nama Kunci konteks diformat"ecs:container-name":"container-name"di manakontainer-contoh-adalah nama kontainer Amazon ECS yangdidefinisikan dalam definisi tugas ECS.

String

336

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

Kunci Syarat Deskripsi Jenis Evaluasi

ecs:mengaktifkan-mengeksekusi-perintah

Kunci konteks diformat"ecs:enable-execute-command":"value"dimananilai-adalah”true“atau”false“.

String

ecs:ketentuantugas-definis

Kunci konteks diformat"ecs:task-definition":"task-definition-arn"di manatask-definisi-arnadalahARN untuk definisi tugas Amazon ECS.

ARN, Null

ecs:layanan Kunci konteks diformat"ecs:service":"service-arn"dimanalayanan-arnadalah ARN untuk layanan Amazon ECS.

ARN, Null

Untuk melihat daftar kunci kondisi Amazon ECS, lihatKunci kondisi Amazon Elastic ContainerServicediReferensi Otorisasi Layanan. Untuk mempelajari tindakan dan sumber daya mana yang dapatAnda gunakan kunci syarat, lihatTindakan yang ditentukan oleh Amazon Elastic Container Service.

Untuk melihat contoh kebijakan berbasis identitas Amazon ECS, lihatContoh kebijakan berbasis identitasuntuk Layanan Wadah Amazon Elastic (p. 339).

Daftar kontrol akses (ACL) di Amazon ECS

Mendukung ACL Tidak

Access control list (ACL) mengontrol prinsipal mana (anggota akun, pengguna, atau peran) yang memilikiizin untuk mengakses sumber daya. ACL serupa dengan kebijakan berbasis sumber daya, meskipun tidakmenggunakan format dokumen kebijakan JSON.

Kontrol akses berbasis atribut (ABAC) dengan Amazon ECS

Mendukung ABAC (tanda dalam kebijakan) Ya

Kontrol akses berbasis atribut (ABAC) adalah strategi otorisasi yang mendefinisikan izin berdasarkanatribut. Di AWS, atribut ini disebut tanda. Anda dapat melampirkan tanda ke entitas IAM (pengguna atauperan) dan ke banyak sumber daya AWS. Penandaan entitas dan sumber daya adalah langkah pertamadari ABAC. Kemudian Anda merancang kebijakan ABAC untuk mengizinkan operasi ketika tanda pelakuutama cocok dengan tanda di sumber daya yang ingin diakses.

ABAC sangat membantu di lingkungan yang berkembang dengan cepat dan membantu dalam situasiketika manajemen kebijakan menjadi rumit.

Untuk mengontrol akses berdasarkan tandanya, Anda memberikan informasi tanda di elemen syaratkebijakan dengan menggunakan kunci syarat aws:ResourceTag/key-name, aws:RequestTag/key-name, atau aws:TagKeys.

Untuk informasi lebih lanjut tentang ABAC, lihat Apa itu ABAC? dalam Panduan Pengguna IAM. Untukmelihat tutorial dengan langkah-langkah untuk menyiapkan ABAC, lihat Menggunakan kontrol aksesberbasis atribut (ABAC) dalam Panduan Pengguna IAM.

Untuk informasi selengkapnya tentang penandaan sumber daya Amazon ECS, lihatSumber daya dantanda (p. 281).

Untuk melihat contoh kebijakan berbasis identitas untuk membatasi akses ke sumber daya berdasarkan tagpada sumber daya tersebut, lihat Menggambarkan Layanan Amazon ECS Berdasarkan Tag (p. 347).

337

Amazon ECS Panduan Pengguna untuk AWS FargateBagaimana Amazon Elastic Container

Service bekerja dengan IAM

Menggunakan kredenal Sementara dengan Amazon ECS

Mendukung penggunaan kredensial sementara Ya

BeberapaLayanan AWStidak berfungsi saat Anda masuk menggunakan kredensi sementara. Untukinformasi tambahan, termasukLayanan AWSbekerja dengan kredensi sementara, lihatLayanan AWSyangbekerja dengan IAMdiPanduan Pengguna IAM.

Anda menggunakan kredensial sementara jika Anda masuk ke AWS Management Console menggunakanmetode apa pun kecuali nama pengguna dan kata sandi. Misalnya, saat Anda mengakses AWS denganmenggunakan tautan masuk tunggal (SSO) perusahaan Anda, proses tersebut akan membuat kredensialsementara secara otomatis. Anda juga secara otomatis membuat kredensial sementara ketika Anda masukke konsol sebagai pengguna dan kemudian beralih peran. Untuk informasi selengkapnya tentang beralihperan, lihat Beralih ke peran (konsol) dalam Panduan Pengguna IAM.

Anda dapat secara manual membuat kredensial sementara menggunakan AWS CLI atau API AWS. Andakemudian dapat menggunakan kredensial sementara tersebut untuk mengakses AWS. AWS menyarankanagar Anda membuat kredensial sementara secara dinamis alih-alih menggunakan access key jangkapanjang. Untuk informasi lebih lanjut, lihat Kredensial keamanan sementara di IAM.

Izin prinsipal lintas layanan untuk Amazon ECS

Mendukung izin pelaku utama Ya

Saat Anda menggunakan pengguna atau peran IAM untuk melakukan tindakan di AWS, Anda dianggapsebagai pelaku utama. Kebijakan memberikan izin kepada prinsipal. Saat Anda menggunakan beberapalayanan, Anda mungkin melakukan tindakan yang kemudian memicu tindakan lain di layanan yangberbeda. Dalam hal ini, Anda harus memiliki izin untuk melakukan kedua tindakan tersebut. Untuk melihatapakah suatu tindakan memerlukan tindakan dependen tambahan dalam kebijakan, lihatTindakan, sumberdaya, dan kunci kondisi untuk Amazon Elastic Container ServicediReferensi Otorisasi Layanan.

Peran layanan untuk Amazon ECS

Mendukung peran layanan Ya

Peran layanan adalah IAM role yang diambil oleh layanan untuk melakukan tindakan atas nama Anda.Administrator IAM dapat membuat, memodifikasi, dan menghapus peran layanan dari dalam IAM. Untukinformasi selengkapnya, lihatMembuat peran untuk mendelegasikan izin keLayanan AWSdiPanduanPengguna IAM.

Warning

Mengubah izin untuk peran layanan dapat merusak fungsionalitas Amazon ECS. Edit peranlayanan hanya jika Amazon ECS menyediakan panduan untuk melakukannya.

Peran tertaut layanan untuk Amazon ECS

Mendukung peran yang terhubung dengan layanan Ya

Peran tertaut-layanan adalah jenis peran layanan yang tertaut denganLayanan AWS. Layanan dapatmenggunakan peran untuk melakukan tindakan atas nama Anda. Peran tertaut layanan muncul di akun

338

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

IAM Anda dan dimiliki oleh layanan tersebut. Administrator IAM dapat melihat, tetapi tidak dapat mengeditizin untuk peran terkait layanan.

Untuk informasi selengkapnya tentang cara membuat atau mengelola peran tertaut layanan Amazon ECS,lihatPeran tertaut layanan untuk Amazon ECS (p. 356).

Contoh kebijakan berbasis identitas untuk LayananWadah Amazon ElasticSecara default, pengguna dan peran IAM tidak memiliki izin untuk membuat atau memodifikasi sumberdaya Amazon ECS. Mereka juga tidak dapat melakukan tugas menggunakan AWS Management Console,AWS CLI, atau API AWS. Administrator IAM harus membuat kebijakan IAM yang memberikan izin kepadapara pengguna dan peran untuk melakukan tindakan di sumber daya yang mereka perlukan. Administratorkemudian harus melampirkan kebijakan tersebut ke pengguna IAM atau grup yang memerlukan izintersebut.

Untuk mempelajari cara membuat kebijakan berbasis identitas IAM menggunakan contoh dokumenkebijakan JSON ini, lihatMembuat kebijakan IAMdiPanduan Pengguna IAM.

Topik• Praktik terbaik kebijakan (p. 339)• Izinkan para pengguna untuk melihat izin mereka sendiri (p. 340)• Izin wizard yang dijalankan pertama Amazon ECS (p. 340)• Contoh klaster (p. 344)• Daftar dan Jelaskan Contoh Tugas (p. 345)• Buat Contoh Layanan (p. 346)• Pembaruan Contoh Layanan (p. 347)• Menggambarkan Layanan Amazon ECS Berdasarkan Tag (p. 347)

Praktik terbaik kebijakanKebijakan berbasis identitas adalah pilihan yang sangat tepat. Kebijakan-kebijakan ini menentukan apakahseseorang dapat membuat, mengakses, atau menghapus sumber daya Amazon ECS di akun Anda.Tindakan ini membuat Akun AWS Anda terkena biaya. Ketika Anda membuat atau mengedit kebijakanberbasis identitas, ikuti panduan dan rekomendasi ini:

• Mulai menggunakanAWSkebijakan yang dikelola— Untuk mulai menggunakan Amazon ECS dengancepat, gunakanAWSkebijakan yang dikelola untuk memberi karyawan Anda izin yang mereka butuhkan.Kebijakan ini sudah tersedia di akun Anda dan dikelola, serta diperbarui oleh AWS. Untuk informasiselengkapnya, lihat Memulai menggunakan izin dengan kebijakan yang dikelola AWS dalam PanduanPengguna IAM.

• Pemberian hak istimewa terendah – Ketika Anda membuat kebijakan kustom, berikan izin yangdiperlukan saja untuk melakukan tugas. Mulai dengan satu set izin minimum dan berikan izin tambahansesuai kebutuhan. Melakukan hal tersebut lebih aman daripada memulai dengan izin yang terlalufleksibel, lalu mencoba memperketatnya nanti. Untuk informasi selengkapnya, lihat Pemberian hakistimewa terendah dalam Panduan Pengguna IAM.

• Aktifkan autentikasi multifaktor (MFA) untuk operasi sensitif – Untuk keamanan ekstra, mintalahpengguna IAM untuk menggunakan autentikasi multifaktor (MFA) guna mengakses sumber daya atauoperasi API yang sensitif. Untuk informasi selengkapnya, lihat Menggunakan autentikasi multifaktor(MFA) dalam AWS dalam Panduan Pengguna IAM.

• Gunakan syarat kebijakan untuk keamanan tambahan – Selama bisa dilakukan, tentukan persyaratanagar kebijakan berbasis identitas Anda mengizinkan akses ke sumber daya. Misalnya, Anda dapatmenulis persyaratan untuk menentukan jangkauan alamat IP yang diizinkan untuk mengajukan

339

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

permintaan. Anda juga dapat menulis ketentuan untuk mengizinkan permintaan hanya dalam rentangtanggal atau waktu tertentu, atau untuk mengharuskan penggunaan SSL atau MFA. Untuk informasilebih lanjut, lihat Elemen kebijakan IAM JSON: Ketentuan dalam Panduan Pengguna IAM.

Izinkan para pengguna untuk melihat izin mereka sendiriContoh ini menunjukkan cara Anda dapat membuat kebijakan yang mengizinkan para pengguna IAMuntuk melihat kebijakan inline dan terkelola yang dilampirkan ke identitas pengguna mereka. Kebijakan inimencakup izin untuk menyelesaikan tindakan pada konsol atau secara terprogram menggunakan API AWSCLI atau AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ]}

Izin wizard yang dijalankan pertama Amazon ECSWizard yang dijalankan pertama Amazon ECS di konsol klasik menyederhanakan prosespembuatan klaster dan menjalankan tugas dan layanan Anda. Namun, pengguna memerlukanizin untuk banyak operasi API dari beberapa layanan AWS untuk menyelesaikan wizard.ParameterAmazonecs_FullAccess (p. 348)kebijakan terkelola di bawah ini menunjukkan izin yangdiperlukan untuk menyelesaikan wizard lari pertama Amazon ECS.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget",

340

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

"application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "appmesh:ListMeshes", "appmesh:ListVirtualNodes", "appmesh:DescribeVirtualNode", "autoscaling:UpdateAutoScalingGroup", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:Describe*", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "lambda:ListFunctions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotFleetRequests", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet", "ec2:DeleteVpc", "ec2:Describe*", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances",

341

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

"ec2:RequestSpotFleet", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateRule", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeleteRule", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:DescribeTargetGroups", "ecs:*", "events:DescribeRule", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHealthCheck", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListNamespaces", "servicediscovery:ListServices", "servicediscovery:UpdateService", "servicediscovery:DeleteService" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteInternetGateway", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup" ], "Resource": [ "*" ],

342

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

"Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsInstanceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsAutoscaleRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "application-autoscaling.amazonaws.com", "application-autoscaling.amazonaws.com.cn" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "ecs.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com", "ecs.application-autoscaling.amazonaws.com", "autoscaling.amazonaws.com" ] } } } ]

343

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

}

Wizard yang dijalankan pertama juga mencoba untuk secara otomatis membuat peran IAM yang berbedatergantung pada tipe peluncuran tugas yang digunakan. Contohnya adalah peran layanan Amazon ECS,peran IAM instans kontainer, dan peran IAM eksekusi tugas. Untuk memastikan bahwa pengalaman yangdijalankan pertama dapat membuat peran IAM ini, salah satu hal berikut harus benar:

• Pengguna Anda memiliki akses administrator. Untuk informasi selengkapnya, lihat Siapkan untukmenggunakan Amazon ECS (p. 4).

• Pengguna Anda memiliki izin IAM untuk membuat peran layanan. Untuk informasi selengkapnya, lihatMembuat peran untuk mendelegasikan izin ke layanan AWS.

• Anda memiliki pengguna dengan akses administrator secara manual membuat peran IAM yangdiperlukan sehingga peran tersebut tersedia pada akun yang akan digunakan. Untuk informasiselengkapnya, lihat yang berikut:• Peran tertaut layanan untuk Amazon ECS (p. 356)• Peran IAM eksekusi tugas ECS Amazon (p. 363)

Contoh klasterKebijakan IAM berikut mengizinkan izin untuk membuat dan mendaftarkan klaster. TindakanCreateCluster dan ListClusters tidak menerima sumber daya apa pun, sehingga definisi sumberdaya diatur ke * untuk semua sumber daya.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:ListClusters" ], "Resource": [ "*" ] } ]}

Kebijakan IAM berikut mengizinkan izin untuk menjelaskan dan menghapus klaster tertentu. TindakanDescribeClusters dan DeleteCluster menerima ARN klaster sebagai sumber daya.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeClusters", "ecs:DeleteCluster" ], "Resource": [ "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/<cluster_name>" ] } ]}

344

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

Kebijakan IAM berikut dapat dilampirkan ke pengguna atau grup yang hanya akan mengizinkan penggunaatau grup untuk melakukan operasi pada klaster tertentu.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:Describe*", "ecs:List*" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "ecs:DeleteCluster", "ecs:DeregisterContainerInstance", "ecs:ListContainerInstances", "ecs:RegisterContainerInstance", "ecs:SubmitContainerStateChange", "ecs:SubmitTaskStateChange" ], "Effect": "Allow", "Resource": "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/default" }, { "Action": [ "ecs:DescribeContainerInstances", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:UpdateContainerAgent", "ecs:StartTask", "ecs:StopTask", "ecs:RunTask" ], "Effect": "Allow", "Resource": "*", "Condition": { "ArnEquals": { "ecs:cluster": "arn:aws:ecs:us-east-1:<aws_account_id>:cluster/default" } } } ]}

Daftar dan Jelaskan Contoh TugasKebijakan IAM berikut mengizinkan pengguna untuk membuat daftar tugas untuk klaster tertentu:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:ListTasks" ], "Condition": { "ArnEquals": { "ecs:cluster": "arn:aws:ecs:<region>:<aws_account_id>:cluster/<cluster_name>" }

345

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

}, "Resource": [ "*" ] } ]}

Kebijakan IAM berikut mengizinkan pengguna untuk menjelaskan tugas tertentu dalam sebuah klastertertentu:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:DescribeTasks" ], "Condition": { "ArnEquals": { "ecs:cluster": "arn:aws:ecs:<region>:<aws_account_id>:cluster/<cluster_name>" } }, "Resource": [ "arn:aws:ecs:<region>:<aws_account_id>:task/<task_UUID>" ] } ]}

Buat Contoh LayananKebijakan IAM berikut mengizinkan pengguna untuk membuat layanan Amazon ECS diAWS ManagementConsole:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ecs:List*", "ecs:Describe*", "ecs:CreateService", "elasticloadbalancing:Describe*", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRoles", "iam:ListGroups", "iam:ListUsers" ], "Resource": [

346

Amazon ECS Panduan Pengguna untuk AWS FargateContoh kebijakan berbasis identitas

"*" ] } ]}

Pembaruan Contoh LayananKebijakan IAM berikut mengizinkan pengguna untuk memperbarui layanan Amazon ECS diAWSManagement Console:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:Describe*", "application-autoscaling:PutScalingPolicy", "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:RegisterScalableTarget", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm", "ecs:List*", "ecs:Describe*", "ecs:UpdateService", "iam:AttachRolePolicy", "iam:CreateRole", "iam:GetPolicy", "iam:GetPolicyVersion", "iam:GetRole", "iam:ListAttachedRolePolicies", "iam:ListRoles", "iam:ListGroups", "iam:ListUsers" ], "Resource": [ "*" ] } ]}

Menggambarkan Layanan Amazon ECS Berdasarkan TagAnda dapat menggunakan ketentuan dalam kebijakan berbasis identitas Anda untuk mengontrol akses kesumber daya Amazon ECS berdasarkan tag. Contoh berikut menunjukkan cara agar Anda dapat membuatkebijakan yang mengizinkan penjelasan layanan. Namun, izin diberikan hanya jika tanda layanan Ownermemiliki nilai nama pengguna dari pengguna tersebut. Kebijakan ini juga memberi izin yang diperlukanuntuk menyelesaikan tindakan ini pada konsol tersebut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DescribeServices", "Effect": "Allow", "Action": "ecs:DescribeServices", "Resource": "*" }, {

347

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

"Sid": "ViewServiceIfOwner", "Effect": "Allow", "Action": "ecs:DescribeServices", "Resource": "arn:aws:ecs:*:*:service/*", "Condition": { "StringEquals": {"ecs:ResourceTag/Owner": "${aws:username}"} } } ]}

Anda dapat melampirkan kebijakan ini ke pengguna IAM di akun Anda. Jika pengguna bernamarichard-roemencoba untuk menggambarkan layanan Amazon ECS, layanan harus ditandaiOwner=richard-roeatauowner=richard-roe. Jika tidak, aksesnya akan ditolak. Kunci tanda syarat Owner cocokdengan Owner dan owner karena nama kunci syarat tidak terpengaruh huruf besar/kecil. Untuk informasilebih lanjut, lihat Elemen Kebijakan IAM JSON: Ketentuan dalam Panduan Pengguna IAM.

AWSLayanan Wadah Amazon Elastic ContainerUntuk menambahkan izin ke para pengguna, grup, dan peran, akan lebih mudah dengan menggunakankebijakan terkelola AWS dibandingkan dengan menulis kebijakan sendiri. Dibutuhkan waktu dan keahlianuntuk membuat kebijakan terkelola pelanggan IAM yang hanya menyediakan izin sesuai kebutuhan timAnda. Untuk mulai dengan cepat, Anda dapat menggunakan kebijakan-kebijakan terkelola AWS kami.Kebijakan-kebijakan ini mencakup kasus penggunaan umum dan tersedia di akun AWS Anda. Untukinformasi lebih lanjut tentang kebijakan-kebijakan terkelola AWS, silakan lihat kebijakan terkelola AWS diPanduan Pengguna IAM.

Layanan AWS mempertahankan dan memperbarui kebijakan-kebijakan terkelola AWS. Anda tidakdapat mengubah izin yang ada dalam kebijakan-kebijakan yang dikelola AWS. Layanan terkadangmenambahkan izin-izin tambahan ke sebuah kebijakan yang dikelola AWS untuk mendukung fitur-fiturbaru. Jenis pembaruan ini akan memengaruhi semua identitas (pengguna, grup, dan peran) di manakebijakan tersebut dilampirkan. Layanan kemungkinan besar akan memperbarui kebijakan yang dikelolaAWS saat ada sebuah fitur baru yang diluncurkan atau saat ada operasi baru yang tersedia. Layanan tidakmenghapus izin yang ada dalam sebuah kebijakan yang dikelola AWS, sehingga pembaruan-pembaruanyang terjadi pada kebijakan tidak akan membuat izin-izin yang ada rusak.

Selain itu, AWS mendukung kebijakan-kebijakan terkelola untuk fungsi tugas yang mencakup beberapalayanan. Sebagai contoh, kebijakan terkelola AWS ReadOnlyAccess menyediakan akses hanya-bacake semua layanan dan sumber daya AWS. Saat sebuah layanan meluncurkan sebuah fitur baru, AWSmenambahkan izin hanya-baca untuk operasi dan sumber daya yang baru. Untuk melihat daftar dandeskripsi dari kebijakan-kebijakan fungsi tugas, silakan lihat kebijakan terkelola AWS untuk fungsi tugas diPanduan Pengguna IAM.

Amazon ECS dan Amazon ECR menyediakan beberapa kebijakan terkelola dan hubungan kepercayaanyang dapat Anda lampirkanAWS Identity and Access ManagementPengguna (IAM), instans Amazon EC2,dan tugas Amazon ECS yang memungkinkan tingkat kontrol yang berbeda atas operasi API dan sumberdaya. Anda dapat menerapkan kebijakan ini secara langsung atau menggunakannya sebagai titik awaluntuk membuat kebijakan Anda sendiri. Untuk informasi selengkapnya tentang kebijakan terkelola AmazonECR, lihatKebijakan terkelola Amazon ECR.

Amazonecs_FullAccessAnda dapat melampirkan kebijakan AmazonECS_FullAccess ke identitas-identitas IAM Anda.

Kebijakan ini memberikan akses administratif untuk sumber daya Amazon ECS dan memberikan identitasIAM (seperti pengguna, grup, atau peran) akses ke akunAWSlayanan yang terintegrasi dengan Amazon

348

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

ECS untuk menggunakan semua fitur Amazon ECS. Menggunakan kebijakan ini mengizinkan akses kesemua fitur Amazon ECS yang tersedia diAWS Management Console.

Detail izin

ParameterAmazonECS_FullAccessKebijakan IAM yang dikelola mencakup izin berikut. Mengikutipraktik terbaik pemberian hak istimewa paling rendah, Anda dapat menggunakan kebijakan terkelolaAmazonECS_FullAccess sebagai templat untuk membuat kebijakan kustom Anda sendiri. Denganbegitu, Anda dapat mengambil atau menambahkan izin ke dan dari kebijakan terkelola berdasarkankebutuhan khusus Anda.

• ecs— Mengizinkan prinsipiel untuk mengakses semua API Amazon ECS.• application-autoscaling— Mengizinkan prinsipiel untuk membuat, mendeskripsikan, dan

mengelola sumber daya Application Auto Scaling. Hal ini diperlukan saat mengaktifkan auto scalinglayanan untuk layanan Amazon ECS Anda.

• appmesh— Memungkinkan prinsipal untuk mendaftar mesh layanan App Mesh dan node virtual danmenjelaskan node virtual App Mesh. Hal ini diperlukan saat mengintegrasikan layanan Amazon ECSAnda dengan App Mesh.

• autoscaling— Mengizinkan prinsipiel membuat, mengelola, dan mendeskripsikan sumber dayaAmazon EC2 Auto Scaling. Hal ini diperlukan saat mengelola grup auto scaling Amazon EC2 saatmenggunakan fitur auto scaling klaster.

• cloudformation— Memungkinkan prinsipal untuk membuat dan mengelolaAWSCloudFormationtumpukan. Hal ini diperlukan saat membuat klaster Amazon ECS menggunakanAWSManagement Consoledan pengelolaan selanjutnya dari kelompok tersebut.

• cloudwatch— Mengizinkan prinsipiel membuat, mengelola, dan mendeskripsikan Amazon CloudWatchalarm.

• codedeploy— Memungkinkan prinsipal untuk membuat dan mengelola deployment aplikasi sertamelihat konfigurasi, revisi, dan target deploymentnya.

• sns— Mengizinkan prinsipiel untuk melihat daftar topik Amazon SNS.• lambda— Memungkinkan prinsipal untuk melihat daftarAWS Lambdafungsi dan konfigurasi spesifik versi

mereka.• ec2- Mengizinkan instans Amazon EC2 serta membuat dan mengelola rute, tabel rute, gateway internet,

grup peluncuran, cloud privat virtual, armada spot, dan subnet.• elasticloadbalancing— Mengizinkan prinsipiel membuat, mendeskripsikan, dan menghapus

penyeimbang beban Elastic Load Balancing. Prinsipiel juga akan dapat sepenuhnya mengelola aturangrup target, listener, dan penyeimbang beban.

• events— Mengizinkan prinsipiel membuat, mengelola, dan menghapus Amazon EventBridge aturandan target mereka.

• iam- Mengizinkan prinsipal untuk mencantumkan peran IAM dan kebijakan terlampir. Prinsipiel jugadapat mencantumkan profil instans Amazon EC2 Anda.

• logs— Memungkinkan prinsipal untuk membuat dan menggambarkan Amazon CloudWatch Grup log.Prinsipiel juga dapat mencantumkan log acara pada grup log ini.

• route53— Mengizinkan prinsipiel untuk membuat, mengelola, dan menghapus zona yang di-hostingAmazon Route 53. Prinsipiel juga dapat melihat konfigurasi dan informasi pemeriksaan kesehatanAmazon Route 53. Untuk informasi selengkapnya tentang zona yang di-hosting, lihat Bekerja denganzona yang di-hosting.

• servicediscovery— Mengizinkan prinsipal membuat, mengelola, dan menghapusAWS CloudMaplayanan dan membuat ruang nama DNS pribadi.

Berikut ini adalah contoh kebijakan AmazonECS_FullAccess.

{

349

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

"Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "application-autoscaling:DeleteScalingPolicy", "application-autoscaling:DeregisterScalableTarget", "application-autoscaling:DescribeScalableTargets", "application-autoscaling:DescribeScalingActivities", "application-autoscaling:DescribeScalingPolicies", "application-autoscaling:PutScalingPolicy", "application-autoscaling:RegisterScalableTarget", "appmesh:ListMeshes", "appmesh:ListVirtualNodes", "appmesh:DescribeVirtualNode", "autoscaling:UpdateAutoScalingGroup", "autoscaling:CreateAutoScalingGroup", "autoscaling:CreateLaunchConfiguration", "autoscaling:DeleteAutoScalingGroup", "autoscaling:DeleteLaunchConfiguration", "autoscaling:Describe*", "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStack*", "cloudformation:UpdateStack", "cloudwatch:DescribeAlarms", "cloudwatch:DeleteAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:PutMetricAlarm", "codedeploy:CreateApplication", "codedeploy:CreateDeployment", "codedeploy:CreateDeploymentGroup", "codedeploy:GetApplication", "codedeploy:GetDeployment", "codedeploy:GetDeploymentGroup", "codedeploy:ListApplications", "codedeploy:ListDeploymentGroups", "codedeploy:ListDeployments", "codedeploy:StopDeployment", "codedeploy:GetDeploymentTarget", "codedeploy:ListDeploymentTargets", "codedeploy:GetDeploymentConfig", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:BatchGetApplicationRevisions", "codedeploy:BatchGetDeploymentGroups", "codedeploy:BatchGetDeployments", "codedeploy:BatchGetApplications", "codedeploy:ListApplicationRevisions", "codedeploy:ListDeploymentConfigs", "codedeploy:ContinueDeployment", "sns:ListTopics", "lambda:ListFunctions", "ec2:AssociateRouteTable", "ec2:AttachInternetGateway", "ec2:AuthorizeSecurityGroupIngress", "ec2:CancelSpotFleetRequests", "ec2:CreateInternetGateway", "ec2:CreateLaunchTemplate", "ec2:CreateRoute", "ec2:CreateRouteTable", "ec2:CreateSecurityGroup", "ec2:CreateSubnet", "ec2:CreateVpc", "ec2:DeleteLaunchTemplate", "ec2:DeleteSubnet",

350

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

"ec2:DeleteVpc", "ec2:Describe*", "ec2:DetachInternetGateway", "ec2:DisassociateRouteTable", "ec2:ModifySubnetAttribute", "ec2:ModifyVpcAttribute", "ec2:RunInstances", "ec2:RequestSpotFleet", "elasticloadbalancing:CreateListener", "elasticloadbalancing:CreateLoadBalancer", "elasticloadbalancing:CreateRule", "elasticloadbalancing:CreateTargetGroup", "elasticloadbalancing:DeleteListener", "elasticloadbalancing:DeleteLoadBalancer", "elasticloadbalancing:DeleteRule", "elasticloadbalancing:DeleteTargetGroup", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:DescribeLoadBalancers", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:DescribeTargetGroups", "ecs:*", "events:DescribeRule", "events:DeleteRule", "events:ListRuleNamesByTarget", "events:ListTargetsByRule", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfiles", "iam:ListRoles", "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:FilterLogEvents", "route53:GetHostedZone", "route53:ListHostedZonesByName", "route53:CreateHostedZone", "route53:DeleteHostedZone", "route53:GetHealthCheck", "servicediscovery:CreatePrivateDnsNamespace", "servicediscovery:CreateService", "servicediscovery:GetNamespace", "servicediscovery:GetOperation", "servicediscovery:GetService", "servicediscovery:ListNamespaces", "servicediscovery:ListServices", "servicediscovery:UpdateService", "servicediscovery:DeleteService" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "ssm:GetParametersByPath", "ssm:GetParameters", "ssm:GetParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/aws/service/ecs*" }, { "Effect": "Allow", "Action": [ "ec2:DeleteInternetGateway",

351

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

"ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:DeleteSecurityGroup" ], "Resource": [ "*" ], "Condition": { "StringLike": { "ec2:ResourceTag/aws:cloudformation:stack-name": "EC2ContainerService-*" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsInstanceRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } }, { "Action": "iam:PassRole", "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsAutoscaleRole*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "application-autoscaling.amazonaws.com", "application-autoscaling.amazonaws.com.cn" ] } } }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": [ "ecs.amazonaws.com", "spot.amazonaws.com", "spotfleet.amazonaws.com",

352

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

"ecs.application-autoscaling.amazonaws.com", "autoscaling.amazonaws.com" ] } } } ]}

AmazonECSTaskExecutionRolePolicyParameterAmazonECSTaskExecutionRolePolicyKebijakan IAM terkelola memberikanizin yang dibutuhkan oleh agen kontainer Amazon ECS danAWS Fargateagen kontainer untukmembuatAWSPanggilan API atas nama Anda. Kebijakan ini dapat ditambahkan ke IAM role eksekusi tugasAnda. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugas ECS Amazon (p. 363).

Detail izin

ParameterAmazonECSTaskExecutionRolePolicyKebijakan IAM yang dikelola mencakup izin berikut.Dengan mengikuti saran keamanan standar untuk memberikan hak istimewa paling rendah, kebijakanterkelola AmazonECSTaskExecutionRolePolicy dapat digunakan sebagai panduan. Jika salahsatu izin yang diberikan dalam kebijakan terkelola tidak diperlukan untuk kasus penggunaan Anda, buatkebijakan kustom dan hanya tambahkan izin yang Anda perlukan.

• ecr:GetAuthorizationToken— Mengizinkan prinsipiel untuk mengambil token otorisasi. Tokenotorisasi mewakili kredensi otentikasi IAM Anda dan dapat digunakan untuk mengakses registri AmazonECR di mana IAM utama memiliki akses. Token otorisasi yang diterima berlaku selama 12 jam.

• ecr:BatchCheckLayerAvailability— Ketika citra kontainer didorong ke repositori privat AmazonECR, setiap lapisan citra diperiksa untuk memverifikasi apakah itu sudah didorong. Jika sudah didorong,maka lapisan citra dilewati.

• ecr:GetDownloadUrlForLayer— Ketika citra kontainer ditarik dari repositori privat Amazon ECR,API ini dipanggil satu kali untuk setiap layer citra yang belum di-cache.

• ecr:BatchGetImage— Ketika citra kontainer ditarik dari repositori privat Amazon ECR, API inidipanggil satu kali untuk mengambil manifes citra.

• logs:CreateLogStream— Memungkinkan kepala sekolah untuk membuat CloudWatch Log logstream untuk kelompok log tertentu.

• logs:PutLogEvents— Mengizinkan prinsipiel untuk mengunggah kumpulan peristiwa log ke aliran logtertentu.

Berikut ini adalah contoh kebijakan AmazonECSTaskExecutionRolePolicy.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ]

353

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

}

AWSApplicationAutoscalingECSServicePolicy

Anda tidak dapat melampirkan AWSApplicationAutoscalingECSServicePolicy ke entitas IAMAnda. Kebijakan ini dilampirkan ke peran tertaut layanan yang mengizinkan Application Auto Scaling untukmelakukan tindakan atas nama Anda. Untuk informasi selengkapnya, lihatPeran yang ditautkan denganlayanan untuk Application Auto Scaling.

AWSCodeDeployRoleForECS

Anda tidak dapat melampirkan AWSCodeDeployRoleForECS ke entitas IAM Anda. Kebijakan inidilampirkan ke peran terkait layanan yang mengizinkan CodeDeploy untuk melakukan tindakan atasnama Anda. Untuk informasi selengkapnya, lihatMembuat peran layanan untuk CodeDeploydiAWSCodeDeployPanduan Pengguna.

AWSCodeDeployRoleForECSLimited

Anda tidak dapat melampirkan AWSCodeDeployRoleForECSLimited ke entitas IAM Anda. Kebijakanini dilampirkan ke peran terkait layanan yang mengizinkan CodeDeploy untuk melakukan tindakan atasnama Anda. Untuk informasi selengkapnya, lihatMembuat peran layanan untuk CodeDeploydiAWSCodeDeployPanduan Pengguna.

Amazon ECS update keAWSkebijakan yang dikelolaMelihat detail tentang pembaruanAWSKebijakan terkelola untuk Amazon ECS karena layanan ini mulaimelacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlanggananumpan RSS di halaman riwayat Dokumen Amazon ECS.

Perubahan Deskripsi Tanggal

Amazon ECS mulai melacakperubahan

Amazon ECS mulai melacakperubahan untukAWSkebijakanterkelola.

8 Juni 2021

KeluarAWSKebijakan IAM yang dikelola untuk Layanan WadahAmazon ElasticBerikutAWSkebijakan IAM terkelola dihapus. Kebijakan ini sekarang digantikan oleh kebijakan yangsudah diperbarui. Kami menyarankan Anda untuk memperbarui pengguna atau peran IAM Anda untukmenggunakan kebijakan yang diperbarui tersebut.

Amazonec2ContainerServiceFullAccessImportant

ParameterAmazonEC2ContainerServiceFullAccesskebijakan IAM terkelola dihapuspada 29 Januari 2021, dalam menanggapi temuan keamanan denganiam:passRoleizin.Izin ini memberikan akses ke semua sumber daya termasuk kredensial untuk berperan diakun. Setelah kebijakan dihapus, Anda tidak dapat melampirkan kebijakan ke penggunaatau peran IAM baru. Setiap pengguna atau peran yang sudah memiliki kebijakan yang

354

Amazon ECS Panduan Pengguna untuk AWS FargateAWSKebijakan terkelola untuk Amazon ECS

dilampirkan dapat terus menggunakannya. Namun, kami menyarankan Anda untuk memperbaruipengguna atau peran IAM Anda untuk menggunakanAmazonECS_FullAccesskebijakanterkelola sebagai gantinya. Untuk informasi selengkapnya, lihat Migrasi ke kebijakan terkelolaAmazonECS_FullAccess (p. 355).

Amazonec2ContainerServiceRoleImportant

ParameterAmazonEC2ContainerServiceRoledikelola kebijakan IAM dihapus. Sekarangdigantikan dengan peran terkait layanan Amazon ECS. Untuk informasi selengkapnya, lihat Perantertaut layanan untuk Amazon ECS (p. 356).

AmazonEC2ContainerServiceAutoscaleRoleImportant

ParameterAmazonEC2ContainerServiceAutoscaleRoledikelola kebijakan IAM dihapus.Sekarang digantikan dengan peran terkait layanan Application Auto Scaling untuk Amazon ECS.Untuk informasi selengkapnya, lihat Peran yang ditautkan dengan layanan untuk Application AutoScaling dalam Panduan Pengguna Application Auto Scaling.

Migrasi ke kebijakan terkelola AmazonECS_FullAccessParameterAmazonEC2ContainerServiceFullAccesskebijakan IAM terkelola dihapus pada 29Januari 2021, dalam menanggapi temuan keamanan denganiam:passRoleizin. Izin ini memberikanakses ke semua sumber daya termasuk kredensial untuk berperan di akun. Setelah kebijakan dihapus,Anda tidak dapat melampirkan kebijakan ke grup, pengguna, atau peran IAM baru. Setiap grup,pengguna, atau peran yang sudah memiliki kebijakan yang dilampirkan dapat terus menggunakannya.Namun, kami menyarankan Anda untuk memperbarui grup, pengguna, atau peran IAM Anda untukmenggunakanAmazonECS_FullAccesskebijakan terkelola sebagai gantinya.

Izin yang diberikan oleh kebijakan AmazonECS_FullAccess termasuk daftar lengkap izin yangdiperlukan untuk menggunakan ECS sebagai administrator. Jika Anda saat ini menggunakan izinyang diberikan oleh kebijakan AmazonEC2ContainerServiceFullAccess yang tidak ada dalamAmazonECS_FullAccess, Anda dapat menambahkannya ke pernyataan kebijakan yang sesuai. Untukinformasi selengkapnya, lihat AWSLayanan Wadah Amazon Elastic Container (p. 348).

Lakukan langkah-langkah berikut untuk menentukan apakah Anda memiliki grup, pengguna, atauperan IAM yang saat ini menggunakan grup, atau peran IAM yang saat ini menggunakan grupIAMAmazonEC2ContainerServiceFullAccessKebijakan IAM terkelola. Kemudian perbarui grup,pengguna, atau peran tersebut untuk melepaskan kebijakan sebelumnya dan melampirkan kebijakanAmazonECS_FullAccess.

Untuk memperbarui grup, pengguna, atau peran IAM untuk menggunakan kebijakanAmazonECS_FullAccess (AWS Management Console)

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Kebijakan lalu cari dan pilih kebijakan

AmazonEC2ContainerServiceFullAccess.3. PilihPenggunaan kebijakantab yang menampilkan IAM role yang saat ini menggunakan kebijakan ini.4. Untuk setiap peran IAM yang saat ini

menggunakanAmazonEC2ContainerServiceFullAccesskebijakan, pilih peran danlakukan langkah-langkah berikut untuk melepaskan kebijakan yang tidak lagi digunakan danlampirkanAmazonECS_FullAccesskebijakan.

a. Pada tab Izin, pilih X di sebelah kebijakan AmazonEC2ContainerServiceFullAccess.

355

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

b. Pilih Tambahkan izin.c. PilihLampirkan kebijakan yang ada secara langsung, cari dan

pilihAmazonecs_FullAccesskebijakan, dan kemudian pilihSelanjutnya: Tinjau.d. Tinjau perubahan lalu pilih Tambahkan izin.e. Ulangi langkah-langkah ini untuk setiap grup, pengguna, atau peran IAM yang

menggunakanAmazonEC2ContainerServiceFullAccesskebijakan.

Memperbarui grup, atau peran IAM, atau peran IAM untuk menggunakan grup, atau peranIAMAmazonECS_FullAccesskebijakan (AWS CLI)

1. Gunakan perintah dapatkan-detail-layanan-yang-diakses-terakhir untuk menghasilkan laporan yangmencakup detail tentang kapan kebijakan yang tidak lagi digunakan terakhir digunakan.

aws iam generate-service-last-accessed-details \ --arn arn:aws:iam::aws:policy/AmazonEC2ContainerServiceFullAccess

Output contoh:

{ "JobId": "32bb1fb0-1ee0-b08e-3626-ae83EXAMPLE"}

2. Gunakan ID tugas dari output sebelumnya dengan perintah dapatkan-detail-layanan-akses-terakhiruntuk mengambil laporan layanan yang terakhir diakses. Laporan ini menampilkan Amazon ResourceName (ARN) dari entitas IAM yang terakhir menggunakan kebijakan yang tidak lagi digunakan.

aws iam get-service-last-accessed-details \ --job-id 32bb1fb0-1ee0-b08e-3626-ae83EXAMPLE

3. Gunakan salah satu perintah berikut untukmelepaskanAmazonEC2ContainerServiceFullAccesskebijakan dari grup, pengguna, atau peranIAM.

• lepas-kebijakan-grup• lepas-kebijakan-peran• lepas-kebijakan-pengguna

4. Gunakan salah satu perintah berikut untuk melampirkanAmazonECS_FullAccesskebijakan untukgrup, pengguna, atau peran IAM.

• lampirkan-kebijakan-grup• lampirkan-kebijakan-peran• lepas-kebijakan-pengguna

Peran tertaut layanan untuk Amazon ECSAmazon ECS menggunakan peran tertaut layanan untuk izin yang diperlukan layanan untuk memanggilyang lainAWSlayanan atas nama Anda. Untuk informasi lebih lanjut, lihat Menggunakan peran tertautlayanan dalam Panduan Pengguna IAM.

Izin yang diberikan oleh peran tertaut layananAmazon ECS menggunakan peran tertaut layanan bernamaAWSServiceRoleForECSuntuk mengaktifkanAmazon ECS untuk meneleponAWSAPI atas nama Anda.

356

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

Peran terkait layanan AWSServiceRoleForECS mempercayai layanan utama ecs.amazonaws.comuntuk memegang peran tersebut.

Kebijakan izin peran memungkinkan Amazon ECS menyelesaikan tindakan berikut pada sumber dayaberikut.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ECSTaskManagement", "Effect": "Allow", "Action": [ "ec2:AttachNetworkInterface", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:Describe*", "ec2:DetachNetworkInterface", "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", "elasticloadbalancing:DeregisterTargets", "elasticloadbalancing:Describe*", "elasticloadbalancing:RegisterInstancesWithLoadBalancer", "elasticloadbalancing:RegisterTargets", "route53:ChangeResourceRecordSets", "route53:CreateHealthCheck", "route53:DeleteHealthCheck", "route53:Get*", "route53:List*", "route53:UpdateHealthCheck", "servicediscovery:DeregisterInstance", "servicediscovery:Get*", "servicediscovery:List*", "servicediscovery:RegisterInstance", "servicediscovery:UpdateInstanceCustomHealthStatus" ], "Resource": "*" }, { "Sid": "AutoScaling", "Effect": "Allow", "Action": [ "autoscaling:Describe*" ], "Resource": "*" }, { "Sid": "AutoScalingManagement", "Effect": "Allow", "Action": [ "autoscaling:DeletePolicy", "autoscaling:PutScalingPolicy", "autoscaling:SetInstanceProtection", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:ResourceTag/AmazonECSManaged": "false" } } }, { "Sid": "AutoScalingPlanManagement",

357

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

"Effect": "Allow", "Action": [ "autoscaling-plans:CreateScalingPlan", "autoscaling-plans:DeleteScalingPlan", "autoscaling-plans:DescribeScalingPlans" ], "Resource": "*" }, { "Sid": "CWAlarmManagement", "Effect": "Allow", "Action": [ "cloudwatch:DeleteAlarms", "cloudwatch:DescribeAlarms", "cloudwatch:PutMetricAlarm" ], "Resource": "arn:aws:cloudwatch:*:*:alarm:*" }, { "Sid": "ECSTagging", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*" }, { "Sid": "CWLogGroupManagement", "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*" }, { "Sid": "CWLogStreamManagement", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/aws/ecs/*:log-stream:*" }, { "Sid": "ExecuteCommandSessionManagement", "Effect": "Allow", "Action": [ "ssm:DescribeSessions" ], "Resource": "*" }, { "Sid": "ExecuteCommand", "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ecs:*:*:task/*", "arn:aws:ssm:*:*:document/AmazonECS-ExecuteInteractiveCommand" ] } ]

358

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

}

Buat peran terkait layananDalam kebanyakan situasi, Anda tidak perlu membuat peran terkait layanan secara manual. Misalnya, saatAnda membuat klaster baru (misalnya, dengan pengalaman lari pertama Amazon ECS, wizard pembuatanklaster, atauAWS CLIatau SDK), atau membuat atau memperbarui layanan diAWS Management Console,Amazon ECS membuat peran tertaut layanan untuk Anda, jika belum ada.

Anda harus mengonfigurasi izin untuk mengizinkan entitas IAM (seperti pengguna, grup, atau peran) untukmembuat, mengedit, atau menghapus peran terkait layanan.

Untuk mengizinkan entitas IAM membuat AWSServiceRoleForECS peran yang terhubung dengan layanan

Menambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu membuat peran tertautlayanan.

{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}}}

Membuat peran terkait layanan di IAM (AWS CLI)

Anda dapat menggunakan perintah IAM dariAWS Command Line Interfaceuntuk membuat peran terkaitlayanan dengan kebijakan kepercayaan dan kebijakan terkait yang diperlukan layanan untuk mengambilperan tersebut.

Untuk membuat peran tertaut layanan (CLI)

Gunakan perintah berikut:

$ aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com

Edit peran terkait layananSetelah Anda membuat peran terkait layanan, Anda tidak dapat mengubah nama peran karena berbagaientitas mungkin mereferensikan peran tersebut. Anda tidak dapat mengeditAWSkebijakan IAM yangdigunakan oleh peran tertaut layanan Amazon ECS karena berisi semua izin yang diperlukan AmazonECS. Namun, Anda dapat mengedit deskripsi peran.

Untuk mengizinkan entitas IAM mengedit deskripsi AWSServiceRoleForECS peran yang terhubung denganlayanan

Menambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu mengedit Deskripsi perantertaut layanan.

{ "Effect": "Allow", "Action": [ "iam:UpdateRoleDescription"

359

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}}}

Hapus peran tertaut layananJika Anda tidak lagi menggunakan Amazon ECS, kami sarankan Anda menghapus peran terkait layanan.Dengan begitu, Anda tidak memiliki entitas yang tidak digunakan yang tidak dipantau atau dipeliharasecara aktif. Namun demikian, Anda harus menghapus semua klaster Amazon ECS di semua wilayahsebelum Anda dapat menghapus peran tertaut layanan.

Untuk mengizinkan entitas IAM untuk menghapus AWSServiceRoleForECS peran yang terhubung denganlayanan

Menambahkan pernyataan berikut ke kebijakan izin untuk entitas IAM yang perlu menghapus peran tertautlayanan:

{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS*", "Condition": {"StringLike": {"iam:AWSServiceName": "ecs.amazonaws.com"}}}

Membersihkan peran tertaut layanan

Sebelum dapat menggunakan IAM untuk menghapus peran terkait layanan, Anda harus mengonfirmasiterlebih dahulu bahwa peran tersebut tidak memiliki sesi aktif dan menghapus semua klaster Amazon ECSdi semuaAWSWilayah.

Untuk memeriksa apakah peran yang terhubung dengan layanan memiliki sesi aktif

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran dan pilih nama AWSServiceRoleForECS (bukan kotak centang).3. Di halaman Summary (Ringkasan), pilih Access Advisor (Penasihat Akses) dan tinjau aktivitas terbaru

untuk peran yang terhubung dengan layanan.

Note

Jika Anda tidak yakin apakah Amazon ECS menggunakan AWSServiceRoleForECS peran,Anda dapat mencoba untuk menghapus peran. Jika layanan menggunakan peran tersebut,maka penghapusan gagal dan Anda dapat melihat wilayah tempat peran tersebut digunakan.Jika peran tersebut sedang digunakan, Anda harus menunggu hingga sesi ini berakhirsebelum dapat menghapus peran tersebut. Anda tidak dapat mencabut sesi untuk peranterkait layanan.

Untuk menghapus sumber daya Amazon ECS yang digunakan oleh AWSServiceRoleForECSperan yang terhubung dengan layanan

Anda harus menghapus semua klaster Amazon ECS di semuaAWSWilayah sebelum Anda dapatmenghapus AWSServiceRoleForECS peran.

360

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

• Hapus semua klaster Amazon ECS di semua wilayah. Untuk informasi selengkapnya, lihat Menghapusklaster menggunakan konsol klasik (p. 81).

Menghapus Peran Terkait Layanan di IAM (Konsol)

Anda dapat menggunakan konsol IAM untuk menghapus peran tertaut layanan.

Untuk menghapus peran terkait layanan (konsol)

1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi konsol IAM, pilih Peran. Kemudian pilih kotak centang di samping

AWSServiceRoleforECS, bukan nama atau baris itu sendiri.3. Pilih Hapus peran.4. Pada kotak dialog konfirmasi, tinjau data yang terakhir diakses layanan, yang menunjukkan waktu

terakhir setiap peran yang dipilih diaksesLayanan AWS. Ini membantu Anda mengonfirmasi aktiftidaknya peran tersebut saat ini. Jika Anda ingin melanjutkan, pilih Ya, Hapus untuk mengirimkanperan terkait layanan untuk penghapusan.

5. Perhatikan pemberitahuan konsol IAM untuk memantau kemajuan penghapusan peran terkait layanan.Karena penghapusan peran terkait layanan IAM bersifat asinkron, setelah Anda mengirimkan perantersebut untuk dihapus, tugas penghapusan dapat berhasil atau gagal.

• Jika tugas berhasil, maka peran tersebut dihapus dari daftar dan pemberitahuan keberhasilanmuncul di bagian atas halaman.

• Jika tugas tersebut gagal, Anda dapat memilih Lihat rincian atau Lihat Sumber Daya daripemberitahuan untuk mempelajari alasan penghapusan gagal. Jika penghapusan gagal karenaperan tersebut sedang menggunakan sumber daya layanan, maka pemberitahuan mencakup daftarsumber daya, jika layanan tersebut mengembalikan informasi tersebut. Anda kemudian dapatmembersihkan sumber daya dan mengirimkan penghapusan lagi.

Note

Anda mungkin harus mengulangi proses ini beberapa kali, tergantung pada informasi yangdikembalikan oleh layanan. Misalnya, peran terkait layanan Anda mungkin menggunakanenam sumber daya dan layanan Anda mungkin akan mengembalikan informasi mengenailima di antaranya. Jika Anda membersihkan lima sumber daya dan mengirim peranuntuk penghapusan lagi, penghapusan tersebut gagal dan layanan melaporkan sumberdaya yang tersisa. Layanan mungkin mengembalikan semua sumber daya, beberapa diantaranya, atau tidak melaporkan sumber daya apa pun.

• Jika tugas gagal dan pemberitahuan tidak mencakup daftar sumber daya, maka layanan mungkintidak mengembalikan informasi tersebut. Untuk mempelajari cara membersihkan sumber daya untuklayanan tersebut, lihatLayanan AWSyang bekerja dengan IAM. Cari layanan Anda dalam tabel, danpilih tautan Ya untuk melihat dokumentasi peran terkait layanan untuk layanan tersebut

Menghapus Peran Terkait Layanan di IAM (AWS CLI)

Anda dapat menggunakan perintah IAM dari AWS Command Line Interface untuk menghapus peran tertautlayanan.

Untuk menghapus peran yang terhubung dengan layanan (CLI)

1. Karena peran tertaut layanan tidak dapat dihapus jika sedang digunakan atau memiliki sumberdaya terkait, Anda harus mengirimkan permintaan penghapusan. Permintaan tersebut dapat ditolakjika syarat ini tidak terpenuhi. Anda harus menangkap deletion-task-id dari tanggapan untukmemeriksa status tugas penghapusan. Ketik perintah berikut untuk mengirimkan permintaanpenghapusan peran yang terhubung dengan layanan:

361

Amazon ECS Panduan Pengguna untuk AWS FargatePeran tertaut layanan

$ aws iam delete-service-linked-role --role-name AWSServiceRoleForECS+OPTIONAL-SUFFIX

2. Gunakan perintah berikut untuk memeriksa status tugas penghapusan:

$ aws iam get-service-linked-role-deletion-status --deletion-task-id deletion-task-id

Kemungkinan status tugas penghapusan adalah NOT_STARTED, IN_PROGRESS, SUCCEEDED, atauFAILED. Jika penghapusan gagal, panggilan akan mengembalikan alasan kegagalan panggilansehingga Anda dapat memecahkan masalah. Jika penghapusan gagal karena peran tersebut sedangmenggunakan sumber daya layanan, maka pemberitahuan mencakup daftar sumber daya, jikalayanan tersebut mengembalikan informasi tersebut. Anda kemudian dapat membersihkan sumberdaya dan mengirimkan penghapusan lagi.

Note

Anda mungkin harus mengulangi proses ini beberapa kali, tergantung pada informasi yangdikembalikan oleh layanan. Misalnya, peran terkait layanan Anda mungkin menggunakanenam sumber daya dan layanan Anda mungkin akan mengembalikan informasi mengenailima di antaranya. Jika Anda membersihkan lima sumber daya dan mengirim peran untukpenghapusan lagi, penghapusan tersebut gagal dan layanan melaporkan sumber daya yangtersisa. Layanan mungkin mengembalikan semua sumber daya, beberapa di antaranya, atautidak melaporkan sumber daya apa pun. Untuk mempelajari cara membersihkan sumber dayauntuk layanan yang tidak melaporkan sumber daya apa pun, lihatLayanan AWSyang bekerjadengan IAM. Cari layanan Anda dalam tabel, dan pilih tautan Ya untuk melihat dokumentasiperan terkait layanan untuk layanan tersebut

Menghapus Peran Terkait Layanan di IAM (AWSAPI)

Anda dapat menggunakan API IAM untuk menghapus peran terkait layanan.

Untuk menghapus peran terkait layanan (API)

1. Untuk mengirimkan permintaan penghapusan untuk gulungan terkait layanan, hubungiDeleteServiceLinkedRole. Dalam permintaan, tentukan AWSServiceRoleForECS nama peran.

Karena peran tertaut layanan tidak dapat dihapus jika sedang digunakan atau memiliki sumber dayaterkait, Anda harus mengirimkan permintaan penghapusan. Permintaan tersebut dapat ditolak jikasyarat ini tidak terpenuhi. Anda harus menangkap DeletionTaskId dari tanggapan untuk memeriksastatus tugas penghapusan.

2. Untuk memeriksa status penghapusan, hubungi GetServiceLinkedRoleDeletionStatus. Di permintaan,tentukan DeletionTaskId.

Kemungkinan status tugas penghapusan adalah NOT_STARTED, IN_PROGRESS, SUCCEEDED, atauFAILED. Jika penghapusan gagal, panggilan akan mengembalikan alasan kegagalan panggilansehingga Anda dapat memecahkan masalah. Jika penghapusan gagal karena peran tersebut sedangmenggunakan sumber daya layanan, maka pemberitahuan mencakup daftar sumber daya, jikalayanan tersebut mengembalikan informasi tersebut. Anda kemudian dapat membersihkan sumberdaya dan mengirimkan penghapusan lagi.

Note

Anda mungkin harus mengulangi proses ini beberapa kali, tergantung pada informasi yangdikembalikan oleh layanan. Misalnya, peran terkait layanan Anda mungkin menggunakanenam sumber daya dan layanan Anda mungkin akan mengembalikan informasi mengenailima di antaranya. Jika Anda membersihkan lima sumber daya dan mengirim peran untukpenghapusan lagi, penghapusan tersebut gagal dan layanan melaporkan sumber daya yang

362

Amazon ECS Panduan Pengguna untuk AWS FargatePeran eksekusi tugas

tersisa. Layanan mungkin mengembalikan semua sumber daya, beberapa di antaranya, atautidak melaporkan sumber daya apa pun. Untuk mempelajari cara membersihkan sumber dayauntuk layanan yang tidak melaporkan sumber daya apa pun, lihatLayanan AWSyang bekerjadengan IAM. Cari layanan Anda dalam tabel, dan pilih tautan Ya untuk melihat dokumentasiperan terkait layanan untuk layanan tersebut

Peran IAM eksekusi tugas ECS AmazonPeran eksekusi tugas memberikan kontainer Amazon ECS dan izin agen Fargate untukmembuatnyaAWSPanggilan API atas nama Anda. IAM role eksekusi tugas diperlukan sesuai denganpersyaratan tugas Anda. Anda dapat memiliki beberapa peran eksekusi tugas untuk berbagai tujuan danlayanan yang terkait dengan akun Anda.

Berikut ini adalah kasus penggunaan umum untuk peran IAM:

• Tugas Anda di-host di AWS Fargateatau pada instans eksternal dan...• sedang menarik citra kontainer dari repositori privat Amazon ECR.• mengirimkan log kontainer untuk CloudWatch Log menggunakanawslogsdriver log. Untuk informasi

selengkapnya, lihat Menggunakan driver log awslogs (p. 138).• Tugas Anda di-host di salah satuAWS FargateInstans Amazon EC2 dan...

• menggunakan autentikasi registri privat. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukanuntuk autentikasi registri priv (p. 365).

• ketentuan tugas adalah mereferensikan data sensitif menggunakan Secrets ManageratauAWSParameter Store Systems Manager. Untuk informasi selengkapnya, lihat Izin IAM yangdiperlukan untuk rahasia Amazon ECS (p. 366).

Note

Peran eksekusi tugas didukung oleh agen kontainer Amazon ECS versi 1.16.0 dan yang lebihbaru.

Amazon ECS menyediakan kebijakan terkelola bernama AmazonECSTaskExecutionRolePolicyyang berisi izin yang diperlukan oleh kasus penggunaan umum yang dijelaskan di atas. Mungkin perlumenambahkan kebijakan inline ke peran eksekusi tugas Anda untuk kasus penggunaan khusus yangdiuraikan di bawah ini.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" } ]}

Peran eksekusi tugas Amazon ECS dapat dibuat untuk Anda di konsol Amazon ECS; namun, Anda harusmelampirkan kebijakan IAM terkelola secara manual untuk mengizinkan Amazon ECS menambahkan izin

363

Amazon ECS Panduan Pengguna untuk AWS FargatePeran eksekusi tugas

untuk fitur dan peningkatan pada future saat mereka diperkenalkan. Anda dapat menggunakan prosedurberikut untuk memeriksa dan melihat apakah akun Anda sudah memiliki peran eksekusi tugas AmazonECS dan untuk melampirkan kebijakan IAM terkelola apabila diperlukan.

Untuk memeriksa ecsTaskExecutionRole di dalam konsol IAM

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran.3. Cari daftar peran untuk ecsTaskExecutionRole. Jika peran tidak ada, lihat Membuat peran IAM

eksekusi tugas (p. 364). Jika peran ada, pilih peran untuk melihat kebijakan terlampir.4. Pada tab Izin, pastikan bahwa Kebijakan terkelola AmazonECSTaskExecutionRolePolicy dilampirkan

pada peran tersebut. Jika kebijakan terlampir, tandanya peran eksekusi tugas Amazon ECS Andadikonfigurasi dengan benar. Jika tidak, ikuti langkah-langkah di bawah ini untuk melampirkankebijakan.

a. PilihTambah Izin,Lampirkan kebijakan.b. Untuk mempersempit kebijakan yang tersedia untuk dilampirkan, untuk Filter, ketik

AmazonECSTaskExecutionRolePolicy.c. Centang kotak di sebelah kiri kebijakan AmazonECSTaskExecutionRolePolicy dan pilih Attach

policy (Lampirkan kebijakan).5. PilihHubungan kepercayaan.6. Verifikasi bahwa hubungan kepercayaan berisi kebijakan berikut. Jika hubungan kepercayaan sesuai

dengan kebijakan di bawah ini, pilih Batal. Jika hubungan kepercayaan tidak cocok, pilihKebijakankepercayaan, salin kebijakan ke dalamDokumen Kebijakanjendela dan memilihKebijakan pembaruan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Membuat peran IAM eksekusi tugasJika akun Anda belum memiliki peran eksekusi tugas, gunakan langkah-langkah berikut untuk membuatperan.

Membuat peran IAM eksekusi tugas (AWS Management Console)

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Dalam panel navigasi, pilih Peran, lalu Buat peran.3. DiJenis entitas tepercayabagian, pilihAWSlayanan,Layanan Wadah Elastic.4. UntukKasus penggunaan, pilihTugas Layanan Wadah Elastic, lalu pilihSelanjutnya.5. DiMelampirkan kebijakan izinbagian, lakukan hal berikut:

a. CariAmazonECSTaskExecutionRolePolicy, lalu pilih kebijakan.

364

Amazon ECS Panduan Pengguna untuk AWS FargatePeran eksekusi tugas

b. Di bawahTetapkan batas izin - opsional, pilihBuat peran tanpa batas izin.c. Pilih Selanjutnya.

6. Di bawahRincian peran, lakukan hal berikut:

a. Untuk Nama Peran, ketik ecsTaskExecutionRole.b. UntukTambahkan tag (opsional), tentukan tag kustom apa pun untuk diasosiasikan dengan

kebijakan.7. Pilih Create role (Buat peran).

Membuat peran IAM eksekusi tugas (AWS CLI)

1. Membuat file bernamaecs-tasks-trust-policy.jsonyang berisi kebijakan kepercayaan yangakan digunakan untuk peran IAM. File tersebut harus berisi hal berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ecs-tasks.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

2. Membuat IAM role bernamaecsTaskExecutionRolemenggunakan kebijakan kepercayaan yangdibuat pada langkah sebelumnya.

aws iam create-role \ --role-name ecsTaskExecutionRole \ --assume-role-policy-document file://ecs-tasks-trust-policy.json

3. Lampirkan kebijakan AmazonECSTaskExecutionRolePolicy terkelola AWS ke peranecsTaskExecutionRole. Kebijakan ini menyediakan

aws iam attach-role-policy \ --role-name ecsTaskExecutionRole \ --policy-arn arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy

Izin IAM yang diperlukan untuk autentikasi registri privPeran eksekusi tugas Amazon ECS diperlukan untuk menggunakan fitur autentikasi registri privat. Hal inimengizinkan agen kontainer untuk menarik citra kontainer. Untuk informasi selengkapnya, lihat Autentikasiregistri privat untuk tugas (p. 173).

Untuk memberikan akses ke rahasia yang Anda buat, tambahkan izin berikut secara manual sebagaikebijakan sebaris ke peran eksekusi tugas. Untuk informasi selengkapnya, lihat Menambahkan danMenghapus Kebijakan IAM.

• secretsmanager:GetSecretValue

• kms:Decrypt—Wajib hanya jika kunci Anda menggunakan kunci KMS khusus dan bukan kunci default.ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya.

365

Amazon ECS Panduan Pengguna untuk AWS FargatePeran eksekusi tugas

Contoh kebijakan inline menambahkan izin yang ditampilkan di bawah.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "ssm:GetParameters", "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:secret_name", "arn:aws:kms:<region>:<aws_account_id>:key/key_id" ] } ]}

Izin IAM yang diperlukan untuk rahasia Amazon ECSUntuk menggunakan fitur rahasia Amazon ECS, Anda harus memiliki peran eksekusi tugas AmazonECS dan mereferensikannya dalam ketentuan tugas Anda. Hal ini mengizinkan agen kontainer untukmenarik yang diperlukanAWS Systems Manageratau sumber daya Secrets Manager. Untuk informasiselengkapnya, lihat Menentukan data sensitif (p. 175).

Untuk memberikan akses ke parameter Penyimpanan Parameter AWS Systems Manager yang Anda buat,tambahkan izin berikut secara manual sebagai kebijakan inline ke peran eksekusi tugas. Untuk informasiselengkapnya, lihat Menambahkan dan Menghapus Kebijakan IAM.

• ssm:GetParameters—Wajib jika Anda mereferensikan parameter Systems Manager Parameter Storedalam ketentuan tugas.

• secretsmanager:GetSecretValue—Wajib jika Anda mereferensikan rahasia Secrets Managersecara langsung atau jika parameter Systems Manager Parameter Store Anda mereferensikan rahasiaSecrets Manager dalam ketentuan tugas.

• kms:Decrypt—Wajib hanya jika rahasia Anda menggunakan kunci KMS khusus dan bukan kuncidefault. ARN untuk kunci khusus Anda harus ditambahkan sebagai sumber daya.

Contoh kebijakan inline berikut menambahkan izin yang diperlukan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ]}

366

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM Anywhere

Izin IAM opsional untuk tugas Fargate menarik gambar AmazonECR melalui titik akhir antarmukaSaat meluncurkan tugas yang menggunakan tipe peluncuran Fargate yang menarik gambar dari AmazonECR saat Amazon ECR dikonfigurasi untuk menggunakan VPC endpoint antarmuka, Anda dapatmembatasi akses tugas ke VPC endpoint atau VPC tertentu. Lakukan hal ini dengan membuat peraneksekusi tugas untuk tugas yang menggunakan kunci kondisi IAM.

Gunakan kunci kondisi global IAM berikut untuk membatasi akses ke VPC endpoint atau VPC tertentu.Untuk informasi selengkapnya, lihat Kunci Konteks Syarat Global AWS.

• aws:SourceVpc— Membatasi akses ke VPC tertentu.• aws:SourceVpce—Membatasi akses ke VPC endpoint tertentu.

Kebijakan peran eksekusi tugas berikut memberikan contoh untuk menambahkan kunci syarat:

Important

Parameterecr:GetAuthorizationTokenAksi API tidak dapatmemilikiaws:sourceVpcatauaws:sourceVpcekunci kondisi diterapkan untuk itu karenaGetAuthorizationToken Panggilan API melewati elastic network interface yang dimilikiolehAWSFargate daripada elastic network interface dari tugas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:GetAuthorizationToken", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpce": "vpce-xxxxxx", "aws:sourceVpc": "vpc-xxxxx" } } } ]}

Peran IAM AnywhereSaat mendaftarkan server on-premise atau mesin virtual (VM) ke klaster Anda, server atau VM memerlukanperan IAM untuk berkomunikasi denganAWSAPI. Anda hanya perlu membuat IAM role ini satu kaliperAWSakun.

367

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM Anywhere

Untuk memeriksaecsAnywhereRoleIAM role (AWS Management Console)

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran.3. Cari daftar peran untuk ecsAnywhereRole. Jika peran tidak ada, gunakan prosedur di bagian

berikutnya untuk membuat peran. Jika peran ada, pilih peran untuk melihat kebijakan terlampir.4. Pada tab Izin, pastikan jika kebijakan terkelolaAmazonEC2ContainerServiceforEC2Role dan

AmazonSSMManagedInstanceCore dilampirkan pada peran tersebut. Jika kebijakan terlampir, peranAmazon ECS Anywhere Anda sudah dikonfigurasi dengan benar. Jika tidak, ikuti langkah-langkah dibawah ini untuk melampirkan kebijakan.

a. Pilih Lampirkan kebijakan.b. Di kotak Filter, ketik AmazonEC2ContainerServiceforEC2Role untuk mempersempit kebijakan

yang tersedia untuk dilampirkan.c. Centang kotak di sebelah kiri kebijakan AmazonEC2ContainerServiceforEC2Role dan pilih

Lampirkan kebijakan.d. Di kotak Filter, ketik AmazonSSMManagedInstanceCore untuk mempersempit kebijakan yang

tersedia untuk dilampirkan.e. Centang kotak di sebelah kiri kebijakan AmazonSSMManagedInstanceCore dan pilih Lampirkan

kebijakan.5. Pilih tab Hubungan kepercayaan, dan Edit hubungan kepercayaan.6. Verifikasi bahwa hubungan kepercayaan berisi kebijakan berikut. Jika hubungan kepercayaan sesuai

dengan kebijakan di bawah ini, pilih Batal. Jika hubungan kepercayaan tidak cocok, salin kebijakan keDokumen Kebijakan dan pilih Memperbarui kebijakan kepercayaan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

MembuatecsAnywhereRoleIAM role (AWS Management Console)

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran lalu pilih Buat peran.3. Pilih tipe peran Layanan AWS, lalu pilih Elastic Container Service.4. PilihPeran EC2 untuk Layanan Kontainer Elastickasus penggunaan dan kemudianSelanjutnya: Izin.5. DiKebijakan izin terlampirbagian, pilihAmazonEC2ContainerServiceforEC2Roledan kemudian

pilihSelanjutnya: Tinjau.6. Untuk Nama peran, ketik ecsAnywhereRole dan opsional Anda dapat memasukkan deskripsi,

misalnya Mengizinkan server on-premise atau mesin virtual di klaster ECS untuk mengakses ECS..7. Tinjau informasi peran Anda, lalu pilih Buat peran untuk menyelesaikan.8. Pilih peran ecsAnywhereRole yang baru Anda buat.9. Di tab Izin, pilih Lampirkan kebijakan.10. Di kotak Filter, ketik AmazonSSMManagedInstanceCore untuk mempersempit kebijakan yang tersedia

untuk dilampirkan.

368

Amazon ECS Panduan Pengguna untuk AWS FargateIAM role untuk tugas

11. Centang kotak di sebelah kiri kebijakan AmazonSSMManagedInstanceCore dan pilih Lampirkankebijakan.

12. Pilih tab Hubungan kepercayaan, pilih Edit hubungan kepercayaan.13. Ubah hubungan kepercayaan sehingga itu berisi kebijakan berikut lalu pilih Perbarui Kebijakan

Kepercayaan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

MembuatecsAnywhereRoleIAM role (AWS CLI)

1. Buat file lokal bernama ssm-trust-policy.json dengan konten berikut.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": [ "ssm.amazonaws.com" ]}, "Action": "sts:AssumeRole" }}

2. Buat peran.

aws iam create-role --role-name ecsAnywhereRole --assume-role-policy-document file://ssm-trust-policy.json

3. Lampirkan kebijakan terkelola AWS.

aws iam attach-role-policy --role-name ecsAnywhereRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCoreaws iam attach-role-policy --role-name ecsAnywhereRole --policy-arn arn:aws:iam::aws:policy/service-role/AmazonEC2ContainerServiceforEC2Role

IAM role untuk tugasTugas Amazon ECS Anda dapat memiliki peran IAM yang terkait dengannya. Izin yang diberikan dalamperan IAM diasumsikan oleh kontainer yang berjalan dalam tugas.

Jika aplikasi kontainer Anda perlu meneleponAWSAPI, mereka harus menandatanganiAWSPermintaanAPI denganAWSkredensional, dan role IAM tugas menyediakan strategi untuk mengelola kredensibelaplikasi Anda untuk digunakan, serupa dengan cara profil instans Amazon EC2 memberikan kredensionalke instans Amazon EC2. Alih-alih membuat dan mendistribusikanAWSkredensi ke kontainer ataumenggunakan peran instans Amazon EC2, Anda dapat mengaitkan peran IAM dengan ketentuan tugas

369

Amazon ECS Panduan Pengguna untuk AWS FargateIAM role untuk tugas

Amazon ECS atauRunTaskOperasi API. Kontainer Anda kemudian dapat menggunakanAWSSDKatauAWS CLIuntuk membuat permintaan API ke resmiAWSlayanan.

Berikut ini menjelaskan manfaat menggunakan peran IAM dengan tugas Anda.

• Isolasi Kredenal: Kontainer hanya dapat mengambil kredensi untuk IAM role yang ditetapkan dalamketentuan tugas miliknya; kontainer yang tidak pernah memiliki akses ke kredensia yang dimaksudkanuntuk kontainer lain milik tugas lain.

• Otorisasi: Kontainer tidak sah tidak dapat mengakses kredensi peran IAM yang ditetapkan untuk tugaslainnya.

• Audit: Akses dan penebangan acara tersedia melalui CloudTrail untuk memastikan audit retrospektif.Kredensyal tugas memiliki kontekstaskArnyang melekat pada sesi, jadi CloudTrail log menunjukkantugas mana yang menggunakan peran.

Note

Ketika Anda menentukan peran IAM untuk tugas,AWS CLIatau SDK lain dalam kontainer untuktugas itu menggunakanAWSkredensyal yang disediakan oleh peran tugas secara eksklusif danmereka tidak lagi mewarisi izin IAM apa pun dari Amazon EC2 atau instans eksternal yang merekajalankan.

Anda dapat menentukan peran IAM tugas dalam definisi tugas Anda, atau Anda dapatmenggunakantaskRoleArnmenimpa saat menjalankan tugas secara manual denganRunTaskOperasiAPI. Agen Amazon ECS menerima pesan muatan untuk memulai tugas dengan bidangtambahan yang berisi kredensi peran. Agen Amazon ECS menetapkan ID kredensi tugas uniksebagai token identifikasi dan memperbarui cache kredensialnya sehingga token identifikasiuntuk tugas menunjuk ke kredensia peran yang diterima di muatan. Agen Amazon ECSmengisiAWS_CONTAINER_CREDENTIALS_RELATIVE_URIvariabel lingkungan dalamEnvobjek(tersedia dengandocker inspect container_idcommand) untuk semua kontainer yang termasukdalam tugas ini dengan URI relatif berikut:/credential_provider_version/credentials?id=task_credential_id.

Dari dalam kontainer, Anda dapat melakukan kueri terhadap titik akhir kredensial dengan perintah berikut:

curl 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI

Output:

{ "AccessKeyId": "ACCESS_KEY_ID", "Expiration": "EXPIRATION_DATE", "RoleArn": "TASK_ROLE_ARN", "SecretAccessKey": "SECRET_ACCESS_KEY", "Token": "SECURITY_TOKEN_STRING"}

Membuat IAM role dan kebijakan IAM untuk tugas AndaSaat membuat kebijakan IAM untuk digunakan tugas Anda, kebijakan harus mencakup izin yang inginAnda asumsikan kontainer dalam tugas Anda. Anda dapat menggunakanAWSkebijakan terkelola yangsebagai contoh atau Anda dapat membuat kebijakan kustom dari awal yang memenuhi kebutuhan spesifikAnda. Untuk informasi selengkapnya, lihat Membuat kebijakan IAM dalam Panduan Pengguna IAM.

Important

Saat membuat peran IAM tugas Anda, disarankan agar Andamenggunakanaws:SourceAccountatauaws:SourceArnkunci kondisi baik dalam hubungankepercayaan atau kebijakan IAM terkait dengan peran untuk mencegah masalah keamanan wakil

370

Amazon ECS Panduan Pengguna untuk AWS FargateIAM role untuk tugas

bingung. Kunci kondisi ini dapat ditentukan dalam hubungan kepercayaan atau dalam kebijakanIAM yang terkait dengan peran. Untuk mempelajari lebih lanjut tentang masalah wakil bingung danbagaimana melindungi AndaAWSakun, lihatMasalah confused deputydiPanduan Pengguna IAM.

Setelah kebijakan IAM dibuat, Anda dapat membuat peran IAM yang menyertakan kebijakan yang Andareferensikan dalam definisi tugas Amazon ECS Anda. Anda dapat membuat peran menggunakanTugasLayanan Wadah Elastickasus penggunaan di konsol IAM. Kemudian Anda dapat melampirkan kebijakanIAM spesifik Anda ke peran yang memberikan izin kepada kontainer dalam tugas Anda yang Andainginkan. Prosedur di bawah menjelaskan cara melakukannya.

Jika Anda memiliki beberapa ketentuan tugas atau layanan yang memerlukan izin IAM, Anda harusmempertimbangkan untuk membuat peran untuk setiap ketentuan tugas atau layanan tertentu dengan izinminimum yang diperlukan agar Anda dapat meminimalkan akses yang Anda berikan untuk setiap tugas.

Untuk informasi tentang titik akhir layanan untuk Wilayah Anda, lihatTitik akhir layanandiPanduan ReferensiUmum Amazon Web Services.

IAM task role harus memiliki kebijakan kepercayaan yang menentukanecs-tasks.amazonaws.comlayanan. Parametersts:AssumeRoleizin memungkinkan tugas Anda untukmengasumsikan peran IAM yang berbeda dari yang digunakan instans Amazon EC2. Dengan caraini, tugas Anda tidak mewarisi peran yang terkait dengan instans Amazon EC2. Dianjurkan agar Andamenggunakan alataws:SourceAccountatauaws:SourceArnkunci kondisi untuk lingkup izin lebihlanjut untuk mencegah masalah keamanan wakil bingung. Kunci kondisi ini dapat ditentukan dalamhubungan kepercayaan atau dalam kebijakan IAM yang terkait dengan peran. Untuk mempelajari lebihlanjut tentang masalah wakil bingung dan bagaimana melindungi AndaAWSakun, lihatMasalah confuseddeputydiPanduan Pengguna IAM.

Berikut ini adalah contoh kebijakan kepercayaan. Anda harus mengganti pengenal Wilayah danmenentukanAWSnomor akun yang Anda gunakan saat meluncurkan tugas.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "ecs-tasks.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:ecs:us-west-2:111122223333:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ]}

Untuk membuat kebijakan IAM untuk tugas Anda (AWS Management Console)

Pada contoh ini, kami membuat kebijakan untuk mengizinkan akses hanya-baca ke bucket Amazon S3.Anda bisa menyimpan kredensial basis data atau rahasia lain di bucket ini, dan kontainer di tugas Andadapat membaca kredensial dari bucket dan memuatnya ke dalam aplikasi Anda.

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilihKebijakandan kemudian pilihMembuat Kebijakan.

371

Amazon ECS Panduan Pengguna untuk AWS FargateIAM role untuk tugas

3. Ikuti langkah-langkah di bawah salah satu tab berikut, yang menunjukkan cara menggunakan editorvisual atau JSON.

Using the visual editor

1. Untuk Layanan, pilih S3.2. Untuk Tindakan, perluas opsi Baca dan pilih GetObject.3. UntukSumber Daya, pilihTambahkan ARNdan masukkan Amazon Resource Name (ARN) dari

bucket Amazon S3 Anda.4. (Opsional) UntukKondisi permintaan, pilihTambahkan kondisi. Hal ini dianjurkan untuk mencegah

masalah keamanan wakil bingung. Untuk mempelajari lebih lanjut tentang masalah wakil bingungdan bagaimana melindungi AndaAWSakun, lihatMasalah confused deputydiPanduan PenggunaIAM.

a. UntukKunci syarat, pilih salah satuaws:SourceAccountatauaws:SourceArn. Untukinformasi selengkapnya tentang kunci kondisi global ini, lihatAWSKunci konteks kondisiglobaldiPanduan Pengguna IAM.

b. UntukOperator, pilihStringEqualsjika Anda menentukanaws:SourceAccountkunci kondisiatauArnlikejika Anda menentukanaws:SourceArnkunci syarat.

c. UntukNilai, tentukanAWSID akun jika Anda menentukanaws:SourceAccountkuncikondisi atau Amazon Resource Name (ARN) dari tugas Amazon ECS Anda jikaAnda menentukanaws:SourceArnkunci syarat. Anda dapat menggunakan wildcard,misalnyaaws:ecs:*:accountId:*yang akan bekerja untuk semua tugas di akun Anda.

d. PilihTambahkanuntuk menyimpan kunci kondisi. Ulangi langkah-langkah ini untuk setiap kuncisyarat yang ingin Anda tambahkan.

5. Pilih Berikutnya: Tagdan tambahkan tag sumber daya apa pun ke kebijakan untuk membantuAnda mengaturnya dan kemudian memilihSelanjutnya: Tinjau.

6. Pada halaman Tinjau kebijakan, untuk Nama ketik nama unik Anda, sepertiAmazonECSTaskS3BucketPolicy. Anda juga dapat menentukan deskripsi opsional untukkebijakan.

7. Ketika kebijakan selesai, pilihMembuat Kebijakanuntuk menyelesaikan.

Using the JSON editor

1. Di bidang dokumen kebijakan, tempelkan kebijakan untuk diterapkan ke tugas Anda. Contohdi bawah ini memungkinkan izin untukmy-tugas-rahasia-emberBucket Amazon S3. Inimencakup pernyataan kondisi, yang dapat Anda gunakan untuk menentukan tugas tertentumenggunakan Amazon Resource Name (ARN) atau ID akun tertentu. Ini menyediakan carauntuk lebih lingkup izin untuk keamanan tambahan. Hal ini dianjurkan untuk mencegah masalahkeamanan wakil bingung. Untuk mempelajari lebih lanjut tentang masalah wakil bingung danbagaimana melindungi AndaAWSakun, lihatMasalah confused deputydiPanduan Pengguna IAM.

Berikut ini adalah contoh kebijakan izin. Anda dapat mengubah kebijakan sesuai kebutuhanspesifik Anda. Anda harus mengganti pengenal Wilayah dan menentukanAWSnomor akun yangAnda gunakan saat meluncurkan tugas.

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:GetObject" ], "Resource":[

372

Amazon ECS Panduan Pengguna untuk AWS FargateIAM role untuk tugas

"arn:aws:s3:::my-task-secrets-bucket/*" ], "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:ecs:us-west-2:111122223333:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ]}

2. Pilih Berikutnya: Tagdan tambahkan tag sumber daya apa pun ke kebijakan untuk membantuAnda mengaturnya dan kemudian memilihSelanjutnya: Tinjau.

3. Pada halaman Tinjau kebijakan, untuk Nama ketik nama unik Anda, sepertiAmazonECSTaskS3BucketPolicy. Anda juga dapat menentukan deskripsi opsional untukkebijakan.

4. Ketika kebijakan selesai, pilihMembuat Kebijakanuntuk menyelesaikan.

Untuk membuat peran IAM untuk tugas Anda (AWS Management Console)

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Dalam panel navigasi, pilih Peran, lalu Buat peran.3. UntukPilih entitas tepercayabagian, pilihAWSlayanan.4. UntukKasus penggunaan, menggunakan menu drop down, pilihLayanan Wadah Elasticdan

kemudianTugas Layanan Wadah Elasticmenggunakan kasus dan kemudian memilihSelanjutnya.5. UntukTambahkan izin, cari dan pilih kebijakan yang akan digunakan untuk tugas Anda (dalam contoh

iniAmazonECSTaskS3BucketPolicy, dan kemudian pilihSelanjutnya.6. PadaLangkah 3: Nama, tinjau, dan buat, lakukan hal berikut:

a. Untuk Nama peran, masukkan nama untuk peran Anda. Untuk contoh ini,ketikAmazonECSTaskS3BucketRoleuntuk nama peran.

b. (Opsional) UntukDeskripsi. tentukan deskripsi untuk peran IAM ini.c. Tinjau kebijakan entitas dan izin tepercaya untuk peran tersebut.d. UntukTambahkan tag (Opsional), masukkan tag metadata apa pun yang ingin Anda kaitkan

dengan peran IAM, lalu pilihBuat peran.

Menggunakan AWS SDK yang didukungSupport untuk peran IAM untuk tugas ditambahkan keAWSSDK pada tanggal 13 Juli 2016. Kontainerdalam tugas Anda harus menggunakan versi AWS SDK yang dibuat pada atau setelah tanggal tersebut.AWS SDK yang disertakan dalam pengelola paket distribusi Linux mungkin tidak cukup baru untukmendukung fitur ini.

Untuk memastikan bahwa Anda menggunakan SDK yang didukung, ikuti petunjuk penginstalan untuk SDKpilihan Anda di Alat untuk Amazon Web Services ketika Anda sedang membangun kontainer Anda untukmendapatkan versi terbaru.

Menentukan peran IAM untuk tugas AndaSetelah membuat peran dan melampirkan kebijakan ke peran tersebut, Anda dapat menjalankan tugasyang berperan. Anda mempunyai beberapa opsi untuk melakukan ini:

373

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CodeDeploy

• Tentukan role IAM role untuk tugas Anda dalam ketentuan tugas. Anda dapat membuat ketentuantugas baru atau revisi baru ketentuan tugas yang ada dan tentukan peran yang Anda buat sebelumnya.Jika Anda menggunakan konsol klasik untuk membuat ketentuan tugas, pilih peran IAM Anda diPerantugasBidang. Jika Anda menggunakanAWS CLIatau SDK, tentukan Amazon Resource Name (ARN) dariperan tugas Anda menggunakantaskRoleArnparameter. Untuk informasi selengkapnya, lihat Membuatketentuan tugas menggunakan konsol baru (p. 63).

Note

Opsi ini diperlukan jika Anda ingin menggunakan peran tugas IAM di layanan Amazon ECS.• Tentukan penggantian peran tugas IAM saat menjalankan tugas. Anda dapat menentukan penggantian

peran tugas IAM saat menjalankan tugas. Jika Anda menggunakan konsol klasik untuk menjalankantugas Anda, pilihOpsi Lanjutandan kemudian pilih peran IAM Anda diPeran tugasBidang. Jika Andamenggunakan AWS CLI atau SDK, tentukan ARN peran tugas Anda menggunakan parametertaskRoleArn di objek JSON overrides. Untuk informasi selengkapnya, lihat Menjalankan tugasmandiri (p. 203).

Note

Selain izin standar Amazon ECS yang diperlukan untuk menjalankan tugas dan layanan,pengguna IAM juga memerlukaniam:PassRoleizin untuk menggunakan peran IAM untuk tugas.

Amazon ECS CodeDeploy IAM RoleSebelum Anda dapat menggunakan CodeDeploy tipe deployment biru/hijau dengan Amazon ECS,CodeDeploy layanan memerlukan izin untuk memperbarui layanan Amazon ECS Anda atas nama Anda.Izin ini disediakan oleh CodeDeploy Peran IAM (ecsCodeDeployRole).

Note

Pengguna IAM juga memerlukan izin untuk menggunakan CodeDeploy; izin ini dijelaskandalamPenyebaran biru/hijau diperlukan izin IAM (p. 249).

Ada dua kebijakan terkelola yang disediakan. ParameterAWSCodeDeployRoleForECSkebijakan,ditunjukkan di bawah ini, memberikan CodeDeploy izin untuk memperbarui sumber daya apa punmenggunakan tindakan terkait.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:UpdateServicePrimaryTaskSet", "ecs:DeleteTaskSet", "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule", "lambda:InvokeFunction", "cloudwatch:DescribeAlarms", "sns:Publish", "s3:GetObject", "s3:GetObjectVersion" ], "Resource": "*", "Effect": "Allow" },

374

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CodeDeploy

{ "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringLike": { "iam:PassedToService": [ "ecs-tasks.amazonaws.com" ] } } } ]}

ParameterAWSCodeDeployRoleForECSLimitedkebijakan, ditunjukkan di bawah ini, memberikanCodeDeploy izin yang lebih terbatas.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ecs:DescribeServices", "ecs:CreateTaskSet", "ecs:UpdateServicePrimaryTaskSet", "ecs:DeleteTaskSet", "cloudwatch:DescribeAlarms" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:*:CodeDeployTopic_*", "Effect": "Allow" }, { "Action": [ "elasticloadbalancing:DescribeTargetGroups", "elasticloadbalancing:DescribeListeners", "elasticloadbalancing:ModifyListener", "elasticloadbalancing:DescribeRules", "elasticloadbalancing:ModifyRule" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "lambda:InvokeFunction" ], "Resource": "arn:aws:lambda:*:*:function:CodeDeployHook_*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:GetObjectVersion" ],

375

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CodeDeploy

"Resource": "*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/UseWithCodeDeploy": "true" } }, "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::*:role/ecsTaskExecutionRole", "arn:aws:iam::*:role/ECSTaskExecution*" ], "Condition": { "StringLike": { "iam:PassedToService": [ "ecs-tasks.amazonaws.com" ] } } } ]}

Membuat IAM role untuk CodeDeploy

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Dalam panel navigasi, pilih Peran, lalu Buat peran.3. Untuk bagian Pilih tipe entitas terpercaya, pilih Layanan AWS.4. Untuk Pilih layanan yang akan menggunakan peran ini, pilih CodeDeploy.5. UntukPilih kasus penggunaan Anda, pilihCodeDeploy - ECS,Selanjutnya.6. DiMelampirkan kebijakan izinbagian, lakukan hal berikut:

a. CariAWSCodeDeployRoleForECS, lalu pilih kebijakan.b. Di bawahTetapkan batas izin - opsional, pilihBuat peran tanpa batas izin.c. Pilih Selanjutnya.

7. Di bawahRincian peran, lakukan hal berikut:

a. UntukNama peran, jenisecsCodeDeployRole, dan masukkan deskripsi opsional.b. UntukTambahkan tag (opsional), tentukan tag kustom apa pun untuk diasosiasikan dengan

kebijakan.8. Pilih Create role (Buat peran).

Untuk menambahkan izin yang diperlukan ke Amazon ECS CodeDeploy Peran IAM

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Cari daftar peran untuk ecsCodeDeployRole. Jika peran tidak ada, gunakan prosedur di atas untuk

membuat peran. Jika peran ada, pilih peran untuk melihat kebijakan terlampir.3. Di bagian Kebijakan izin, pastikan bahwa baik kebijakan terkelola AWSCodeDeployRoleForECS

atau AWSCodeDeployRoleForECSLimited dilampirkan pada peran tersebut. Jika kebijakan terlampir,Amazon ECS CodeDeploy peran layanan dikonfigurasi dengan benar. Jika tidak, ikuti langkah-langkahdi bawah ini untuk melampirkan kebijakan.

376

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CodeDeploy

a. PilihTambah Izin,Lampirkan kebijakan.b. Untuk mempersempit kebijakan yang tersedia untuk dilampirkan, untuk Filter, ketik

AWSCodeDeployRoleForECS atau AWSCodeDeployRoleForECSLimited.c. Centang kotak di sebelah kiri kebijakan terkelola AWS dan pilih Lampirkan kebijakan.

4. PilihHubungan kepercayaan.5. Verifikasi bahwa hubungan kepercayaan berisi kebijakan berikut. Jika hubungan kepercayaan sesuai

dengan kebijakan di bawah ini, pilih Batal. Jika hubungan kepercayaan tidak cocok, pilihKebijakankepercayaan, salin kebijakan ke dalamDokumen Kebijakanjendela dan memilihKebijakan pembaruan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codedeploy.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ]}

6. Jika tugas di layanan Amazon ECS Anda menggunakan tipe deployment biru/hijau memerlukanpenggunaan peran eksekusi tugas atau penggantian peran tugas, maka Anda harus menambahkantugasiam:PassRoleizin untuk setiap peran eksekusi tugas atau peran tugas menimpa CodeDeployPeran IAM sebagai kebijakan inline. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugasECS Amazon (p. 363) dan IAM role untuk tugas (p. 369).

Ikuti sub-langkah di bawah ini untuk membuat kebijakan inline.

a. Buka konsol IAM di https://console.aws.amazon.com/iam/.b. Cari daftar peran untuk ecsCodeDeployRole. Jika peran tidak ada, gunakan prosedur di atas

untuk membuat peran. Jika peran ada, pilih peran untuk melihat kebijakan terlampir.c. Di bagian Kebijakan izin, pilih Tambahkan kebijakan inline.d. Pilih tab JSON dan tambahkan teks kebijakan berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] } ]}

Note

Tentukan ARN penuh peran eksekusi tugas Anda atau penggantian peran tugas.e. Pilih Tinjau kebijakan

377

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CloudWatch

f. Untuk Nama, ketik nama untuk kebijakan yang ditambahkan lalu pilih Buat kebijakan.

Amazon ECS CloudWatch Peran IAMSebelum Anda dapat menggunakan tugas terjadwal Amazon ECS dengan CloudWatch Peristiwa aturandan target, CloudWatch Layanan acara membutuhkan izin untuk menjalankan tugas Amazon ECS atasnama Anda. Izin ini disediakan oleh CloudWatch IAM role (ecsEventsRole).

Parameter CloudWatch Peran peristiwa secara otomatis dibuat untuk Anda diAWS ManagementConsoleketika Anda mengkonfigurasi tugas yang dijadwalkan. Untuk informasi selengkapnya, lihat Tugasterjadwal (p. 205).

Kebijakan AmazonEC2ContainerServiceEventsRole adalah sebagai berikut.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "*" ], "Condition": { "StringLike": { "iam:PassedToService": "ecs-tasks.amazonaws.com" } } } ]}

Jika tugas terjadwal memerlukan penggunaan peran pelaksanaan tugas, peran tugas, atau penimpaanperan tugas, maka Anda harus menambahkaniam:PassRoleizin untuk setiap peran eksekusi tugas,peran tugas, atau peran tugas menimpa ke CloudWatch IAM role. Untuk informasi selengkapnya tentangperan eksekusi tugas, lihat Peran IAM eksekusi tugas ECS Amazon (p. 363).

Note

Tentukan ARN penuh dari peran eksekusi tugas Anda atau penimpaan peran tugas.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] }

378

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CloudWatch

]}

Anda dapat menggunakan prosedur berikut untuk memeriksa apakah akun Anda sudah memilikiCloudWatch Acara peran IAM, dan secara manual membuat jika diperlukan.

Untuk memeriksa CloudWatch Peran IAM pada konsol IAM

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran.

3. Di panel navigasi, pilih Peran.4. Cari daftar peran untuk ecsEventsRole. Jika peran tidak ada, gunakan prosedur berikutnya untuk

membuat peran. Jika peran ada, pilih peran untuk melihat kebijakan terlampir.5. PadaIzintab, pastikan bahwaAmazonEC2ContainerServiceEventsRolekebijakan terkelola dilampirkan

ke peran. Jika kebijakan terlampir, tandanya peran eksekusi tugas Amazon ECS Anda dikonfigurasidengan benar. Jika tidak, ikuti langkah-langkah di bawah ini untuk melampirkan kebijakan.

a. PilihTambah Izin,Lampirkan kebijakan.b. Mempersempit kebijakan tersedia yang akan dilampirkan, untukFilter,

jenisAmazonEC2ContainerServiceEventsRole.c. Centang kotak di sebelah kiriAmazonEC2ContainerServiceEventsRolekebijakan dan

pilihLampirkan kebijakan.6. PilihHubungan kepercayaan.7. Verifikasi bahwa hubungan kepercayaan berisi kebijakan berikut. Jika hubungan kepercayaan sesuai

dengan kebijakan di bawah ini, pilih Batal. Jika hubungan kepercayaan tidak cocok, pilihKebijakankepercayaan, salin kebijakan ke dalamDokumen Kebijakanjendela dan memilihKebijakan pembaruan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Untuk membuat IAM role untuk CloudWatch Peristiwa

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Dalam panel navigasi, pilih Peran, lalu Buat peran.3. DiJenis entitas tepercayabagian, pilihAWSlayanan,Layanan Wadah Elastic.4. UntukKasus penggunaan, pilihTugas Layanan Wadah Elastic, lalu pilihSelanjutnya.5. DiMelampirkan kebijakan izinbagian, lakukan hal berikut:

a. CariAmazonEC2ContainerServiceEventsRole, lalu pilih kebijakan.b. Di bawahTetapkan batas izin - opsional, pilihBuat peran tanpa batas izin.c. Pilih Selanjutnya.

6. Di bawahRincian peran, lakukan hal berikut:

379

Amazon ECS Panduan Pengguna untuk AWS FargatePeran IAM CloudWatch

a. UntukNama peran, jenisecsEventsRole.b. UntukTambahkan tag (opsional), tentukan tag kustom apa pun untuk diasosiasikan dengan

kebijakan.7. Pilih Create role (Buat peran).8. Cari daftar peran untuk ecsEventsRole dan pilih peran yang baru Anda buat.9. PadaIzintab, pilihTambah Izin,Lampirkan kebijakan.10. Ganti hubungan kepercayaan yang ada dengan teks berikut. PilihKebijakan kepercayaan, salin

kebijakan ke dalamDokumen Kebijakanjendela dan memilihKebijakan pembaruan.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ]}

Untuk menambahkan izin peran eksekusi tugas ke CloudWatch Peran IAM

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Kebijakan, Buat kebijakan.3. Pilih JSON, tempelkan kebijakan berikut, kemudian pilih Tinjau kebijakan:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::<aws_account_id>:role/<ecsTaskExecutionRole_or_TaskRole_name>" ] } ]}

4. Untuk Nama, ketikkan AmazonECSEventsTaskExecutionRole, bisa juga memasukkan deskripsi,dan kemudian pilih Buat kebijakan.

5. Di panel navigasi, pilih Peran.6. Cari daftar peran untuk ecsEventsRole dan pilih peran untuk melihat lampiran kebijakan.7. Pilih Lampirkan kebijakan.8. Di bagian Lampirkan kebijakan, pilih kebijakan AmazonECSEventsTaskExecutionRole dan pilih

Lampirkan kebijakan.

380

Amazon ECS Panduan Pengguna untuk AWS FargateKonfigurasi tambahan untuk IAM role Windows untuk tugas

Konfigurasi tambahan untuk IAM role Windows untuktugasPeran IAM untuk tugas dengan fitur Windows memerlukan konfigurasi tambahan, tetapi sebagian besarkonfigurasi ini mirip dengan peran IAM untuk tugas-tugas pada instans kontainer Linux. Persyaratan berikutharus dipenuhi untuk mengonfigurasi peran IAM untuk kontainer Windows.

• Ketika Anda meluncurkan instans kontainer, Anda harus mengatur opsi -EnableTaskIAMRole skripdata pengguna instans kontainer. ParameterEnableTaskIAMRolemengaktifkan fitur peran Task IAMuntuk tugas. Misalnya:

<powershell>Import-Module ECSToolsInitialize-ECSAgent -Cluster 'windows' -EnableTaskIAMRole </powershell>

• Anda harus bootstrap kontainer Anda dengan perintah jaringan yang disediakan di Peran IAM untuk skripbootstrap kontainer tugas (p. 381).

• Anda harus membuat IAM role dan kebijakan IAM untuk tugas Anda. Untuk informasi selengkapnya, lihatMembuat IAM role dan kebijakan IAM untuk tugas Anda (p. 370).

• Wadah Anda harus menggunakanAWSSDK yang mendukung peran IAM untuk tugas. Untuk informasiselengkapnya, lihat Menggunakan AWS SDK yang didukung (p. 373).

• Anda harus menentukan peran IAM yang Anda buat untuk tugas Anda saat mendaftarkan ketentuantugas, atau sebagai penggantian saat Anda menjalankan tugas. Untuk informasi selengkapnya, lihatMenentukan peran IAM untuk tugas Anda (p. 373).

• Peran IAM untuk penyedia kredensional tugas menggunakan port 80 pada instans kontainer. Olehkarena itu, jika Anda mengonfigurasi IAM role untuk tugas di instans kontainer Anda, kontainer Andatidak dapat menggunakan port 80 untuk port host di setiap pemetaan port. Untuk mengekspos kontainerAnda pada port 80, kami sarankan mengonfigurasi layanan untuk kontainer yang menggunakanpenyeimbangan beban. Anda dapat menggunakan port 80 pada penyeimbang beban. Dengan demikian,lalu lintas dapat diarahkan ke port host lain pada instans kontainer Anda. Untuk informasi selengkapnya,lihat Penyeimbangan beban layanan (p. 256).

• Jika instans Windows dimulai ulang, Anda harus menghapus antarmuka proxy dan menginisialisasi agenkontainer Amazon ECS lagi untuk mengembalikan proksi kredensialnya.

Peran IAM untuk skrip bootstrap kontainer tugasSebelum kontainer dapat mengakses proxy kredensial pada instans kontainer untuk mendapatkankredensial, kontainer harus di-bootstrap dengan perintah jaringan yang diperlukan. Skrip contoh kodeberikut harus dijalankan pada kontainer Anda ketika dimulai.

Note

Anda tidak perlu menjalankan skrip ini saat Anda menggunakan mode jaringan awsvpc padaWindows.

Jika Anda menjalankan kontainer Windows yang mencakup Powershell, kemudian gunakan script berikut:

# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.## Licensed under the Apache License, Version 2.0 (the "License"). You may# not use this file except in compliance with the License. A copy of the# License is located at

381

Amazon ECS Panduan Pengguna untuk AWS FargatePemecahan Masalah

## http://aws.amazon.com/apache2.0/## or in the "license" file accompanying this file. This file is distributed# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either# express or implied. See the License for the specific language governing# permissions and limitations under the License. $gateway = (Get-NetRoute | Where { $_.DestinationPrefix -eq '0.0.0.0/0' } | Sort-Object RouteMetric | Select NextHop).NextHop$ifIndex = (Get-NetAdapter -InterfaceDescription "Hyper-V Virtual Ethernet*" | Sort-Object | Select ifIndex).ifIndexNew-NetRoute -DestinationPrefix 169.254.170.2/32 -InterfaceIndex $ifIndex -NextHop $gateway -PolicyStore ActiveStore # credentials APINew-NetRoute -DestinationPrefix 169.254.169.254/32 -InterfaceIndex $ifIndex -NextHop $gateway -PolicyStore ActiveStore # metadata API

Jika Anda menjalankan kontainer Windows yang hanya memiliki shell Command, kemudian gunakan scriptberikut:

# Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.## Licensed under the Apache License, Version 2.0 (the "License"). You may# not use this file except in compliance with the License. A copy of the# License is located at## http://aws.amazon.com/apache2.0/## or in the "license" file accompanying this file. This file is distributed# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either# express or implied. See the License for the specific language governing# permissions and limitations under the License. for /f "tokens=1" %i in ('netsh interface ipv4 show interfaces ^| findstr /x /r ".*vEthernet.*"') do set interface=%ifor /f "tokens=3" %i in ('netsh interface ipv4 show addresses %interface% ^| findstr /x /r ".*Default.Gateway.*"') do set gateway=%inetsh interface ipv4 add route prefix=169.254.170.2/32 interface="%interface%" nexthop="%gateway%" store=active # credentials APInetsh interface ipv4 add route prefix=169.254.169.254/32 interface="%interface%" nexthop="%gateway%" store=active # metadata API

Memecahkan masalah identitas dan akses AmazonElastic Container ServiceGunakan informasi berikut untuk membantu Anda mendiagnosis dan mengatasi masalah umum yangmungkin Anda temui saat bekerja menggunakan Amazon ECS dan IAM.

Topik• Saya tidak berwenang untuk melakukan tindakan di Amazon ECS (p. 383)• Saya tidak memiliki otorisasi untuk melakukan iam:PassRole (p. 383)• Saya ingin melihat access key saya (p. 383)• Saya adalah administrator dan ingin mengizinkan orang lain mengakses Amazon ECS (p. 384)• Saya ingin mengizinkan orang di luar sayaAkun AWSuntuk mengakses sumber daya Amazon ECS

saya (p. 384)

382

Amazon ECS Panduan Pengguna untuk AWS FargatePemecahan Masalah

Saya tidak berwenang untuk melakukan tindakan di Amazon ECSJika AWS Management Console memberi tahu bahwa Anda tidak diotorisasi untuk melakukan tindakan,Anda harus menghubungi administrator untuk mendapatkan bantuan. Administrator Anda adalah orangyang memberikan nama pengguna dan kata sandi Anda.

Contoh kesalahan berikut terjadi ketika pengguna IAM mateojackson mencoba menggunakan konsoluntuk melihat detail tentang suatu sumber daya fiktif my-example-widget, tetapi tidak memiliki izin fiktifecs:GetWidget.

User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: ecs:GetWidget on resource: my-example-widget

Dalam hal ini, Mateo meminta administratornya untuk memperbarui kebijakannya agar dia dapatmengakses my-example-widget menggunakan ecs:GetWidget tindakan.

Saya tidak memiliki otorisasi untuk melakukan iam:PassRoleJika Anda menerima kesalahan bahwa Anda tidak terotorisasi untuk melakukan tindakan iam:PassRole,Anda harus menghubungi administrator untuk mendapatkan bantuan. Administrator Anda adalah orangyang memberikan Anda nama pengguna dan kata sandi Anda. Meminta pengguna tersebut untukmemperbarui kebijakan agar Anda dapat meneruskan suatu peran ke Amazon ECS.

BeberapaLayanan AWSmengizinkan Anda untuk meneruskan peran yang sudah ada ke layanan tersebut,alih-alih membuat peran layanan baru atau peran tertaut layanan. Untuk melakukannya, Anda harusmemiliki izin untuk meneruskan peran ke layanan.

Contoh kesalahan berikut terjadi ketika pengguna IAM bernamamarymajormencoba menggunakankonsol untuk melakukan tindakan di Amazon ECS. Namun, tindakan tersebut mengharuskan layanan untukmemiliki izin yang diberikan oleh peran layanan. Mary tidak memiliki izin untuk meneruskan peran tersebutke layanan.

User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole

Dalam kasus ini, Mary meminta administrator untuk memperbarui kebijakannya agar mengizinkannya untukmelakukan tindakan iam:PassRole.

Saya ingin melihat access key sayaSetelah membuat access key pengguna IAM, Anda dapat melihat access key ID Anda setiap saat. Namun,Anda tidak dapat melihat secret access key Anda lagi. Jika Anda kehilangan secret key, Anda harusmembuat pasangan access key baru.

Access key terdiri dari dua bagian: access key ID (misalnya, AKIAIOSFODNN7EXAMPLE) dan secret accesskey (misalnya, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY). Seperti nama pengguna dan katasandi, Anda harus menggunakan access key ID dan secret access key sekaligus untuk mengautentikasipermintaan Anda. Kelola access key Anda seaman nama pengguna dan kata sandi Anda.

Important

Jangan memberikan access key Anda kepada pihak ke tiga, bahkan untuk membantu menemukanID pengguna kanonis Anda. Anda mungkin memberi seseorang akses permanen ke akun Anda,dengan melakukan ini.

Saat Anda membuat pasangan access key, Anda diminta menyimpan access key ID dan secret accesskey di lokasi yang aman. secret access key hanya tersedia saat Anda membuatnya. Jika Anda kehilangansecret access key Anda, Anda harus menambahkan access key baru ke pengguna IAM Anda. Anda

383

Amazon ECS Panduan Pengguna untuk AWS FargatePencatatan dan Pemantauan

dapat memiliki maksimum dua access key. Jika Anda sudah memiliki dua, Anda harus menghapus satupasangan kunci sebelum membuat pasangan baru. Untuk melihat instruksi, lihat Mengelola access keys diPanduan Pengguna IAM.

Saya adalah administrator dan ingin mengizinkan orang lainmengakses Amazon ECSUntuk mengizinkan orang lain mengakses Amazon ECS, Anda harus membuat entitas IAM (pengguna atauperan) untuk orang atau aplikasi yang memerlukan akses. Mereka akan menggunakan kredensial untukentitas tersebut untuk mengakses AWS. Anda kemudian harus melampirkan kebijakan ke entitas yangmemberi mereka izin yang benar di Amazon ECS.

Untuk segera mulai, lihat Membuat pengguna dan grup khusus IAM pertama Anda di Panduan PenggunaIAM.

Saya ingin mengizinkan orang di luar sayaAkun AWSuntukmengakses sumber daya Amazon ECS sayaAnda dapat membuat peran yang dapat digunakan para pengguna di akun lain atau orang-orang di luarorganisasi Anda untuk mengakses sumber daya Anda. Anda dapat menentukan siapa yang dipercayauntuk mengambil peran tersebut. Untuk layanan yang mendukung kebijakan berbasis sumber daya ataudaftar kontrol akses (ACL), Anda dapat menggunakan kebijakan tersebut untuk memberi akses pada orangke sumber daya Anda.

Untuk mempelajari selengkapnya, periksa hal berikut:

• Untuk mempelajari apakah Amazon ECS mendukung fitur ini, lihatBagaimana Amazon Elastic ContainerService bekerja dengan IAM (p. 332).

• Untuk mempelajari cara memberikan akses ke sumber daya di seluruh Akun AWS yang Anda miliki,lihat Menyediakan akses ke pengguna IAM di akun Akun AWS lain yang Anda miliki dalam PanduanPengguna IAM.

• Untuk mempelajari cara memberikan akses ke sumber daya Anda ke Akun AWS pihak ketiga, lihatMenyediakan akses ke akun Akun AWS yang dimiliki oleh pihak ketiga dalam Panduan Pengguna IAM.

• Untuk mempelajari cara memberikan akses melalui federasi identitas, lihat Menyediakan akses kepengguna terautentikasi eksternal (gabungan identitas) dalam Panduan Pengguna IAM .

• Untuk mempelajari perbedaan antara penggunaan peran dan kebijakan berbasis sumber daya untukakses lintas akun, lihat Perbedaan IAM role dan kebijakan berbasis sumber daya di Panduan PenggunaIAM.

Pencatatan dan pemantauan Amazon ElasticContainer Service

Pemantauan adalah bagian penting dari pemeliharaan keandalan, ketersediaan, dan kinerja AmazonElastic Container Service dan AndaAWSsolusi. Anda harus mengumpulkan data pemantauan dariseluruh bagian AndaAWSsolusi sehingga Anda dapat lebih mudah men-debug kegagalan multi-titik jikaterjadi.AWSmenyediakan beberapa alat untuk memantau sumber daya Amazon ECS Anda dan meresponspotensi insiden:

Amazon CloudWatch Alarm

Melihat metrik tunggal selama periode waktu yang Anda tentukan, dan lakukan satu atau beberapatindakan berdasarkan nilai metrik relatif terhadap ambang batas tertentu selama sejumlah periode

384

Amazon ECS Panduan Pengguna untuk AWS FargateValidasi Kepatuhan

waktu. Tindakan ini adalah pemberitahuan yang dikirim ke topik Amazon Simple Notification Service(Amazon SNS) atau kebijakan Amazon EC2 Auto Scaling. CloudWatch Alarm tidak meminta tindakanhanya karena keadaan tertentu; status harus berubah dan dipertahankan selama beberapa periodetertentu. Untuk informasi selengkapnya, lihat Amazon ECS CloudWatch metrik (p. 297).

Untuk layanan yang menggunakan tipe peluncuran Fargate, Anda dapat menggunakan CloudWatchalarm untuk menskalakan dan menskalakan tugas di layanan Anda berdasarkan CloudWatch metrik,seperti CPU dan pemanfaatan memori. Untuk informasi selengkapnya, lihat Penskalaan otomatislayanan (p. 267).

Amazon CloudWatch Beberapa catatan

Memantau, menyimpan, dan mengakses berkas log dari kontainer di tugas Amazon ECS Andadengan menentukanawslogslog driver dalam definisi tugas Anda. Untuk informasi selengkapnya, lihatMenggunakan driver log awslogs (p. 138).

Amazon CloudWatch Peristiwa

Mencocokkan peristiwa dan merutekan mereka ke satu atau beberapa fungsi atau aliran target untukmembuat perubahan, menangkap informasi status, dan mengambil tindakan korektif. Untuk informasiselengkapnya, lihatECS Amazon ECS dan EventBridge (p. 303)dalam panduan ini danApa itu AmazonCloudWatch Peristiwa?diAmazon CloudWatch Panduan Pengguna Events.

AWS CloudTrail Log

CloudTrail menyediakan catatan tindakan yang diambil oleh pengguna, peran, atauAWSlayanandi Amazon ECS. Dengan menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapatmenentukan permintaan yang diajukan ke Amazon ECS, alamat IP asal permintaan tersebut diajukan,siapa yang membuat permintaan, kapan dibuat, dan detail lainnya. Untuk informasi selengkapnya, lihatMencatat panggilan API Amazon ECS denganAWS CloudTrail (p. 324).

AWS Trusted Advisor

Trusted Advisor mengacu pada praktik terbaik yang dipelajari dari melayani ratusan ribu pelangganAWS. Trusted Advisor memeriksa lingkungan AWS Anda lalu membuat rekomendasi ketika adapeluang untuk menghemat uang, meningkatkan ketersediaan dan performa sistem, atau membantumenutup kesenjangan keamanan. Semua pelanggan AWS memiliki akses ke lima pemeriksaanTrusted Advisor Pelanggan dengan rencana Business atau dukungan Korporasi dapat melihat semuapemeriksaan Trusted Advisor.

Untuk informasi lebih lanjut, lihat AWS Trusted Advisor dalam Panduan Pengguna AWS Support.

Bagian penting lainnya dari pemantauan Amazon ECS melibatkan pemantauan secara manual itemyang CloudWatch alarm tidak menutupi. CloudWatch,Trusted Advisor, dan lainnyaAWSdashboard konsolmenyediakan at-a-glance pandangan keadaan AndaAWSlingkungan. Kami menyarankan Anda untukmemeriksa file log pada instans kontainer Anda dan kontainer dalam tugas Anda.

Validasi Kepatuhan untuk Layanan Wadah AmazonElastic

Auditor pihak ketiga menilai keamanan dan kepatuhan Amazon Elastic Container Service sebagai bagiandari beberapaAWSprogram kepatuhan. Ini mencakup SOC, PCI, FedRAMP, HIPAA, dan sebagainya.

Untuk daftar layanan AWS dalam cakupan program kepatuhan tertentu, lihat Layanan AWS dalamCakupan berdasarkan Program Kepatuhan. Untuk informasi umum, lihat Program Kepatuhan AWS.

Anda bisa mengunduh laporan audit pihak ketiga dengan menggunakan AWS Artifact. Untuk informasiselengkapnya, lihat Mengunduh laporan di AWS Artifact.

385

Amazon ECS Panduan Pengguna untuk AWS FargateKeamanan Infrastruktur

Tanggung jawab kepatuhan Anda saat menggunakan Amazon ECS ditentukan oleh sensitivitas data Anda,tujuan kepatuhan perusahaan Anda, serta peraturan yang berlaku.AWSmenyediakan sumber daya berikutuntuk membantu kepatuhan:

• Panduan Quick Start Keamanan dan Kepatuhan – Panduan deployment ini membahas pertimbanganarsitektur dan menyediakan langkah untuk deployment lingkungan dasar yang fokus pada keamanandan kepatuhan di AWS.

• Merancang Laporan Resmi Keamanan dan Kepatuhan HIPAA – Laporan resmi ini menjelaskan caraperusahaan dapat menggunakan AWS untuk membuat aplikasi yang patuh-HIPAA.

• Sumber Daya Kepatuhan AWS – Kumpulan buku kerja dan panduan ini mungkin berlaku untuk industridan lokasi Anda.

• AWS Config – Layanan AWS ini menilai seberapa baik konfigurasi sumber daya Anda mematuhi praktikinternal, pedoman industri, dan peraturan.

• AWS Security Hub – Layanan AWS ini menyediakan tampilan komprehensif status keamanan Andadalam AWS yang membantu Anda memeriksa kepatuhan Anda terhadap standar dan praktik terbaikindustri.

Layanan Kontainer Amazon ElasticSebagai layanan terkelola, Amazon Elastic Container Service dilindungi olehAWSprosedur keamananjaringan global yang dijelaskan dalamAmazon Web Services: Whitepaper Ikhtisar Proses Keamanan.

Anda menggunakanAWSPanggilan API yang dipublikasikan untuk mengakses Amazon ECS melaluijaringan. Klien harus mendukung Keamanan Lapisan Pengangkutan (TLS) 1.0 atau versi yang lebihbaru. Kami merekomendasikan TLS 1.2 atau versi yang lebih baru. Klien juga harus mendukung suitecipher dengan perfect forward secrecy (PFS) seperti Ephemeral Diffie-Hellman (DHE) atau Elliptic CurveEphemeral Diffie-Hellman (ECDHE). Sebagian besar sistem modern seperti Java 7 dan sistem yang lebihbaru mendukung mode ini.

Selain itu, permintaan harus ditandatangani menggunakan access key ID dan secret access key yangterkait dengan principal IAM. Atau Anda bisa menggunakan AWS Security Token Service (AWS STS) untukmembuat kredensial keamanan sementara guna menandatangani permintaan.

Anda dapat memanggil operasi API ini dari lokasi jaringan mana pun. Amazon ECS mendukung kebijakanakses berbasis sumber daya, yang dapat mencakup pembatasan berdasarkan alamat IP sumber, jadipastikan kebijakan tersebut mencakup alamat IP untuk lokasi jaringan. Anda juga dapat menggunakankebijakan Amazon ECS untuk mengontrol akses dari titik akhir Amazon Virtual Private Cloud tertentuatau VPC tertentu. Secara efektif, akses jaringan ke sumber daya Amazon ECS tertentu hanya dari VPCtertentu dalamAWSjaringan. Untuk informasi selengkapnya, lihat Antarmuka VPC endpoint Amazon ECS(AWS PrivateLink) (p. 386).

Antarmuka VPC endpoint Amazon ECS (AWSPrivateLink)Anda dapat meningkatkan postur keamanan VPC Anda dengan mengonfigurasi Amazon ECS untukmenggunakan antarmuka VPC endpoint. Endpoint antarmuka didukung olehAWS PrivateLink, teknologiyang mengizinkan Anda mengakses API Amazon ECS secara privat dengan menggunakan alamat IPprivat.AWS PrivateLinkmembatasi semua lalu lintas jaringan antara VPC dan Amazon ECS ke jaringanAmazon. Anda tidak memerlukan sebuah gateway internet, perangkat NAT, atau gateway privat virtual.

Untuk informasi lebih lanjut tentangAWS PrivateLinkdan titik akhir VPC, lihatVPC EndpointdiPanduanPengguna Amazon VPC.

386

Amazon ECS Panduan Pengguna untuk AWS FargateAntarmuka VPC endpoint (AWS PrivateLink)

Pertimbangan untuk VPC endpointSebelum Anda menyiapkan VPC endpoint untuk Amazon ECS, perhatikan pertimbangan berikut:

• Tugas yang menggunakan tipe peluncuran Fargate tidak memerlukan antarmuka VPC endpoint untukAmazon ECS, tetapi Anda mungkin memerlukan antarmuka VPC untuk Amazon ECR, Secrets Manager,atau Amazon CloudWatch Log dijelaskan dalam hal-hal berikut.• Untuk mengizinkan tugas Anda menarik citra pribadi dari Amazon ECR, Anda harus membuat

antarmuka VPC endpoint untuk Amazon ECR. Untuk informasi selengkapnya, lihatTitik Akhir VPCAntarmuka (AWS PrivateLink)diPanduan Pengguna Amazon Elastic Container Registry.

Important

Jika mengonfigurasi Amazon ECR untuk menggunakan antarmuka VPC endpoint, Anda dapatmembuat peran eksekusi tugas yang mencakup kunci kondisi untuk membatasi akses keVPC endpoint atau VPC tertentu. Untuk informasi selengkapnya, lihat Izin IAM opsional untuktugas Fargate menarik gambar Amazon ECR melalui titik akhir antarmuka (p. 367).

• Untuk mengizinkan tugas Anda menarik data sensitif dari Secrets Manager, Anda harus membuatantarmuka VPC endpoint untuk Secrets Manager. Untuk informasi selengkapnya, lihat MenggunakanSecrets Manager dengan VPC Endpoint dalam Panduan Pengguna AWS Secrets Manager.

• Jika VPC Anda tidak memiliki gateway internet dan tugas Anda menggunakanawslogslog driver untukmengirim informasi log ke CloudWatch Log, Anda harus membuat VPC endpoint antarmuka untukCloudWatch Log. Untuk informasi selengkapnya, lihatMenggunakan CloudWatch Log dengan EndpointAntarmukadiAmazon CloudWatch Panduan Pengguna Logs.

• VPC endpoint saat ini tidak mendukung permintaan lintas Wilayah. Pastikan bahwa Anda membuattitik akhir Anda di Wilayah yang sama tempat Anda berencana untuk mengeluarkan panggilan API keAmazon ECS.

• VPC endpoint hanya mendukung DNS yang disediakan Amazon melalui Amazon Route 53. Jika Andaingin menggunakan DNS Anda sendiri, Anda dapat menggunakan penerusan DNS bersyarat. Untukinformasi selengkapnya, lihat Pengaturan DHCP dalam Panduan Pengguna Amazon VPC.

• Grup keamanan yang dilampirkan ke VPC endpoint harus mengizinkan koneksi masuk pada port 443dari subnet privat VPC.

Membuat VPC Endpoint untuk Amazon ECSUntuk membuat endpoint VPC untuk layanan Amazon ECS, gunakanMembuat Titik Akhir AntarmukadalamprosedurPanduan Pengguna Amazon VPCuntuk membuat endpoint berikut. Jika Anda memiliki instanskontainer yang berada dalam VPC Anda, Anda harus membuat titik akhir dalam urutan terdaftar mereka.Urutan langkah tidak membuat masalah jika Anda berencana untuk membuat VPC endpoint terlebih dahulukemudian instans kontainer Anda.

• com.amazonaws.region.ecs-agent

• com.amazonaws.region.ecs-telemetry

• com.amazonaws.region.ecs

Note

daerahmewakili pengenal Wilayah untukAWSWilayah didukung oleh Amazon ECS, sepertius-east-2Wilayah Timur AS (Ohio).

Membuat endpoint Secrets Manager dan SystemsJika Anda mereferensikan rahasia Secrets Manager atau parameter Systems Manager Parameter StoreAnda untuk menyuntikkan data sensitif ke dalam kontainer Anda, Anda perlu membuat antarmuka VPC

387

Amazon ECS Panduan Pengguna untuk AWS FargateAntarmuka VPC endpoint (AWS PrivateLink)

endpoint untuk Secrets Manager atau Systems Manager sehingga tugas-tugas tersebut dapat menjangkaulayanan tersebut. Anda hanya perlu membuat titik akhir dari layanan spesifik data sensitif yang di-host.Untuk informasi selengkapnya, lihat Menentukan data sensitif (p. 175).

Untuk informasi selengkapnya tentang Secrets Manager VPC endpoint, lihatMenggunakan SecretsManager dengan endpoint VPCdiAWS Secrets ManagerPanduan Pengguna.

Untuk informasi selengkapnya tentang Titik akhir VPC Systems Manager, lihatMenggunakan SystemsManager dengan endpoint VPCdiAWS Systems ManagerPanduan Pengguna.

Buat endpoint VPC Manajer Sesi Systems Manager saatmenggunakan fitur ECS ExecJika Anda menggunakan fitur ECS Exec, Anda perlu membuat antarmuka VPC endpoint untuk ManajerSesi Systems Manager. Untuk informasi selengkapnya, lihat Menggunakan Amazon ECS Exec untukmelakukan debug (p. 445).

Untuk informasi selengkapnya tentang Systems Manager Session Manager VPC endpoint,lihatGunakanAWS PrivateLinkuntuk mengatur VPC endpoint untuk Session ManagerdiAWS SystemsManagerPanduan Pengguna.

Membuat kebijakan VPC endpoint untuk Amazon ECSAnda dapat melampirkan kebijakan titik akhir ke VPC endpoint yang mengontrol akses ke Amazon ECS.Kebijakan menentukan informasi berikut ini:

• Prinsip-prinsip yang dapat melakukan tindakan.• Tindakan yang dapat dilakukan.• Sumber daya yang dapat digunakan untuk mengambil tindakan.

Untuk informasi selengkapnya, lihat Mengendalikan akses ke layanan dengan titik akhir VPC dalamPanduan Pengguna Amazon VPC.

Contoh: Kebijakan VPC endpoint untuk tindakan Amazon ECS

Berikut ini adalah contoh kebijakan titik akhir untuk Amazon ECS. Jika dilampirkan ke titikakhir, kebijakan ini memberikan akses ke izin untuk membuat dan membuat daftar klaster.ParameterCreateClusterdanListClusterstindakan tidak menerima sumber daya apa pun, sehinggadefinisi sumber daya diatur ke * untuk semua sumber daya.

{ "Statement":[ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:ListClusters" ], "Resource": [ "*" ] } ]}

388

Amazon ECS Panduan Pengguna untuk AWS FargateTitik akhir metadata tugas v4

Titik akhir metadata tugas AmazonImportant

Jika Anda menggunakan tugas Amazon ECS yang dihosting di instans Amazon EC2, lihatTitikakhir metadata tugas AmazondiPanduan Pengembang Amazon Elastic Container Service.

Amazon ECS on Fargate menyediakan metode untuk mengambil berbagai metadata, metrik jaringan,danStatistik Dockertentang kontainer Anda dan tugas-tugas mereka adalah bagian dari. Ini disebut sebagaititik akhir metadata tugas. Versi titik akhir metadata tugas tersedia untuk tugas Amazon ECS:

• Titik akhir metadata tugas — versi 4 Tersedia untuk tugas yang menggunakan platform versi 1.4.0 atauyang lebih baru.

• Titik akhir metadata tugas — versi 3 Tersedia untuk tugas yang menggunakan platform versi 1.1.0 atauyang lebih baru.

Semua kontainer milik tugas yang diluncurkan dengan mode jaringan awsvpc menerima alamat IPv4lokal dalam rentang alamat tautan lokal yang telah ditetapkan. Ketika sebuah kontainer melakukan kueriterhadap titik akhir metadata, agen kontainer dapat menentukan tugas yang menjadi milik kontainerberdasarkan alamat IP unik, serta metadata dan statistik untuk tugas tersebut dikembalikan.

Topik• Titik akhir metadata tugas versi 4 (p. 389)• Titik akhir metadata tugas versi 3 (p. 398)

Titik akhir metadata tugas versi 4Important

Jika Anda menggunakan tugas Amazon ECS yang dihosting di instans Amazon EC2, lihatTitikakhir metadata tugas AmazondiPanduan Pengembang Amazon Elastic Container Service.

Dimulai dengan versi platform Fargate1.4.0, variabel lingkunganbernamaECS_CONTAINER_METADATA_URI_V4disuntikkan ke setiap wadah dalam tugas. Ketika Andamelakukan kueri terhadap titik akhir metadata tugas versi 4, berbagai metadata tugas dan Statistik Dockertersedia untuk tugas.

Titik akhir metadata tugas versi 4 berfungsi seperti titik akhir versi 3 tetapi menyediakan metadata jaringantambahan untuk kontainer dan tugas Anda. Metrik jaringan tambahan juga tersedia saat melakukan kueriterhadap titik akhir /stats.

Note

Untuk menghindari kebutuhan membuat versi titik akhir metadata tugas di masa mendatang,metadata tambahan dapat ditambahkan ke output versi 4. Kami tidak akan menghapus metadatayang ada atau mengubah nama bidang metadata.

Mengaktifkan titik akhir metadata tugasTitik akhir metadata tugas diaktifkan secara default untuk semua tugas Amazon ECS berjalanAWSFargateyang menggunakan versi platform1.4.0atau nantinya.

389

Amazon ECS Panduan Pengguna untuk AWS FargateJalur titik akhir metadata tugas versi 4

Jalur titik akhir metadata tugas versi 4Titik akhir metadata tugas berikut tersedia untuk kontainer:

${ECS_CONTAINER_METADATA_URI_V4}

Jalur ini mengembalikan metadata untuk kontainer.${ECS_CONTAINER_METADATA_URI_V4}/task

Jalur ini mengembalikan metadata untuk tugas, termasuk daftar ID kontainer dan nama semuakontainer yang terkait dengan tugas. Untuk informasi selengkapnya tentang respons titik akhir ini, lihatRespons JSON metadata tugas (p. 390).

${ECS_CONTAINER_METADATA_URI_V4}/stats

Jalur ini mengembalikan statistik Docker untuk kontainer Docker. Untuk informasi selengkapnyatentang masing-masing statistik yang dikembalikan, lihat ContainerStats dalam dokumentasi APIDocker.

Note

Tugas Amazon ECSAWS Fargatemengharuskan kontainer berjalan selama ~1 detik sebelummengembalikan statistik kontainer.

${ECS_CONTAINER_METADATA_URI_V4}/task/stats

Jalur ini mengembalikan statistik Docker untuk semua kontainer yang terkait dengan tugas. Untukinformasi selengkapnya tentang masing-masing statistik yang dikembalikan, lihat ContainerStats dalamdokumentasi API Docker.

Note

Tugas Amazon ECSAWS Fargatemengharuskan kontainer berjalan selama ~1 detik sebelummengembalikan statistik kontainer.

Respons JSON metadata tugasMetadata berikut dikembalikan dalam respons JSON titik akhir metadata tugas(${ECS_CONTAINER_METADATA_URI_V4}/task).

Cluster

Amazon Resource Name (ARN) atau nama pendek klaster Amazon ECS tempat tugas berada.TaskARN

Amazon Resource Name (ARN) dari tugas milik kontainer.Family

Keluarga definisi tugas Amazon ECS untuk tugas tersebut.Revision

Revisi definisi tugas Amazon ECS untuk tugas tersebut.DesiredStatus

Status yang diinginkan untuk tugas dari Amazon ECS.KnownStatus

Status diketahui untuk tugas dari Amazon ECS.

390

Amazon ECS Panduan Pengguna untuk AWS FargateRespons JSON metadata tugas

Limits

Batas sumber daya yang ditentukan pada tingkat tugas (seperti CPU dan memori). Parameter inidihilangkan jika tidak ada batasan sumber daya yang didefinisikan.

PullStartedAt

Cap waktu untuk ketika tarik gambar kontainer pertama dimulai.PullStoppedAt

Cap waktu untuk ketika gambar kontainer terakhir tarik selesai.AvailabilityZone

Availability Zone tugas dalam.Note

Metadata Availability Zone hanya tersedia untuk tugas Fargate menggunakan platform versi1.4 atau yang lebih baru (Linux) atau 1.0.0 atau yang lebih baru (Windows).

Containers

Daftar metadata kontainer untuk setiap kontainer yang terkait dengan tugas.DockerId

Docker ID untuk wadah.Name

Nama kontainer sebagaimana ditentukan dalam ketentuan tugas.DockerName

Nama wadah yang dipasok ke Docker. Agen kontainer Amazon ECS menghasilkan nama unikuntuk kontainer untuk menghindari tabrakan nama ketika beberapa salinan definisi tugas yangsama dijalankan pada satu instans.

Image

Citra untuk kontainer.ImageID

SHA-256 mencerna untuk gambar.Ports

Port terpapar untuk kontainer. Parameter ini dihilangkan jika tidak ada port terbuka.Labels

Setiap label diterapkan pada wadah. Parameter ini dihilangkan jika tidak ada label yangditerapkan.

DesiredStatus

Status yang diinginkan untuk kontainer dari Amazon ECS.KnownStatus

Status dikenal untuk wadah dari Amazon ECS.ExitCode

Kode keluar untuk wadah. Parameter ini dihilangkan jika wadah belum keluar.Limits

Batas sumber daya yang ditentukan pada tingkat kontainer (seperti CPU dan memori). Parameterini dihilangkan jika tidak ada batasan sumber daya yang didefinisikan.

391

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

CreatedAt

Cap waktu untuk ketika kontainer dibuat. Parameter ini dihilangkan jika wadah belum dibuat.StartedAt

Cap waktu untuk ketika kontainer dimulai. Parameter ini dihilangkan jika wadah belum dimulai.FinishedAt

Cap waktu untuk ketika kontainer berhenti. Parameter ini dihilangkan jika wadah belum berhenti.Type

Jenis kontainer. Kontainer yang ditentukan dalam ketentuan tugas Anda adalah tipeNORMAL. Andadapat mengabaikan jenis kontainer lainnya, yang digunakan untuk penyediaan sumber daya tugasinternal oleh agen kontainer Amazon ECS.

Networks

Informasi jaringan untuk kontainer, seperti mode jaringan dan alamat IP. Parameter ini dihilangkanjika tidak ada informasi jaringan didefinisikan.

ClockDrift

Informasi tentang perbedaan antara waktu referensi dan waktu sistem. Ini berlaku untuk sistem operasiLinux.ReferenceTime

Dasar akurasi jam. Amazon ECS menggunakan standar global Coordinated Universal Time (UTC)melalui NTP, misalnya2021-09-07T16:57:44Z.

ClockErrorBound

Ukuran kesalahan clock, didefinisikan sebagai offset ke UTC. Kesalahan ini adalah perbedaandalam milidetik antara waktu referensi dan waktu sistem.

ClockSynchronizationStatus

Menunjukkan apakah upaya sinkronisasi terbaru antara waktu sistem dan waktu referensi berhasil.

Nilai yang valid adalah SYNCHRONIZED dan NOT_SYNCHRONIZED.ExecutionStoppedAt

Cap waktu untuk ketika tugasDesiredStatuspindah keSTOPPED. Hal ini terjadi ketika wadah pentingbergerak keSTOPPED.

ContohContoh berikut menampilkan output sampel dari titik akhir metadata tugas untuk tugas Amazon ECSberjalanAWS Fargate.

Anda dapat menggunakan curl berikut oleh task meta data endpoint untuk query endpoint misalnyacurl${ECS_CONTAINER_METADATA_URI_V4}/task.

Respons metadata kontainer contohKetika melakukan kueri terhadap titik akhir ${ECS_CONTAINER_METADATA_URI_V4}, hanya metadatakontainer tersebut yang dikembalikan kepada Anda. Berikut ini adalah output contoh.

{

392

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

"DockerId": "cd189a933e5849daa93386466019ab50-2495160603", "Name": "curl", "DockerName": "curl", "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest", "ImageID": "sha256:25f3695bedfb454a50f12d127839a68ad3caf91e451c1da073db34c542c4d2cb", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "com.amazonaws.ecs.container-name": "curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/cd189a933e5849daa93386466019ab50", "com.amazonaws.ecs.task-definition-family": "curltest", "com.amazonaws.ecs.task-definition-version": "2" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 10, "Memory": 128 }, "CreatedAt": "2020-10-08T20:09:11.44527186Z", "StartedAt": "2020-10-08T20:09:11.44527186Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "192.0.2.3" ], "AttachmentIndex": 0, "MACAddress": "0a:de:f6:10:51:e5", "IPv4SubnetCIDRBlock": "192.0.2.0/24", "DomainNameServers": [ "192.0.2.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-10-0-0-222.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "192.0.2.0/24" } ], "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/05966557-f16c-49cb-9352-24b3a0dcd0e1", "LogOptions": { "awslogs-create-group": "true", "awslogs-group": "/ecs/containerlogs", "awslogs-region": "us-west-2", "awslogs-stream": "ecs/curl/cd189a933e5849daa93386466019ab50" }, "LogDriver": "awslogs"}

Respons metadata tugas contohKetika melakukan kueri terhadap titik akhir ${ECS_CONTAINER_METADATA_URI_V4}/task, metadatadari tugas yang berisi bagian kontainer dikembalikan kepada Anda. Berikut ini adalah output contoh.

{ "Cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "TaskARN": "arn:aws:ecs:us-west-2:111122223333:task/default/e9028f8d5d8e4f258373e7b93ce9a3c3", "Family": "curltest", "Revision": "3", "DesiredStatus": "RUNNING",

393

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

"KnownStatus": "RUNNING", "Limits": { "CPU": 0.25, "Memory": 512 }, "PullStartedAt": "2020-10-08T20:47:16.053330955Z", "PullStoppedAt": "2020-10-08T20:47:19.592684631Z", "AvailabilityZone": "us-west-2a", "Containers": [ { "DockerId": "e9028f8d5d8e4f258373e7b93ce9a3c3-2495160603", "Name": "curl", "DockerName": "curl", "Image": "111122223333.dkr.ecr.us-west-2.amazonaws.com/curltest:latest", "ImageID": "sha256:25f3695bedfb454a50f12d127839a68ad3caf91e451c1da073db34c542c4d2cb", "Labels": { "com.amazonaws.ecs.cluster": "arn:aws:ecs:us-west-2:111122223333:cluster/default", "com.amazonaws.ecs.container-name": "curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-west-2:111122223333:task/default/e9028f8d5d8e4f258373e7b93ce9a3c3", "com.amazonaws.ecs.task-definition-family": "curltest", "com.amazonaws.ecs.task-definition-version": "3" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 10, "Memory": 128 }, "CreatedAt": "2020-10-08T20:47:20.567813946Z", "StartedAt": "2020-10-08T20:47:20.567813946Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "192.0.2.3" ], "IPv6Addresses": [ "2001:dB8:10b:1a00:32bf:a372:d80f:e958" ], "AttachmentIndex": 0, "MACAddress": "02:b7:20:19:72:39", "IPv4SubnetCIDRBlock": "192.0.2.0/24", "IPv6SubnetCIDRBlock": "2600:1f13:10b:1a00::/64", "DomainNameServers": [ "192.0.2.2" ], "DomainNameSearchList": [ "us-west-2.compute.internal" ], "PrivateDNSName": "ip-172-31-30-173.us-west-2.compute.internal", "SubnetGatewayIpv4Address": "192.0.2.0/24" } ], "ClockDrift": { "ClockErrorBound": 0.5458234999999999, "ReferenceTimestamp": "2021-09-07T16:57:44Z", "ClockSynchronizationStatus": "SYNCHRONIZED" }, "ContainerARN": "arn:aws:ecs:us-west-2:111122223333:container/1bdcca8b-f905-4ee6-885c-4064cb70f6e6", "LogOptions": { "awslogs-create-group": "true",

394

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

"awslogs-group": "/ecs/containerlogs", "awslogs-region": "us-west-2", "awslogs-stream": "ecs/curl/e9028f8d5d8e4f258373e7b93ce9a3c3" }, "LogDriver": "awslogs" } ], "LaunchType": "FARGATE"}

Respons statistik tugas contohKetika melakukan kueri terhadap titik akhir ${ECS_CONTAINER_METADATA_URI_V4}/task/stats,metrik jaringan dari tugas yang berisi bagian kontainer dikembalikan kepada Anda. Berikut ini adalah outputcontoh.

{ "3d1f891cded94dc795608466cce8ddcf-464223573": { "read": "2020-10-08T21:24:44.938937019Z", "preread": "2020-10-08T21:24:34.938633969Z", "pids_stats": {}, "blkio_stats": { "io_service_bytes_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 638976 }, { "major": 202, "minor": 26368, "op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 638976 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 638976 } ], "io_serviced_recursive": [ { "major": 202, "minor": 26368, "op": "Read", "value": 12 }, { "major": 202, "minor": 26368,

395

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

"op": "Write", "value": 0 }, { "major": 202, "minor": 26368, "op": "Sync", "value": 12 }, { "major": 202, "minor": 26368, "op": "Async", "value": 0 }, { "major": 202, "minor": 26368, "op": "Total", "value": 12 } ], "io_queue_recursive": [], "io_service_time_recursive": [], "io_wait_time_recursive": [], "io_merged_recursive": [], "io_time_recursive": [], "sectors_recursive": [] }, "num_procs": 0, "storage_stats": {}, "cpu_stats": { "cpu_usage": { "total_usage": 1137691504, "percpu_usage": [ 696479228, 441212276, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "usage_in_kernelmode": 80000000, "usage_in_usermode": 810000000 }, "system_cpu_usage": 9393210000000, "online_cpus": 2, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "precpu_stats": { "cpu_usage": { "total_usage": 1136624601, "percpu_usage": [

396

Amazon ECS Panduan Pengguna untuk AWS FargateContoh

695639662, 440984939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "usage_in_kernelmode": 80000000, "usage_in_usermode": 810000000 }, "system_cpu_usage": 9373330000000, "online_cpus": 2, "throttling_data": { "periods": 0, "throttled_periods": 0, "throttled_time": 0 } }, "memory_stats": { "usage": 6504448, "max_usage": 8458240, "stats": { "active_anon": 1675264, "active_file": 557056, "cache": 651264, "dirty": 0, "hierarchical_memory_limit": 536870912, "hierarchical_memsw_limit": 9223372036854772000, "inactive_anon": 0, "inactive_file": 3088384, "mapped_file": 430080, "pgfault": 11034, "pgmajfault": 5, "pgpgin": 8436, "pgpgout": 7137, "rss": 4669440, "rss_huge": 0, "total_active_anon": 1675264, "total_active_file": 557056, "total_cache": 651264, "total_dirty": 0, "total_inactive_anon": 0, "total_inactive_file": 3088384, "total_mapped_file": 430080, "total_pgfault": 11034, "total_pgmajfault": 5, "total_pgpgin": 8436, "total_pgpgout": 7137, "total_rss": 4669440, "total_rss_huge": 0, "total_unevictable": 0, "total_writeback": 0, "unevictable": 0, "writeback": 0 }, "limit": 9223372036854772000 },

397

Amazon ECS Panduan Pengguna untuk AWS FargateTitik akhir metadata tugas v3

"name": "curltest", "id": "3d1f891cded94dc795608466cce8ddcf-464223573", "networks": { "eth1": { "rx_bytes": 2398415937, "rx_packets": 1898631, "rx_errors": 0, "rx_dropped": 0, "tx_bytes": 1259037719, "tx_packets": 428002, "tx_errors": 0, "tx_dropped": 0 } }, "network_rate_stats": { "rx_bytes_per_sec": 43.298687872232854, "tx_bytes_per_sec": 215.39347269466413 } }}

Titik akhir metadata tugas versi 3Important

Jika Anda menggunakan tugas Amazon ECS yang dihosting di instans Amazon EC2, lihatTitikakhir metadata tugas AmazondiPanduan Pengembang Amazon Elastic Container Service.

Dimulai dengan versi platform Fargate1.1.0, variabel lingkunganbernamaECS_CONTAINER_METADATA_URIdisuntikkan ke setiap wadah dalam tugas. Ketika Andamelakukan kueri terhadap titik akhir metadata tugas versi 3, berbagai metadata tugas dan Statistik Dockertersedia untuk tugas.

Mengaktifkan Metadata TugasFitur titik akhir metadata tugas diaktifkan secara default untuk tugas Amazon ECS yang di-host di Fargateyang menggunakan versi platform1.1.0atau nantinya. Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

Jalur Titik Akhir Metadata TugasTitik akhir API berikut tersedia untuk kontainer:

${ECS_CONTAINER_METADATA_URI}

Jalur ini mengembalikan JSON metadata untuk kontainer.${ECS_CONTAINER_METADATA_URI}/task

Jalur ini mengembalikan JSON metadata untuk tugas, termasuk daftar ID kontainer dan nama semuakontainer yang terkait dengan tugas. Untuk informasi selengkapnya tentang respons titik akhir ini, lihatRespons JSON Metadata Tugas (p. 399).

${ECS_CONTAINER_METADATA_URI}/stats

Jalur ini mengembalikan JSON statistik Docker untuk kontainer Docker tertentu. Untuk informasiselengkapnya tentang masing-masing statistik yang dikembalikan, lihat ContainerStats dalamdokumentasi API Docker.

398

Amazon ECS Panduan Pengguna untuk AWS FargateRespons JSON Metadata Tugas

${ECS_CONTAINER_METADATA_URI}/task/stats

Jalur ini mengembalikan JSON statistik Docker untuk semua kontainer yang terkait dengan tugas.Untuk informasi selengkapnya tentang masing-masing statistik yang dikembalikan, lihat ContainerStatsdalam dokumentasi API Docker.

Respons JSON Metadata TugasInformasi berikut dikembalikan dari respons JSON titik akhir metadata tugas(${ECS_CONTAINER_METADATA_URI}/task).

Cluster

Amazon Resource Name (ARN) atau nama pendek klaster Amazon ECS tempat tugas berada.TaskARN

Amazon Resource Name (ARN) dari tugas milik kontainer.Family

Keluarga definisi tugas Amazon ECS untuk tugas tersebut.Revision

Revisi definisi tugas Amazon ECS untuk tugas tersebut.DesiredStatus

Status yang diinginkan untuk tugas dari Amazon ECS.KnownStatus

Status diketahui untuk tugas dari Amazon ECS.Limits

Batas sumber daya yang ditentukan pada tingkat tugas (seperti CPU dan memori). Parameter inidihilangkan jika tidak ada batasan sumber daya yang didefinisikan.

PullStartedAt

Cap waktu untuk ketika tarik gambar kontainer pertama dimulai.PullStoppedAt

Cap waktu untuk ketika gambar kontainer terakhir tarik selesai.AvailabilityZone

Availability Zone tugas dalam.

Note

Metadata Availability Zone hanya tersedia untuk tugas Fargate menggunakan platform versi1.4 atau yang lebih baru (Linux) atau 1.0.0 atau yang lebih baru (Windows).

Containers

Daftar metadata kontainer untuk setiap kontainer yang terkait dengan tugas.DockerId

Docker ID untuk wadah.Name

Nama kontainer sebagaimana ditentukan dalam ketentuan tugas.

399

Amazon ECS Panduan Pengguna untuk AWS FargateRespons JSON Metadata Tugas

DockerName

Nama wadah yang dipasok ke Docker. Agen kontainer Amazon ECS menghasilkan nama unikuntuk kontainer untuk menghindari tabrakan nama ketika beberapa salinan definisi tugas yangsama dijalankan pada satu instans.

Image

Citra untuk kontainer.ImageID

SHA-256 mencerna untuk gambar.Ports

Port terpapar untuk kontainer. Parameter ini dihilangkan jika tidak ada port terbuka.Labels

Setiap label diterapkan pada wadah. Parameter ini dihilangkan jika tidak ada label yangditerapkan.

DesiredStatus

Status yang diinginkan untuk kontainer dari Amazon ECS.KnownStatus

Status dikenal untuk wadah dari Amazon ECS.ExitCode

Kode keluar untuk wadah. Parameter ini dihilangkan jika wadah belum keluar.Limits

Batas sumber daya yang ditentukan pada tingkat kontainer (seperti CPU dan memori). Parameterini dihilangkan jika tidak ada batasan sumber daya yang didefinisikan.

CreatedAt

Cap waktu untuk ketika kontainer dibuat. Parameter ini dihilangkan jika wadah belum dibuat.StartedAt

Cap waktu untuk ketika kontainer dimulai. Parameter ini dihilangkan jika wadah belum dimulai.FinishedAt

Cap waktu untuk ketika kontainer berhenti. Parameter ini dihilangkan jika wadah belum berhenti.Type

Jenis kontainer. Kontainer yang ditentukan dalam ketentuan tugas Anda adalah tipeNORMAL. Andadapat mengabaikan jenis kontainer lainnya, yang digunakan untuk penyediaan sumber daya tugasinternal oleh agen kontainer Amazon ECS.

Networks

Informasi jaringan untuk kontainer, seperti mode jaringan dan alamat IP. Parameter ini dihilangkanjika tidak ada informasi jaringan didefinisikan.

ClockDrift

Informasi tentang perbedaan antara waktu referensi dan waktu sistem. Ini berlaku untuk sistem operasiLinux.ReferenceTime

Dasar akurasi jam. Amazon ECS menggunakan standar global Coordinated Universal Time (UTC)melalui NTP, misalnya2021-09-07T16:57:44Z.

400

Amazon ECS Panduan Pengguna untuk AWS FargateRespons Metadata Tugas Contoh

ClockErrorBound

Ukuran kesalahan clock, didefinisikan sebagai offset ke UTC. Kesalahan ini adalah perbedaandalam milidetik antara waktu referensi dan waktu sistem.

ClockSynchronizationStatus

Menunjukkan apakah upaya sinkronisasi terbaru antara waktu sistem dan waktu referensi berhasil.

Nilai yang valid adalah SYNCHRONIZED dan NOT_SYNCHRONIZED.ExecutionStoppedAt

Cap waktu untuk ketika tugasDesiredStatuspindah keSTOPPED. Hal ini terjadi ketika wadah pentingbergerak keSTOPPED.

Respons Metadata Tugas ContohRespon JSON berikut adalah untuk tugas single-container.

{ "Cluster": "default", "TaskARN": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "Family": "nginx", "Revision": "5", "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Containers": [ { "DockerId": "731a0d6a3b4210e2448339bc7015aaa79bfe4fa256384f4102db86ef94cbbc4c", "Name": "~internal~ecs~pause", "DockerName": "ecs-nginx-5-internalecspause-acc699c0cbf2d6d11700", "Image": "amazon/amazon-ecs-pause:0.1.0", "ImageID": "", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "~internal~ecs~pause", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RESOURCES_PROVISIONED", "KnownStatus": "RESOURCES_PROVISIONED", "Limits": { "CPU": 0, "Memory": 0 }, "CreatedAt": "2018-02-01T20:55:08.366329616Z", "StartedAt": "2018-02-01T20:55:09.058354915Z", "Type": "CNI_PAUSE", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] }, { "DockerId": "43481a6ce4842eec8fe72fc28500c6b52edcc0917f105b83379f88cac1ff3946",

401

Amazon ECS Panduan Pengguna untuk AWS FargateRespons Metadata Tugas Contoh

"Name": "nginx-curl", "DockerName": "ecs-nginx-5-nginx-curl-ccccb9f49db0dfe0d901", "Image": "nrdlngr/nginx-curl", "ImageID": "sha256:2e00ae64383cfc865ba0a2ba37f61b50a120d2d9378559dcd458dc0de47bc165", "Labels": { "com.amazonaws.ecs.cluster": "default", "com.amazonaws.ecs.container-name": "nginx-curl", "com.amazonaws.ecs.task-arn": "arn:aws:ecs:us-east-2:012345678910:task/9781c248-0edd-4cdb-9a93-f63cb662a5d3", "com.amazonaws.ecs.task-definition-family": "nginx", "com.amazonaws.ecs.task-definition-version": "5" }, "DesiredStatus": "RUNNING", "KnownStatus": "RUNNING", "Limits": { "CPU": 512, "Memory": 512 }, "CreatedAt": "2018-02-01T20:55:10.554941919Z", "StartedAt": "2018-02-01T20:55:11.064236631Z", "Type": "NORMAL", "Networks": [ { "NetworkMode": "awsvpc", "IPv4Addresses": [ "10.0.2.106" ] } ] } ], "PullStartedAt": "2018-02-01T20:55:09.372495529Z", "PullStoppedAt": "2018-02-01T20:55:10.552018345Z", "AvailabilityZone": "us-east-2b"}

402

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Amazon ECR dengan Amazon ECS

AWSLayanan terintegrasi denganAmazon ECS

Amazon ECS bekerja dengan lainnyaAWSLayanan untuk memberikan solusi tambahan untuk tantanganbisnis Anda. Topik ini mengidentifikasi layanan yang menggunakan Amazon ECS untuk menambahkanfungsionalitas atau layanan yang digunakan Amazon ECS untuk melakukan tugas.

Isi• Menggunakan Amazon ECR dengan Amazon ECS (p. 403)• Membuat sumber daya Amazon ECS denganAWS CloudFormation (p. 404)• Menggunakan App Mesh dengan Amazon ECS (p. 405)

Menggunakan Amazon ECR dengan Amazon ECSAmazon ECR adalah dikelolaAWSLayanan registri Docker. Pelanggan dapat menggunakan Docker CLIyang sudah dikenal untuk mendorong, menarik, dan mengelola citra. Amazon ECR menyediakan registriyang aman, dapat diskalakan, dan andal. Amazon ECR mendukung repositori Docker pribadi denganizin berbasis sumber daya menggunakanAWSAgar pengguna tertentu atau instans Amazon EC2 dapatmengakses repositori dan citra. Developer dapat menggunakan Docker CLI untuk mengotorisasi danmengelola citra.

Untuk informasi selengkapnya tentang cara membuat repositori, mendorong dan menarik gambar dariAmazon ECR, dan mengatur kontrol akses pada repositori Anda, lihatPanduan Pengguna Amazon ElasticContainer Registry.

Menggunakan Citra Amazon ECR dengan AmazonECSAnda dapat menggunakan citra ECR Anda dengan Amazon ECS, tetapi Anda perlu memenuhi persyaratanberikut ini.

• Instans kontainer Anda harus menggunakan setidaknya versi 1.7.0 agen kontainer Amazon ECS. Versiterbaru Amazon ECS — AMI yang dioptimalkan mendukung citra ECR dalam definisi tugas. Untukinformasi selengkapnya, termasuk ID Amazon ECS - AMI yang dioptimalkan, lihatVersi Agen KontainerAmazon ECSdiPanduan Pengembang Layanan Wadah Amazon Elastic.

• Peran instans kontainer Amazon ECS (ecsInstanceRole) yang Anda gunakan dengan instanskontainer Anda harus memiliki izin kebijakan IAM berikut untuk Amazon ECR.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage",

403

Amazon ECS Panduan Pengguna untuk AWS FargateMembuat sumber daya Amazon

ECS denganAWS CloudFormation

"ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Resource": "*" } ]}

Jika Anda menggunakan kebijakan terkelola AmazonEC2ContainerServiceforEC2Role untukinstans kontainer Anda, maka peran anda memiliki izin yang tepat. Untuk memeriksa apakah peran Andamendukung Amazon ECR, lihatPeran Amazon ECS Container IAMdiPanduan Pengembang LayananWadah Amazon Elastic.

• Dalam ketentuan tugas ECS Anda, pastikan bahwa Anda menggunakanpenamaan penuh registry/repository:tag untuk citra ECR Anda. Misalnya,aws_account_id.dkr.ecr.region.amazonaws.com/my-web-app:latest.

Membuat sumber daya Amazon ECS denganAWSCloudFormation

Amazon ECS terintegrasi denganAWS CloudFormation, layanan yang membantu Anda memodelkandan mengaturAWSsehingga Anda dapat lebih cepat dalam membuat dan mengelola sumber daya daninfrastruktur Anda. Anda membuat template yang menjelaskan semuaAWSsumber daya yang Andainginkan, misalnya klaster Amazon ECS, danAWS CloudFormationmengurus penyediaan dan konfigurasisumber daya tersebut untuk Anda.

Saat Anda menggunakanAWS CloudFormation, Anda dapat menggunakan kembali templat Anda untukmengatur sumber daya Amazon ECS Anda secara konsisten dan berulang kali. Cukup jelaskan sumberdaya Anda sekali dan kemudian sediakan sumber daya yang sama berulang-ulang dalam beberapa akundan Wilayah AWS.

Amazon ECS danAWS CloudFormationtemplatUntuk menyediakan dan mengonfigurasi sumber daya untuk Amazon ECS dan layanan terkait, Andaharus memahamiAWS CloudFormationtemplat. Templat adalah file teks dengan format JSON atau YAML.Templat ini menjelaskan sumber daya yang ingin Anda sediakan di tumpukan AWS CloudFormation Anda.Jika Anda tidak terbiasa dengan JSON atau YAML, Anda dapat menggunakan AWS CloudFormationDesigner untuk membantu Anda memulai dengan templat AWS CloudFormation. Untuk informasiselengkapnya, lihat Apa yang dimaksud dengan AWS CloudFormation Designer? dalam PanduanPengguna AWS CloudFormation.

Amazon ECS mendukung pembuatan klaster, definisi tugas, layanan, dan rangkaian tugas diAWSCloudFormation. Untuk informasi selengkapnya, termasuk contoh templat JSON dan YAML untuk sumberdaya Amazon ECS Anda, lihatReferensi jenis sumber daya Amazon ECSdiAWS CloudFormationPanduanPengguna.

Pelajari selengkapnya tentang AWS CloudFormationUntuk mempelajari selengkapnya tentang AWS CloudFormation, lihat sumber daya berikut:

• AWS CloudFormation• AWS CloudFormationPanduan Pengguna• AWS CloudFormationPanduan Pengguna Baris Perintah

404

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan App Mesh dengan Amazon ECS

Menggunakan App Mesh dengan Amazon ECSApp Mesh adalah mesh layanan yang membuatnya mudah untuk memantau dan mengontrol layanan.App Mesh menstandarisasi bagaimana layanan Anda berkomunikasi, memberikan Anda end-to-endvisibilitas dan membantu memastikan ketersediaan tinggi untuk aplikasi Anda. App Mesh memberikanvisibilitas yang konsisten dan kontrol lalu lintas jaringan untuk setiap layanan dalam aplikasi. Anda dapatmulai menggunakan App Mesh dengan Amazon ECS dengan menyelesaikanMemulai denganAWS AppMeshdan Amazon ECSTutorial diAWS App MeshPanduan Pengguna. Tutorial tersebut merekomendasikanagar Anda men-deploy layanan yang sudah ada ke Amazon ECS yang ingin Anda gunakan dengan AppMesh.

Note

Fitur ini tidak tersedia untuk kontainer Window di Fargate.

405

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat cluster dengan tugasFargate Linux menggunakanAWS CLI

Tutorial untuk Amazon ECSTutorial berikut menunjukkan cara melakukan tugas umum saat menggunakan Amazon ECS.

Topik• Tutorial: Membuat cluster dengan tugas Fargate Linux menggunakanAWS CLI (p. 406)• Tutorial: Membuat cluster dengan tugas Fargate Windows menggunakanAWS CLI (p. 412)• Tutorial: Menentukan data sensitif menggunakan rahasia Secrets Manager (p. 417)• Tutorial: Membuat layanan menggunakan Service Discovery (p. 423)• Tutorial: Membuat layanan menggunakan deployment biru/hijau (p. 431)• Tutorial: Mendengarkan Amazon ECS CloudWatch Peristiwa (p. 440)• Tutorial: Mengirim pemberitahuan Amazon Simple Notification Service untuk peristiwa yang dihentikan

tugas (p. 442)

Tutorial: Membuat cluster dengan tugas FargateLinux menggunakanAWS CLI

Langkah-langkah berikut ini membantu Anda untuk mengatur klaster, mendaftarkan ketentuan tugas,menjalankan tugas Linux, dan melakukan skenario umum lainnya di Amazon ECS denganAWS CLI.Pastikan bahwa Anda menggunakan versi terbaru AWS CLI. Untuk informasi selengkapnya tentang carameningkatkan ke versi terbaru, lihat Menginstal AWS Command Line Interface.

Topik• Prasyarat (p. 406)• Langkah 1: Buat Klaster (p. 407)• Langkah 2: Mendaftarkan Definisi Tugas Linux (p. 407)• Langkah 3: Ketentuan Tugas (p. 408)• Langkah 4: Membuat Layanan (p. 408)• Langkah 5: Daftar Layanan (p. 409)• Langkah 6: Jelaskan Layanan yang Berjalan (p. 409)• Langkah 7: Pengujian (p. 411)• Langkah 8: Pembersihan (p. 412)

PrasyaratTutorial ini mengasumsikan bahwa prasyarat berikut telah diselesaikan.

• Versi terbaru dari AWS CLI telah diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang carameningkatkan atau memutakhirkan AWS CLI, lihat Menginstal AWS Command Line Interface.

• Langkah-langkah di Siapkan untuk menggunakan Amazon ECS (p. 4) telah diselesaikan.• KlasterAWSpengguna memiliki izin yang diperlukan ditentukan dalamIzin wizard yang dijalankan pertama

Amazon ECS (p. 340)Contoh kebijakan IAM.• Anda memiliki VPC dan grup keamanan yang dibuat untuk digunakan. Tutorial ini menggunakan citra

kontainer yang di-hosting di Amazon ECR Public sehingga tugas Anda harus memiliki akses kepadainternet. Untuk memberikan tugas Anda rute ke internet, gunakan salah satu pilihan berikut ini.• Gunakan subnet privat dengan gateway NAT yang memiliki alamat IP elastis.

406

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 1: Buat Klaster

• Gunakan subnet publik dan tetapkan alamat IP publik untuk tugas tersebut.

Untuk informasi selengkapnya, lihat the section called “Buat virtual private cloud” (p. 6).• Opsional:AWS CloudShelladalah alat yang memberikan pelanggan baris perintah tanpa perlu membuat

contoh EC2 mereka sendiri. Untuk informasi selengkapnya, lihat Apa itu AWS CloudShell dalam Panduan Pengguna AWS CloudShell.

Langkah 1: Buat KlasterSecara default, akun Anda menerima klaster default.

Note

Manfaat dari penggunaan klaster default yang disediakan untuk Anda adalah bahwa Anda tidakperlu menentukan properti pada pilihan --cluster cluster_name di perintah berikutnya. JikaAnda membuat klaster non-default sendiri, Anda harus menentukan --cluster cluster_nameuntuk setiap perintah yang ingin Anda gunakan dengan klaster itu.

Buat klaster Anda sendiri dengan nama yang unik menggunakan perintah berikut:

aws ecs create-cluster --cluster-name fargate-cluster

Output:

{ "cluster": { "status": "ACTIVE", "statistics": [], "clusterName": "fargate-cluster", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/fargate-cluster" }}

Langkah 2: Mendaftarkan Definisi Tugas LinuxSebelum Anda dapat menjalankan tugas di klaster ECS, Anda harus mendaftarkan ketentuan tugas.Ketentuan tugas merupakan daftar kontainer yang dikelompokkan bersama-sama. Contoh berikut adalahketentuan tugas sederhana yang menciptakan sebuah aplikasi web PHP dengan menggunakan citrakontainer httpd yang di-hosting di Docker Hub. Untuk informasi selengkapnya tentang parameter ketentuantugas yang tersedia, lihat Definisi tugas Amazon ECS (p. 83).

{ "family": "sample-fargate", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "fargate-app", "image": "public.ecr.aws/docker/library/httpd:latest", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp"

407

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Ketentuan Tugas

} ], "essential": true, "entryPoint": [ "sh", "-c" ], "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\"" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512"}

Contoh di atas JSON dapat diteruskan keAWS CLIdalam dua cara: Anda dapat menyimpandefinisi tugas JSON sebagai file dan menyebarkannya dengan--cli-input-jsonfile://path_to_file.jsonPilihan. Atau, Anda dapat menghindari tanda kutip di JSON danmeneruskan ketentuan kontainer JSON pada baris perintah seperti pada contoh di bawah ini. Jika Andamemilih untuk meneruskan ketentuan kontainer pada baris perintah, maka perintah Anda juga memerlukanparameter --family yang digunakan untuk menjaga beberapa versi ketentuan tugas Anda yang terkaitsatu sama lain.

Untuk menggunakan file JSON untuk ketentuan kontainer:

aws ecs register-task-definition --cli-input-json file://$HOME/tasks/fargate-task.json

Parameter perintah register-task-definition mengembalikan penjelasan pada ketentuan tugas setelahmenyelesaikan pendaftarannya.

Langkah 3: Ketentuan TugasAnda dapat membuat daftar ketentuan tugas untuk akun Anda kapan pun dengan perintah list-task-definitions. Output dari perintah ini menunjukkan nilai family dan revision yang dapat Anda gunakanbersama saat memanggil run-task atau start-task.

aws ecs list-task-definitions

Output:

{ "taskDefinitionArns": [ "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate:1" ]}

Langkah 4: Membuat LayananSetelah Anda telah mendaftarkan tugas untuk akun Anda, Anda dapat membuat layanan untuk tugasyang telah terdaftar di klaster Anda. Pada contoh ini, Anda membuat layanan dengan satu instans dari

408

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 5: Daftar Layanan

ketentuan tugas sample-fargate:1 yang berjalan di klaster Anda. Tugas tersebut membutuhkan rutemenuju internet, maka terdapat dua cara untuk Anda agar bisa mencapainya. Salah satu caranya adalahdengan menggunakan subnet privat yang dikonfigurasikan dengan gateway NAT dengan alamat IP elastisdi subnet publik. Cara lainnya adalah dengan menggunakan subnet publik dan menetapkan alamat IPpublik untuk tugas Anda. Kami menyediakan kedua contoh di bawah ini.

Contoh menggunakan subnet privat.

aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition sample-fargate:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234]}"

Contoh menggunakan subnet publik.

aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition sample-fargate:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234],assignPublicIp=ENABLED}"

Perintah create-service mengembalikan penjelasan pada ketentuan tugas setelah menyelesaikanpendaftarannya.

Langkah 5: Daftar LayananCantumkan layanan untuk klaster Anda. Anda seharusnya dapat melihat layanan yang Anda buat di bagiansebelumnya. Anda dapat mengambil nama layanan atau ARN penuh yang telah dikembalikan dari perintahini serta menggunakannya untuk menjelaskan layanan nantinya.

aws ecs list-services --cluster fargate-cluster

Output:

{ "serviceArns": [ "arn:aws:ecs:region:aws_account_id:service/fargate-service" ]}

Langkah 6: Jelaskan Layanan yang BerjalanJelaskan layanan yang menggunakan nama layanan yang telah diambil sebelumnya untuk mendapatkaninformasi lebih lanjut tentang tugas.

aws ecs describe-services --cluster fargate-cluster --services fargate-service

Jika berhasil, tugas akan mengembalikan deskripsi dari layanan yang gagal juga layanan. Sebagai contoh,pada bagian layanan, Anda akan menemukan informasi tentang deployment, seperti menjelaskan statuspada tugas berjalan atau tertundanya tugas tersebut. Anda juga dapat menemukan informasi tentangketentuan tugas, konfigurasi jaringan dan peristiwa stempel waktu. Pada bagian kegagalan, Anda akanmenemukan informasi tentang kegagalan, jika ada kegagalan tersebut, yang terkait dengan panggilantersebut. Untuk pemecahan masalah, lihat Pesan Peristiwa Layanan. Untuk informasi selengkapnyatentang deskripsi layanan, lihat Jelaskan layanan.

{

409

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 6: Jelaskan Layanan yang Berjalan

"services": [ { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate:1", "pendingCount": 2, "launchType": "FARGATE", "loadBalancers": [], "roleArn": "arn:aws:iam::aws_account_id:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "placementConstraints": [], "createdAt": 1510811361.128, "desiredCount": 2, "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "DISABLED" } }, "platformVersion": "LATEST", "serviceName": "fargate-service", "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/fargate-cluster", "serviceArn": "arn:aws:ecs:region:aws_account_id:service/fargate-service", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "status": "PRIMARY", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "DISABLED" } }, "pendingCount": 2, "launchType": "FARGATE", "createdAt": 1510811361.128, "desiredCount": 2, "taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate:1", "updatedAt": 1510811361.128, "platformVersion": "0.0.1", "id": "ecs-svc/9223370526043414679", "runningCount": 0 } ], "events": [ { "message": "(service fargate-service) has started 2 tasks: (task 53c0de40-ea3b-489f-a352-623bf1235f08) (task d0aec985-901b-488f-9fb4-61b991b332a3).", "id": "92b8443e-67fb-4886-880c-07e73383ea83", "createdAt": 1510811841.408 }, {

410

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 7: Pengujian

"message": "(service fargate-service) has started 2 tasks: (task b4911bee-7203-4113-99d4-e89ba457c626) (task cc5853e3-6e2d-4678-8312-74f8a7d76474).", "id": "d85c6ec6-a693-43b3-904a-a997e1fc844d", "createdAt": 1510811601.938 }, { "message": "(service fargate-service) has started 2 tasks: (task cba86182-52bf-42d7-9df8-b744699e6cfc) (task f4c1ad74-a5c6-4620-90cf-2aff118df5fc).", "id": "095703e1-0ca3-4379-a7c8-c0f1b8b95ace", "createdAt": 1510811364.691 } ], "runningCount": 0, "placementStrategy": [] } ], "failures": []}

Langkah 7: PengujianJelaskan tugas dalam layanan sehingga Anda bisa mendapatkan Elastic Network Interface (ENI) untuktugas tersebut.

Jelaskan tugas dan cari ID ENI.

aws ecs describe-tasks --cluster fargate-cluster --tasks fargate-tasks

Informasi lampiran tercantum dalam output.

{ "tasks": [ { "attachments": [ { "id": "d9e7735a-16aa-4128-bc7a-b2d5115029e9", "type": "ElasticNetworkInterface", "status": "ATTACHED", "details": [ { "name": "subnetId", "value": "subnetabcd1234" }, { "name": "networkInterfaceId", "value": "eni-0fa40520aeEXAMPLE" }, ] }…}

Jelaskan ENI untuk mendapatkan alamat IP publik.

aws ec2 describe-network-interfaces --network-interface-id eni-0fa40520aeEXAMPLE

Alamat IP publik ada di output.

{ "NetworkInterfaces": [

411

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 8: Pembersihan

{ "Association": { "IpOwnerId": "amazon", "PublicDnsName": "ec2-34-229-42-222.compute-1.amazonaws.com", "PublicIp": "198.51.100.2" },…}

Masukkan alamat IP publik di peramban web Anda dan Anda akan melihat halaman web yangmenampilkanAmazon ECSaplikasi sampel.

Langkah 8: PembersihanSetelah Anda selesai dengan tutorial ini, Anda harus membersihkan sumber daya yang terkait untukmenghindari biaya sumber daya yang tidak terpakai.

Hapus layanan.

aws ecs delete-service --cluster fargate-cluster --service fargate-service --force

Hapus klaster.

aws ecs delete-cluster --cluster fargate-cluster

Tutorial: Membuat cluster dengan tugas FargateWindows menggunakanAWS CLI

Langkah-langkah berikut ini membantu Anda untuk mengatur klaster, mendaftarkan ketentuan tugas,menjalankan tugas Windows, dan melakukan skenario umum lainnya di Amazon ECS denganAWS CLI.Pastikan bahwa Anda menggunakan versi terbaru AWS CLI. Untuk informasi selengkapnya tentang carameningkatkan ke versi terbaru, lihat Menginstal AWS Command Line Interface.

Topik• Prasyarat (p. 412)• Langkah 1: Buat Klaster (p. 413)• Langkah 2: Mendaftarkan Definisi Tugas Windows (p. 413)• Langkah 3: Ketentuan tugas (p. 414)• Langkah 4: Membuat layanan (p. 415)• Langkah 5: Daftar layanan (p. 415)• Langkah 6: Jelaskan Layanan yang Berjalan (p. 415)• Langkah 7: Pembersihan (p. 417)

PrasyaratTutorial ini mengasumsikan bahwa prasyarat berikut telah diselesaikan.

• Versi terbaru dari AWS CLI telah diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang carameningkatkan atau memutakhirkan AWS CLI, lihat Menginstal AWS Command Line Interface.

• Langkah-langkah di Siapkan untuk menggunakan Amazon ECS (p. 4) telah diselesaikan.

412

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 1: Buat Klaster

• KlasterAWSpengguna memiliki izin yang diperlukan ditentukan dalamIzin wizard yang dijalankan pertamaAmazon ECS (p. 340)Contoh kebijakan IAM.

• Anda memiliki VPC dan grup keamanan yang telah dibuat untuk digunakan. Tutorial ini menggunakancitra kontainer yang di-host pada Docker Hub sehingga tugas Anda harus memiliki akses kepadainternet. Untuk memberikan tugas Anda rute ke internet, gunakan salah satu pilihan berikut ini.• Gunakan subnet privat dengan gateway NAT yang memiliki alamat IP elastis.• Gunakan subnet publik dan tetapkan alamat IP publik untuk tugas tersebut.

Untuk informasi selengkapnya, lihat the section called “Buat virtual private cloud” (p. 6).• Opsional:AWS CloudShelladalah alat yang memberikan pelanggan baris perintah tanpa perlu membuat

contoh EC2 mereka sendiri. Untuk informasi selengkapnya, lihat Apa itu AWS CloudShell dalam Panduan Pengguna AWS CloudShell.

Langkah 1: Buat KlasterSecara default, akun Anda menerima klaster default.

Note

Manfaat dari penggunaan klaster default yang disediakan untuk Anda adalah bahwa Anda tidakperlu menentukan properti pada pilihan --cluster cluster_name di perintah berikutnya. JikaAnda membuat klaster non-default sendiri, Anda harus menentukan --cluster cluster_nameuntuk setiap perintah yang ingin Anda gunakan dengan klaster itu.

Buat klaster Anda sendiri dengan nama yang unik menggunakan perintah berikut:

aws ecs create-cluster --cluster-name fargate-cluster

Output:

{ "cluster": { "status": "ACTIVE", "statistics": [], "clusterName": "fargate-cluster", "registeredContainerInstancesCount": 0, "pendingTasksCount": 0, "runningTasksCount": 0, "activeServicesCount": 0, "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/fargate-cluster" }}

Langkah 2: Mendaftarkan Definisi Tugas WindowsSebelum Anda dapat menjalankan tugas Windows di klaster Amazon ECS, Anda harus mendaftarkanketentuan tugas. Ketentuan tugas adalah daftar kontainer yang dikelompokkan bersama. Contoh berikutadalah ketentuan tugas sederhana yang membuat aplikasi web. Untuk informasi selengkapnya tentangparameter ketentuan tugas yang tersedia, lihat Definisi tugas Amazon ECS (p. 83).

{ "containerDefinitions": [ { "command": [ "New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-

413

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Ketentuan tugas

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>'; C:\\ServiceMonitor.exe w3svc" ], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "/ecs/fargate-windows-task-definition", "awslogs-region": "us-east-1", "awslogs-stream-prefix": "ecs" } }, "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": { "operatingSystemFamily": "WINDOWS_SERVER_2019_CORE" }, "requiresCompatibilities": [ "FARGATE" ]}

Contoh di atas JSON dapat diteruskan keAWS CLIdalam dua cara: Anda dapat menyimpandefinisi tugas JSON sebagai file dan menyebarkannya dengan--cli-input-jsonfile://path_to_file.jsonPilihan.

Untuk menggunakan file JSON untuk ketentuan kontainer:

aws ecs register-task-definition --cli-input-json file://$HOME/tasks/fargate-task.json

Parameter perintah register-task-definition mengembalikan penjelasan pada ketentuan tugas setelahmenyelesaikan pendaftarannya.

Langkah 3: Ketentuan tugasAnda dapat membuat daftar ketentuan tugas untuk akun Anda kapan pun dengan perintah list-task-definitions. Output dari perintah ini menunjukkan nilai family dan revision yang dapat Anda gunakanbersama saat memanggil run-task atau start-task.

aws ecs list-task-definitions

414

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 4: Membuat layanan

Output:

{ "taskDefinitionArns": [ "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate-windows:1" ]}

Langkah 4: Membuat layananSetelah Anda telah mendaftarkan tugas untuk akun Anda, Anda dapat membuat layanan untuk tugasyang telah terdaftar di klaster Anda. Pada contoh ini, Anda membuat layanan dengan satu instans dariketentuan tugas sample-fargate:1 yang berjalan di klaster Anda. Tugas tersebut membutuhkan rutemenuju internet, maka terdapat dua cara untuk Anda agar bisa mencapainya. Salah satu caranya adalahdengan menggunakan subnet privat yang dikonfigurasikan dengan gateway NAT dengan alamat IP elastisdi subnet publik. Cara lainnya adalah dengan menggunakan subnet publik dan menetapkan alamat IPpublik untuk tugas Anda. Kami menyediakan kedua contoh di bawah ini.

Contoh menggunakan subnet privat.

aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition sample-fargate-windows:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234]}"

Contoh menggunakan subnet publik.

aws ecs create-service --cluster fargate-cluster --service-name fargate-service --task-definition sample-fargate-windows:1 --desired-count 1 --launch-type "FARGATE" --network-configuration "awsvpcConfiguration={subnets=[subnet-abcd1234],securityGroups=[sg-abcd1234],assignPublicIp=ENABLED}"

Perintah create-service mengembalikan penjelasan pada ketentuan tugas setelah menyelesaikanpendaftarannya.

Langkah 5: Daftar layananCantumkan layanan untuk klaster Anda. Anda seharusnya dapat melihat layanan yang Anda buat di bagiansebelumnya. Anda dapat mengambil nama layanan atau ARN penuh yang telah dikembalikan dari perintahini serta menggunakannya untuk menjelaskan layanan nantinya.

aws ecs list-services --cluster fargate-cluster

Output:

{ "serviceArns": [ "arn:aws:ecs:region:aws_account_id:service/fargate-service" ]}

Langkah 6: Jelaskan Layanan yang BerjalanJelaskan layanan yang menggunakan nama layanan yang telah diambil sebelumnya untuk mendapatkaninformasi lebih lanjut tentang tugas.

415

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 6: Jelaskan Layanan yang Berjalan

aws ecs describe-services --cluster fargate-cluster --services fargate-service

Jika berhasil, tugas akan mengembalikan deskripsi dari layanan yang gagal juga layanan. Sebagai contoh,pada bagian layanan, Anda akan menemukan informasi tentang deployment, seperti menjelaskan statuspada tugas berjalan atau tertundanya tugas tersebut. Anda juga dapat menemukan informasi tentangketentuan tugas, konfigurasi jaringan dan peristiwa stempel waktu. Pada bagian kegagalan, Anda akanmenemukan informasi tentang kegagalan, jika ada kegagalan tersebut, yang terkait dengan panggilantersebut. Untuk pemecahan masalah, lihat Pesan Peristiwa Layanan. Untuk informasi selengkapnyatentang deskripsi layanan, lihat Jelaskan layanan.

{ "services": [ { "status": "ACTIVE", "taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate-windows:1", "pendingCount": 2, "launchType": "FARGATE", "loadBalancers": [], "roleArn": "arn:aws:iam::aws_account_id:role/aws-service-role/ecs.amazonaws.com/AWSServiceRoleForECS", "placementConstraints": [], "createdAt": 1510811361.128, "desiredCount": 2, "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "DISABLED" } }, "platformVersion": "LATEST", "serviceName": "fargate-service", "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/fargate-cluster", "serviceArn": "arn:aws:ecs:region:aws_account_id:service/fargate-service", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "status": "PRIMARY", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "DISABLED" } }, "pendingCount": 2, "launchType": "FARGATE", "createdAt": 1510811361.128, "desiredCount": 2, "taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/sample-fargate-windows:1",

416

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 7: Pembersihan

"updatedAt": 1510811361.128, "platformVersion": "0.0.1", "id": "ecs-svc/9223370526043414679", "runningCount": 0 } ], "events": [ { "message": "(service fargate-service) has started 2 tasks: (task 53c0de40-ea3b-489f-a352-623bf1235f08) (task d0aec985-901b-488f-9fb4-61b991b332a3).", "id": "92b8443e-67fb-4886-880c-07e73383ea83", "createdAt": 1510811841.408 }, { "message": "(service fargate-service) has started 2 tasks: (task b4911bee-7203-4113-99d4-e89ba457c626) (task cc5853e3-6e2d-4678-8312-74f8a7d76474).", "id": "d85c6ec6-a693-43b3-904a-a997e1fc844d", "createdAt": 1510811601.938 }, { "message": "(service fargate-service) has started 2 tasks: (task cba86182-52bf-42d7-9df8-b744699e6cfc) (task f4c1ad74-a5c6-4620-90cf-2aff118df5fc).", "id": "095703e1-0ca3-4379-a7c8-c0f1b8b95ace", "createdAt": 1510811364.691 } ], "runningCount": 0, "placementStrategy": [] } ], "failures": []}

Langkah 7: PembersihanSetelah Anda selesai dengan tutorial ini, Anda harus membersihkan sumber daya yang terkait untukmenghindari biaya sumber daya yang tidak terpakai.

Hapus layanan.

aws ecs delete-service --cluster fargate-cluster --service fargate-service --force

Hapus klaster.

aws ecs delete-cluster --cluster fargate-cluster

Tutorial: Menentukan data sensitif menggunakanrahasia Secrets Manager

Amazon ECS memungkinkan Anda memasukkan data sensitif ke dalam kontainer dengan menyimpan datasensitif Anda diAWS Secrets Managerrahasia dan kemudian mereferensikannya dalam definisi kontainerAnda. Untuk informasi selengkapnya, lihat Menentukan data sensitif (p. 175).

Tutorial berikut menunjukkan cara membuat rahasia Secrets Manager, mereferensi rahasia dalamketentuan tugas Amazon ECS, dan kemudian verifikasi bahwa itu berhasil dengan kueri variabellingkungan di dalam kontainer yang menunjukkan isi dari rahasia.

417

Amazon ECS Panduan Pengguna untuk AWS FargatePrasyarat

PrasyaratJika mengikuti tutorial ini, berarti prasyarat berikut telah selesai:

• Langkah-langkah di Siapkan untuk menggunakan Amazon ECS (p. 4) telah selesai.• KlasterAWSpengguna memiliki izin IAM yang diperlukan untuk membuat sumber daya Secrets Manager

dan Amazon ECS yang dijelaskan.

Langkah 1: Buat rahasia Secrets ManagerAnda dapat menggunakan konsol Secrets Manager untuk membuat rahasia untuk data sensitif Anda.Dalam tutorial ini kita akan menciptakan rahasia dasar untuk menyimpan nama pengguna dan kata sandiuntuk mereferensi nanti dalam sebuah kontainer. Untuk informasi lebih lanjut, lihat Membuat RahasiaDasar dalam Panduan Pengguna AWS Secrets Manager.

Untuk membuat rahasia dasar

Gunakan Secrets Manager untuk membuat rahasia untuk data sensitif Anda.

1. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.2. Pilih Store a new secret (Simpan rahasia baru).3. Untuk Pilih tipe rahasia, pilih Jenis rahasia lainnya.4. Untuk Tentukan pasangan kunci/nilai yang akan disimpan dalam rahasia ini , pilih tab Plaintext dan

ganti teks yang ada dengan teks berikut. Nilai teks yang Anda tentukan di sini akan menjadi nilaivariabel lingkungan dalam kontainer Anda pada akhir tutorial.

password_value

5. Pilih Selanjutnya.6. Untuk Nama rahasia, ketik username_value dan pilih Selanjutnya. Nilai nama rahasia yang Anda

tentukan di sini akan menjadi nama variabel lingkungan dalam kontainer Anda di akhir tutorial.7. Untuk Konfigurasi rotasi otomatis, biarkan Nonaktifkan rotasi otomatis terpilih dan pilih Selanjutnya.8. Tinjau pengaturan ini, lalu pilihTokountuk menyimpan semua yang Anda masukkan sebagai rahasia

baru di Secrets Manager.9. Pilih rahasia yang baru saja Anda buat dan simpanRahasia ARNuntuk mereferensi kebijakan dan

ketentuan tugas Anda di langkah-langkah selanjutnya.

Langkah 2: Memperbarui peran IAM eksekusi tugasAgar Amazon ECS dapat mengambil data sensitif dari rahasia Secrets Manager, Anda harus memilikiperan eksekusi tugas Amazon ECS dan mereferensi dalam ketentuan tugas Anda. Hal ini memungkinkanagen kontainer untuk menarik sumber daya Secrets Manager yang diperlukan. Jika Anda belum membuatperan IAM eksekusi tugas Anda, lihatPeran IAM eksekusi tugas ECS Amazon (p. 363).

Langkah-langkah berikut mengasumsikan bahwa Anda sudah membuat peran IAM eksekusi tugas dandikonfigurasi dengan benar.

Untuk memperbarui peran IAM eksekusi tugas Anda

Gunakan konsol IAM untuk memperbarui peran eksekusi tugas Anda dengan izin yang diperlukan.

418

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Buat definisi tugas Amazon ECS

1. Buka konsol IAM di https://console.aws.amazon.com/iam/.2. Di panel navigasi, pilih Peran.3. Cari daftar peran untuk ecsTaskExecutionRole dan pilih peran itu.4. Pilih Izin, Tambahkan kebijakan inline.5. PilihJSONtab dan tentukan teks JSON berikut, memastikan bahwa Anda menentukan ARN penuh

rahasia Secrets Manager yang Anda buat pada langkah 1.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": [ "arn:aws:secretsmanager:region:aws_account_id:secret:username_value-u9bH6K" ] } ]}

6. Pilih Tinjau kebijakan. Untuk Nama tentukan ECSSecretsTutorial, lalu pilih Buat kebijakan.

Langkah 3: Buat definisi tugas Amazon ECSAnda dapat menggunakan konsol Amazon ECS untuk membuat ketentuan tugas yang mereferensikanrahasia Secrets Manager.

Untuk membuat ketentuan tugas yang menetapkan rahasia

Gunakan konsol IAM untuk memperbarui peran eksekusi tugas Anda dengan izin yang diperlukan.

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Definisi Tugas, Buat Definisi Tugas baru.3. Pada halaman Pilih kompatibilitas tipe peluncuran, pilih EC2 Pilih Langkah selanjutnya.4. PilihKonfigurasikan melalui JSONdan masukkan teks JSON ketentuan tugas berikut, pastikan bahwa

Anda menentukan rahasia Secrets Manager Rahasia yang Anda buat pada langkah 1 dan peran IAMeksekusi tugas Anda diperbarui pada langkah 2. Pilih Simpan.

{ "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole", "containerDefinitions": [ { "entryPoint": [ "sh", "-c" ], "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 } ], "command": [

419

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 4: Membuat klaster Amazon ECS

"/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\"" ], "cpu": 10, "secrets": [ { "valueFrom": "arn:aws:secretsmanager:region:aws_account_id:secret:username_value-u9bH6K", "name": "username_value" } ], "memory": 300, "image": "httpd:2.4", "essential": true, "name": "ecs-secrets-container" } ], "family": "ecs-secrets-tutorial"}

5. Tinjau pengaturan dan kemudian pilih Buat alur.

Langkah 4: Membuat klaster Amazon ECSAnda dapat menggunakan konsol Amazon ECS untuk membuat klaster yang berisi instans kontainer untukmenjalankan tugas. Jika Anda memiliki klaster yang ada dengan setidaknya satu instans kontainer yangterdaftar untuk itu dengan sumber daya yang tersedia untuk menjalankan satu instans dari ketentuan tugasyang dibuat untuk tutorial ini Anda dapat melompat ke langkah berikutnya.

Untuk tutorial ini kita akan membuat cluster dengan satut2.microinstans kontainer menggunakanAmazon Linux 2 AMI yang dioptimalkan Amazon ECS.

Untuk membuat klaster DB

Gunakan konsol Amazon ECS untuk membuat klaster dan mendaftarkan satu instans kontainer ke konsolAmazon ECS.

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Dari bilah navigasi, pilih Wilayah yang berisi Secrets Manager dan ketentuan tugas Amazon ECS yang

Anda buat.3. Di panel navigasi, pilih Klaster.4. Pada halaman Klaster, pilih Buat Klaster.5. Untuk Pilih kompatibilitas klaster, pilih Jaringan EC2 Linux +, lalu pilih Langkah selanjutnya.6. Pada halaman Konfigurasi klaster, untuk Nama klaster masukkan ecs-secrets-tutorial.7. Untuk Tipe instans EC2, pilih t2.micro.8. Untuk Pasangan kunci, pilih pasangan kunci untuk ditambahkan ke instans kontainer.

Important

Pasangan kunci diperlukan untuk menyelesaikan tutorial, jadi jika Anda belum membuatpasangan kunci ikuti tautan ke konsol EC2 untuk membuatnya.

9. Di bagian Jaringan, konfigurasi VPC untuk klaster Anda. Pilih VPC yang sudah ada atau Anda dapatmemilih Buat VPC baru untuk digunakan dalam tutorial.

420

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 5: Menjalankan tugas Amazon ECS

a. (Opsional) Jika Anda memilih untuk membuat VPC baru, untuk Blok CIDR, pilih blok CIDR untukVPC Anda. Untuk informasi lebih lanjut, lihat VPC dan Subnet Anda di Panduan PenggunaAmazon VPC.

b. Untuk Subnet, pilih subnet yang akan digunakan untuk VPC Anda. Anda dapat menyimpanpengaturan default atau Anda dapat memodifikasinya untuk memenuhi kebutuhan Anda.

10. Untuk IAM role instans kontainer, pilih IAM role instans kontainer atau pilih Buat peran baru yangdibuatkan untuk Anda.

11. Biarkan semua kolom lain pada nilai defaultnya dan pilih Buat.

Langkah 5: Menjalankan tugas Amazon ECSAnda dapat menggunakan konsol Amazon ECS untuk menjalankan tugas menggunakan ketentuan tugasyang Anda buat. Untuk tutorial ini kita akan menjalankan tugas menggunakan tipe peluncuran EC2,menggunakan klaster yang kita buat pada langkah sebelumnya.

Untuk menjalankan tugas

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Definisi Tugas dan pilih ketentuan tugas ecs-rahasia-tutorial yang kita buat.3. Pilih revisi tugas terbaru dan kemudian pilih Tindakan, Jalankan Tugas.4. Untuk Tipe peluncuran, pilih EC2.5. Untuk Klaster, pilih klaster ecs-rahasia-tutorial yang kita buat pada langkah sebelumnya.6. Untuk Konfigurasi penandaan tugas, hilangkan pilihan Aktifkan tanda terkelola ECS. Itu tidak

diperlukan untuk tutorial ini.7. Tinjau informasi tugas Anda dan pilih Jalankan Tugas.

Note

Jika tugas Anda berpindah dari PENDING ke STOPPED, atau jika menampilkan statusPENDING dan kemudian menghilang dari tugas yang tercantum, tugas Anda mungkinberhenti karena kesalahan. Untuk informasi selengkapnya, lihat Memeriksa tugas yang telahdihentikan untuk kesalahan (p. 454) di bagian pemecahan masalah.

Langkah 6: VerifikasiAnda dapat memverifikasi bahwa semua langkah berhasil diselesaikan dan variabel lingkungan dibuatdengan benar dalam kontainer Anda menggunakan langkah-langkah berikut.

Untuk memverifikasi bahwa variabel lingkungan telah dibuat

1. Cari IP publik atau alamat DNS untuk instans kontainer Anda.

a. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.b. Pilih klaster ecs-secrets-tutorial yang meng-host instans kontainer Anda.c. Pada halaman Klaster, pilih Pilih ECS.d. Pada kolom Instans Kontainer, pilih instans kontainer untuk disambungkan.e. Pada halaman Instans Kontainer, catat IP Publik atau DNS publik untuk instans Anda.

2. Jika Anda menggunakan komputer macOS atau Linux, sambungkan ke instans Anda dengan perintahberikut, ganti jalur ke kunci pribadi dan alamat publik untuk instans Anda:

$ ssh -i /path/to/my-key-pair.pem [email protected]

421

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 7: Membersihkan

Untuk informasi selengkapnya tentang penggunaan komputer Windows, lihatMenghubungkan keInstans Linux Anda dari Windows Menggunakan PuTTYdi dalamPanduan Pengguna Amazon EC2untuk Instans Linux.

Important

Untuk informasi selengkapnya tentang masalah saat terhubung ke instans Anda,lihatPemecahan Masalah Menghubungkan ke Instans Andadi dalamPanduan PenggunaAmazon EC2 untuk Instans Linux.

3. Cantumkan kontainer yang berjalan pada instans. Catat ID kontainer untuk kontainer ecs-secrets-tutorial.

docker ps

4. Terhubung ke kontainer ecs-secrets-tutorial menggunakan ID kontainer dari output darilangkah sebelumnya.

docker exec -it container_ID /bin/bash

5. Gunakan perintah echo untuk mencetak nilai variabel lingkungan.

echo $username_value

Jika tutorial berhasil, Anda akan melihat output sebagai berikut:

password_value

Note

Atau, Anda dapat mencantumkan semua variabel lingkungan dalam wadah Andamenggunakan perintah env (atau printenv).

Langkah 7: MembersihkanSetelah selesai dengan tutorial ini, Anda harus membersihkan sumber daya yang terkait untuk menghindaritimbulnya biaya untuk sumber daya yang tidak terpakai.

Untuk membersihkan sumber daya

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih klaster tutorial-rahasia-ecs yang Anda buat.3. Pada halaman Klaster, pilih Hapus Klaster.4. Masukkan frasa konfirmasi klaster hapus dan pilih Hapus. Ini akan memakan waktu beberapa menit

namun akan membersihkan semua sumber daya klaster Amazon ECS.5. Buka konsol IAM di https://console.aws.amazon.com/iam/.6. Di panel navigasi, pilih Peran.7. Cari daftar peran untuk ecsTaskExecutionRole dan pilih itu.8. Pilih Izin, lalu pilih X di samping ECSSecretsTutorial. Pilih Hapus untuk mengonfirmasi

penghapusan kebijakan inline.9. Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/.10. Pilih rahasia username_value yang Anda buat dan pilih Tindakan, Hapus rahasia.

422

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat layanan menggunakan Service Discovery

Tutorial: Membuat layanan menggunakan ServiceDiscovery

Layanan telah diintegrasikan ke dalam wizard Buat Layanan di konsol Amazon ECS. Untuk informasiselengkapnya, lihat Membuat layanan Amazon ECS (p. 227).

Tutorial berikut menunjukkan cara membuat layanan ECS yang berisi tugas Fargate yang menggunakanlayanan discovery denganAWS CLI.

Untuk daftar Wilayah yang mendukung penemuan layanan, lihatPenemuan Layanan (p. 276).

Untuk informasi tentang Daerah yang mendukung Fargate, lihatthe section called “AWSWilayahFargate” (p. 291).

PrasyaratTutorial ini mengasumsikan bahwa prasyarat berikut telah diselesaikan:

• Versi AWS CLI terbaru telah diinstal dan dikonfigurasi. Untuk informasi lebih lanjut, lihat Menginstal AWSCommand Line Interface.

• Langkah-langkah di Siapkan untuk menggunakan Amazon ECS (p. 4) telah selesai.• KlasterAWSpengguna memiliki izin yang diperlukan ditentukan dalamIzin wizard yang dijalankan pertama

Amazon ECS (p. 340)Contoh kebijakan IAM.• Anda memiliki VPC dan grup keamanan yang dibuat untuk digunakan. Untuk informasi selengkapnya,

lihat the section called “Buat virtual private cloud” (p. 6).

Langkah 1: Membuat sumber daya PenemuanLayananGunakan langkah-langkah berikut untuk membuat namespace layanan discovery dan layanan discovery.

Untuk membuat sumber daya Penemuan Layanan

1. Membuat namespace penemuan layanan pribadi bernamatutorialdalam salah satu VPC yang ada:

aws servicediscovery create-private-dns-namespace --name tutorial --vpc vpc-abcd1234 --region us-east-1

Output:

{ "OperationId": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e"}

2. Menggunakan OperationId dari output sebelumnya, verifikasi bahwa namespace privat telahberhasil dibuat. Salin ID namespace seperti yang digunakan dalam perintah selanjutnya.

aws servicediscovery get-operation --operation-id h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e --region us-east-1

Output:

423

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Membuat sumber daya Amazon ECS

{ "Operation": { "Id": "h2qe3s6dxftvvt7riu6lfy2f6c3jlhf4-je6chs2e", "Type": "CREATE_NAMESPACE", "Status": "SUCCESS", "CreateDate": 1519777852.502, "UpdateDate": 1519777856.086, "Targets": { "NAMESPACE": "ns-uejictsjen2i4eeg" } }}

3. Menggunakan ID NAMESPACE dari output sebelumnya, buat layanan penemuan layanan bernamamyapplication. Salin ID layanan discovery seperti yang digunakan dalam perintah selanjutnya:

aws servicediscovery create-service --name myapplication --dns-config "NamespaceId="ns-uejictsjen2i4eeg",DnsRecords=[{Type="A",TTL="300"}]" --health-check-custom-config FailureThreshold=1 --region us-east-1

Output:

{ "Service": { "Id": "srv-utcrh6wavdkggqtk", "Arn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk", "Name": "myapplication", "DnsConfig": { "NamespaceId": "ns-uejictsjen2i4eeg", "DnsRecords": [ { "Type": "A", "TTL": 300 } ] }, "HealthCheckCustomConfig": { "FailureThreshold": 1 }, "CreatorRequestId": "e49a8797-b735-481b-a657-b74d1d6734eb" }}

Langkah 2: Membuat sumber daya Amazon ECSGunakan langkah-langkah berikut untuk membuat klaster Amazon ECS, ketentuan tugas, dan layananAnda.

Untuk membuat sumber daya Amazon ECS

1. Membuat klaster Amazon ECS bernamatutorialuntuk menggunakan:

aws ecs create-cluster --cluster-name tutorial --region us-east-1

Output:

424

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Membuat sumber daya Amazon ECS

{ "cluster": { "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/tutorial", "clusterName": "tutorial", "status": "ACTIVE", "registeredContainerInstancesCount": 0, "runningTasksCount": 0, "pendingTasksCount": 0, "activeServicesCount": 0, "statistics": [] }}

2. Daftarkan ketentuan tugas yang kompatibel dengan Fargate. Hal ini membutuhkan penggunaan modejaringan awsvpc. Berikut ini adalah contoh ketentuan tugas yang digunakan untuk tutorial ini.

Pertama, buat file bernama fargate-task.json dengan konten ketentuan tugas berikut:

{ "family": "tutorial-task-def", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "sample-app", "image": "httpd:2.4", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "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\"" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512"}

Kemudian, daftarkan ketentuan tugas menggunakan file fargate-task.json yang Anda buat:

aws ecs register-task-definition --cli-input-json file://fargate-task.json --region us-east-1

3. Buat file bernama ecs-service-discovery.json dengan konten layanan ECS yang akanAnda buat. Contoh ini menggunakan ketentuan tugas yang dibuat pada langkah sebelumnya.

425

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Membuat sumber daya Amazon ECS

awsvpcConfiguration diperlukan karena ketentuan tugas contoh menggunakan mode jaringanawsvpc.

{ "cluster": "tutorial", "serviceName": "ecs-service-discovery", "taskDefinition": "tutorial-task-def", "serviceRegistries": [ { "registryArn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk" } ], "launchType": "FARGATE", "platformVersion": "LATEST", "networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-abcd1234" ], "subnets": [ "subnet-abcd1234" ] } }, "desiredCount": 1}

Buat layanan ECS Anda, tentukan jenis peluncuran Fargate danLATESTversi platform, yangmendukung penemuan layanan:

aws ecs create-service --cli-input-json file://ecs-service-discovery.json --region us-east-1

Output:

{ "service": { "serviceArn": "arn:aws:ecs:region:aws_account_id:service/ecs-service-discovery", "serviceName": "ecs-service-discovery", "clusterArn": "arn:aws:ecs:region:aws_account_id:cluster/tutorial", "loadBalancers": [], "serviceRegistries": [ { "registryArn": "arn:aws:servicediscovery:region:aws_account_id:service/srv-utcrh6wavdkggqtk" } ], "status": "ACTIVE", "desiredCount": 1, "runningCount": 0, "pendingCount": 0, "launchType": "FARGATE", "platformVersion": "LATEST", "taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/tutorial-task-def:1", "deploymentConfiguration": { "maximumPercent": 200, "minimumHealthyPercent": 100 }, "deployments": [ { "id": "ecs-svc/9223370516993140842", "status": "PRIMARY",

426

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Verifikasi Penemuan Layanan

"taskDefinition": "arn:aws:ecs:region:aws_account_id:task-definition/tutorial-task-def:1", "desiredCount": 1, "pendingCount": 0, "runningCount": 0, "createdAt": 1519861634.965, "updatedAt": 1519861634.965, "launchType": "FARGATE", "platformVersion": "1.1.0", "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "ENABLED" } } } ], "roleArn": "arn:aws:iam::aws_account_id:role/ECSServiceLinkedRole", "events": [], "createdAt": 1519861634.965, "placementConstraints": [], "placementStrategy": [], "networkConfiguration": { "awsvpcConfiguration": { "subnets": [ "subnet-abcd1234" ], "securityGroups": [ "sg-abcd1234" ], "assignPublicIp": "ENABLED" } } }}

Langkah 3: Verifikasi Penemuan LayananAnda dapat memverifikasi bahwa semuanya telah dibuat dengan benar dengan menanyakan informasipenemuan layanan Anda. Setelah penemuan layanan dikonfigurasi, Anda dapat query menggunakansalah satuAWS Cloud MapOperasi API atau dengan menggunakandigdari dalam VPC Anda, seperti yangdijelaskan di bawah ini.

Untuk memverifikasi konfigurasi pencarian layanan

1. Menggunakan ID layanan penemuan layanan, cantumkan instance penemuan layanan:

aws servicediscovery list-instances --service-id srv-utcrh6wavdkggqtk --region us-east-1

Output:

{ "Instances": [ {

427

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Verifikasi Penemuan Layanan

"Id": "16becc26-8558-4af1-9fbd-f81be062a266", "Attributes": { "AWS_INSTANCE_IPV4": "172.31.87.2" "AWS_INSTANCE_PORT": "80", "AVAILABILITY_ZONE": "us-east-1a", "REGION": "us-east-1", "ECS_SERVICE_NAME": "ecs-service-discovery", "ECS_CLUSTER_NAME": "tutorial", "ECS_TASK_DEFINITION_FAMILY": "tutorial-task-def" } } ]}

2. Menggunakan namespace dan layanan discovery, gunakan parameter tambahan untuk kueri detailtentang instans penemuan layanan:

aws servicediscovery discover-instances --namespace-name tutorial --service-name myapplication --query-parameters ECS_CLUSTER_NAME=tutorial --region us-east-1

Output:

{ "Instances": [ { "InstanceId": "16becc26-8558-4af1-9fbd-f81be062a266", "NamespaceName": "tutorial", "ServiceName": "ecs-service-discovery", "HealthStatus": "HEALTHY", "Attributes": { "AWS_INSTANCE_IPV4": "172.31.87.2" "AWS_INSTANCE_PORT": "80", "AVAILABILITY_ZONE": "us-east-1a", "REGION": "us-east-1", "ECS_SERVICE_NAME": "ecs-service-discovery", "ECS_CLUSTER_NAME": "tutorial", "ECS_TASK_DEFINITION_FAMILY": "tutorial-task-def" } } ]}

3. Catatan DNS yang dibuat di zona yang di-hosting Route 53 untuk layanan penemuan layanan dapatdikuerikan dengan ketentuan berikutAWS CLIperintah.

Menggunakan namespace ID, dapatkan informasi tentang namespace, yang mencakup ID zona yangdi-hosting Route 53:

aws servicediscovery get-namespace --id ns-uejictsjen2i4eeg --region us-east-1

Output:

{ "Namespace": { "Id": "ns-uejictsjen2i4eeg", "Arn": "arn:aws:servicediscovery:region:aws_account_id:namespace/ns-uejictsjen2i4eeg", "Name": "tutorial", "Type": "DNS_PRIVATE", "Properties": { "DnsProperties": {

428

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Verifikasi Penemuan Layanan

"HostedZoneId": "Z35JQ4ZFDRYPLV" } }, "CreateDate": 1519777852.502, "CreatorRequestId": "9049a1d5-25e4-4115-8625-96dbda9a6093" }}

4. Menggunakan ID zona yang di-hosting Route 53, dapatkan catatan sumber daya yang ditetapkanuntuk zona yang di-hosting:

aws route53 list-resource-record-sets --hosted-zone-id Z35JQ4ZFDRYPLV --region us-east-1

Output:

{ "ResourceRecordSets": [ { "Name": "tutorial.", "Type": "NS", "TTL": 172800, "ResourceRecords": [ { "Value": "ns-1536.awsdns-00.co.uk." }, { "Value": "ns-0.awsdns-00.com." }, { "Value": "ns-1024.awsdns-00.org." }, { "Value": "ns-512.awsdns-00.net." } ] }, { "Name": "tutorial.", "Type": "SOA", "TTL": 900, "ResourceRecords": [ { "Value": "ns-1536.awsdns-00.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400" } ] }, { "Name": "myapplication.tutorial.", "Type": "A", "SetIdentifier": "16becc26-8558-4af1-9fbd-f81be062a266", "MultiValueAnswer": true, "TTL": 300, "ResourceRecords": [ { "Value": "172.31.87.2" } ] } ]}

429

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 4: Bersihkan

5. Anda juga dapat mengueri DNS menggunakan dig dari sebuah instans dalam VPC Anda denganperintah berikut:

dig +short myapplication.tutorial

Output:

172.31.87.2

Langkah 4: BersihkanSetelah Anda menyelesaikan tutorial ini, Anda harus membersihkan sumber daya terkait untuk menghindaritimbulnya biaya untuk sumber daya yang tidak digunakan.

Untuk membersihkan contoh penemuan layanan dan sumber daya Amazon ECS

1. Deregister contoh layanan penemuan layanan:

aws servicediscovery deregister-instance --service-id srv-utcrh6wavdkggqtk --instance-id 16becc26-8558-4af1-9fbd-f81be062a266 --region us-east-1

Output:

{ "OperationId": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv"}

2. MenggunakanOperationIddari output sebelumnya, verifikasi bahwa instans layanan penemuanlayanan berhasil dibatalkan pendaftarannya:

aws servicediscovery get-operation --operation-id xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv --region us-east-1

Output:

{ "Operation": { "Id": "xhu73bsertlyffhm3faqi7kumsmx274n-jh0zimzv", "Type": "DEREGISTER_INSTANCE", "Status": "SUCCESS", "CreateDate": 1525984073.707, "UpdateDate": 1525984076.426, "Targets": { "INSTANCE": "16becc26-8558-4af1-9fbd-f81be062a266", "ROUTE_53_CHANGE_ID": "C5NSRG1J4I1FH", "SERVICE": "srv-utcrh6wavdkggqtk" } }}

3. Menghapus layanan penemuan layanan:

aws servicediscovery delete-service --id srv-utcrh6wavdkggqtk --region us-east-1

4. Menghapus namespace penemuan layanan:

430

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Membuat layanan

menggunakan deployment biru/hijau

aws servicediscovery delete-namespace --id ns-uejictsjen2i4eeg --region us-east-1

Output:

{ "OperationId": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj"}

5. MenggunakanOperationIddari output sebelumnya, verifikasi bahwa namespace layanan discoveryberhasil dihapus:

aws servicediscovery get-operation --operation-id c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj --region us-east-1

Output:

{ "Operation": { "Id": "c3ncqglftesw4ibgj5baz6ktaoh6cg4t-jh0ztysj", "Type": "DELETE_NAMESPACE", "Status": "SUCCESS", "CreateDate": 1525984602.211, "UpdateDate": 1525984602.558, "Targets": { "NAMESPACE": "ns-rymlehshst7hhukh", "ROUTE_53_CHANGE_ID": "CJP2A2M86XW3O" } }}

6. Perbarui layanan Amazon ECS sehingga jumlah yang diinginkan0, yang memungkinkan Anda untukmenghapusnya:

aws ecs update-service --cluster tutorial --service ecs-service-discovery --desired-count 0 --force-new-deployment --region us-east-1

7. Menghapus layanan Amazon ECS:

aws ecs delete-service --cluster tutorial --service ecs-service-discovery --region us-east-1

8. Menghapus klaster Amazon ECS:

aws ecs delete-cluster --cluster tutorial --region us-east-1

Tutorial: Membuat layanan menggunakandeployment biru/hijau

Amazon ECS telah mengintegrasikan penerapan biru/hijau ke dalam wizard Buat Layanan di konsolAmazon ECS. Untuk informasi selengkapnya, lihat Membuat layanan Amazon ECS (p. 227).

Tutorial berikut menunjukkan cara membuat layanan Amazon ECS yang berisi tugas Fargate yangmenggunakan tipe deployment biru/hijau denganAWS CLI.

431

Amazon ECS Panduan Pengguna untuk AWS FargatePrasyarat

Note

Dukungan untuk melakukan deployment biru/hijau telah ditambahkan untuk AWS CloudFormation.Untuk informasi selengkapnya, lihatLakukan deployment biru/hijau Amazon ECS melaluiCodeDeploy memakaiAWS CloudFormationdi dalamAWS CloudFormationPanduan Pengguna.

PrasyaratTutorial ini mengasumsikan bahwa Anda telah menyelesaikan prasyarat berikut:

• Versi terbaru dari AWS CLI diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentangmeningkatkan atau menginstal AWS CLI, lihat Instalasi AWS Command Line Interface.

• Langkah dalam Siapkan untuk menggunakan Amazon ECS (p. 4) telah selesai.• KlasterAWSpengguna memiliki izin yang diperlukan ditentukan dalamIzin wizard yang dijalankan pertama

Amazon ECS (p. 340)Contoh kebijakan IAM.• Anda memiliki VPC dan grup keamanan yang dibuat untuk digunakan. Untuk informasi selengkapnya,

lihat the section called “Buat virtual private cloud” (p. 6).• Amazon ECS CodeDeploy Peran IAM dibuat. Untuk informasi selengkapnya, lihat Amazon ECS

CodeDeploy IAM Role (p. 374).

Langkah 1: Membuat Application Load BalancerLayanan Amazon ECS yang menggunakan tipe deployment biru/hijau mengharuskan penggunaanApplication Load Balancer atau Network Load Balancer. Tutorial ini menggunakan Application LoadBalancer.

Untuk membuat Application Load Balancer

1. Gunakanmembuat-beban-penyeimbangperintah untuk membuat Application Load Balancer. Tentukandua subnet yang bukan dari Availability Zone serta grup keamanan yang sama.

aws elbv2 create-load-balancer \ --name bluegreen-alb \ --subnets subnet-abcd1234 subnet-abcd5678 \ --security-groups sg-abcd1234 \ --region us-east-1

Ouput tersebut mencakup Amazon Resource Name (ARN) dari penyeimbang beban, dengan formatberikut:

arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642

2. Gunakan perintah create-target-group untuk membuat grup target. Grup target ini akan merutekan lalulintas ke tugas asli yang ditetapkan dalam layanan Anda.

aws elbv2 create-target-group \ --name bluegreentarget1 \ --protocol HTTP \ --port 80 \ --target-type ip \ --vpc-id vpc-abcd1234 \ --region us-east-1

Output termasuk ARN dari grup target, dengan format berikut:

432

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Membuat klaster Amazon ECS

arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4

3. Menggunakan perintah create-listener untuk membuat listener penyeimbang beban dengan aturandefault yang meneruskan permintaan ke grup target.

aws elbv2 create-listener \ --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \ --protocol HTTP \ --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 \ --region us-east-1

Output tersebut mencakup ARN listener, dengan format berikut:

arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4

Langkah 2: Membuat klaster Amazon ECSGunakan perintah create-cluster untuk membuat sebuah klaster bernama tutorial-bluegreen-cluster untuk digunakan.

aws ecs create-cluster \ --cluster-name tutorial-bluegreen-cluster \ --region us-east-1

Output tersebut mencakup klaster ARN, dengan format berikut:

arn:aws:ecs:region:aws_account_id:cluster/tutorial-bluegreen-cluster

Langkah 3: Mendaftarkan ketentuan tugasGunakanregister-task-definitionperintah untuk mendaftarkan ketentuan tugas yang kompatibel denganFargate. Hal ini membutuhkan penggunaan mode jaringan awsvpc. Berikut ini adalah contoh ketentuantugas yang digunakan untuk tutorial ini.

Pertama, buat file bernama fargate-task.json dengan isi berikut. Pastikan bahwa Anda menggunakanARN untuk peran eksekusi tugas Anda. Untuk informasi selengkapnya, lihat Peran IAM eksekusi tugasECS Amazon (p. 363).

{ "family": "tutorial-task-def", "networkMode": "awsvpc", "containerDefinitions": [ { "name": "sample-app", "image": "httpd:2.4", "portMappings": [ { "containerPort": 80,

433

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 4: Membuat layanan Amazon ECS

"hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "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\"" ] } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512", "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"}

Kemudian daftarkan ketentuan tugas menggunakan file fargate-task.json yang Anda buat.

aws ecs register-task-definition \ --cli-input-json file://fargate-task.json \ --region us-east-1

Langkah 4: Membuat layanan Amazon ECSGunakan perintah create-service untuk membuat layanan.

Pertama, buat file bernama service-bluegreen.json dengan konten berikut.

{ "cluster": "tutorial-bluegreen-cluster", "serviceName": "service-bluegreen", "taskDefinition": "tutorial-task-def", "loadBalancers": [ { "targetGroupArn": "arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4", "containerName": "sample-app", "containerPort": 80 } ], "launchType": "FARGATE", "schedulingStrategy": "REPLICA", "deploymentController": { "type": "CODE_DEPLOY" }, "platformVersion": "LATEST", "networkConfiguration": { "awsvpcConfiguration": { "assignPublicIp": "ENABLED", "securityGroups": [ "sg-abcd1234" ], "subnets": [ "subnet-abcd1234", "subnet-abcd5678" ] }

434

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 5: BuatAWS CodeDeploysumber daya

}, "desiredCount": 1}

Kemudian buat layanan Anda menggunakan file service-bluegreen.json yang Anda buat.

aws ecs create-service \ --cli-input-json file://service-bluegreen.json \ --region us-east-1

Output tersebut mencakup ARN layanan, dengan format berikut:

arn:aws:ecs:region:aws_account_id:service/service-bluegreen

Langkah 5: BuatAWS CodeDeploysumber dayaGunakan langkah-langkah berikut untuk membuat CodeDeploy aplikasi, kelompok target Application LoadBalancer untuk CodeDeploy grup penyebaran, dan CodeDeploy grup deployment.

Membuat CodeDeploy sumber daya

1. Gunakanmembuat-aplikasiperintah untuk membuat CodeDeploy aplikasi. Tentukan platform komputasiECS.

aws deploy create-application \ --application-name tutorial-bluegreen-app \ --compute-platform ECS \ --region us-east-1

Output termasuk ID aplikasi, dengan format berikut:

{ "applicationId": "b8e9c1ef-3048-424e-9174-885d7dc9dc11"}

2. Gunakanmembuat-target-kelompokperintah untuk membuat grup target Application Load Balancerkedua, yang akan digunakan saat membuat CodeDeploy grup deployment.

aws elbv2 create-target-group \ --name bluegreentarget2 \ --protocol HTTP \ --port 80 \ --target-type ip \ --vpc-id "vpc-0b6dd82c67d8012a1" \ --region us-east-1

Output termasuk ARN untuk grup target, dengan format berikut:

arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/708d384187a3cfdc

3. Gunakanmenciptakan-penyebaran kelompokperintah untuk membuat CodeDeploy grup deployment.

Pertama, buat file bernama tutorial-deployment-group.json dengan konten berikut. Contohini menggunakan sumber daya yang Anda buat. UntukserviceRoleArn, tentukan ARN AmazonECS CodeDeploy IAM role. Untuk informasi selengkapnya, lihat Amazon ECS CodeDeploy IAMRole (p. 374).

435

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 5: BuatAWS CodeDeploysumber daya

{ "applicationName": "tutorial-bluegreen-app", "autoRollbackConfiguration": { "enabled": true, "events": [ "DEPLOYMENT_FAILURE" ] }, "blueGreenDeploymentConfiguration": { "deploymentReadyOption": { "actionOnTimeout": "CONTINUE_DEPLOYMENT", "waitTimeInMinutes": 0 }, "terminateBlueInstancesOnDeploymentSuccess": { "action": "TERMINATE", "terminationWaitTimeInMinutes": 5 } }, "deploymentGroupName": "tutorial-bluegreen-dg", "deploymentStyle": { "deploymentOption": "WITH_TRAFFIC_CONTROL", "deploymentType": "BLUE_GREEN" }, "loadBalancerInfo": { "targetGroupPairInfoList": [ { "targetGroups": [ { "name": "bluegreentarget1" }, { "name": "bluegreentarget2" } ], "prodTrafficRoute": { "listenerArns": [ "arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4" ] } } ] }, "serviceRoleArn": "arn:aws:iam::aws_account_id:role/ecsCodeDeployRole", "ecsServices": [ { "serviceName": "service-bluegreen", "clusterName": "tutorial-bluegreen-cluster" } ]}

Kemudian membuat CodeDeploy grup deployment.

aws deploy create-deployment-group \ --cli-input-json file://tutorial-deployment-group.json \ --region us-east-1

Output termasuk ID grup deployment, dengan format berikut:

{ "deploymentGroupId": "6fd9bdc6-dc51-4af5-ba5a-0a4a72431c88"}

436

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 6: Membuat dan

memantau penyebaran CodeDeploy

Langkah 6: Membuat dan memantau penyebaranCodeDeployGunakan langkah-langkah berikut untuk membuat dan mengunggah file spesifikasi aplikasi (File AppSpec)dan CodeDeploy deployment.

Untuk membuat dan memantau CodeDeploy deployment

1. Membuat dan mengunggah AppSpec menggunakan langkah-langkah berikut.

a. Buat file bernama appspec.yaml dengan isi grup deployment CodeDeploy . Contoh inimenggunakan sumber daya yang Anda buat sebelumnya dalam tutorial.

version: 0.0Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition: "arn:aws:ecs:region:aws_account_id:task-definition/first-run-task-definition:7" LoadBalancerInfo: ContainerName: "sample-app" ContainerPort: 80 PlatformVersion: "LATEST"

b. Gunakans3 mbperintah untuk membuat bucket Amazon S3 untuk AppSpec berkas.

aws s3 mb s3://tutorial-bluegreen-bucket

c. GunakanS3perintah untuk mengunggah AppSpec file ke bucket Amazon S3.

aws s3 cp ./appspec.yaml s3://tutorial-bluegreen-bucket/appspec.yaml

2. Buat CodeDeploy deployment menggunakan langkah-langkah berikut.

a. Membuat file bernamacreate-deployment.jsondengan isi CodeDeploy deployment. Contohini menggunakan sumber daya yang Anda buat sebelumnya dalam tutorial.

{ "applicationName": "tutorial-bluegreen-app", "deploymentGroupName": "tutorial-bluegreen-dg", "revision": { "revisionType": "S3", "s3Location": { "bucket": "tutorial-bluegreen-bucket", "key": "appspec.yaml", "bundleType": "YAML" } }}

b. Gunakan perintah create-deployment untuk membuat deployment.

aws deploy create-deployment \ --cli-input-json file://create-deployment.json \ --region us-east-1

Output termasuk ID deployment, dengan format berikut:

437

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 6: Membuat dan

memantau penyebaran CodeDeploy

{ "deploymentId": "d-RPCR1U3TW"}

c. Gunakan perintah get-deployment-target untuk mendapatkan detail deployment, menentukandeploymentId dari output sebelumnya.

aws deploy get-deployment-target \ --deployment-id "d-IMJU3A8TW" \ --target-id tutorial-bluegreen-cluster:service-bluegreen \ --region us-east-1

Lanjutkan untuk mengambil detail deployment sampai status Succeeded, seperti yangditunjukkan dalam output berikut.

{ "deploymentTarget": { "deploymentTargetType": "ECSTarget", "ecsTarget": { "deploymentId": "d-RPCR1U3TW", "targetId": "tutorial-bluegreen-cluster:service-bluegreen", "targetArn": "arn:aws:ecs:region:aws_account_id:service/service-bluegreen", "lastUpdatedAt": 1543431490.226, "lifecycleEvents": [ { "lifecycleEventName": "BeforeInstall", "startTime": 1543431361.022, "endTime": 1543431361.433, "status": "Succeeded" }, { "lifecycleEventName": "Install", "startTime": 1543431361.678, "endTime": 1543431485.275, "status": "Succeeded" }, { "lifecycleEventName": "AfterInstall", "startTime": 1543431485.52, "endTime": 1543431486.033, "status": "Succeeded" }, { "lifecycleEventName": "BeforeAllowTraffic", "startTime": 1543431486.838, "endTime": 1543431487.483, "status": "Succeeded" }, { "lifecycleEventName": "AllowTraffic", "startTime": 1543431487.748, "endTime": 1543431488.488, "status": "Succeeded" }, { "lifecycleEventName": "AfterAllowTraffic", "startTime": 1543431489.152, "endTime": 1543431489.885, "status": "Succeeded" } ],

438

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 7: Membersihkan

"status": "Succeeded", "taskSetsInfo": [ { "identifer": "ecs-svc/9223370493425779968", "desiredCount": 1, "pendingCount": 0, "runningCount": 1, "status": "ACTIVE", "trafficWeight": 0.0, "targetGroup": { "name": "bluegreentarget1" } }, { "identifer": "ecs-svc/9223370493423413672", "desiredCount": 1, "pendingCount": 0, "runningCount": 1, "status": "PRIMARY", "trafficWeight": 100.0, "targetGroup": { "name": "bluegreentarget2" } } ] } }}

Langkah 7: MembersihkanBila Anda telah menyelesaikan tutorial ini, bersihkan sumber daya yang terkait dengannya untukmenghindari biaya untuk sumber daya yang tidak Anda gunakan.

Membersihkan sumber daya tutorial

1. Gunakanmenghapus-deployment-kelompokperintah untuk menghapus CodeDeploy grup deployment.

aws deploy delete-deployment-group \ --application-name tutorial-bluegreen-app \ --deployment-group-name tutorial-bluegreen-dg \ --region us-east-1

2. Gunakanmenghapus-aplikasiperintah untuk menghapus CodeDeploy aplikasi.

aws deploy delete-application \ --application-name tutorial-bluegreen-app \ --region us-east-1

3. Gunakandelete-serviceperintah untuk menghapus layanan Amazon ECS. Menggunakan bendera --force mengizinkan Anda untuk menghapus layanan bahkan jika itu tidak menurunkan skala ke tugasnol.

aws ecs delete-service \ --service arn:aws:ecs:region:aws_account_id:service/service-bluegreen \ --force \ --region us-east-1

4. Gunakanmenghapus-klusterperintah untuk menghapus klaster Amazon ECS.

439

Amazon ECS Panduan Pengguna untuk AWS FargateTutorial: Mendengarkan Amazon ECS CloudWatch Peristiwa

aws ecs delete-cluster \ --cluster tutorial-bluegreen-cluster \ --region us-east-1

5. Gunakanrmperintah untuk menghapus AppSpec file dari bucket Amazon S3.

aws s3 rm s3://tutorial-bluegreen-bucket/appspec.yaml

6. GunakanS3 rbperintah untuk menghapus bucket Amazon S3.

aws s3 rb s3://tutorial-bluegreen-bucket

7. Gunakanmenghapus-penyeimbang bebanperintah untuk menghapus Application Load Balancer.

aws elbv2 delete-load-balancer \ --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \ --region us-east-1

8. Gunakangrup targetperintah untuk menghapus dua kelompok target Application Load Balancer.

aws elbv2 delete-target-group \ --target-group-arn arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 \ --region us-east-1

aws elbv2 delete-target-group \ --target-group-arn arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/708d384187a3cfdc \ --region us-east-1

Tutorial: Mendengarkan Amazon ECS CloudWatchPeristiwa

Dalam tutorial ini, Anda mengatur hal sederhanaAWS Lambdafungsi yang mendengarkan peristiwa tugasAmazon ECS dan menuliskannya ke CloudWatch Log aliran log.

Prasyarat: Atur klaster pengujianJika Anda tidak memiliki klaster yang berjalan untuk menangkap peristiwa, ikuti langkah-langkah dalamMembuat klaster menggunakan konsol klasik (p. 74) untuk membuat klaster. Pada akhir tutorial ini, Andamenjalankan tugas di klaster ini untuk menguji bahwa Anda telah mengonfigurasi fungsi Lambda Andadengan benar.

Langkah 1: Buat fungsi LambdaDalam prosedur ini, Anda membuat fungsi Lambda sederhana untuk melayani sebagai target untuk pesanalur peristiwa Amazon ECS.

440

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Mendaftarkan aturan peristiwa

1. Buka konsol AWS Lambda tersebut di https://console.aws.amazon.com/lambda/.2. Pilih Buat fungsi.3. Pada layar Tulis dari awal, lakukan hal berikut:

a. Untuk Nama, masukkan nilai.b. UntukWaktu pengoperasian, pilih versi Python Anda, misalnya,Python 3.9.c. Untuk Peran, pilih Buat peran baru dengan izin Lambda dasar.

4. Pilih Buat fungsi.5. Di bagian Kode fungsi, edit kode sampel untuk mencocokkan contoh berikut:

import json

def lambda_handler(event, context): if event["source"] != "aws.ecs": raise ValueError("Function only supports input from events with a source type of: aws.ecs") print('Here is the event:') print(json.dumps(event))

Ini adalah fungsi Python 3.9 sederhana yang mencetak peristiwa yang dikirim oleh Amazon ECS. Jikasemuanya dikonfigurasi dengan benar, di akhir tutorial ini, detail peristiwa akan muncul di CloudWatchLog stream yang dikaitkan dengan fungsi Lambda ini.

6. Pilih Simpan.

Langkah 2: Mendaftarkan aturan peristiwaSelanjutnya, Anda membuat CloudWatch Aturan peristiwa yang menangkap peristiwa tugas yang datangdari klaster Amazon ECS Anda. Aturan ini menangkap semua peristiwa dari semua klaster dalam akunyang ditentukan. Pesan tugas sendiri berisi informasi sumber peristiwa, termasuk klaster tempat klasterberada, yang dapat Anda gunakan untuk memfilter dan mengurutkan peristiwa secara terprogram.

Note

Saat Anda menggunakanAWS Management Consoleuntuk membuat aturan peristiwa, konsolsecara otomatis menambahkan izin IAM yang diperlukan untuk diberikan CloudWatch Peristiwaizin untuk memanggil fungsi Lambda Anda. Jika Anda membuat aturan peristiwa menggunakanAWS CLI, Anda harus memberikan izin ini secara eksplisit. Untuk informasi selengkapnya,lihatPola Peristiwa dan Peristiwadi dalamAmazon CloudWatch Panduan Pengguna Acara.

Untuk merutekan peristiwa ke fungsi Lambda Anda

1. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.2. Di panel navigasi, pilih Peristiwa, Aturan, Buat aturan.3. Untuk Sumber Peristiwa, pilih ECS sebagai sumber peristiwa. Secara default, aturan berlaku untuk

semua peristiwa Amazon ECS untuk semua grup Amazon ECS Anda. Atau, Anda dapat memilihperistiwa tertentu atau grup Amazon ECS tertentu.

4. UntukTarget, chooseTambahkan target, untukJenis target, chooseFungsi Lambda, lalu pilih fungsiLambda Anda.

5. Pilih Konfigurasikan detail.6. Untuk Definisi aturan, tuliskan nama dan deskripsi untuk aturan Anda dan pilih Buat aturan.

441

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Uji aturan Anda

Langkah 3: Uji aturan AndaAkhirnya, Anda membuat CloudWatch Aturan peristiwa yang menangkap peristiwa tugas yang datang dariklaster Amazon ECS Anda. Aturan ini menangkap semua peristiwa dari semua klaster dalam akun yangditentukan. Pesan tugas berisi informasi tentang sumber peristiwa, termasuk klaster tempat klaster berada,yang dapat Anda gunakan untuk memfilter dan mengurutkan peristiwa secara terprogram.

Menguji aturan Anda

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih Klaster, default.3. Pada layar Klaster: default, pilih Tugas, Jalankan Tugas baru.4. Untuk Ketentuan tugas, pilih versi terbaru console-sample-app-static kemudian pilih Jalankan Tugas.5. Buka CloudWatch konsol dihttps://console.aws.amazon.com/cloudwatch/.6. Di panel navigasi, pilih Logs (Log) dan pilih grup log untuk fungsi Lambda Anda (misalnya, /aws/

lambda/my-function).7. Pilih stream log untuk melihat data peristiwa.

Tutorial: Mengirim pemberitahuan Amazon SimpleNotification Service untuk peristiwa yang dihentikantugas

Dalam tutorial ini, Anda mengonfigurasi Amazon EventBridge Aturan peristiwa yang hanya menangkapperistiwa tugas di mana tugas telah berhenti berjalan karena salah satu kontainer penting telah dihentikan.Peristiwa ini hanya mengirimkan peristiwa tugas dengan spesifikstoppedReasonproperti topik AmazonSNS yang ditunjuk.

Prasyarat: Atur klaster pengujianJika Anda tidak memiliki klaster yang berjalan untuk menangkap peristiwa, ikuti langkah-langkah dalamMembuat klaster menggunakan konsol klasik (p. 74) untuk membuat klaster. Pada akhir tutorial ini, Andamenjalankan tugas di klaster ini untuk menguji bahwa Anda telah mengonfigurasi topik Amazon SNS Andadan EventBridge aturan dengan benar.

Langkah 1: Membuat dan berlangganan topik AmazonSNSUntuk tutorial ini, Anda mengonfigurasi topik Amazon SNS yang berfungsi sebagai target peristiwa untukaturan peristiwa baru Anda.

Untuk informasi tentang cara membuat dan berlangganan ke topik Amazon SNS, lihatMemulai denganAmazon SNSdi dalamPanduan Developer Amazon Simple Notification Servicedan gunakan tabel berikutuntuk menentukan pilihan apa yang harus dipilih.

Opsi Nilai

Tipe Standar

Nama TaskStoppedAlert

442

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 2: Mendaftarkan aturan peristiwa

Opsi Nilai

Protokol Email

Titik Akhir Alamat email yang saat ini Andaakses

Langkah 2: Mendaftarkan aturan peristiwaSelanjutnya, Anda mendaftarkan aturan peristiwa yang hanya menangkap peristiwa yang dihentikan tugasuntuk tugas dengan kontainer yang dihentikan.

Untuk informasi tentang cara membuat dan berlangganan ke topik Amazon SNS, lihatBuat aturan diAmazon EventBridgedi dalamAmazon EventBridge Panduan Penggunadan gunakan tabel berikut untukmenentukan pilihan apa yang harus dipilih.

Opsi Nilai

Jenis aturan Aturan dengan pola peristiwa

Sumber peristiwa AWSperistiwa atau EventBridgeacara mitra

Pola peristiwa Pola kustom (editor JSON)

Pola peristiwa{ "source":[ "aws.ecs" ], "detail-type":[ "ECS Task State Change" ], "detail":{ "lastStatus":[ "STOPPED" ], "stoppedReason":[ "Essential container in task exited" ] }}

Tipe target AWS layanan

Target Topik SNS

Topik TaskStopPedalert (Topik yangAnda buat di Langkah 1)

Langkah 3: Uji aturan AndaVerifikasi bahwa aturan bekerja dengan menjalankan tugas yang keluar segera setelah dimulai. Jika aturanperistiwa Anda dikonfigurasi dengan benar, Anda menerima pesan email dalam beberapa menit denganteks peristiwa. Jika Anda memiliki ketentuan tugas yang sudah ada yang dapat memenuhi persyaratan

443

Amazon ECS Panduan Pengguna untuk AWS FargateLangkah 3: Uji aturan Anda

aturan, jalankan tugas dengan menggunakannya. Jika tidak memilikinya, langkah-langkah berikut akanmemandu Anda mendaftarkan ketentuan tugas Fargate dan menjalankannya.

Menguji aturan

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pilih Ketentuan tugas, Buat Ketentuan tugas baru.3. Untuk Pilih kompatibilitas tipe peluncuran, pilih FARGATE, Langkah selanjutnya.4. Pilih Konfigurasi melalui JSON, salin dan tempel JSON ketentuan tugas berikut ke bidang dan pilih

Simpan.

{ "containerDefinitions":[ { "command":[ "sh", "-c", "sleep 5" ], "essential":true, "image":"amazonlinux:2", "name":"test-sleep" } ], "cpu":"256", "executionRoleArn":"arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "family":"fargate-task-definition", "memory":"512", "networkMode":"awsvpc", "requiresCompatibilities":[ "FARGATE" ]}

5. Pilih Buat, Lihat ketentuan tugas.6. Untuk Tindakan, pilih Jalankan Tugas.7. Untuk tipe Peluncuran, pilih FARGATE. Untuk Grup keamanan dan VPC, pilih VPC dan Subnet untuk

tugas yang akan digunakan, lalu pilih Jalankan Tugas.8. Untuk Nama kontainer, ketikkan Wordpress, untuk Citra, ketikkan wordpress, dan untuk Memori

maksimum (MB), ketikkan 128.9. Pada tab Tugas untuk klaster Anda, pilih ikon segarkan secara berkala hingga Anda tidak lagi melihat

tugas Anda berjalan. Untuk memverifikasi bahwa tugas Anda telah berhenti, untuk Status tugas yangdiinginkan, pilih Dihentikan.

10. Periksa email Anda untuk mengonfirmasi bahwa Anda telah menerima pemberitahuan email untukmengetahui notifikasi yang dihentikan.

444

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan Amazon ECS Exec untuk melakukan debug

Pemecahan masalah Amazon ECSAnda mungkin perlu memecahkan masalah penyeimbang beban, tugas, layanan, atau instans kontainer.Bab ini membantu Anda untuk menemukan informasi diagnostik dari agen kontainer Amazon ECS, daemonDocker pada instans kontainer, dan log acara layanan di konsol Amazon ECS.

Topik• Menggunakan Amazon ECS Exec untuk melakukan debug (p. 445)• Memeriksa tugas yang telah dihentikan untuk kesalahan (p. 454)• Kode kesalahan tugas yang berhenti (p. 456)• Kesalahan pada tugas CannotPullContainer (p. 460)• Pesan peristiwa layanan (p. 463)• Penentuan nilai CPU atau memori tidak valid (p. 466)• Pemecahan permasalahan terhadap layanan penyeimbang beban (p. 467)• Pemecahan Masalah layanan Auto Scaling (p. 468)• AWS Fargatekuota throttling (p. 468)• Alasan kegagalan API (p. 469)

Menggunakan Amazon ECS Exec untuk melakukandebug

Dengan Amazon ECS Exec, Anda dapat berinteraksi secara langsung dengan kontainer tanpa perluterlebih dahulu berinteraksi dengan sistem operasi kontainer host, membuka port masuk, atau mengelolakunci SSH. Anda dapat menggunakan ECS Exec untuk menjalankan perintah atau mendapatkan shellke kontainer yang berjalan di instans Amazon EC2 atau diAWS Fargate. Hal tersebut mempermudahpengumpulan informasi diagnostik dan memecahkan masalah kesalahan dengan cepat. Misalnya, dalamkonteks pengembangan, Anda dapat menggunakan ECS Exec untuk berinteraksi dengan berbagai prosesdi kontainer Anda dengan mudah dan memecahkan masalah aplikasi Anda. Dan, dalam skenario produksi,Anda dapat menggunakannya untuk mendapatkan akses break-glass ke kontainer Anda untuk men-debugmasalah.

Anda dapat menjalankan perintah dalam wadah Linux atau Windows yang berjalan menggunakan ECSExec dari API Amazon ECS,AWS Command Line Interface(AWS CLI),AWSSDK, atauAWSKopilot CLI.Untuk rincian tentang penggunaan ECS Exec, serta video walkthrough, menggunakanAWSKopilot CLI,lihatDokumentasi Copilot Github.

Anda juga dapat menggunakan ECS Exec untuk mempertahankan kebijakan kontrol akses yang lebih ketatdan akses kontainer audit. Dengan mengaktifkan fitur ini secara selektif, Anda dapat mengendalikan siapayang dapat menjalankan perintah dan ditugas mana mereka dapat menjalankan perintah tersebut. Denganlog dari setiap perintah dan outputnya, Anda dapat menggunakan ECS Exec untuk meng-audit tugas yangdijalankan dan Anda dapat menggunakan CloudTrail untuk mengaudit siapa yang mengakses wadah.

ArsitekturECS Exec memanfaatkanAWS Systems Manager(SSM) Session Manager untuk membuat koneksidengan wadah berjalan dan menggunakanAWS Identity and Access Management(IAM) kebijakan untukmengontrol akses ke menjalankan perintah dalam wadah berjalan. Hal ini dimungkinkan dengan mengikatpemasangan biner SSM agent yang diperlukan ke dalam kontainer. Amazon ECS atauAWS Fargateagen

445

Amazon ECS Panduan Pengguna untuk AWS FargatePertimbangan untuk menggunakan ECS Exec

bertanggung jawab untuk memulai agen inti SSM di dalam kontainer bersama kode aplikasi Anda. Untukinformasi selengkapnya, lihatManajer Sesi Systems Manager.

Anda dapat mengaudit pengguna mana yang mengakses kontainer menggunakanAWS CloudTraildan logsetiap perintah (dan output mereka) ke Amazon S3 atau Amazon CloudWatch Log. Untuk mengenkripsidata antara klien lokal dan kontainer dengan kunci enkripsi Anda sendiri, Anda harus menyediakan kunciAWS Key Management Service (AWS KMS).

Pertimbangan untuk menggunakan ECS ExecUntuk topik ini, Anda harus terbiasa dengan aspek berikut yang terlibat dengan penggunaan ECS Exec:

• ECS Exec didukung untukAWSFargate, instans eksternal (ECS Anywhere), kontainer Linux yangdihosting di Amazon EC2 dan AMI yang dioptimalkan Windows Amazon ECS berikut (dengan versi agenkontainer1.56atau yang lebih baru):• AMI Windows Server 2022 yang dioptimalkan untuk Amazon ECS• AMI Windows Server 2022 Core yang dioptimalkan untuk Amazon ECS• AMI Windows Server 2019 yang dioptimalkan untuk Amazon ECS• AMI Windows Server 2019 Core yang dioptimalkan untuk Amazon ECS• AMI Windows Server 20H2 Core yang dioptimalkan untuk Amazon ECS

• ECS Exec saat ini tidak didukung menggunakanAWS Management Console.• ECS Exec saat ini tidak didukung untuk tugas-tugas yang diluncurkan menggunakan penyedia kapasitas

grup Auto Scaling.• Jika Anda menggunakan titik akhir Amazon VPC dengan Amazon ECS, Anda harus membuat antarmuka

akhir Amazon VPC untuk Pengelola Sesi Sistem. Untuk informasi selengkapnya, lihat Buat endpoint VPCManajer Sesi Systems Manager saat menggunakan fitur ECS Exec (p. 388).

• Anda tidak dapat mengaktifkan ECS Exec untuk tugas yang ada. ECS Exec hanya dapat diaktifkan untuktugas baru.

• Ketika pengguna menjalankan perintah pada kontainer menggunakan ECS Exec, perintah ini dijalankansebagairootpengguna. Agen SSM dan proses anaknya berjalan sebagai root bahkan ketika Andamenentukan ID pengguna untuk kontainer.

• Sesi ECS Exec memiliki waktu tunggu idle default 20 menit. Untuk informasi selengkapnya, lihatTentukannilai waktu habis sesi idledi dalamAWS Systems ManagerPanduan Pengguna.

• Agen SSM mengharuskan bahwa sistem file kontainer dapat ditulis untuk membuat direktori dan file yangdiperlukan. Oleh karena itu, membuat sistem file root hanya-baca menggunakan parameter ketentuantugas readonlyRootFilesystem, atau metode lainnya, tidak didukung.

• Pengguna dapat menjalankan semua perintah yang tersedia dalam konteks kontainer. Tindakanberikut mungkin mengakibatkan proses tanpa induk dan zombie: mengakhiri proses utama kontainer,mengakhiri agen perintah, dan menghapus dependensi. Untuk membersihkan proses zombie, sebaiknyatambahkan flag initProcessEnabled untuk ketentuan tugas Anda.

• Saat memulai sesi SSM di luarexecute-commandTindakan ini dimungkinkan, hal ini mengakibatkansesi yang tidak dicatat dan dihitung terhadap batas sesi. Sebaiknya batasi akses ini denganmenolakssm:start-sessiontindakan menggunakan kebijakan IAM. Untuk informasi selengkapnya,lihat Membatasi akses ke tindakan Memulai Sesi (p. 453).

• ECS Exec akan menggunakan beberapa CPU dan memory. Anda akan ingin mengakomodasinya saatmenentukan alokasi sumber daya CPU dan memori dalam ketentuan tugas Anda.

• Anda harus menggunakanAWS CLIversi1.22.3atau yang lebih baru atauAWS CLIversi2.3.6atau yanglebih baru. Untuk informasi tentang cara memperbaruiAWS CLI, lihatMenginstal atau memperbarui versiterbaruAWS CLIdi dalamAWS Command Line InterfacePanduan Pengguna Versi 2.

• Anda tidak dapat menggunakan ECS Exec saat Anda menggunakanrun-taskuntuk meluncurkan tugaspada klaster yang menggunakan penskalaan terkelola dengan penempatan asinkron (meluncurkan tugastanpa instance).

446

Amazon ECS Panduan Pengguna untuk AWS FargatePrasyarat untuk menggunakan ECS Exec

• Anda tidak dapat menjalankan ECS Exec terhadap kontainer Microsoft Nano Server. Untuk informasiselengkapnya tentang kontainer Nano Server, lihatServer Nanodi situs web Docker.

Prasyarat untuk menggunakan ECS ExecSebelum Anda mulai menggunakan ECS Exec, pastikan bahwa Anda telah menyelesaikan tindakan ini:

• Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat AWS CLI.• Instal plugin Pengelola Sesi untuk AWS CLI. Untuk informasi selengkapnya, lihat Instal plugin Pengelola

Sesi untuk AWS CLI.• ECS Exec memiliki persyaratan versi tergantung pada apakah tugas Anda di-hosting di Amazon EC2

atauAWS Fargate:• Jika Anda menggunakan Amazon EC2, Anda harus menggunakan AMI yang dioptimalkan Amazon

ECS yang dirilis setelah 20 Januari 2021, dengan versi agen 1.50.2 atau yang lebih besar. Untukinformasi selengkapnya, lihat AMI yang dioptimalkan Amazon ECS.

• Jika Anda menggunakanAWS Fargate, Anda harus menggunakan versi platform1.4.0atau lebih tinggi(Linux) atau1.0.0(Jendela). Untuk informasi selengkapnya, lihat Versi platform AWS Fargate.

Mengaktifkan dan menggunakan ECS ExecIzin IAM yang diperlukan untuk ECS ExecFitur ECS Exec memerlukan peran IAM untuk memberikan kontainer izin yang diperlukan untukkomunikasi antara agen SSM yang terkelola (execute-commandagen) dan layanan SSM. Untuk informasiselengkapnya, lihatPeran IAM tugas Amazon ECS. Anda harus menambahkan izin berikut ke peran IAMtugas dan menyertakan peran IAM tugas Anda. Untuk informasi selengkapnya, lihat Menambahkan danMenghapus Kebijakan IAM.

Gunakan kebijakan berikut untuk peran IAM tugas Anda untuk menambahkan izin SSM yang diperlukan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": "*" } ]}

Perubahan ketentuan tugas opsionalJika Anda menetapkan parameter ketentuan tugas initProcessEnabled ke true, tindakan ini memulaiproses unit dalam kontainer, yang menghapus setiap proses anak SSM agent zombie yang ditemukan.Contoh disediakan seperti berikut.

{ "taskRoleArn": "ecsTaskRole", "networkMode": "awsvpc",

447

Amazon ECS Panduan Pengguna untuk AWS FargateMengaktifkan dan menggunakan ECS Exec

"requiresCompatibilities": [ "EC2", "FARGATE" ], "executionRoleArn": "ecsTaskExecutionRole", "memory": ".5 gb", "cpu": ".25 vcpu", "containerDefinitions": [ { "name": "amazon-linux", "image": "amazonlinux:latest", "essential": true, "command": ["sleep","3600"], "linuxParameters": { "initProcessEnabled": true } } ], "family": "ecs-exec-task"}

Mengaktifkan ECS Exec untuk tugas dan layananAnda dapat mengaktifkan fitur ECS Exec untuk layanan Anda dan tugas mandiri denganmenentukan--enable-execute-commandflag saat menggunakan salah satu langkah berikutAWSCLIperintah:create-service,update-service,start-task, ataurun-task.

Misalnya, jika Anda menjalankan perintah berikut, fitur ECS Exec diaktifkan untuk layanan yang barudibuat. Untuk informasi selengkapnya tentang membuat layanan, lihat buat-layanan.

aws ecs create-service \ --cluster cluster-name \ --task-definition task-definition-name \ --enable-execute-command \ --service-name service-name \ --desired-count 1

Setelah Anda mengaktifkan ECS Exec untuk tugas, Anda dapat menjalankan perintah berikut untukmengonfirmasi tugas yang siap untuk digunakan. Jika properti lastStatus dari ExecuteCommandAgentterdaftar sebagai RUNNING dan properti enableExecuteCommand diatur ke true, maka tugas Andasudah siap.

aws ecs describe-tasks \ --cluster cluster-name \ --tasks task-id

Potongan output berikut adalah contoh apa yang mungkin Anda lihat.

{ "tasks": [ { ... "containers": [ { ... "managedAgents": [ { "lastStartedAt": "2021-03-01T14:49:44.574000-06:00", "name": "ExecuteCommandAgent", "lastStatus": "RUNNING" }

448

Amazon ECS Panduan Pengguna untuk AWS FargatePencatatan log dan audit menggunakan ECS Exec

] } ], ... "enableExecuteCommand": true, ... } ]}

Menjalankan perintah menggunakan ECS ExecSetelah Anda telah mengonfirmasi bahwa ExecuteCommandAgent sedang berjalan, Andadapat membuka shell interaktif pada kontainer Anda dengan menggunakan perintah berikut. Jikatugas Anda berisi beberapa kontainer, Anda harus menentukan nama kontainer menggunakan--containerBendera. Amazon ECS hanya mendukung memulai sesi interaktif, jadi Anda harusmenggunakan--interactiveBendera.

Perintah berikut akan menjalankan interaktif/bin/shperintah terhadap kontainer bernamawadah-namauntuk tugas dengan idtask-id.

aws ecs execute-command --cluster cluster-name \ --task task-id \ --container container-name \ --interactive \ --command "/bin/sh"

Pencatatan log dan audit menggunakan ECS ExecMengaktifkan pencatatan dan audit dalam tugas dan layananAmazon ECS menyediakan konfigurasi default untuk perintah logging yang dijalankan menggunakan ECSExec dengan mengirimkan log ke CloudWatch Log menggunakanawslogsdriver log yang dikonfigurasidalam definisi tugas Anda. Jika Anda ingin menyediakan konfigurasi kustom, AWS CLI mendukung flag--configuration untuk kedua perintah create-cluster dan update-cluster. Penting jugauntuk mengetahui bahwa gambar kontainer membutuhkanscriptdancatuntuk diinstal agar log perintahdiunggah dengan benar ke Amazon S3 atau CloudWatch Log. Untuk informasi selengkapnya tentangpembuatan klaster, lihat buat-klaster.

Note

Konfigurasi ini hanya menangani pencatatan sesi execute-command. Konfigurasi tersebut tidakmemengaruhi pencatatan aplikasi Anda.

Contoh berikut membuat layanan dan kemudian mencatat output ke Anda CloudWatch Beberapa catatanLogGroup menamakancloudwatch-log-group-namedan bucket Amazon S3 Anda bernamas3-bucket-name.

Anda harus menggunakanAWS KMSpelanggan berhasil kunci untuk mengenkripsi grup log ketikaAnda mengaturCloudWatchEncryptionEnabledpilihan untuktrue. Untuk informasi tentang caramengenkripsi grup log, lihatEnkripsi data log di CloudWatch Log menggunakanAWS Key ManagementService, diAmazon CloudWatch LogsPanduan Pengguna.

aws ecs create-cluster \ --cluster-name cluster-name \ --configuration executeCommandConfiguration="{ \ kmsKeyId=string, \ logging=OVERRIDE, \ logConfiguration={ \

449

Amazon ECS Panduan Pengguna untuk AWS FargatePencatatan log dan audit menggunakan ECS Exec

cloudWatchLogGroupName=cloudwatch-log-group-name, \ cloudWatchEncryptionEnabled=true, \ s3BucketName=s3-bucket-name, \ s3EncryptionEnabled=true, \ s3KeyPrefix=demo \ } \ }"

Parameterloggingproperti menentukan perilaku kemampuan pencatatan ECS:

• NONE: pencatatan dinonaktifkan• DEFAULT: log dikirim ke driver awslogs yang dikonfigurasi (Jika driver tidak dikonfigurasi, maka log tidak

disimpan.)• OVERRIDE: log dikirim ke Amazon yang disediakan CloudWatch Log LogGroup, bucket Amazon S3, atau

keduanya

Izin IAM yang diperlukan untuk Amazon CloudWatch Pencatatanlog Amazon S3Untuk mengaktifkan pencatatan, role tugas Amazon ECS yang direferensikan dalam ketentuan tugas Andaperlu memiliki izin tambahan. Izin tambahan ini dapat ditambahkan sebagai kebijakan inline untuk perantugas. Hal ini berbeda tergantung pada apakah Anda mengarahkan log Anda ke Amazon CloudWatch Logatau Amazon S3.

Amazon CloudWatch Logs

Contoh kebijakan inline berikut menambahkan Amazon yang diperlukan CloudWatch Izin log.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:region:account-id:log-group:/aws/ecs/cloudwatch-log-group-name:*" } ]}

Amazon S3

Contoh kebijakan inline berikut menambahkan izin Amazon S3 yang diperlukan.

{ "Version": "2012-10-17", "Statement": [ {

450

Amazon ECS Panduan Pengguna untuk AWS FargatePencatatan log dan audit menggunakan ECS Exec

"Effect": "Allow", "Action": [ "s3:GetBucketLocation" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetEncryptionConfiguration" ], "Resource": "arn:aws:s3:::s3-bucket-name" }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": "arn:aws:s3:::s3-bucket-name/*" } ] }

Diperlukan izin IAM untuk enkripsi menggunakan izin AndasendiriAWS KMS key(Kunci KMS)Secara default, data yang ditransfer antara klien lokal Anda dan kontainer menggunakan enkripsi TLS 1.2yang menyediakan AWS. Untuk mengenkripsi data lebih lanjut menggunakan kunci KMS Anda sendiri,Anda harus membuat kunci KMS dan menambahkankms:Decryptizin untuk peran IAM tugas Anda.Izin ini digunakan oleh kontainer Anda untuk mendekripsi data. Untuk informasi selengkapnya tentangmembuat kunci KMS, lihatMembuat kunci.

Anda akan menambahkan kebijakan inling berikut untuk tugas IAM role Anda yang memerlukan izin AWSKMS. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan untuk ECS Exec (p. 447).

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "kms-key-arn" } ]}

Untuk data yang akan dienkripsi menggunakan kunci KMS Anda sendiri, pengguna atau grup yangmenggunakanexecute-commandtindakan harus diberikankms:GenerateDataKeyizin.

Kebijakan contoh berikut untuk pengguna atau grup berisi izin yang diperlukan untuk menggunakan kunciKMS Anda sendiri. Anda harus menentukan Amazon Resource Name (ARN) kunci KMS Anda.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [

451

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan kebijakan IAM untuk

membatasi akses ke ECS Exec

"kms:GenerateDataKey" ], "Resource": "kms-key-arn" } ]}

Menggunakan kebijakan IAM untuk membatasi akseske ECS ExecAnda dapat membatasi akses pengguna ke tindakan API perintah eksekusi dengan menggunakan satuatau beberapa kunci ketentuan kebijakan IAM berikut ini:

• aws:ResourceTag/clusterTagKey

• ecs:ResourceTag/clusterTagKey

• aws:ResourceTag/taskTagKey

• ecs:ResourceTag/taskTagKey

• ecs:container-name

• ecs:cluster

• ecs:task

• ecs:enable-execute-command

Dengan kebijakan IAM contoh berikut, pengguna dapat menjalankan perintah di kontainer yang berjalandalam tugas dengan tag yang memilikienvironmentkunci dandevelopmentnilai dan dalam cluster yangbernamacluster-name.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:ExecuteCommand", "ecs:DescribeTasks" ], "Resource": "arn:aws:ecs:region:aws-account-id:task/cluster-name/*", "Condition": { "StringEquals": { "ecs:ResourceTag/environment": "development" } } } ]}

Dengan contoh kebijakan IAM berikut, pengguna tidak dapat menggunakanexecute-commandAPI ketikanama kontainerproduction-app.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "ecs:ExecuteCommand" ],

452

Amazon ECS Panduan Pengguna untuk AWS FargateMenggunakan kebijakan IAM untuk

membatasi akses ke ECS Exec

"Resource": "*", "Condition": { "StringEquals": { "ecs:container-name": "production-app" } } } ]}

Dengan kebijakan IAM berikut, pengguna hanya dapat meluncurkan tugas saat ECS Exec dinonaktifkan.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ecs:RunTask", "ecs:StartTask", "ecs:CreateService", "ecs:UpdateService" ], "Resource": "*", "Condition": { "StringEquals": { "ecs:enable-execute-command": "false" } } } ]}

Note

Karena tindakan API execute-command hanya berisi sumber daya tugas dan klaster dalamsebuah permintaan, maka yang dievaluasi adalah tanda klaster dan tugas.

Untuk informasi selengkapnya tentang kunci ketentuan kebijakan IAM, lihatTindakan, sumber daya, dankunci kondisi untuk Amazon Elastic Container Servicedi dalamReferensi Otorisasi Layanan.

Membatasi akses ke tindakan Memulai SesiSaat memulai sesi SSM pada kontainer Anda di luar ECS Exec memungkinkan, hal ini berpotensimengakibatkan sesi yang tidak dicatat. Sesi yang dimulai di luar ECS Exec juga dihitung terhadap kuotasesi. Sebaiknya batasi akses ini dengan menolakssm:start-sessiontindakan langsung untuk tugasAmazon ECS Anda menggunakan kebijakan IAM. Anda dapat menolak akses ke semua tugas AmazonECS atau tugas tertentu berdasarkan tanda yang digunakan.

Berikut ini adalah contoh kebijakan IAM yang menolak akses kessm:start-sessiontindakan untuktugas-tugas di semua Daerah dengan nama cluster tertentu. Anda dapat menyertakan wildcard dengancluster-name secara opsional.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "arn:aws:ecs:*:111122223333:task/cluster-name/*" }

453

Amazon ECS Panduan Pengguna untuk AWS FargatePemecahan masalah dengan ECS Exec

]}

Berikut ini adalah contoh kebijakan IAM yang menolak akses kessm:start-sessiontindakan padasumber daya di semua Wilayah ditandai dengan kunci tagTask-Tag-Keydan nilai tagExec-Task.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ssm:StartSession", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Task-Tag-Key": "Exec-Task" } } } ]}

Pemecahan masalah dengan ECS ExecBerikut ini adalah catatan pemecahan masalah untuk membantu mendiagnosis mengapa Anda mungkinmendapatkan kesalahan saat menggunakan ECS Exec.

Verifikasi menggunakan Amazon ECS Exec CheckerSkrip Pemeriksa Amazon ECS menyediakan cara untuk memverifikasi dan memvalidasi bahwa klasterdan tugas Amazon ECS Anda telah memenuhi prasyarat untuk menggunakan fitur ECS Exec. Skrip ExecChecker memverifikasi keduaAWS CLIlingkungan dan klaster dan tugas siap untuk ECS Exec, denganmemanggil berbagai API atas nama Anda. Alat ini memerlukan versi terbaru AWS CLI dan jq tersedia.Untuk informasi selengkapnya, lihatPemeriksa Amazon ECS Execdi GitHub.

Terjadi kesalahan saat memanggil execute-commandJika terjadi kesalahan The execute command failed, berikut ini kemungkinan penyebabnya.

• Tugas tidak memiliki izin yang diperlukan. Verifikasi bahwa ketentuan tugas yang digunakan untukmeluncurkan tugas Anda memiliki peran IAM tugas yang ditentukan dan bahwa peran tersebutmemiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat Izin IAM yang diperlukan untuk ECSExec (p. 447).

• Agen SSM tidak diinstal atau tidak berjalan• Ada antarmuka Amazon VPC endpoint untuk Amazon ECS, tetapi tidak ada satu untuk Manajer Sesi

Systems Manager

Memeriksa tugas yang telah dihentikan untukkesalahan

Jika Anda mengalami kesulitan dalam memulai tugas, tugas Anda mungkin berhenti karena sebuahkesalahan. Contohnya, Anda menjalankan tugas dan tugas menampilkan status PENDING dan kemudianmenghilang. Anda dapat melihat kesalahan tugas yang berhenti seperti ini di konsol Amazon ECS denganmelihat tugas yang berhenti dan memeriksanya untuk pesan kesalahan.

454

Amazon ECS Panduan Pengguna untuk AWS FargateMemeriksa tugas yang telah dihentikan untuk kesalahan

Important

Amazon ECS juga mengirimkan peristiwa perubahan pada keadaan tugas ke EventBridge, yangdapat Anda lihat jika tugas yang berhenti telah kedaluwarsa dari tampilan di konsol Amazon ECS.Untuk informasi selengkapnya, lihat Peristiwa perubahan status tugas (p. 305).Untuk informasi tentang cara menyelidiki tugas yang dihentikan lebih dari 1 jam, lihatECS BerhentiTugas di CloudWatch Beberapa catatanpada GitHub situs web.

New console

BaruAWS Management Console

Langkah-langkah berikut dapat digunakan untuk mengatur instans kontainer untuk mengurasmenggunakan yang baruAWS Management Console.

1. Buka konsol ECS Amazon di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Kluster.3. Padaklasterhalaman, pilih klaster.4. PadaKluster:namahalaman, pilihTugastab.5. Pilih tugas berhenti untuk memeriksa.6. DiStatusbagian, memeriksaAlasan berhentilapangan untuk melihat alasan bahwa tugas

dihentikan.

Classic console

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pada halaman Klaster, pilih klaster tempat tugas yang berhenti milik Anda berada.3. Pada halaman Klaster: namacluster, pilih Tugas.4. Pada tabel header Status tugas yang diinginkan, pilih Berhenti, dan kemudian pilih tugas yang

berhenti untuk diperiksa. Tugas yang baru saja berhenti ini dicantumkan dahulu.5. Di bagian Detail, periksa bidang Alasan terhenti untuk mengetahui alasan kenapa tugas

dihentikan.

455

Amazon ECS Panduan Pengguna untuk AWS FargateSumber daya tambahan

6. Jika Anda memiliki kontainer yang telah berhenti, perluas kontainer dan periksa baris Alasanstatus untuk melihat apa yang menyebabkan status tugas menjadi berubah.

Pada contoh sebelumnya, nama citra kontainer tidak dapat ditemukan. Hal ini bisa terjadi jikaAnda salah mengeja nama citra tersebut.

Jika pemeriksaan ini tidak dapat memberikan informasi yang cukup, lihat Kode kesalahan tugasyang berhenti (p. 456) untuk informasi lebih lanjut.

AWS CLI

1. Daftar tugas yang berhenti dalam sebuah klaster. Output berisi Amazon Resource Name (ARN)dari tugas, yang Anda butuhkan untuk menjelaskan tugas tersebut.

aws ecs list-tasks \ --cluster cluster_name \ --desired-status STOPPED \ --region us-west-2

2. Jelaskan tugas yang berhenti untuk mengambil respons stoppedReason.

aws ecs describe-tasks \ --cluster cluster_name \ --tasks arn:aws:ecs:us-west-2:account_id:task/cluster_name/task_ID \ --region us-west-2

Sumber daya tambahanHalaman berikut memberikan informasi tambahan tentang kode kesalahan:

• Mengapa tugas Amazon ECS saya dihentikan• Kode kesalahan tugas yang berhenti

Kode kesalahan tugas yang berhentiBerikut ini adalah kesalahan pada pesan yang mungkin Anda terima ketika tugas Fargate Anda dihentikansecara tiba-tiba. Kesalahan pesan yang dikembalikan oleh agen kontainer dan prefiks yang tergantungpada versi platform yang digunakan oleh tugas.

Untuk memeriksa tugas Anda yang berhenti untuk kesalahan pesan dengan menggunakan AWSManagement Console, lihat Memeriksa tugas yang telah dihentikan untuk kesalahan (p. 454).

456

Amazon ECS Panduan Pengguna untuk AWS FargateKode kesalahan tugas yang berhenti

Kesalahan pada prefikspesan di platform versi1.3 dan sebelumnya(Linux)

Kesalahan pada prefikspesan di platform versi1.4 dan yang lebih baru(Linux) dan versi 1.0dan yang lebih baru(Windows)

Detail Contoh

DockerTimeoutError ContainerRuntimeTimeoutErrorKesalahan ini terjadiketika sebuah kontainertidak dapat melakukantransisi ke RUNNINGatau kondisi STOPPEDdalam periode timeout.Alasan dan nilai timeoutyang disediakan dalamkesalahan pesan.

ContainerRuntimeTimeoutError:Could nottransition torunning; timed outafter waiting 1m:<reason>

CannotStartContainerErrorCannotStartContainerErrorKesalahan ini terjadiketika kontainer tidakdapat dimulai.

CannotStartContainerError:failed to getcontainer status:<reason>

CannotStopContainerErrorCannotStopContainerErrorKesalahan ini terjadisaat kontainer tidakdapat dihentikan.

CannotStopContainerError:failed sendingSIGTERM tocontainer:<reason>

CannotInspectContainerErrorCannotInspectContainerErrorKesalahan ini terjadiketika agen kontainertidak dapat menjelaskankontainer melalui waktuaktif kontainer.

Bila menggunakanplatform versi 1.3 atausebelumnya, agen ECSakan mengembalikanalasan tersebut dariDocker.

Saat menggunakanplatform versi 1.4atau yang lebihbaru1.4.0atau yanglebih baru (Linux)atau1.0.0atau yanglebih baru (Windows),agen Fargate akanmengembalikan alasandari containerd.

CannotInspectContainerError:<reason>

ResourceInitializationError Kesalahan ini terjadisaat agen kontaineruntuk tugas FargateAnda gagal untukmembuat ataumelakukan bootstrap

ResourceInitializationError:failed toinitialize loggingdriver: <reason>

457

Amazon ECS Panduan Pengguna untuk AWS FargateKode kesalahan tugas yang berhenti

Kesalahan pada prefikspesan di platform versi1.3 dan sebelumnya(Linux)

Kesalahan pada prefikspesan di platform versi1.4 dan yang lebih baru(Linux) dan versi 1.0dan yang lebih baru(Windows)

Detail Contoh

pada sumber dayayang diperlukan untukmemulai kontainer atautugas yang memilikinya.

Penyebab umum untukkesalahan ini adalahmenggunakan VPCyang tidak memilikiresolusi DNS yangdiaktifkan.

Kesalahan ini hanyaterjadi jika Andamenggunakan versiplatform1.4.0atauyang lebih baru (Linux)atau1.0.0atau yanglebih baru (Windows).

CannotPullContainerError CannotPullContainerError Kesalahan ini terjadiketika agen tidak dapatmenarik citra kontaineryang ditentukandalam ketentuantugas. Untuk informasiselengkapnya, lihatKesalahan pada tugasCannotPullContainer (p. 460).

CannotPullContainerError:<reason>

CannotCreateVolumeErrorKesalahan ini terjadiketika agen tidak dapatmembuat volumepemasangan yangditentukan dalamketentuan tugas.

Kesalahan ini hanyaterjadi jika Andamenggunakan versiplatform1.4.0atauyang lebih baru (Linux)atau1.0.0atau yanglebih baru (Windows).

CannotCreateVolumeError:<reason>

458

Amazon ECS Panduan Pengguna untuk AWS FargateKode kesalahan tugas yang berhenti

Kesalahan pada prefikspesan di platform versi1.3 dan sebelumnya(Linux)

Kesalahan pada prefikspesan di platform versi1.4 dan yang lebih baru(Linux) dan versi 1.0dan yang lebih baru(Windows)

Detail Contoh

ContainerRuntimeError Kesalahan ini terjadiketika agen menerimakesalahan yang takterduga dari containerduntuk operasi waktuaktif yang spesifik.Kesalahan ini biasanyadisebabkan olehkegagalan internaldalam agen atau waktuaktif kontainer.

Kesalahan ini hanyaterjadi jika Andamenggunakan versiplatform1.4.0atauyang lebih baru (Linux)atau1.0.0atau yanglebih baru (Windows).

ContainerRuntimeError:failed to createcontainer IO set:<reason>

OutOfMemoryError OutOfMemoryError Kesalahan ini terjadiketika kontainer keluardikarenakan prosesdalam kontainermengonsumsi lebihbanyak memori daripadamemori yang telahdialokasikan dalamketentuan tugas.

OutOfMemoryError:container killeddue to memoryusage

InternalError Kesalahan ini terjadiketika agen menghadapinon-waktu aktif terkaitdengan kesalahaninternal secara takterduga.

Kesalahan inihanya terjadi jikamenggunakan platformversi 1.4 atau yang lebihbaru.

InternalError:<reason>

459

Amazon ECS Panduan Pengguna untuk AWS FargateKesalahan pada tugas CannotPullContainer

Kesalahan pada prefikspesan di platform versi1.3 dan sebelumnya(Linux)

Kesalahan pada prefikspesan di platform versi1.4 dan yang lebih baru(Linux) dan versi 1.0dan yang lebih baru(Windows)

Detail Contoh

TaskFailedToStart TaskFailedToStart This error occurs whenan ENI attachment isrequested. Amazon EC2asynchronously handlesthe provisioning of theENI. The provisioningprocess takes time.Amazon ECS has atimeout in case thereare long wait times orunreported failures.There are times whenthe ENI is provisioned,but the report comesto Amazon ECS afterthe failure timeout. Inthis case, Amazon ECSsees the reported taskfailure with an in-useENI.

InternalError:<reason>

TaskFailedToStart TaskFailedToStart This error occurs whenthe subnet that hosts theinstances does not haveenough IP addresses.The number of availableIP addresses isavailable on the subnetdetails page, or byusing menjelaskan-subnet. For moreinformation, see Lihatsubnet Anda in theAmazon VPC UserGuide.

Kesalahan EC2tak terduga saatmencoba MembuatAntarmuka Jaringandengan tugas IPpublik diaktifkandi subnet 'subnet-id': TidakcukupFreeAddressesInsubnet

Kesalahan pada tugas CannotPullContainerKesalahan berikut menunjukkan bahwa, saat membuat sebuah tugas, citra kontainer yang ditentukan tidakdapat diambil.

Note

Versi platform 1.4 Fargate memotong pesan kesalahan panjang.

Batas waktu koneksi habis

Saat tugas Fargate diluncurkan, elastic network interface membutuhkan rute menuju internet untukmenarik citra kontainer. Jika Anda menerima pesan kesalahan yang mirip dengan berikut ini saatmenjalankan tugas, hal itu disebabkan rute menuju internet tidak ada:

460

Amazon ECS Panduan Pengguna untuk AWS FargateKesalahan pada tugas CannotPullContainer

CannotPullContainerError: API error (500): Get https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: request canceled while waiting for connection"

Untuk mengatasi masalah ini, Anda dapat:• Untuk tugas di subnet publik, tentukan DIAKTIFKAN untuk Tetapkan secara otomatis IP publik saat

meluncurkan tugas. Untuk informasi selengkapnya, lihat Menjalankan tugas mandiri (p. 203).• Untuk tugas di subnet privat, tentukan NONAKTIF untuk Tetapkan secara otomatis IP publik saat

meluncurkan tugas, dan mengonfigurasi gateway NAT di VPC Anda untuk merutekan permintaanmenuju internet. Untuk informasi lebih lanjut, lihat NAT Gateway di Panduan Pengguna AmazonVPC.

Konteks dibatalkan

Penyebab umum untuk kesalahan ini adalah karena VPC yang digunakan tugas Anda tidak memilikirute untuk menarik citra kontainer dari Amazon ECR.

Citra tidak ditemukan

Bila Anda menentukan citra Amazon ECR dalam ketentuan kontainer Anda, Anda harus menggunakanURI lengkap dari repositori ECR Anda bersama dengan nama citra di repositori tersebut. Jika repositoriatau citra tidak ditemukan, Anda akan menerima kesalahan berikut:

CannotPullContainerError: API error (404): repository 111122223333.dkr.ecr.us-east-1.amazonaws.com/<repo>/<image> not found

Untuk mengatasi masalah ini, verifikasi repositori URI dan nama citra. Juga pastikan bahwaAnda telah mengatur akses yang tepat dengan menggunakan peran IAM eksekusi tugas. Untukinformasi selengkapnya tentang peran pelaksanaan tugas, lihat Peran IAM eksekusi tugas ECSAmazon (p. 363).

Ruang disk tak cukup

Jika volume akar instans kontainer Anda memiliki ruang disk yang cukup saat menarik citra kontainer,Anda akan melihat kesalahan yang serupa dengan hal berikut:

CannotPullContainerError: write /var/lib/docker/tmp/GetImageBlob111111111: no space left on device

Untuk mengatasi masalah ini, kosongkan ruang disk.

Jika Anda menggunakan AMI yang dioptimalkan Amazon ECS, Anda dapat menggunakan perintahberikut ini untuk mengambil 20 file terbesar di sistem file Anda:

du -Sh / | sort -rh | head -20

Contoh output:

5.7G /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d21.2G /var/log/ecs594M /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs...

Dalam beberapa kasus, mirip dengan contoh sebelumnya, volume root mungkin diisi oleh kontaineryang sedang berjalan. Jika kontainer menggunakan driver log json-file default tanpa batas max-

461

Amazon ECS Panduan Pengguna untuk AWS FargateKesalahan pada tugas CannotPullContainer

size, terdapat kemungkinan bahwa berkas log bertanggung jawab pada sebagian besar ruang yangdigunakan. Anda dapat menggunakan perintah docker ps untuk memverifikasi kontainer yangmenggunakan ruang dengan pemetaan nama direktori dari output di atas untuk ID kontainer. Sebagaicontoh:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES50501b5f4cbf amazon/amazon-ecs-agent:latest "/agent" 4 days ago Up 4 days ecs-agent

Secara default, saat menggunakan driver log json-file, Docker menangkap output standar (dankesalahan standar) dari semua kontainer Anda dan menulis output standar dan kesalahan dalam filemenggunakan format JSON. Anda dapat mengatur max-size sebagai pilihan pengandar catatan,yang dapat mencegah berkas log mengambil terlalu banyak ruang. Untuk informasi selengkapnya, lihatKonfigurasi pengandar pencatatan dalam dokumentasi Docker.

Berikut ini adalah cuplikan ketentuan kontainer yang menunjukkan bagaimana menggunakan pilihanini:

{ "log-driver": "json-file", "log-opts": { "max-size": "256m" }}

Pilihan alternatif jika catatan kontainer Anda mengambil terlalu banyak ruang disk adalah denganmenggunakan pengemudi log awslogs . Parameterawslogslog driver mengirimkan catatan keCloudWatch, yang akan membebaskan ruang disk yang sebaliknya akan digunakan untuk catatankontainer Anda pada instans kontainer. Untuk informasi selengkapnya, lihat Menggunakan driver logawslogs (p. 138).

Pembatasan laju Docker Hub

Jika Anda menerima salah satu kesalahan berikut, kemungkinan Anda mencapai tingkat batasanDocker Hub:

ERROR: toomanyrequests: Too Many Requests.

You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limits.

Untuk informasi selengkapnya tentang tingkat batasan Docker Hub, lihat Memahami pembatasan padatingkat Docker Hub.

Jika Anda telah meningkatkan batas tarif Docker Hub dan Anda perlu mengautentikasi penarikanDocker untuk instance kontainer Anda, lihatAutentikasi registri privat untuk instans kontainerdiPanduanPengembang Amazon Elastic Container Service.

Gagal menyalin gambar

Jika Anda menerima kesalahan yang mirip dengan berikut ini saat meluncurkan tugas, hal itudisebabkan tidak ada akses ke citra:

CannotPullContainerError: ref pull has been retried 1 time(s): failed to copy: httpReaderSeeker: failed open: unexpected status code

462

Amazon ECS Panduan Pengguna untuk AWS FargatePesan peristiwa layanan

Untuk mengatasi masalah ini, Anda dapat:• Untuk tugas Fargate, lihatBagaimana cara mengatasi kesalahan “cannotpullcontainererror” untuk

tugas Amazon ECS saya di Fargate.• Untuk tugas lainnya, lihatBagaimana cara mengatasi kesalahan “cannotpullcontainererror” untuk

tugas Amazon ECS saya.

Untuk informasi tambahan tentang kesalahan STOP, lihatKode kesalahan tugas yang berhentidiPanduanPengguna Amazon Elastic Container ServiceAWS Fargate.

Pesan peristiwa layananKetika memecahkan permasalahan menggunakan layanan, hal pertama yang harus Anda periksauntuk informasi diagnostik adalah pencatatan peristiwa layanan. Anda dapat melihat peristiwa layananmenggunakan API DescribeServices, AWS CLI, atau dengan menggunakan AWS ManagementConsole.

Saat melihat pesan peristiwa layanan menggunakan API Amazon ECS, hanya peristiwa dari penjadwallayanan yang akan dikembalikan. Hal Ini termasuk penempatan tugas terbaru dan peristiwa kondisi instans.Namun, konsol Amazon ECS menampilkan peristiwa layanan dari sumber berikut.

• Acara penempatan tugas dan kondisi instans dari penjadwal layanan Amazon ECS. Peristiwa iniakan memiliki prefiks (nama-layanan) layanan. Untuk memastikan bahwa tampilan peristiwa inidapat membantu, kami hanya menampilkan peristiwa terbaru 100 dan pesan peristiwa duplikat yangdihilangkan hingga salah satu penyebab sudah diselesaikan atau sudah melewati waktu enam jam. Jikapenyebabnya tidak diselesaikan dalam waktu enam jam, Anda akan menerima pesan peristiwa layananlain untuk penyebab tersebut.

• Peristiwa Auto Scaling layanan. Peristiwa ini akan memiliki prefiks Pesan. Peristiwa penskalaan 10terbaru ditampilkan. Peristiwa ini hanya terjadi ketika layanan dikonfigurasikan dengan kebijakanApplication Auto Scaling.

Gunakan langkah-langkah berikut untuk melihat pesan peristiwa layanan Anda saat ini.

New console

1. Buka konsol ECS Amazon di https://console.aws.amazon.com/ecs/.2. Di panel navigasi, pilih Kluster.3. Padaklasterhalaman, pilih klaster.4. PadaKluster:namahalaman, pilihLayanantab.5. Pilih layanan untuk diperiksa.6. DiPemberitahuanbagian, melihat pesan.

Classic console

1. Buka konsol Amazon ECS di https://console.aws.amazon.com/ecs/.2. Pada halaman Klaster, pilih klaster tempat tugas yang berhenti milik Anda berada.3. Pada halaman Klaster: namacluster, pilih Tugas.4. Pada tabel header Status tugas yang diinginkan, pilih Berhenti, dan kemudian pilih tugas yang

berhenti untuk diperiksa. Tugas yang baru saja berhenti ini dicantumkan dahulu.5. Di bagian Detail, periksa bidang Alasan terhenti untuk mengetahui alasan kenapa tugas

dihentikan.

463

Amazon ECS Panduan Pengguna untuk AWS FargatePesan peristiwa layanan

6. Jika Anda memiliki kontainer yang telah berhenti, perluas kontainer dan periksa baris Alasanstatus untuk melihat apa yang menyebabkan status tugas menjadi berubah.

Pada contoh sebelumnya, nama citra kontainer tidak dapat ditemukan. Hal ini bisa terjadi jikaAnda salah mengeja nama citra tersebut.

Jika pemeriksaan ini tidak dapat memberikan informasi yang cukup, lihat Kode kesalahan tugasyang berhenti (p. 456) untuk informasi lebih lanjut.

AWS CLI

Gunakan perintah jelaskan-layanan untuk melihat pesan peristiwa layanan untuk layanan tertentu.

Contoh AWS CLI berikut menggambarkan layanan nama layanan di klaster default, yang akanmemberikan pesan peristiwa layanan terbaru.

aws ecs describe-services \ --cluster default \ --services service-name \ --region us-west-2

464

Amazon ECS Panduan Pengguna untuk AWS FargatePesan peristiwa layanan

Pesan peristiwa layananBerikut ini adalah contoh dari pesan peristiwa layanan yang mungkin dapat Anda lihat di konsol AmazonECS.

layanan (nama layanan) tidak dapat berhasil memulai tugas secara konsisten.Layanan ini berisi tugas yang gagal untuk dimulai setelah upaya dilakukan secara berturut-turut. Padatitik ini, penjadwal layanan mulai meningkatkan tambahan waktu antara pengulangan. Anda harusmemecahkan masalah mengapa tugas Anda gagal untuk diluncurkan. Untuk informasi selengkapnya, lihatLogika throttle layanan (p. 279).

Setelah layanan diperbarui, misalnya dengan ketentuan tugas yang diperbarui, penjadwal layananmelanjutkan perilakunya secara normal.

Operasi layanan (nama layanan) sedang berada dalam kondisi throttling. Akandi coba lagi nanti.Layanan ini tidak dapat meluncurkan lebih banyak tugas dikarenakan batas throttling API. Setelahpenjadwal layanan dapat meluncurkan lebih banyak tugas, maka akan dilanjutkan.

Untuk meminta kenaikan tingkat batas kuota API, buka halaman AWS Support Pusat, masuk jikadiperlukan, dan pilih Buat kasus. Pilih Peningkatan kuota layanan. Lengkapi dan kirimkan formulir ini.

Layanan (nama layanan) tidak dapat menghentikan atau memulai tugasselama deployment dikarenakan konfigurasi layanan deployment. PerbaruiminimumHealthyPercent atau nilai maximumPercent dan coba lagi.Tugas pada layanan ini tidak dapat dihentikan atau dimulai saat layanan deployment dikarenakankonfigurasi pada deployment. Konfigurasi deployment terdiri dari nilai minimumHealthyPercent danmaximumPercent yang ditentukan ketika layanan dibuat, tetapi juga dapat diperbarui pada layanan yangsudah ada.

minimumHealthyPercent mewakili batas bawah pada jumlah tugas yang seharusnya berjalan untuklayanan selama deployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlahtugas yang diinginkan untuk layanan. Nilai ini dibulatkan ke atas. Sebagai contoh, jika persentaseminimum yang sehat adalah 50 dan jumlah tugas yang diinginkan adalah empat, maka penjadwal dapatmenghentikan dua tugas yang sudah ada sebelum memulai dua tugas baru. Demikian juga, jika persentaseminimum yang sehat adalah 75% dan jumlah tugas yang diinginkan adalah dua, maka penjadwal tidakdapat menghentikan tugas apa pun karena nilai yang dihasilkan juga dua.

maximumPercent mewakili batas atas jumlah tugas yang harus berjalan untuk layanan selamadeployment atau saat instans kontainer dikosongkan, sebagai persentase dari jumlah tugas yangdiinginkan untuk layanan. Nilai ini dibulatkan ke bawah. Misalnya jika persen maksimum adalah200danhitungan tugas yang diinginkan adalah empat maka penjadwal dapat memulai empat tugas baru sebelummenghentikan empat tugas yang ada. Demikian juga, jika persentase maksimum adalah 125 dan jumlahtugas yang diinginkan adalah tiga, maka penjadwal tidak dapat memulai tugas apa pun karena nilai yangdihasilkan juga tiga.

Ketika menetapkan jumlah minimum persen kondisi atau persen maksimum, Anda harus memastikanbahwa penjadwal dapat menghentikan atau memulai setidaknya satu tugas ketika deployment telah dipicu.

Layanan (nama layanan) tidak dapat menempatkan tugas. Alasan: Anda telahmencapai batas jumlah tugas yang dapat Anda jalankan secara bersamaanAnda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untukinformasi selengkapnya, lihat the section called “Kuota layanan” (p. 287). Untuk meminta penambahankuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

465

Amazon ECS Panduan Pengguna untuk AWS FargatePenentuan nilai CPU atau memori tidak valid

Layanan (nama layanan) tidak dapat menempatkan tugas. Alasan: Kesalahaninternal.Layanan ini tidak dapat memulai tugas karena subnet berada di Availability Zone yang tidak didukung.

Untuk informasi tentang Wilayah Fargate yang didukung, lihatthe section called “AWSWilayahFargate” (p. 291).

Untuk informasi tentang cara melihat Zona Ketersediaan subnet, lihatLihat subnet Andadi dalamPanduanPengguna Amazon VPC.

Layanan (nama layanan) tidak dapat menempatkan tugas. Alasan: KonfigurasiCPU yang diminta berada di atas batas Anda.Anda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untukinformasi selengkapnya, lihat the section called “Kuota layanan” (p. 287). Untuk meminta penambahankuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

Layanan (nama layanan) tidak dapat menempatkan tugas. Alasan: KonfigurasiMEMORY yang diminta berada di atas batas Anda.Anda dapat meminta peningkatan kuota untuk sumber daya yang menyebabkan kesalahan. Untukinformasi selengkapnya, lihat the section called “Kuota layanan” (p. 287). Untuk meminta penambahankuota, lihat Meminta penambahan kuota di Panduan Pengguna Service Quotas.

Penentuan nilai CPU atau memori tidak validSaat mendaftarkan definisi tugas menggunakan API Amazon ECS atauAWS CLI, jika Anda menentukantidak validcpuataumemoryNilai, kesalahan berikut dikembalikan.

An error occurred (ClientException) when calling the RegisterTaskDefinition operation: Invalid 'cpu' setting for task. For more information, see the Troubleshooting section of the Amazon ECS Developer Guide.

Note

Saat menggunakan Terraform, kesalahan berikut ini mungkin dikembalikan.

Error: ClientException: No Fargate configuration exists for given values.

Untuk mengatasi masalah ini, Anda harus menentukan nilai yang didukung untuk tugas CPU serta memoridalam ketentuan tugas Anda. Nilai cpu dapat dinyatakan dalam unit CPU atau vCPUs dalam ketentuantugas tetapi dikonversikan ke integer yang menunjukkan unit CPU saat pendefinisian tugas terdaftar. Nilaimemory dapat dinyatakan dalam MiB atau GB pada ketentuan tugas tetapi dikonversikan ke dalam integeryang menunjukkan bahwa MiB ketika pendefinisian tugas terdaftar.

Untuk ketentuan tugas yang hanya menentukan EC2 untuk parameter requiresCompatibilities,nilai-nilai CPU yang didukung berada di antara Unit CPU 128 (0.125 vCPUs) dan Unit CPU 10240 (10VCPUs). Nilai memori harus berupa integer dan batas memori tergantung pada jumlah memori yangtersedia pada instans Amazon EC2 yang Anda gunakan.

Untuk ketentuan tugas yang menentukan FARGATE untuk parameter requiresCompatibilities(bahkan jika EC2 juga ditentukan), Anda harus menggunakan salah satu dari nilai dalam tabel berikut ini,yang menentukan kisaran nilai yang didukung untuk CPU dan parameter memori.

Nilai CPU dan memori tugas yang didukung untuk tugas-tugas yang di-hosting di Fargate adalah sebagaiberikut.

466

Amazon ECS Panduan Pengguna untuk AWS FargatePemecahan permasalahan terhadap

layanan penyeimbang beban

Nilai CPU Nilai memori (MiB)

256 (,25 vCPU) 512 (0.5GB), 1024 (1GB), 2048 (2GB)

512 (.5 vCPU) 1024 (1GB), 2048 (2GB), 3072 (3GB), 4096 (4GB)

1024 (1 vCPU) 2048 (2GB), 3072 (3GB), 4096 (4GB), 5120 (5GB),6144 (6GB), 7168 (7GB), 8192 (8GB)

2048 (2 vCPU) Antara 4096 (4GB) hingga 16384 (16GB) sebagaitambahan dari 1024 (1GB)

4096 (4 vCPU) Antara 8192 (8GB) hingga 30720 (30GB) sebagaitambahan dari 1024 (1GB)

Pemecahan permasalahan terhadap layananpenyeimbang beban

Layanan Amazon ECS dapat mendaftarkan tugas dengan penyeimbang beban Elastic Load Balancing.Kesalahan konfigurasi terhadap penyeimbang beban adalah penyebab umum kenapa tugas berhenti. Jikatugas Anda yang berhenti dimulai oleh layanan yang menggunakan penyeimbang beban, pertimbangkankemungkinan penyebab berikut ini.

Important

Pemeriksaan kondisi kontainer tidak didukung untuk tugas yang merupakan bagian dari layananyang dikonfigurasi untuk menggunakan Classic Load Balancer. Penjadwal layanan AmazonECS mengabaikan tugas dalam sebuahUNHEALTHYstate yang berada di belakang Classic LoadBalancer.

Grup keamanan instans kontainer

Jika kontainer Anda dipetakan kepada port 80 di instans kontainer Anda, grup keamanan instanskontainer harus mengizinkan lalu lintas masuk pada port 80 untuk pemeriksaan kondisi penyeimbangbeban agar dapat melalui port tersebut.

Penyeimbang beban Elastic Load Balancing

Penyeimbang beban Anda harus dikonfigurasikan untuk dapat menggunakan semua Availability Zonepada sebuah Wilayah, atau setidaknya semua Availability Zone tempat instans kontainer berada. Jikalayanan menggunakan penyeimbang beban dan memulai sebuah tugas pada instans kontainer yangberada di Availability Zone bahwa penyeimbang beban tidak dikonfigurasi untuk digunakan, tugas tidakpernah melewati pemeriksaan kondisi dan tugas tidak dapat digunakan lagi.

Pemeriksaan penyeimbang beban Elastic Load Balancing

Parameter pemeriksaan kondisi penyeimbang beban dapat terlalu ketat atau mengarah pada sumberdaya yang sudah tidak ada. Jika instans kontainer bertujuan untuk menjadi kondisi yang tidak optimal,instans kontainer akan dihapus dari penyeimbang beban. Pastikan untuk memverifikasi bahwaparameter berikut ini dikonfigurasi dengan benar untuk layanan penyeimbang beban Anda.Port Ping

Parameter nilai Port Ping untuk pemeriksaan kondisi penyeimbang beban adalah port padainstans kontainer bahwa pemeriksaan pada penyeimbang beban bertujuan menentukan apakahitu dalam kondisi yang optimal. Jika port ini salah dikonfigurasikan, maka penyeimbang bebanmemilik kemungkinan untuk mencabut kembali register instans kontainer Anda dari itu sendiri.Port ini perlu dikonfigurasikan untuk dapat menggunakan nilai hostPort untuk kontainer dalamdefinisi layanan tugas yang Anda gunakan dengan pemeriksaan kondisi.

467

Amazon ECS Panduan Pengguna untuk AWS FargatePemecahan Masalah layanan Auto Scaling

Jalur Ping

Nilai ini sering diatur ke index.html, tetapi jika layanan Anda tidak menanggapi permintaantersebut, maka pemeriksaan kondisi gagal. Jika kontainer Anda tidak memiliki sebuah fileindex.html, Anda dapat mengaturnya menuju / untuk menargetkan dasar URL untuk instanskontainer.

Waktu Respons Habis

Ini adalah jumlah waktu yang kontainer Anda harus dapat kembalikan sebuah respons terhadapping pemeriksaan kondisi. Jika nilai ini lebih rendah dari jumlah waktu yang diperlukan untukrespon, pemeriksaan kondisi gagal.

Interval Pemeriksaan Kondisi

Ini adalah jumlah waktu antara ping pemeriksaan kondisi. Semakin pendek interval pemeriksaankondisi Anda, semakin cepat instans kontainer Anda dapat mencapai Ambang Tidak Baik.

Batas Kondisi Tidak Baik

Ini merupakan jumlah berapa kali pemeriksaan kondisi Anda bisa gagal sebelum instans kontainerAnda dianggap tidak optimal. Jika Anda memiliki ambang batas yang tidak optimal 2, dan intervalpemeriksaan kondisi 30 detik, maka tugas Anda memiliki 60 detik untuk menanggapi pingpemeriksaan kondisi sebelum diasumsikan tidak optimal. Anda dapat menaikkan ambang batasyang tidak optimal atau interval pemeriksaan kondisi untuk memberikan tugas Anda lebih banyakwaktu untuk merespons.

Tidak dapat memperbarui layananservicename: Nama kontainer penyeimbang beban atau port berubahdalam definisi tugas

Jika layanan Anda menggunakan penyeimbang beban, konfigurasi penyeimbang beban yangditetapkan untuk layanan Anda saat dibuat tidak dapat diubah. Jika Anda memperbarui ketentuantugas untuk layanan, nama kontainer dan port kontainer yang ditentukan ketika layanan dibuat harustetap dalam ketentuan tugas.

Untuk mengubah nama penyeimbang beban, nama kontainer, atau port kontainer yang terkait dengankonfigurasi penyeimbang beban layanan, Anda harus membuat layanan baru.

Anda telah mencapai batas jumlah tugas yang dapat Anda jalankan secara bersamaan.

Untuk akun baru, kuota Anda mungkin lebih rendah dari kuota layanan. Layanan untuk akun Andadapat dilihat di konsol Service Quotas. Untuk meminta penambahan kuota, lihat Meminta penambahankuota di Panduan Pengguna Service Quotas.

Pemecahan Masalah layanan Auto ScalingPenskalaan Otomatis Aplikasi menonaktifkan proses penskalaan saat deployment Amazon ECS sedangberlangsung dan dilanjutkan setelah deployment selesai. Namun, proses penskalaan keluar terusterjadi, kecuali ditangguhkan, selama deployment. Untuk informasi lebih lanjut, lihat Menangguhkan danmelanjutkan penskalaan untuk Application Auto Scaling.

AWS Fargatekuota throttlingAWS Fargatemembatasi ketentuan Amazon ECS dan tingkat peluncuran Pod Amazon ECS ke kuota(sebelumnya disebut sebagai batas) menggunakan aAlgoritme tokenuntuk masing-masingAWSakunberdasarkan per-Wilayah. Dengan algoritme ini, akun Anda memiliki bucket yang memegang sejumlahtertentu token. Jumlah token dalam bucket mewakili kuota tarif Anda pada detik tertentu. Setiap akunpelanggan memiliki bucket token tugas dan Pod yang habis berdasarkan jumlah tugas dan Pod yangdiluncurkan oleh akun pelanggan. Token bucket ini memiliki ember maksimum yang memungkinkan

468

Amazon ECS Panduan Pengguna untuk AWS FargateThrottlingRunTaskAPI

Anda untuk secara berkala membuat jumlah permintaan yang lebih tinggi, dan tingkat isi ulang yangmemungkinkan Anda mempertahankan tingkat permintaan yang stabil selama diperlukan.

Misalnya, ukuran bucket token tugas dan pod untuk akun pelanggan Fargate adalah token 100, dan tingkatisi ulang adalah token 20 per detik. Oleh karena itu, Anda dapat segera meluncurkan hingga 100 tugasAmazon ECS dan Pod Amazon EKS per akun pelanggan, dengan tingkat peluncuran berkelanjutan 20tugas Amazon ECS dan Pod Amazon EKS per detik.

Tindakan Kapasitas maksimumember (atau tingkatBurst)

Tingkat isi ulangbucket (atau tingkatberkelanjutan)

Kuota tarif Sumber Daya Fargate untuk TugasAmazon ECS On Demand dan Pod AmazonEKS1 (p. 469)

100 20

Kuota tarif Sumber Daya Fargate untuk tugas SpotAmazon ECS

100 20

1Akun yang hanya meluncurkan Pod Amazon EKS yang memiliki tingkat burst 20 dengan tingkatpeluncuran pod berkelanjutan 20 pod yang diluncurkan per detik ketika menggunakan versi platform yangdipanggil diAmazon EKS versi platform.

ThrottlingRunTaskAPISelain itu, Fargate membatasi tingkat permintaan saat meluncurkan tugas menggunakan AmazonECSRunTaskAPI menggunakan kuota terpisah. Fargate membatasi Amazon ECSRunTaskPermintaanAPI untuk masing-masingAWSakun berdasarkan per-Wilayah. Setiap permintaan yang Anda buatmenghapus satu token dari bucket. Kami melakukan ini untuk membantu kinerja layanan, dan untukmemastikan penggunaan yang adil bagi semua pelanggan Fargate. Panggilan API tunduk pada kuotapermintaan baik dari konsol Amazon Elastic Container Service, alat baris perintah, atau aplikasi pihakketiga. Kuota tarif untuk panggilan ke Amazon ECSRunTaskAPI adalah 20 panggilan per detik (burstdan berkelanjutan). Setiap panggilan ke API ini dapat, bagaimanapun, meluncurkan hingga 10 tugas. Iniberarti Anda dapat meluncurkan 100 tugas dalam satu detik dengan membuat 10 panggilan ke API ini,meminta 10 tugas yang akan diluncurkan di setiap panggilan. Demikian pula, Anda juga bisa melakukan20 panggilan ke API ini, meminta 5 tugas yang akan diluncurkan di setiap panggilan. Untuk informasilebih lanjut tentang API throttling untuk Amazon ECSRunTaskAPI, lihatThrottling permintaan APIdalamReferensi API Amazon ECS.

Dalam praktiknya, tingkat peluncuran tugas dan pod juga bergantung pada pertimbangan lain sepertigambar kontainer yang akan diunduh dan dibongkar, pemeriksaan kesehatan dan integrasi lainnyadiaktifkan, seperti mendaftarkan tugas atau Pod ke penyeimbang beban. Pelanggan akan melihat variasitarif peluncuran tugas dan pod dibandingkan dengan kuota yang ditunjukkan di atas berdasarkan fitur-fituryang diaktifkan pelanggan.

Menyesuaikan kuota tingkatAnda dapat meminta kenaikan kuota throttling tarif Fargate untuk AndaAWSakun. Untuk memintapenyesuaian kuota, hubungi AWS Support Pusat.

Alasan kegagalan APISaat tindakan API yang telah Anda picu melalui API Amazon ECS, konsol, atauAWS CLIkeluardenganfailurespesan galat, berikut ini dapat membantu dalam pemecahan masalah penyebabnya.

469

Amazon ECS Panduan Pengguna untuk AWS FargateAlasan kegagalan API

Kegagalan akan mengembalikan sebuah alasan serta Amazon Resource Name (ARN) dari sumber dayayang terkait dengan kegagalannya.

Banyak sumber daya merupakan wilayah yang khusus, jadi ketika menggunakan konsol tersebut pastikanbahwa Anda mengatur Wilayah yang benar untuk sumber daya Anda. Ketika menggunakan AWS CLI,pastikan bahwa perintah AWS CLI Anda sedang dikirim ke wilayah yang benar dengan parameter --region region.

Untuk informasi lebih lanjut tentang strukturFailuretipe data, lihatGagaldi dalamReferensi API AmazonElastic Container Service.

Berikut ini adalah contoh pesan kegagalan yang mungkin Anda terima saat menjalankan perintah API.

Tindakan API Alasan kegagalan Penyebab

DescribeClusters MISSING Klaster yang ditentukan tidakditemukan. Verifikasi ejaan namaklaster.

DescribeServices MISSING Layanan yang ditentukan tidakditemukan. Verifikasi bahwaklaster yang benar atau wilayahyang ditentukan dan bahwalayanan ARN atau nama adalahvalid.

DescribeTasks MISSING Tugas yang ditentukan tidakditemukan. Verifikasi klasteryang benar atau wilayah yangditentukan dan bahwa keduaARN tugas atau ID valid.

470

Amazon ECS Panduan Pengguna untuk AWS Fargate

Riwayat dokumenTabel berikut menjelaskan pembaruan utama dan fitur-fitur baru untukPanduan Pengguna Amazon ECSuntukAWSJauh. Kami juga rutin memperbarui dokumentasi untuk menjawab umpan balik yang Andakirimkan kepada kami.

Perubahan Deskripsi Tanggal

Support untuk AmazonECS Exec pada kontainerFargate Windows

Amazon ECS Exec mendukung kontainer FargateWindows. Untuk informasi selengkapnya, lihatMenggunakan Amazon ECS Exec untuk melakukandebug (p. 445).

Pengalaman konsolAmazon ECS barudiperbarui

Pengalaman konsol Amazon ECS yang baru mendukungpembuatan dan penghapusan klaster, memperbaruidefinisi tugas, dan mengubah definisi tugas. Untukinformasi lebih lanjut, lihat Membuat klaster untuk jenispeluncuran Fargate menggunakan konsol baru (p. 60),Menghapus klaster menggunakan konsol baru (p. 62),Memperbarui ketentuan tugas menggunakan konsolbaru (p. 66), dan Revisi ketentuan tugas (p. 194) .

08-Des 2021

Dukungan Amazon ECSuntuk fluentd log-driver-buffer-limit pilihan

Amazon ECS mendukung fluentdlog-driver-buffer-limitpilihan;. Untuk informasi selengkapnya, lihatPerutean log kustom (p. 143).

23 Nov 2021

Pengalaman konsolAmazon ECS barudiperbarui

Pengalaman konsol Amazon ECS yang baru mendukungpembuatan definisi tugas. Untuk informasi selengkapnya,lihat Membuat ketentuan tugas menggunakan konsolbaru (p. 63).

23 Nov 2021

Amazon ECS mendukungarsitektur ARM 64-bit untukLinux.

Amazon ECS mendukung arsitektur CPU ARM 64-bit untuksistem operasi Linux. Untuk informasi selengkapnya, lihatthe section called “Bekerja dengan beban kerja ARM 64-bitdi Amazon ECS” (p. 124).

23 Nov 2021

Support untuk WindowsAmazon ECS Exec

Amazon ECS Exec mendukung Windows. Untuk informasiselengkapnya, lihat Menggunakan Amazon ECS Execuntuk melakukan debug (p. 445).

01 Nov 2021

Support untuk Windows diFargate.

Amazon ECS mendukung Windows di Fargate. Untukinformasi selengkapnya, lihat Apakah AWS Fargateitu? (p. 1).

28 Oktober2021

Pembaruan metadataAmazon ECS

Menambahkan dukungan untuk informasi diff jamkontainer di endpoint metadata versi 4. Untuk informasiselengkapnya, lihat the section called “Respons JSONmetadata tugas” (p. 390).

30September2021

Pembaruan tugas terjadwalAmazon ECS

Amazon EventBridge menambahkan dukungan untukparameter tambahan saat membuat aturan yangmemicu tugas terjadwal Amazon ECS. Untuk informasiselengkapnya, lihat Tugas terjadwal (p. 205).

25 Juni 2021

Memulai dengan AWS CDK Menambahkan panduan memulai untukmenggunakanAWS CDKdengan Amazon ECS. Untuk

27 Mei 2021

471

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggalinformasi selengkapnya, lihat Memulai dengan AmazonECS menggunakanAWS CDK (p. 16).

Memulai dengan AWS CDK Menambahkan panduan memulai untukmenggunakanAWS CDKdengan Amazon ECS. Untukinformasi selengkapnya, lihat Memulai dengan AmazonECS menggunakanAWS CDK (p. 16).

27 Mei 2021

Amazon ECS Exec Amazon ECS telah merilis alat debugging baru yangdisebut ECS Exec. Untuk informasi selengkapnya, lihatMenggunakan Amazon ECS Exec untuk melakukandebug (p. 445).

15 Maret2021

Pengalaman konsol baru Amazon ECS telah merilis pengalaman konsol baru yangmendukung pembuatan atau pembaruan layanan ataupelaksanaan tugas mandiri. Untuk informasi selengkapnya,lihat Membuat layanan menggunakan konsol baru (p. 69)dan Menjalankan tugas mandiri (p. 203).

28Desember2020

AWSPembaruan platform1.4.0 versi 1.4.0

Dimulai pada 5 November 2020, setiap tugas Fargate baruyang diluncurkan menggunakan versi platform1.4.0akanmemiliki akses ke fitur berikut. Untuk informasiselengkapnya, lihat 1.4.0 (p. 55).

• Saat menggunakan Secrets Manager untuk menyimpandata sensitif, Anda dapat menyuntikkan kunciJSON tertentu atau versi rahasia tertentu sebagaivariabel lingkungan atau dalam konfigurasi log. Untukinformasi selengkapnya, lihat Menentukan data sensitifmenggunakan Secrets Manager (p. 176).

• Tentukan variabel lingkungan dalam jumlah besarmenggunakan parameter ketentuan kontainerenvironmentFiles. Untuk informasi selengkapnya,lihat Menentukan variabel lingkungan (p. 186).

• Tugas yang dijalankan di VPC dan subnet yangdiaktifkan untuk IPv6 akan diberikan alamat IPv4 privatdan IPv6. Untuk informasi selengkapnya, lihatJaringantugas FargatediPanduan Pengguna Amazon ElasticContainer ServiceAWS Fargate.

• Titik akhir tugas metadata versi 4 menyediakanmetadata tambahan tentang tugas dan kontainertermasuk tipe peluncuran tugas, Amazon ResourceName (ARN) kontainer, serta driver log dan opsilog driver yang digunakan. Saat melakukan kueriterhadap titik akhir /stats Anda juga menerima statistiktingkat jaringan untuk kontainer Anda. Untuk informasiselengkapnya, lihatTitik akhir metadata tugas versi4diPanduan Pengguna Amazon Elastic ContainerServiceAWS Fargate.

5 November2020

Metrik penggunaan Fargate AWS Fargatememberi CloudWatch metrik penggunaanyang memberikan visibilitas ke dalam penggunaan sumberdaya Fargate Sesuai Permintaan dan Fargate Spot Anda.Untuk informasi selengkapnya, lihat Metrik penggunaanAWS Fargate (p. 302).

3 Agustus2020

472

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

AWSCopilot versi 0.1.0 Yang baruAWSCLI diluncurkan, menyediakanperintah tingkat tinggi untuk menyederhanakanpemodelan, pembuatan, pelepasan, dan pengelolaanaplikasi terkontainer di Amazon ECS dari lingkunganpengembangan lokal. Untuk informasi selengkapnya, lihatMenggunakanAWSAntarmuka baris perintah (p. 31).

9 Juli 2020

Jadwal penghentian versiplatform AWS Fargate

Jadwal penghentian versi platform Fargate telahditambahkan. Untuk informasi selengkapnya, lihatAWSPengusangan versi platform Fargate (p. 58).

8 Juli 2020

AWSEkspansi wilayahFargate

Amazon ECSAWSFargate telah berkembang ke WilayahEropa (Milan).

25 Juni 2020

AWSPembaruan platform1.4.0 versi 1.4.0

Sejak 28 Mei 2020, setiap tugas Fargate baru yangdiluncurkan menggunakan platform versi 1.4.0 akanmemiliki penyimpanan sementara sebesar 20 GByang dienkripsi dengan algoritme enkripsi AES-256menggunakanAWS Fargate-managed kunci enkripsi.Untuk informasi selengkapnya, lihat Menggunakan volumedata dalam tugas (p. 126).

28 Mei 2020

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah Africa (Cape Town).

11 Mei 2020

Service Quotas diperbarui Service Quotas berikut telah diperbarui:

• Klaster per akun ditingkatkan dari 2,000 ke 10,000.

Untuk informasi selengkapnya, lihat Service QuotasAmazon ECS (p. 287).

17 April2020

473

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

AWSPlatform Fargate versi1.4.0

AWSPlatform Fargate versi 1.4.0 dirilis, yang berisi fitur-fitur berikut:

• Menambahkan dukungan untuk menggunakan volumesistem file Amazon EFS untuk penyimpanan tugaspersisten. Untuk informasi selengkapnya, lihat VolumeAmazon EFS (p. 128).

• Penyimpanan tugas sementara telah meningkatmenjadi 20 GB. Untuk informasi selengkapnya, lihatMenggunakan volume data dalam tugas (p. 126).

• Perilaku lalu lintas jaringan ke dan dari tugas telahdiperbarui. Dimulai dengan platform versi 1.4.0, semuatugas Fargate menerima elastic network interfacetunggal, yang disebut tugas ENI. Semua lalu lintasjaringan mengalir melalui ENI dalam VPC Anda danakan terlihat melalui log alur VPC Anda. Untuk informasiselengkapnya, lihat Jaringan tugas Fargate (p. 135).

• ENI tugas menambahkan dukungan untuk jumbo frame.Antarmuka jaringan dikonfigurasi dengan unit transmisimaksimum (MTU), yang merupakan ukuran muatanterbesar yang sesuai dalam frame tunggal. Semakinbesar MTU, semakin besar pula muatan aplikasi yangbisa muat dalam frame tunggal, yang mengurangioverhead per frame dan meningkatkan efisiensi. Denganmendukung jumbo frame dapat mengurangi overheadketika jalur jaringan antara tugas dengan tujuan Andamendukung jumbo frame, seperti semua lalu lintas yangtetap berada dalam VPC Anda.

• Wawasan Kontainer CloudWatch akan menyertakanmetrik performa jaringan untuk tugas Fargate. Untukinformasi selengkapnya, lihat Amazon ECS CloudWatchWawasan Wadah (p. 314).

• Menambahkan dukungan untuk titik akhir metadatatugas v4, yang menyediakan informasi tambahan untuktugas Fargate Anda, termasuk statistik jaringan untuktugas dan Availability Zone tempat tugas dijalankan.Untuk informasi selengkapnya, lihat Titik akhir metadatatugas versi 4 (p. 389).

• Menambahkan dukungan untuk parameter LinuxSYS_PTRACE dalam ketentuan kontainer. Untukinformasi selengkapnya, lihat Parameter Linux (p. 114).

• Agen kontainer Fargate menggantikan penggunaanagen kontainer Amazon ECS untuk semua tugasFargate. Perubahan ini seharusnya tidak mempengaruhikinerja tugas Anda.

• Waktu aktif kontainer kini menggunakan Containerd,bukan Docker. Perubahan ini seharusnya tidakmempengaruhi kinerja tugas Anda. Mungkin Andamenyadari bahwa beberapa pesan kesalahan yangberasal dari waktu aktif kontainer lebih umum dan tidakmenyebutkan Docker.

8 April 2020

474

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi TanggalUntuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

Dukungan sistem fileAmazon EFS untuk volumetugas

Sistem file Amazon EFS dapat digunakan sebagaivolume data untuk tugas Fargate Anda. Untuk informasiselengkapnya, lihat Volume Amazon EFS (p. 128).

8 April 2020

Titik Akhir Metadata TugasAmazon ECS versi 4

Dimulai dengan versi platform 1.4.0, variabel lingkunganbernamaECS_CONTAINER_METADATA_URI_V4disuntikkanke setiap wadah dalam suatu tugas. Saat Anda melakukankueri terhadap titik akhir metadata tugas versi 4, berbagaimetadata tugas dan statistik Docker tersedia untuk tugas.Untuk informasi selengkapnya, lihat Titik akhir metadatatugas versi 4 (p. 389).

8 April 2020

Spot Fargate Amazon ECS menambahkan dukungan untuk menjalankanSpot. Untuk informasi selengkapnya, lihat Penyediakapasitas AWS Fargate (p. 77).

3 Des 2019

Kejadian Tindakan Layanan Amazon ECS sekarang mengirimkan acara ke AmazonEventBridge ketika tindakan layanan tertentu terjadi.Untuk informasi selengkapnya, lihat Peristiwa tindakanlayanan (p. 307).

25 Nov 2019

FireLens untuk AmazonECS

FireLens untuk Amazon ECS tersedia secara umum.FireLens untuk Amazon ECS memungkinkan Andamenggunakan parameter definisi tugas untuk merutekanlog keAWStujuan layanan atau mitra untuk penyimpanandan analitik log. Untuk informasi selengkapnya, lihatPerutean log kustom (p. 143).

30 Sep 2019

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah Eropa (Paris), Eropa (Stockholm), dan TimurTengah (Bahrain).

30 Sep 2019

FireLens untuk AmazonECS

FireLens untuk Amazon ECS ada di pratinjau publik.FireLens untuk Amazon ECS memungkinkan Andamenggunakan parameter definisi tugas untuk merutekanlog keAWStujuan layanan atau mitra untuk penyimpanandan analitik log. Untuk informasi selengkapnya, lihatPerutean log kustom (p. 143).

30 Agu 2019

Wawasan KontainerCloudWatch

Saat ini, Wawasan Kontainer CloudWatch tersediasecara umum. Aplikasi ini memungkinkan Anda untukmengumpulkan, menggabungkan, serta merangkum metrikdan log dari aplikasi dan layanan mikro terkontainerisasiAnda. Untuk informasi selengkapnya, lihat Amazon ECSCloudWatch Wawasan Wadah (p. 314).

30 Agu 2019

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah berkembang keWilayah Asia Pasifik (Hong Kong).

06 Agu 2019

Mendaftarkan BeberapaGrup Target denganLayanan

Menambahkan dukungan untuk menentukan beberapagrup target dalam sebuah definisi layanan. Untuk informasiselengkapnya, lihat Mendaftarkan beberapa grup targetdengan layanan (p. 265).

30 Juli 2019

475

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Wawasan KontainerCloudWatch

Amazon ECS telah menambahkan dukungan untukCloudWatch Wawasan Kontainer. Untuk informasiselengkapnya, lihat Amazon ECS CloudWatch WawasanWadah (p. 314).

9 Juli 2019

Izin tingkat sumber dayauntuk layanan dan set tugasAmazon ECS

Amazon ECS telah memperluas dukungan izin tingkatsumber daya untuk layanan dan tugas Amazon ECS.Untuk informasi selengkapnya, lihat Bagaimana AmazonElastic Container Service bekerja dengan IAM (p. 332).

27 Juni 2019

AWSPembaruan platform1.3.0 versi 1.3.0

Dimulai pada 1 Mei 2019, setiap tugas Fargate baruyang diluncurkan mendukungsplunkdriver log disampingawslogslog sopir. Untuk informasi selengkapnya,lihat Penyimpanan dan Pencatatan (p. 108).

1 Mei 2019

AWSPembaruan platform1.3.0 versi 1.3.0

Sejak 1 Mei 2019, setiap tugas Fargatebaru yang diluncurkan mendukung referensidata sensitif dalam konfigurasi log kontainermenggunakansecretOptionsparameter kontainer.Untuk informasi selengkapnya, lihat Menentukan datasensitif (p. 175).

1 Mei 2019

AWSPembaruan platform1.3.0 versi 1.3.0

Sejak 2 April 2019, semua tugas Fargate baru yangdiluncurkan mendukung pemasukan data sensitif ke dalamkontainer Anda dengan cara menyimpan data sensitif,baikAWS Secrets Managerrahasia atauAWS SystemsManagerParameter Store parameter dan kemudianmerujuknya dalam definisi kontainer Anda. Untuk informasiselengkapnya, lihat Menentukan data sensitif (p. 175).

2 Apr 2019

AWSPembaruan platform1.3.0 versi 1.3.0

Sejak 27 Maret 2019, setiap tugas Fargate baru dapatmenggunakan parameter ketentuan tugas tambahanyang memungkinkan Anda untuk menentukan konfigurasiproxy, dependensi untuk memulai dan mematikankontainer, serta nilai waktu-habis mulai dan berhenti perkontainer. Untuk informasi selengkapnya, lihat Konfigurasiproxy (p. 118), Dependensi kontainer (p. 115), dan Waktuhabis kontainer (p. 116).

27 Mar 2019

Amazon ECSmemperkenalkan tipedeployment eksternal

ParametereksternalTipe deployment memungkinkanAnda untuk menggunakan pengendali deployment pihakketiga untuk melakukan kendali penuh atas prosesdeployment untuk layanan Amazon ECS. Untuk informasiselengkapnya, lihat Deployment (p. 250).

27 Mar 2019

Amazon ECSmemperkenalkanPutAccountSettingDefaultAPI

Amazon ECSmemperkenalkanPutAccountSettingDefaultAPI yangmemungkinkan pengguna untuk mengatur status memilihformat ARN/ID default untuk semua pengguna dan peranIAM di akun. Sebelumnya, pengaturan status keikutsertaandefault akun memerlukan penggunaan pengguna root.

Untuk informasi selengkapnya, lihat Amazon ResourceName (ARN) dan ID (p. 197).

8 Feb 2019

476

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

VPC Endpoint Antarmuka(AWS PrivateLink)

Menambahkan dukungan untuk mengonfigurasi VPCendpoint antarmuka yang didukung oleh AWS PrivateLink.Hal tersebut memungkinkan Anda membuat koneksi privatantara VPC Anda dan Amazon ECS tanpa memerlukanakses melalui Internet, melalui instans NAT, koneksi VPN,atauAWS Direct Connect.

Untuk informasi selengkapnya, lihat VPC EndpointAntarmuka (AWS PrivateLink).

26 Des 2018

AWSPlatform Fargate versi1.3.0

BaruAWSVersi platform Fargate dirilis, yang berisi:

• Menambahkan dukungan untuk menggunakanparameter Parameter Store AWS Systems Manageruntuk memasukkan data sensitif ke dalam kontainerAnda.

Untuk informasi selengkapnya, lihat Menentukan datasensitif (p. 175).

• Menambahkan daur ulang tugas untuk tugas Fargate,yang merupakan proses menyegarkan tugas yangmerupakan bagian dari layanan Amazon ECS.

Untuk informasi lebih lanjut,PemeliharaantugasdiPanduan Pengguna Amazon Elastic ContainerServiceAWS Fargate.

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

17 Des 2018

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah Asia Pacific (Mumbai) dan Canada (Central).

07 Des 2018

Deployment Amazon ECS Amazon ECS menambahkan dukungan untuk deploymentbiru/hijau menggunakan CodeDeploy. Tipe deploymentini mengizinkan Anda untuk memverifikasi deploymentlayanan baru sebelum mengirim lalu lintas produksi kedalamnya.

Untuk informasi selengkapnya, lihat Deployment Biru/Hijaudengan CodeDeploy (p. 246).

27November2018

Penandaan sumber daya Amazon ECS menambahkan dukungan untukmenambahkan tanda metadata ke layanan, ketentuantugas, klaster, dan instans kontainer Anda.

Untuk informasi selengkapnya, lihat Sumber daya dantanda (p. 281).

15 Nov 2018

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah US West (N. California) dan Asia Pacific (Seoul).

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

07 Nov 2018

477

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Kuota layanan diperbarui Kuota layanan berikut diperbarui:

• Jumlah tugas yang menggunakan tipe peluncuranFargate, per Wilayah, per akun ditingkatkandari20kepada50.

• Jumlah alamat IP publik untuk tugas yang menggunakantipe peluncuran Fargate ditingkatkan dari20kepada50.

Untuk informasi selengkapnya, lihat Service QuotasAmazon ECS (p. 287).

31 Okt 2018

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah Eropa (London).

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

26 Okt 2018

Dukungan autentikasiregistri privat untukpenggunaan AmazonECSAWSTugas Fargate

Amazon ECS memperkenalkan dukungan untuktugas Fargate menggunakan otentikasi registri pribadimenggunakanAWS Secrets Manager. Fitur ini mengizinkanAnda untuk menyimpan kredensial secara aman dankemudian mereferensikannya dalam ketentuan kontainerAnda, yang mengizinkan tugas Anda untuk menggunakancitra privat.

Untuk informasi selengkapnya, lihat Autentikasi registriprivat untuk tugas (p. 173).

10 Sep 2018

Amazon ECS CLI L v1.8.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Menambahkan dukungan untuk volume Docker di filepenyusunan Docker.

• Menambahkan dukungan untuk batasan dan strategipenempatan tugas dalam file penyusunan Docker.

• Menambahkan dukungan untuk autentikasi registri privatdi file penyusunan Docker.

• Menambahkan dukungan untuk --force-update padacompose up untuk memaksa peluncuran kembali tugas.

Untuk informasi selengkapnya, lihatReferensi BarisPerintah Amazon ECSdiPanduan Pengembang AmazonElastic Container Service.

7 Sep 2018

Ekspansi wilayah penemuanlayanan Amazon ECS

Layanan Amazon ECS telah memperluas dukungan keWilayah Asia Pacific (Singapore), Asia Pacific (Sydney),Asia Pacific (Tokyo), EU (Frankfurt), dan Eropa (London).

Untuk informasi selengkapnya, lihat PenemuanLayanan (p. 276).

30 Agustus2018

478

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Tugas terjadwal dengandukungan tugas Fargate

Amazon ECS memperkenalkan dukungan untuk tipepeluncuran Fargate.

Untuk informasi selengkapnya, lihat Tugasterjadwal (p. 205).

28 Agustus2018

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah Eropa (Frankfurt), Asia Pacific (Singapore), danAsia Pacific (Sydney).

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

19 Juli 2018

Amazon ECS CLI L v1.7.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Menambahkan dukungan untuk kontainer healthcheckdan devices di file Docker compose. Untuk informasiselengkapnya, lihatReferensi Baris Perintah AmazonECSdiPanduan Pengembang Amazon Elastic ContainerService.

18 Juli 2018

Strategi penjadwal layananAmazon ECS ditambahkan

Amazon ECS memperkenalkan konsep strategi penjadwallayanan.

Ada dua strategi penjadwal layanan yang tersedia:

• REPLICAStrategi penjadwalan replika menempatkandan mempertahankan jumlah tugas yang diinginkanklaster Anda. Secara default tugas tersebar di seluruhAvailability Zone. Anda dapat menggunakan strategipenempatan tugas dan kendala untuk menyesuaikankeputusan penempatan tugas. Untuk informasiselengkapnya, lihat Replika (p. 214).

• DAEMON—Strategi penjadwalan daemon men-deploy tepat satu tugas pada setiap instanskontainer aktif yang memenuhi semua kendalapenempatan tugas yang Anda tentukan di klasterAnda. Penjadwal layanan mengevaluasi batasanpenempatan tugas untuk menjalankan tugas dan akanmenghentikan tugas yang tidak memenuhi batasanpenempatan. Saat menggunakan strategi ini, tidak perlumenentukan jumlah tugas yang diinginkan, strategipenempatan tugas, atau menggunakan kebijakanAuto Scaling Layanan. Untuk informasi selengkapnya,lihatDaemondiPanduan Pengembang Amazon ElasticContainer Service.

Note

Tugas Fargate tidak mendukungDAEMONstrategipenjadwalan.

Untuk informasi selengkapnya, lihat Konsep penjadwallayanan (p. 213).

12 Juni 2018

479

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Amazon ECS CLI L v1.6.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Menambahkan dukungan untuk sintaksis file Dockercompose versi 3. Untuk informasi selengkapnya,lihatReferensi Baris Perintah Amazon ECSdiPanduanPengembang Amazon Elastic Container Service.

5 Juni 2018

AWSEkspansi wilayahFargate

AWSFargate dengan Amazon ECS telah diperluas keWilayah US East (Ohio), US West (Oregon), dan EU West(Ireland).

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

26 April2018

CLI Amazon ECS CLI v1.5.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Menambahkan dukungan untuk CLI ECS untuksecara otomatis mengambil AMI yang dioptimalkanAmazon ECS terbaru dengan melakukan kueri APIStore Systems Manager selama proses pembuatansumber daya klaster. Hal tersebut mengharuskan akunpengguna yang Anda gunakan untuk memiliki izinSystems Manager yang diperlukan.

• Menambahkan dukungan untuk parameter shm_sizedan tmpfs dalam file penyusunan.

Untuk informasi selengkapnya, lihatReferensi BarisPerintah Amazon ECSdiPanduan Pengembang AmazonElastic Container Service.

19 April2018

Verifikasi unduhan AmazonECS CLI

Menambahkan metode tanda tangan PGP baru untukmemverifikasi file instalasi Amazon ECS CLI. Untukinformasi selengkapnya, lihat Menginstal CLI AmazonECS (p. 38).

5 April 2018

AWSVersi Platform Fargate BaruAWSVersi platform Fargate dirilis, yang berisi:

• Menambahkan dukungan untuk Titik akhir metadatatugas Amazon (p. 389).

• Menambahkan dukungan untuk Pemeriksaankondisi (p. 103).

• Menambahkan dukungan untuk PenemuanLayanan (p. 276)

Untuk informasi selengkapnya, lihat AWSVersiplatform (p. 55).

26 Maret2018

Penemuan LayananAmazon ECS

Menambahkan integrasi dengan Route 53 untukmendukung penemuan layanan Amazon ECS. Untukinformasi selengkapnya, lihat Penemuan Layanan (p. 276).

22 Maret2018

480

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Amazon ECS CLI v1.4.2 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Memperbarui AMI untuk amzn-ami-2017.09.k-amazon-ecs-optimized.

Untuk informasi selengkapnya, lihatReferensi BarisPerintah Amazon ECSdiPanduan Pengembang AmazonElastic Container Service.

20 Maret2018

Amazon ECS CLI L v1.4.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Menambahkan dukungan untuk Wilayah us-gov-west-1.• Menambahkan flag --force-deployment untuk

perintah layanan penyusunan.• Menambahkan dukungan untuk aws_session_token

dalam profil ECS.• Memperbarui AMI untuk amzn-ami-2017.09.j-amazon-ecs-optimized.

Untuk informasi selengkapnya, lihatReferensi BarisPerintah Amazon ECSdiPanduan Pengembang AmazonElastic Container Service.

09 Maret2018

Pemeriksaan KondisiKontainer

Menambahkan dukungan untuk pemeriksaan kondisiDocker dalam ketentuan kontainer. Untuk informasiselengkapnya, lihat Pemeriksaan kondisi (p. 103).

08 Maret2018

Titik Akhir Metadata TugasAmazon ECS

Sejak agen kontainer Amazon ECS versi 1.17.0, beragammetadata tugas, danStatistik Dockertersedia untuk tugas-tugas yang menggunakanawsvpcMode jaringan di titikakhir HTTP yang disediakan oleh agen kontainer AmazonECS. Untuk informasi selengkapnya, lihat Titik akhirmetadata tugas Amazon (p. 389).

8 Februari2018

Scaling Amazon ECSService menggunakankebijakan pelacakan target

Menambahkan dukungan untuk Auto Scaling LayananECS menggunakan kebijakan pelacakan target di konsolAmazon ECS. Untuk informasi selengkapnya, lihatKebijakan penskalaan pelacakan target (p. 269).

Menghapus tutorial sebelumnya untuk penskalaan langkahdi dalam ECS yang pertama kali menjalankan wizard.Tutorial ini diganti dengan tutorial baru untuk pelacakantarget.

8 Februari2018

481

Amazon ECS Panduan Pengguna untuk AWS Fargate

Perubahan Deskripsi Tanggal

Amazon ECS CLI L v1.3.0 Versi baru CLI Amazon ECS dirilis, yang menambahkanfungsionalitas berikut:

• Kemampuan untuk membuat klaster kosong denganperintah up.

• Menambahkan flag --health-check-grace-perioduntuk perintah up layanan penyusunan.

• Memperbarui AMI untuk amzn-ami-2017.09.g-amazon-ecs-optimized.

Untuk informasi selengkapnya, lihatReferensi BarisPerintah Amazon ECSdiPanduan Pengembang AmazonElastic Container Service.

19 Januari2018

Perilaku penjadwal layananbaru

Informasi yang diperbarui tentang perilaku untuk tugaslayanan yang gagal diluncurkan. Pesan kejadian layananbaru yang terdokumentasi yang terpicu saat tugas layananmengalami kegagalan berturut-turut. Untuk informasiselengkapnya tentang perilaku yang diperbarui ini, lihatKonsep layanan tambahan (p. 214).

11 Januari2018

CPU dan memori tingkattugas

Menambahkan dukungan untuk menentukan CPU danmemori pada tingkat tugas dalam ketentuan tugas. Untukinformasi selengkapnya, lihat TaskDefinition.

12Desember2017

Peran pelaksanaan tugas Agen kontainer Amazon ECS melakukan panggilan ketindakan Amazon ECS API atas nama Anda, sehinggalayanan memerlukan kebijakan dan peran IAM agarlayanan dapat mengetahui bahwa agen tersebut milikAnda. Tindakan berikut termasuk peran eksekusi tugas:

• Panggilan ke Amazon ECR untuk menarik citra kontainer• Panggilan ke CloudWatch untuk menyimpan log

kontainer

Untuk informasi selengkapnya, lihat Peran IAM eksekusitugas ECS Amazon (p. 363).

7 Desember2017

Amazon ECS CLI v1.1.0dengan dukungan Fargate

Versi baru CLI Amazon ECS dirilis, yang menambahkanfitur-fitur berikut:

• Dukungan untuk jaringan tugas• Dukungan untukAWSJauh• Support untuk melihat CloudWatch Log data dari tugas

Untuk informasi selengkapnya, lihat changelog CLI ECS.

29November2017

AWSFargate Menambahkan dukungan untuk meluncurkan layananAmazon ECS menggunakan tipe peluncuran Fargate.Untuk informasi selengkapnya, lihat Jenis peluncuranECS (p. 123).

29November2017

482

Amazon ECS Panduan Pengguna untuk AWS Fargate

Daftar istilah AWSUntuk terminologi AWS terbaru, lihat AWS daftar istilah di AWS Referensi Umum.

483

Amazon ECS Panduan Pengguna untuk AWS Fargate

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

cdlxxxiv