it-swarm.dev

Apa perbedaan antara Amazon ECS dan Amazon EC2?

Saya baru memulai AWS EC2. Saya mengerti bahwa EC2 seperti komputer jarak jauh di mana saya dapat melakukan hampir semua yang saya inginkan. Kemudian saya mengetahui tentang ECS. Saya tahu ini menggunakan Docker, tapi saya bingung tentang hubungan antara keduanya.

Apakah ECS hanyalah Docker yang dipasang di EC2? Jika saya sudah memiliki EC2 dan saya memulai ECS, apakah itu berarti saya memiliki dua contoh?

79
paynestrike

Pertanyaanmu

Apakah ECS hanya buruh pelabuhan yang memasang di EC2? Jika saya sudah memiliki EC2, maka saya memulai ECS, apakah itu berarti saya memiliki dua contoh?

Tidak. AWS ECS hanyalah pengelompokan (kluster) logis dari instance EC2, dan semua instans EC2 merupakan bagian dari ECS bertindak sebagai Docker Host i.e. ECS dapat mengirim perintah untuk meluncurkan wadah pada mereka (EC2). Jika Anda sudah memiliki EC2, dan kemudian meluncurkan ECS, Anda masih akan memiliki satu instance. Jika Anda menambahkan/mendaftar (dengan menginstal AWS ECS Container Agent) EC2 ke ECS itu akan menjadi bagian dari cluster, tetapi masih merupakan instance EC2.

Amazon ECS tanpa terdaftar EC2 (ditambahkan ke cluster) baik untuk apa-apa.


TL; DR

Ikhtisar

  • EC2 - hanyalah mesin jarak jauh (virtual).
  • ECS adalah singkatan dari Elastic Container Service - sesuai definisi dasar computer cluster , ECS pada dasarnya adalah pengelompokan logis dari EC2 mesin/instance . Secara teknis ECS adalah konfigurasi belaka untuk penggunaan dan pengelolaan sumber daya EC2 Anda yang efisien, misalnya penyimpanan, memori, CPU, dll.

Untuk menyederhanakannya lebih lanjut, jika Anda telah meluncurkan Amazon ECS tanpa ada EC2 yang ditambahkan ke dalamnya, tidak ada gunanya yaitu Anda tidak dapat berbuat apa-apa. ECS masuk akal hanya sekali satu (atau lebih) EC2 ditambahkan ke dalamnya.

Hal membingungkan berikutnya di sini adalah wadah istilah - yang tidak sepenuhnya contoh mesin virtual, dan Docker adalah salah satu teknologi yang bisa kita gunakan untuk membuat instance kontainer. Docker adalah utilitas yang dapat Anda instal pada mesin kami, yang menjadikannya Docker Host, dan pada Host ini Anda dapat membuat kontainer (sama seperti mesin virtual - tetapi jauh lebih ringan). Singkatnya, ECS hanya tentang pengelompokan instance EC2, dan menggunakan Docker untuk membuat instance wadah/instance/mesin virtual pada host (EC2) host ini .

Yang perlu Anda lakukan adalah meluncurkan ECS, dan mendaftar/tambahkan sebanyak EC2 instance ke dalamnya sesuai kebutuhan Anda. Anda dapat menambahkan/mendaftarkan mesin EC2, yang Anda butuhkan hanyalah Agen ECS Amazon yang berjalan di mesin EC2 Anda, yang dapat dilakukan secara manual atau langsung menggunakan AMI khusus (Gambar Mesin Amazon) yaitu AMI yang dioptimalkan oleh ECS Amazon, yang telah memiliki Agen Kontainer ECS Amazon. Selama peluncuran instance EC2 baru, Agen secara otomatis mendaftarkannya ke kluster ECS default.

Agen kontainer berjalan pada masing-masing instance (EC2 instances) dalam cluster Amazon ECS mengirimkan informasi tentang tugas-tugas yang sedang berjalan saat ini dan pemanfaatan sumber daya ke Amazon ECS, dan memulai dan menghentikan tugas setiap kali menerima permintaan dari Amazon ECS. Untuk informasi lebih lanjut, lihat Agen Kontainer ECS Amazon . Setelah diatur, masing-masing instance wadah yang dibuat (dari mesin/simpul EC2 apa pun) akan menjadi turunan dalam gerombolan Amazon ECS.


Untuk informasi lebih lanjut - baca langkah 10 dari dokumentasi ini: Meluncurkan Mesin Virtual Amazon ECS Container :

Pilih AMI untuk contoh wadah Anda. Anda dapat memilih AMI Amazon ECS yang dioptimalkan, atau sistem operasi lain, seperti CoreOS atau Ubuntu. Jika Anda tidak memilih AMI Amazon ECS yang dioptimalkan, Anda harus mengikuti prosedur di Instalasi Agen Kontainer ECS Amazon .

Secara default, instance kontainer Anda diluncurkan ke cluster default Anda. Jika Anda ingin meluncurkan ke kluster Anda sendiri daripada default, pilih daftar Rincian Lanjutan dan tempel skrip berikut ke dalam bidang data pengguna, ganti nama_cluster_name Anda dengan nama kluster Anda.

#!/bin/bash
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config

Atau, jika Anda memiliki file ecs.config di Amazon S3 dan telah mengaktifkan akses read-only Amazon S3 ke peran instance wadah Anda, pilih daftar Rincian Lanjutan dan tempel skrip berikut ke dalam bidang data Pengguna, ganti nama_bucket_name Anda dengan nama ember Anda untuk menginstal AWS CLI dan menulis file konfigurasi Anda pada waktu peluncuran. Catatan Untuk informasi lebih lanjut tentang konfigurasi ini, lihat Menyimpan Konfigurasi Instance Container di Amazon S3.

#!/bin/bash
yum install -y aws-cli
aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config

Hanya untuk memperjelasnya lebih lanjut - Anda dapat membuat kontainer pada instance EC2 tunggal Anda tanpa ECS. Instal salah satu teknologi containerisasi yaitu Docker dan jalankan perintah create container, atur EC2 Anda sebagai Host Docker Host, dan miliki sebanyak mungkin Docker wadah yang Anda inginkan (atau sebanyak sumber daya EC2 Anda izinkan).

122
Nabeel Ahmed

Dengan kata sederhana, ECS adalah manajer sedangkan instance EC2 sama seperti karyawan. Semua karyawan (EC2) di bawah manajer ini (ECS) dapat melakukan tugas-tugas "Docker" dan manajer juga memahami "buruh pelabuhan" dengan cukup baik. Jadi, setiap kali Anda membutuhkan sumber daya "buruh pelabuhan", Anda muncul di Manajer. Manajer sudah memiliki status dari setiap karyawan (EC2) memutuskan mana yang harus melakukan tugas.

Sekarang, kembali ke pertanyaan Anda, seorang manajer tanpa "karyawan" tidak masuk akal.

enter image description here

30
subodhkarwa

EC2 memungkinkan Anda untuk meluncurkan instance individual yang dapat Anda gunakan untuk apa pun yang Anda suka. ECS adalah layanan kontainer, yang berarti akan meluncurkan mesin virtual yang siap meluncurkan aplikasi kontainer. Perbedaan utama antara kedua layanan ini adalah bahwa dengan EC2 Anda harus mengelola setiap instance secara terpisah dengan metode apa pun yang Anda pilih (secara manual, menggunakan alat CM atau cara lain) - gunakan aplikasi Anda dan pertahankan koneksi antar server sendiri. ECS memungkinkan Anda untuk meluncurkan sekelompok mesin yang akan berfungsi sebagai tempat penyebaran aplikasi kontainer Anda, memungkinkan Anda untuk memperlakukan semua instance dalam cluster sebagai satu contoh besar yang tersedia untuk beban kerja kontainer Anda.

Dan untuk menjawab pertanyaan Anda - Anda dapat memulai cluster ECS tanpa instance di dalamnya, tetapi kemudian tidak akan dapat menjalankan apa pun di dalamnya. Setelah Anda mendaftarkan instance EC2 di dalam kluster ECS, kontainer siap dijalankan di dalamnya. Jadi intinya adalah - Anda dapat menggunakan kedua ECS dan EC2 hanya dengan satu contoh, tetapi itu bukan kasus penggunaan sebenarnya layanan ini dibangun untuk.

27
Yaron Idan

Sederhananya, Elastic Container Service (ECS) adalah layanan orkestrasi Docker.

Anda dapat memintanya menjalankan satu atau lebih gambar Docker, baik sebagai penskalaan otomatis "Layanan" atau sebagai ad-hoc "Tugas".

Layanan dan tugas dijalankan pada "Cluster". Awalnya, Cluster adalah sekelompok satu atau lebih server EC2 yang telah dikonfigurasi sebelumnya yang menjalankan ECS Cluster Agent. Agen Cluster akan menjadwalkan kontainer di server EC2. Server EC2 ini muncul di daftar Instance EC2 Anda dan dibebankan biaya EC2 per menit reguler - Anda bahkan dapat SSH menggunakannya seperti server EC2 biasa. Jika Anda ingin lebih banyak kapasitas untuk menjalankan lebih banyak Layanan atau Tugas, atau jika Anda ingin ketahanan terhadap kegagalan EC2, maka Anda akan lebih banyak server EC2.

Sekitar November 2017, AWS menambahkan ECS Fargate. Sekarang Cluster dapat menjalankan "serverless" tanpa menyediakan node EC2. Anda cukup menentukan jumlah CPU dan memori yang dibutuhkan oleh Tugas atau Layanan Anda untuk beroperasi, artinya Anda hanya membayar untuk CPU dan waktu memori daripada EC2.

0