Pertanyaanmu
Apakah ECS hanya sebuah buruh pelabuhan yang diinstal di EC2? Jika saya sudah memiliki EC2, lalu saya memulai ECS, apakah itu berarti saya memiliki dua instans?
Tidak. AWS ECS
Hanyalah pengelompokan logis (cluster) EC2
instans, dan semua EC2
instans bagian dari ECS
tindakan sebagai Docker
host, misalnya ECS dapat mengirim perintah untuk meluncurkan wadah pada mereka ( EC2
). Jika Anda sudah memiliki EC2, lalu meluncurkan ECS, Anda masih memiliki satu instans. Jika Anda menambahkan / mendaftarkan (dengan menginstal AWS ECS Container Agent) EC2 ke ECS itu akan menjadi bagian dari klaster, tetapi masih satu instans EC2.
Amazon ECS tanpa EC2 yang terdaftar (ditambahkan ke klaster) tidak berguna.
TL; DR
Gambaran
EC2
- hanyalah mesin jarak jauh (virtual).
ECS
singkatan Elastic Container Service
- sesuai definisi dasar cluster komputer , ECS
pada dasarnya adalah pengelompokan logis dari
EC2
mesin / instance . Secara teknis, ECS
ini hanyalah konfigurasi untuk penggunaan dan pengelolaan EC2
sumber daya instans Anda secara efisien, misalnya penyimpanan, memori, CPU, dll.
Untuk menyederhanakannya lebih lanjut, jika Anda telah meluncurkan Amazon ECS
dengan tidak ada EC2
contoh yang ditambahkan padanya, itu tidak ada gunanya yaitu Anda tidak dapat berbuat apa-apa. ECS
masuk akal hanya sekali satu (atau lebih) EC2
contoh ditambahkan ke dalamnya.
Hal membingungkan berikutnya di sini adalah istilah container - yang bukan instance mesin yang sepenuhnya tervirtualisasi, dan Docker adalah salah satu teknologi yang dapat kita gunakan untuk membuat instance container. Docker
adalah utilitas yang dapat Anda instal di mesin kami, yang menjadikannya Docker
host, dan di host ini Anda dapat membuat container (sama seperti mesin virtual - tetapi jauh lebih ringan). Singkatnya, ECS
ini hanya tentang pengelompokan instans EC2, dan menggunakan Docker
untuk membuat instance container / instans / mesin virtual pada EC2
host ( ) ini .
Yang perlu Anda lakukan adalah meluncurkan ECS
, dan mendaftar / menambahkan sebanyak mungkin EC2
instance yang Anda butuhkan. Anda dapat menambahkan / mendaftarkan instans EC2, yang Anda butuhkan hanyalah Agen Kontainer Amazon ECS yang berjalan pada instans / mesin EC2 Anda, yang dapat dilakukan secara manual atau langsung menggunakan AMI khusus (Amazon Machine Image), yaitu AMI yang dioptimalkan Amazon ECS, yang sudah memiliki Agen Kontainer Amazon ECS. Selama peluncuran instans EC2 baru, Agen secara otomatis mendaftarkannya ke klaster ECS default.
The Agen kontainer berjalan pada masing-masing kasus ( EC2
contoh) dalam sebuah Amazon ECS
klaster mengirimkan informasi tentang tugas contoh saat berjalan dan pemanfaatan sumber daya untuk Amazon ECS, dan dimulai dan berhenti tugas setiap kali menerima permintaan dari Amazon ECS. Untuk informasi selengkapnya, lihat Agen Kontainer Amazon ECS . Setelah disetel, setiap instance container yang dibuat (dari EC2
mesin / node apa pun ) akan menjadi instance di Amazon ECS
swarm.
Untuk informasi lebih lanjut - baca langkah 10 dari dokumentasi ini: Meluncurkan Instans Kontainer Amazon ECS :
Pilih AMI untuk instance container Anda. Anda dapat memilih AMI yang dioptimalkan Amazon ECS, atau sistem operasi lain, seperti CoreOS atau Ubuntu. Jika Anda tidak memilih AMI yang dioptimalkan Amazon ECS, Anda harus mengikuti prosedur dalam Menginstal Agen Kontainer Amazon ECS .
Secara default, instance container Anda diluncurkan ke cluster default Anda. Jika Anda ingin meluncurkan ke cluster Anda sendiri, bukan default, pilih daftar Detail Lanjutan dan tempelkan skrip berikut ke bidang Data pengguna, ganti nama_anda dengan nama cluster 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 baca-saja Amazon S3 ke peran instans kontainer Anda, pilih daftar Detail Lanjutan dan tempelkan skrip berikut ke bidang Data pengguna, ganti nama_bucket_Anda dengan nama keranjang Anda untuk menginstal AWS CLI dan menulis file konfigurasi Anda pada waktu peluncuran. Catatan Untuk informasi selengkapnya tentang konfigurasi ini, lihat Menyimpan Konfigurasi Mesin Virtual Kontainer 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 penampung pada satu EC2
instance Anda tanpa ECS
. Instal salah satu teknologi containerization yaitu Docker
dan jalankan perintah create container, setel Anda EC2
sebagai Docker
host, dan miliki Docker
container sebanyak yang Anda inginkan (atau sebanyak yang EC2
diizinkan oleh resource Anda).
Dengan kata sederhana, ECS adalah manajer sementara instans EC2 seperti karyawan. Semua karyawan (EC2) di bawah manajer ini (ECS) dapat melakukan tugas "Docker" dan manajer juga memahami "buruh pelabuhan" dengan cukup baik. Jadi, kapan pun Anda membutuhkan sumber daya "buruh pelabuhan", Anda muncul ke Manajer. Manajer sudah memiliki status dari setiap karyawan (EC2) memutuskan mana yang harus melakukan tugas.
Sekarang, kembali ke pertanyaan Anda, manajer tanpa "karyawan" tidak masuk akal.
sumber
EC2 memungkinkan Anda meluncurkan instans individual yang dapat Anda gunakan untuk apa pun yang Anda suka. ECS adalah layanan kontainer, yang artinya akan meluncurkan instans yang akan siap meluncurkan aplikasi kontainer. Perbedaan utama antara kedua layanan tersebut adalah dengan EC2 Anda harus mengelola setiap instans secara terpisah dengan metode apa pun yang Anda pilih (secara manual, menggunakan alat CM atau cara lain) - menerapkan aplikasi Anda dan menjaga koneksi antar server sendiri. ECS memungkinkan Anda meluncurkan kluster mesin yang akan berfungsi sebagai tempat penerapan aplikasi penampung Anda, memungkinkan Anda memperlakukan semua instans dalam kluster sebagai satu instans besar yang tersedia untuk beban kerja penampung Anda.
Dan untuk menjawab pertanyaan Anda - Anda dapat memulai klaster ECS tanpa instans di dalamnya, tetapi klaster tersebut tidak akan dapat menjalankan apa pun di dalamnya. Setelah Anda mendaftarkan instans EC2 di dalam klaster ECS, kontainer siap untuk dijalankan di dalamnya. Jadi intinya adalah - Anda dapat menggunakan ECS dan EC2 hanya dengan satu instans, tetapi itu bukan kasus penggunaan sebenarnya yang dibuat untuk layanan ini.
sumber
Sederhananya, Elastic Container Service (ECS) adalah layanan orkestrasi kontainer Docker.
Anda dapat memintanya untuk menjalankan satu atau lebih image Docker, baik sebagai " Service " yang mampu melakukan penskalaan otomatis atau sebagai " Task " ad-hoc .
Layanan dan tugas dijalankan di " Cluster ". Awalnya, Cluster adalah grup dari satu atau beberapa server EC2 yang telah dikonfigurasi sebelumnya yang menjalankan Agen Klaster ECS. Agen Cluster akan menjadwalkan kontainer di server EC2. Server EC2 ini muncul di daftar Instans EC2 Anda dan dikenakan biaya EC2 reguler per menit - Anda bahkan dapat melakukan SSH ke server tersebut seperti server EC2 biasa. Jika Anda menginginkan lebih banyak kapasitas untuk menjalankan lebih banyak Layanan atau Tugas, atau jika Anda menginginkan ketahanan terhadap kegagalan EC2, maka Anda menginginkan lebih banyak server EC2.
Sekitar November 2017, AWS menambahkan ECS Fargate . Sekarang Cluster dapat menjalankan "tanpa server" tanpa menyediakan node EC2. Anda cukup menentukan jumlah CPU dan memori yang diperlukan Tugas atau Layanan Anda untuk beroperasi, artinya Anda hanya membayar waktu CPU dan memori daripada EC2.
sumber
Oke, seperti yang Anda ketahui EC2 adalah mesin virtual di AWS dan ECS adalah sistem orkestrasi container di AWS.
Untuk menggunakan ECS, Anda perlu menjalankan container Anda ke beberapa mesin virtual di mana EC2 adalah salah satu opsi untuk menyediakannya.
Anda perlu menginstal
ecs-agent
pada EC2 untuk membuat koneksi dengan ECS. Dan ECS juga dapat memantau penggunaan sumber daya di EC2 Anda. Jadi pada dasarnya Anda memilih jenis EC2 yang lebih tinggi, maka lebih banyak sumber daya (CPU / MEM) yang dapat digunakan penampung Anda.sumber
Perbedaan utamanya adalah Instans Fargate yang disediakan ECS.
sumber