Komponen Amazon ECS Service Connect - Amazon Elastic Container Service

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

Komponen Amazon ECS Service Connect

Saat Anda menggunakan Amazon ECS Service Connect, Anda mengonfigurasi setiap ECS layanan Amazon untuk menjalankan aplikasi server yang menerima permintaan jaringan (layanan client-server) atau menjalankan aplikasi klien yang membuat permintaan (layanan klien).

Saat Anda bersiap untuk mulai menggunakan Service Connect, mulailah dengan layanan client-server. Anda dapat menambahkan konfigurasi Service Connect ke layanan baru atau layanan yang sudah ada. Amazon ECS membuat titik akhir Service Connect di namespace. Selain itu, Amazon ECS membuat penerapan baru di layanan untuk menggantikan tugas yang sedang berjalan.

Tugas yang ada dan aplikasi lain dapat terus terhubung ke titik akhir yang ada, dan aplikasi eksternal. Jika layanan client-server menambahkan tugas dengan skala keluar, koneksi baru dari klien akan seimbang di antara semua tugas. Jika layanan client-server diperbarui, koneksi baru dari klien akan seimbang antara tugas-tugas versi baru.

Tugas yang ada tidak dapat menyelesaikan dan terhubung ke titik akhir yang baru. Hanya tugas baru dengan konfigurasi Service Connect di namespace yang sama dan yang mulai berjalan setelah penerapan ini dapat menyelesaikan dan terhubung ke titik akhir ini.

Ini berarti bahwa operator aplikasi klien menentukan kapan konfigurasi aplikasi mereka berubah, meskipun operator aplikasi server dapat mengubah konfigurasi mereka kapan saja. Daftar titik akhir di namespace dapat berubah setiap kali layanan apa pun di namespace diterapkan. Tugas yang ada dan tugas pengganti terus berperilaku sama seperti yang mereka lakukan setelah penerapan terbaru.

Pertimbangkan contoh berikut.

Pertama, asumsikan bahwa Anda membuat aplikasi yang tersedia untuk internet publik dalam satu AWS CloudFormation template dan AWS CloudFormation tumpukan tunggal. Penemuan dan jangkauan publik harus dibuat terakhir oleh AWS CloudFormation, termasuk layanan klien frontend. Layanan perlu dibuat dalam urutan ini untuk mencegah periode waktu ketika layanan klien frontend berjalan dan tersedia untuk umum, tetapi backend tidak. Ini menghilangkan pesan kesalahan agar tidak dikirim ke publik selama periode waktu tersebut. Di AWS CloudFormation, Anda harus menggunakan dependsOn untuk menunjukkan AWS CloudFormation bahwa beberapa ECS layanan Amazon tidak dapat dibuat secara paralel atau bersamaan. Anda harus menambahkan dependsOn ke layanan klien frontend untuk setiap layanan client-server backend yang terhubung dengan tugas klien.

Kedua, asumsikan bahwa layanan frontend ada tanpa konfigurasi Service Connect. Tugas menghubungkan ke layanan backend yang ada. Tambahkan konfigurasi Service Connect client-server ke layanan backend terlebih dahulu, menggunakan nama yang sama di DNSatau clientAlias yang digunakan frontend. Ini menciptakan penerapan baru, sehingga semua deteksi rollback penerapan atau AWS Management Console, AWS CLI, AWS SDKs dan metode lain untuk memutar kembali dan mengembalikan layanan backend ke penerapan dan konfigurasi sebelumnya. Jika Anda puas dengan kinerja dan perilaku layanan backend, tambahkan konfigurasi Service Connect klien atau client-server ke layanan frontend. Hanya tugas dalam penerapan baru yang menggunakan proxy Service Connect yang ditambahkan ke tugas baru tersebut. Jika Anda memiliki masalah dengan konfigurasi ini, Anda dapat memutar kembali dan kembali ke konfigurasi sebelumnya dengan menggunakan deteksi rollback penerapan atau AWS Management Console, AWS CLI, AWS SDKs dan metode lain untuk memutar kembali dan mengembalikan layanan backend ke penerapan dan konfigurasi sebelumnya. Jika Anda menggunakan sistem penemuan layanan lain yang didasarkan pada DNS alih-alih Service Connect, aplikasi frontend atau klien apa pun mulai menggunakan titik akhir baru dan mengubah konfigurasi titik akhir setelah DNS cache lokal kedaluwarsa, biasanya memakan waktu beberapa jam.

Jaringan

Secara default, proxy Service Connect mendengarkan containerPort dari pemetaan port definisi tugas. Aturan grup keamanan Anda harus mengizinkan lalu lintas masuk (masuknya) ke port ini dari subnet tempat klien akan dijalankan.

Bahkan jika Anda menetapkan nomor port dalam konfigurasi layanan Service Connect, ini tidak mengubah port untuk layanan client-server yang didengarkan proxy Service Connect. Saat Anda menyetel nomor port ini, Amazon ECS mengubah port titik akhir yang terhubung dengan layanan klien, pada proxy Service Connect di dalam tugas tersebut. Proxy dalam layanan klien terhubung ke proxy di layanan client-server menggunakan file. containerPort

Jika Anda ingin mengubah port yang didengarkan proxy Service Connect, ubah konfigurasi Service Connect pada layanan client-server. ingressPortOverride Jika Anda mengubah nomor port ini, Anda harus mengizinkan lalu lintas masuk pada port ini yang digunakan oleh lalu lintas ke layanan ini.

Lalu lintas yang dikirim aplikasi Anda ke ECS layanan Amazon yang dikonfigurasi untuk Service Connect mengharuskan Amazon VPC dan subnet memiliki aturan tabel rute dan ACL aturan jaringan yang memungkinkan containerPort dan nomor ingressPortOverride port yang Anda gunakan.

Anda dapat menggunakan Service Connect untuk mengirim lalu lintas di antaranyaVPCs. Persyaratan yang sama untuk aturan tabel rute, jaringanACLs, dan grup keamanan berlaku untuk keduanyaVPCs.

Misalnya, dua cluster membuat tugas yang berbedaVPCs. Layanan di setiap cluster dikonfigurasi untuk menggunakan namespace yang sama. Aplikasi dalam dua layanan ini dapat menyelesaikan setiap titik akhir di namespace tanpa konfigurasi apa pun. VPC DNS Namun, proxy tidak dapat terhubung kecuali tabel rute VPC peering,VPC, atau subnet, dan VPC jaringan ACLs mengizinkan lalu lintas pada nomor port dan. containerPort ingressPortOverride

Untuk tugas yang menggunakan mode bridge jaringan, Anda harus membuat grup keamanan dengan aturan masuk yang memungkinkan lalu lintas pada rentang port dinamis atas. Kemudian, tetapkan grup keamanan ke semua EC2 instance di cluster Service Connect.

Proksi Service Connect

Jika Anda membuat atau memperbarui layanan dengan konfigurasi Service Connect, Amazon ECS menambahkan penampung baru ke setiap tugas baru saat dimulai. Pola penggunaan wadah terpisah ini disebut asidecar. Wadah ini tidak ada dalam definisi tugas dan Anda tidak dapat mengonfigurasinya. Amazon ECS mengelola konfigurasi Container dalam layanan. Ini memungkinkan Anda untuk menggunakan kembali definisi tugas yang sama antara beberapa layanan, ruang nama, dan tugas tanpa Service Connect.

Sumber daya proxy
  • Untuk definisi tugas, Anda harus mengatur parameter CPU dan memori.

    Sebaiknya tambahkan 256 CPU unit dan setidaknya 64 MiB memori ke tugas CPU dan memori Anda untuk wadah proxy Service Connect. Di AWS Fargate, jumlah memori terendah yang dapat Anda atur adalah memori 512 MiB. Di AmazonEC2, memori definisi tugas diperlukan.

  • Untuk layanan, Anda mengatur konfigurasi log dalam konfigurasi Service Connect.

  • Jika Anda mengharapkan tugas dalam layanan ini menerima lebih dari 500 permintaan per detik pada beban puncaknya, sebaiknya tambahkan 512 CPU unit ke tugas Anda CPU dalam definisi tugas ini untuk container proxy Service Connect.

  • Jika Anda berharap untuk membuat lebih dari 100 layanan Service Connect di namespace atau 2000 tugas secara total di semua ECS layanan Amazon dalam namespace, sebaiknya tambahkan 128 MiB memori ke memori tugas Anda untuk container proxy Service Connect. Anda harus melakukan ini di setiap definisi tugas yang digunakan oleh semua ECS layanan Amazon di namespace.

Konfigurasi proxy

Aplikasi Anda terhubung ke proxy di wadah sespan dalam tugas yang sama dengan aplikasi. Amazon ECS mengonfigurasi tugas dan kontainer sehingga aplikasi hanya terhubung ke proxy saat aplikasi terhubung ke nama titik akhir di namespace yang sama. Semua lalu lintas lainnya tidak menggunakan proxy. Lalu lintas lainnya termasuk alamat IP yang samaVPC, titik akhir AWS layanan, dan lalu lintas eksternal.

Penyeimbangan beban

Service Connect mengonfigurasi proxy untuk menggunakan strategi round-robin untuk load balancing antara tugas di titik akhir Service Connect. Proxy lokal yang ada dalam tugas dari mana koneksi berasal, memilih salah satu tugas dalam layanan client-server yang menyediakan titik akhir.

Misalnya, pertimbangkan tugas yang berjalan WordPress di layanan yang dikonfigurasi sebagai layanan klien di namespace yang disebut lokal. Ada layanan lain dengan 2 tugas yang menjalankan SQL database Saya. Layanan ini dikonfigurasi untuk menyediakan titik akhir yang dipanggil mysql melalui Service Connect di namespace yang sama. Dalam WordPress tugas, WordPress aplikasi terhubung ke database menggunakan nama endpoint. Koneksi ke nama ini masuk ke proxy yang berjalan dalam wadah sespan dalam tugas yang sama. Kemudian, proxy dapat terhubung ke salah satu SQL tugas Saya menggunakan strategi round-robin.

Strategi penyeimbangan beban: round-robin

Deteksi outlier

Fitur ini menggunakan data yang dimiliki proxy tentang koneksi gagal sebelumnya untuk menghindari pengiriman koneksi baru ke host yang memiliki koneksi gagal. Service Connect mengonfigurasi fitur deteksi outlier dari proxy untuk memberikan pemeriksaan kesehatan pasif.

Menggunakan contoh sebelumnya, proxy dapat terhubung ke salah satu SQL tugas Saya. Jika proxy membuat beberapa koneksi ke SQL tugas saya tertentu, dan 5 atau lebih koneksi gagal dalam 30 detik terakhir, maka proxy menghindari itu SQL Tugas saya selama 30 hingga 300 detik.

Percobaan ulang

Service Connect mengonfigurasi proxy untuk mencoba lagi koneksi yang melewati proxy dan gagal, dan upaya kedua menghindari penggunaan host dari koneksi sebelumnya. Ini memastikan bahwa setiap koneksi melalui Service Connect tidak gagal karena alasan satu kali.

Jumlah percobaan ulang: 2

Waktu habis

Service Connect mengonfigurasi proxy untuk menunggu waktu maksimum agar aplikasi client-server Anda merespons. Nilai batas waktu default adalah 15 detik, tetapi dapat diperbarui.

Parameter opsional:

idleTimeout- Jumlah waktu dalam hitungan detik koneksi tetap aktif saat idle. Nilai yang 0 dinonaktifkanidleTimeout.

idleTimeoutDefault untukHTTP/HTTP2/GRPCadalah 5 menit.

idleTimeoutDefault untuk TCP adalah 1 jam.

perRequestTimeout- Jumlah waktu menunggu hulu untuk merespons dengan respons lengkap per permintaan. Nilai 0 dimatikanperRequestTimeout. Ini hanya dapat diatur ketika wadah appProtocol untuk aplikasi adalahHTTP/HTTP2/GRPC. Defaultnya adalah 15 detik.

catatan

Jika idleTimeout diatur ke waktu yang kurang dariperRequestTimeout, koneksi akan ditutup ketika idleTimeout tercapai dan bukanperRequestTimeout.

Pertimbangan

Pertimbangkan hal berikut saat menggunakan Service Connect:

  • Tugas yang berjalan di Fargate harus menggunakan versi platform Fargate Linux 1.4.0 atau lebih tinggi untuk menggunakan Service Connect.

  • Versi ECS agen Amazon pada instance container harus 1.67.2 atau lebih tinggi.

  • Instans penampung harus menjalankan versi Amazon Linux 2023 ECS yang dioptimalkan Amazon atau yang lebih baru, 20230428 atau AMI versi Amazon Linux 2 yang dioptimalkan ECS Amazon untuk 2.0.20221115 menggunakan Service AMI Connect. Versi ini memiliki agen Service Connect selain agen ECS kontainer Amazon. Untuk informasi selengkapnya tentang agen Service Connect, lihat Agen Amazon ECS Service Connect di GitHub.

  • Instance kontainer harus memiliki ecs:Poll izin untuk sumber arn:aws:ecs:region:0123456789012:task-set/cluster/* daya. Jika Anda menggunakanecsInstanceRole, Anda tidak perlu menambahkan izin tambahan. Kebijakan AmazonEC2ContainerServiceforEC2Role terkelola memiliki izin yang diperlukan. Untuk informasi selengkapnya, lihat IAMPeran contoh ECS wadah Amazon.

  • Hanya layanan yang menggunakan penerapan bergulir yang didukung dengan Service Connect.

  • Tugas yang menggunakan mode bridge jaringan dan menggunakan Service Connect tidak mendukung parameter definisi hostname kontainer.

  • Definisi tugas harus menetapkan batas memori tugas untuk menggunakan Service Connect. Untuk informasi selengkapnya, lihat Proksi Service Connect.

  • Definisi tugas yang menetapkan batas memori kontainer tidak didukung.

    Anda dapat mengatur batas memori kontainer pada kontainer Anda, tetapi Anda harus mengatur batas memori tugas ke angka yang lebih besar dari jumlah batas memori kontainer. Tambahan CPU dan memori dalam batas tugas yang tidak dialokasikan dalam batas penampung digunakan oleh kontainer proxy Service Connect dan kontainer lain yang tidak menetapkan batas kontainer. Untuk informasi selengkapnya, lihat Proksi Service Connect.

  • Anda dapat mengonfigurasi Service Connect untuk menggunakan AWS Cloud Map namespace apa pun di Wilayah yang sama. Akun AWS

  • Setiap layanan hanya dapat dimiliki oleh satu namespace.

  • Hanya tugas yang dibuat layanan yang didukung.

  • Semua titik akhir harus unik dalam namespace.

  • Semua nama penemuan harus unik dalam namespace.

  • Anda harus menerapkan ulang layanan yang ada sebelum aplikasi dapat menyelesaikan titik akhir baru. Titik akhir baru yang ditambahkan ke namespace setelah penerapan terbaru tidak akan ditambahkan ke konfigurasi tugas. Untuk informasi selengkapnya, lihat Komponen Amazon ECS Service Connect.

  • Service Connect tidak menghapus ruang nama saat kluster dihapus. Anda harus menghapus ruang nama di. AWS Cloud Map

  • Lalu lintas Application Load Balancer default ke routing melalui agen Service Connect dalam mode jaringan. awsvpc Jika Anda ingin lalu lintas non-layanan melewati agen Service Connect, gunakan ingressPortOverride parameter dalam konfigurasi layanan Service Connect.

Service Connect tidak mendukung hal berikut:
  • Kontainer Windows

  • HTTP1.0

  • Tugas mandiri

  • Layanan yang menggunakan jenis penyebaran biru/hijau dan eksternal

  • Externalinstance container untuk Amazon ECS Anywhere tidak didukung dengan Service Connect.

  • PPv2

Wilayah dengan Service Connect

Amazon ECS Service Connect tersedia di AWS Wilayah berikut:

Nama Wilayah Wilayah

US East (Ohio)

us-east-2

US East (N. Virginia)

us-east-1

US West (N. California)

us-west-1

US West (Oregon)

as-barat-2

Afrika (Cape Town)

af-selatan-1

Asia Pasifik (Hong Kong)

ap-east-1

Asia Pasifik (Jakarta)

ap-southeast-3

Asia Pasifik (Mumbai)

ap-south-1

Asia Pasifik (Hyderabad)

ap-south-2

Asia Pacific (Osaka)

ap-northeast-3

Asia Pacific (Seoul)

ap-northeast-2

Asia Pacific (Singapore)

ap-southeast-1

Asia Pacific (Sydney)

ap-southeast-2

Asia Pasifik (Melbourne)

ap-southeast-4

Asia Pasifik (Tokyo)

ap-northeast-1

Canada (Central)

ca-central-1

Kanada Barat (Calgary)

ca-west-1

Tiongkok (Beijing)

cn-north-1 (Catatan: untuk TLS Service Connect tidak tersedia di wilayah ini.)

Tiongkok (Ningxia)

cn-northwest-1 (Catatan: untuk TLS Service Connect tidak tersedia di wilayah ini.)

Eropa (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 (Spanyol)

eu-south-2

Eropa (Stockholm)

eu-north-1

Europe (Zurich)

eu-central-2

Israel (Tel Aviv)

il-central-1

Timur Tengah (Bahrain)

me-south-1

Timur Tengah (UAE)

me-central-1

Amerika Selatan (Sao Paulo)

sa-east-1