Menyebarkan layanan Amazon ECS menggunakan pengontrol pihak ketiga - Amazon Elastic Container Service

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

Menyebarkan layanan Amazon ECS menggunakan pengontrol pihak ketiga

Jenis penyebaran eksternal memungkinkan Anda menggunakan pengontrol penyebaran pihak ketiga untuk kontrol penuh atas proses penyebaran 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 API mengelola subset parameter definisi layanan.

Tindakan API UpdateService memperbarui jumlah yang diinginkan dan parameter masa tenggang pemeriksaan 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 yang merupakan set tugas utama. Saat Anda memanggil tindakan API DescribeServices, tindakan tersebut mengembalikan semua bidang yang ditentukan untuk set tugas utama. Jika set tugas utama untuk layanan diperbarui, maka nilai parameter set tugas apa pun yang ada di set tugas utama baru yang berbeda dari set tugas utama lama di layanan akan diperbarui ke nilai baru saat set tugas utama baru ditentukan. Jika tidak ada set tugas utama yang ditentukan untuk layanan, maka saat menjelaskan layanan, bidang set tugas adalah nol.

Pertimbangan penyebaran eksternal

Pertimbangkan hal berikut saat menggunakan tipe deployment eksternal:

  • Jenis penyeimbang beban yang didukung adalah Application Load Balancer atau Penyeimbang Beban Jaringan.

  • Jenis peluncuran Fargate atau tipe pengontrol EXTERNAL penerapan tidak mendukung strategi penjadwalan. DAEMON

Alur kerja penerapan eksternal

Berikut ini adalah alur kerja dasar untuk mengelola penyebaran eksternal di Amazon ECS.

Untuk mengelola layanan Amazon ECS menggunakan pengontrol penyebaran eksternal
  1. Buat layanan Amazon ECS. Satu-satunya parameter yang diperlukan adalah nama layanan. Anda dapat menentukan parameter berikut saat membuat layanan menggunakan pengendali deployment eksternal. Semua parameter layanan lainnya ditentukan saat membuat set tugas dalam layanan.

    serviceName

    Tipe: String

    Diperlukan: Ya

    Nama layanan Anda. Mengizinkan hingga 255 huruf (huruf besar dan huruf kecil), angka, tanda hubung, dan garis bawah. Nama layanan harus unik dalam sebuah klaster, tetapi Anda dapat memiliki layanan yang bernama sama di beberapa klaster dalam satu Wilayah atau lebih.

    desiredCount

    Jumlah instantiasi dari tugas yang ditentukan menetapkan penentuan tugas untuk ditempatkan dan tetap berjalan dalam layanan.

    deploymentConfiguration

    Parameter deployment opsional yang mengendalikan seberapa banyak tugas yang dijalankan selama deployment dan urutan penghentian serta mulainya tugas.

    tags

    Tipe: Array objek

    Wajib: Tidak

    Metadata yang Anda terapkan ke layanan untuk membantu Anda mengkategorikan dan mengaturnya. Setiap tag terdiri dari kunci dan nilai opsional, yang keduanya Anda tentukan. Ketika layanan dihapus, tag akan dihapus juga. Maksimal 50 tag dapat diterapkan ke layanan. Untuk informasi selengkapnya, lihat Menandai sumber daya Amazon ECS.

    key

    Tipe: String

    Batasan Panjang: Panjang minimum 1. Panjang maksimum 128.

    Wajib: Tidak

    Satu bagian dari pasangan nilai kunci yang membentuk tanda. Kunci adalah label umum yang bertindak seperti kategori untuk nilai tanda yang lebih spesifik.

    value

    Tipe: String

    Batasan Panjang: Panjang minimum 0. Panjang maksimum 256.

    Wajib: Tidak

    Bagian opsional pasangan nilai kunci yang membentuk tanda. Nilai bertindak sebagai deskriptor dalam kategori tanda (kunci).

    enableECSManagedTags

    Menentukan apakah akan menggunakan tag terkelola Amazon ECS untuk tugas dalam layanan. Untuk informasi selengkapnya, lihat Gunakan tag untuk penagihan.

    propagateTags

    Tipe: String

    Nilai yang valid: TASK_DEFINITION | SERVICE

    Wajib: Tidak

    Menentukan apakah akan menyalin tag dari definisi tugas atau layanan untuk tugas-tugas dalam layanan. Jika tidak ada nilai yang ditentukan, tag tidak disalin. Tag hanya dapat disalin ke tugas dalam layanan selama pembuatan layanan. Untuk menambahkan tag ke tugas setelah pembuatan layanan atau pembuatan tugas, gunakan tindakan TagResource API.

    schedulingStrategy

    Strategi penjadwalan yang akan digunakan. Layanan yang menggunakan pengendali deployment eksternal hanya mendukung strategi penjadwalan REPLICA.

    placementConstraints

    Susunan objek batasan penempatan yang akan digunakan untuk tugas di layanan Anda. Anda dapat menentukan maksimal 10 batasan per tugas (batas ini mencakup batasan dalam penentuan tugas dan batasan yang ditentukan pada waktu aktif). Jika Anda menggunakan tipe peluncuran Fargate, batasan penempatan tugas tidak didukung.

    placementStrategy

    Strategi batasan objek yang akan digunakan untuk tugas-tugas dalam layanan Anda. Anda dapat menentukan maksimal empat aturan strategi per layanan.

    Berikut ini adalah contoh penentuan layanan untuk membuat layanan menggunakan pengendali deployment eksternal.

    { "cluster": "", "serviceName": "", "desiredCount": 0, "role": "", "deploymentConfiguration": { "maximumPercent": 0, "minimumHealthyPercent": 0 }, "placementConstraints": [ { "type": "distinctInstance", "expression": "" } ], "placementStrategy": [ { "type": "binpack", "field": "" } ], "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.

    launchType

    Tipe: String

    Nilai yang valid: EC2 | FARGATE | EXTERNAL

    Wajib: Tidak

    Jenis peluncuran untuk menjalankan layanan Anda. Jika jenis peluncuran tidak ditentukan, default capacityProviderStrategy digunakan secara default. Untuk informasi selengkapnya, lihat Jenis ECS peluncuran Amazon.

    Jika launchType ditentukan, parameter capacityProviderStrategy harus dihilangkan.

    platformVersion

    Tipe: String

    Wajib: Tidak

    Versi platform tempat tugas Anda dalam layanan berjalan. Versi platform hanya ditentukan untuk tugas yang menggunakan tipe peluncuran Fargate. Jika tidak ditentukan, versi terbaru (LATEST) digunakan secara default.

    AWS Versi platform Fargate digunakan untuk merujuk ke lingkungan runtime tertentu untuk infrastruktur tugas Fargate. Saat menentukan versi LATEST platform saat menjalankan tugas atau membuat layanan, Anda mendapatkan versi platform terbaru yang tersedia untuk tugas Anda. Saat Anda meningkatkan layanan Anda, tugas-tugas tersebut menerima versi platform yang ditentukan pada penerapan layanan saat ini. Untuk informasi selengkapnya, lihat Versi platform Fargate untuk Amazon ECS.

    catatan

    Versi platform tidak ditentukan untuk tugas yang menggunakan jenis EC2 peluncuran.

    loadBalancers

    Objek penyeimbang beban yang mewakili penyeimbang beban yang akan digunakan bersama layanan Anda. Saat menggunakan pengontrol penyebaran eksternal, hanya Application Load Balancer dan Network Load Balancer yang didukung. Jika Anda menggunakan Application Load Balancer, hanya satu grup target Application Load Balancer yang diizinkan per set tugas.

    Cuplikan berikut menunjukkan contoh loadBalancer objek untuk digunakan.

    "loadBalancers": [ { "targetGroupArn": "", "containerName": "", "containerPort": 0 } ]
    catatan

    Saat menentukan objek loadBalancer, Anda harus menentukan targetGroupArn dan menghilangkan parameter loadBalancerName.

    networkConfiguration

    Konfigurasi jaringan untuk layanan. Parameter ini diperlukan untuk penentuan tugas yang menggunakan mode jaringan awsvpc untuk menerima antarmuka jaringan elastisnya sendiri, dan tidak didukung untuk mode jaringan lainnya. Untuk informasi selengkapnya tentang jaringan untuk jenis peluncuran Fargate, lihat. Opsi jaringan tugas Amazon ECS untuk jenis peluncuran Fargate

    serviceRegistries

    Detail registri penemuan layanan yang akan ditetapkan ke layanan ini. Untuk informasi selengkapnya, lihat Gunakan penemuan layanan untuk menghubungkan layanan Amazon ECS dengan nama DNS.

    scale

    Persentase titik mengambang dari jumlah tugas yang diinginkan untuk menempatkan dan agar tetap berjalan di serangkaian tugas. Nilai ditetapkan sebagai total persentase dari desiredCount layanan. 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 set tugas, maka gunakan parameter scale untuk setiap set tugas di layanan untuk menentukan berapa banyak tugas yang harus tetap berjalan di layanan. Misalnya, jika Anda memiliki layanan yang berisi tasksetA dan Anda membuat tasksetB, maka Anda dapat menguji validitas tasksetB sebelum akan menransisikan lalu lintas produksi ke sana. Anda dapat mengatur scale untuk kedua set tugas ke 100, dan saat Anda siap untuk menransisikan semua lalu lintas produksi ke tasksetB, Anda dapat memperbarui scale untuk tasksetA ke 0 untuk menurunkan skalanya.