Ikhtisar konfigurasi 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.

Ikhtisar konfigurasi Amazon ECS Service Connect

Saat Anda menggunakan Service Connect, ada parameter yang perlu Anda konfigurasikan di sumber daya Anda.

Sumber daya Amazon ECS yang perlu dikonfigurasi untuk Service Connect
Lokasi parameter Jenis aplikasi Deskripsi Diperlukan
Ketentuan tugas Klien Tidak ada perubahan yang tersedia untuk Service Connect dalam definisi tugas klien. N/A
Ketentuan tugas Peladen-klien Server harus menambahkan name bidang ke port di portMappings wadah. Untuk informasi selengkapnya, lihat portMappings Ya
Ketentuan tugas Peladen-klien Server secara opsional dapat menyediakan protokol aplikasi (misalnya, HTTP) untuk menerima metrik spesifik protokol untuk aplikasi server mereka (misalnya,). HTTP 5xx Tidak
Definisi layanan Klien Layanan klien harus menambahkan a serviceConnectConfiguration untuk mengkonfigurasi namespace untuk bergabung. Namespace ini harus berisi semua layanan server yang perlu ditemukan oleh layanan ini. Untuk informasi selengkapnya, lihat serviceConnectConfiguration. Ya
Definisi layanan Peladen-klien Layanan server harus menambahkan a serviceConnectConfiguration untuk mengonfigurasi nama DNS, nomor port, dan namespace tempat layanan tersedia. Untuk informasi selengkapnya, lihat serviceConnectConfiguration. Ya
Klaster Klien Cluster dapat menambahkan namespace Service Connect default. Layanan baru di cluster mewarisi namespace saat Service Connect dikonfigurasi dalam layanan. Tidak
Klaster Peladen-klien Tidak ada perubahan yang tersedia untuk Service Connect di cluster yang berlaku untuk layanan server. Definisi tugas server dan layanan harus mengatur konfigurasi masing-masing. N/A
Ikhtisar langkah-langkah untuk mengkonfigurasi Service Connect

Langkah-langkah berikut memberikan gambaran umum tentang cara mengkonfigurasi Service Connect.

penting
  • Service Connect membuat AWS Cloud Map layanan di akun Anda. Memodifikasi AWS Cloud Map sumber daya ini dengan mendaftarkan/membatalkan pendaftaran instans secara manual, mengubah atribut instance, atau menghapus layanan dapat menyebabkan perilaku tak terduga untuk lalu lintas aplikasi Anda atau penerapan berikutnya.

  • Service Connect tidak mendukung link dalam definisi tugas.

  1. Tambahkan nama port ke pemetaan port dalam definisi tugas Anda. Selain itu, Anda dapat mengidentifikasi protokol lapisan 7 aplikasi, untuk mendapatkan metrik tambahan.

  2. Buat cluster dengan AWS Cloud Map namespace atau buat namespace secara terpisah. Untuk organisasi sederhana, buat cluster dengan nama yang Anda inginkan untuk namespace dan tentukan nama yang identik untuk namespace. Dalam hal ini, Amazon ECS membuat namespace HTTP baru dengan konfigurasi yang diperlukan. Service Connect tidak menggunakan atau membuat zona yang dihosting DNS di Amazon Route 53.

  3. Konfigurasikan layanan untuk membuat titik akhir Service Connect dalam namespace.

  4. Menyebarkan layanan untuk membuat titik akhir. Amazon ECS menambahkan container proxy Service Connect ke setiap tugas, dan membuat titik akhir Service Connect. AWS Cloud Map Wadah ini tidak dikonfigurasi dalam definisi tugas, dan definisi tugas dapat digunakan kembali tanpa modifikasi untuk membuat beberapa layanan di namespace yang sama atau di beberapa ruang nama.

  5. Menerapkan aplikasi klien sebagai layanan untuk terhubung ke titik akhir. Amazon ECS menghubungkannya ke titik akhir Service Connect melalui proxy Service Connect di setiap tugas.

    Aplikasi hanya menggunakan proxy untuk terhubung ke titik akhir Service Connect. Tidak ada konfigurasi tambahan untuk menggunakan proxy. Proxy melakukan penyeimbangan beban round-robin, deteksi outlier, dan percobaan ulang. Untuk informasi selengkapnya tentang proxy, lihatProksi Service Connect.

  6. Pantau lalu lintas melalui proxy Service Connect di Amazon CloudWatch.

Konfigurasi cluster

Anda dapat mengatur namespace default untuk Service Connect saat membuat atau memperbarui klaster. Jika Anda menentukan nama namespace yang tidak ada di akun Wilayah AWS dan yang sama, namespace HTTP baru akan dibuat.

Jika Anda membuat klaster dan menentukan namespace Service Connect default, klaster menunggu dalam status PROVISIONING sementara Amazon ECS membuat namespace. Anda dapat melihat status klaster yang menunjukkan status namespace. attachment Lampiran tidak ditampilkan secara default di AWS CLI, Anda harus menambahkan --include ATTACHMENTS untuk melihatnya.

Konfigurasi layanan

Service Connect dirancang untuk memerlukan konfigurasi minimum. Anda perlu menetapkan nama untuk setiap pemetaan port yang ingin Anda gunakan dengan Service Connect dalam definisi tugas. Dalam layanan, Anda perlu mengaktifkan Service Connect dan memilih namespace untuk membuat layanan klien. Untuk membuat layanan client-server, Anda perlu menambahkan satu konfigurasi layanan Service Connect yang cocok dengan nama salah satu pemetaan port. Amazon ECS menggunakan kembali nomor port dan nama port dari definisi tugas untuk menentukan layanan dan titik akhir Service Connect. Untuk mengganti nilai tersebut, Anda dapat menggunakan parameter lain Discovery, DNS, dan Port di konsol, atau discoveryName danclientAliases, masing-masing di Amazon ECS API.

Contoh berikut menunjukkan setiap jenis konfigurasi Service Connect yang digunakan bersama-sama dalam layanan Amazon ECS yang sama. Komentar Shell disediakan, namun perhatikan bahwa konfigurasi JSON yang digunakan untuk layanan Amazon ECS tidak mendukung komentar.

{ ... serviceConnectConfiguration: { enabled: true, namespace: "internal", #config for client services can end here, only these two parameters are required. services: [{ portName: "http" }, #minimal client - server service config can end here.portName must match the "name" parameter of a port mapping in the task definition. { discoveryName: "http-second" #name the discoveryName to avoid a Task def port name collision with the minimal config in the same Cloud Map namespace portName: "http" }, { clientAliases: [{ dnsName: "db", port: 81 }] #use when the port in Task def is not the port that client apps use.Client apps can use http: //db:81 to connect discoveryName: "http-three" portName: "http" }, { clientAliases: [{ dnsName: "db.app", port: 81 }] #use when the port in Task def is not the port that client apps use.duplicates are fine as long as the discoveryName is different. discoveryName: "http-four" portName: "http", ingressPortOverride: 99 #If App should also accept traffic directly on Task def port. } ] } }