Hai!

Pada jurnal ini saya ingin berbagi mengenai layanan Amazon ECS atau Elastic Container Service. Ia merupakan sebuah layanan manajemen container secara cepat, aman, dan memiliki skalabilitas tinggi. Container akan ditempatkan di sebuah cluster dan kita bisa melakukan start, stop, dan konfigurasi lainnya disana dengan mudah.

Agar user bisa mengakses aplikasi di dalam container diperlukan sebuah service yang berisi konfigurasi port, target container, load balancer, jumlah container yang seharusnya running, dan masih banyak lagi.

Pada jurnal sebelumnya di AWS: Pushing an Image to Amazon ECR (Elastic Container Registry) Repository terdapat tahap kita menjalankan container di ec2 instance untuk pengujian image. Yang mana itu sebenarnya termasuk salah satu model deploy container di AWS, deploy container di EC2 instance.

Salah satu model lain yang bisa diterapkan yaitu menggunakan Fargate dan akan kita coba di jurnal ini.

Dari AWS Management Console > Containers > Elastic Container Service

Kita akan diarahkan ke dashboard dari Amazon ECS. Di bawah ini terlihat kosong karena belum ada satupun cluster yang dibuat. Klik Get started.

Ada empat langkah yang perlu dikonfigurasi ketika ingin membuat cluster di Amazon ECS. Langkah pertama adalah mengkonfigurasi container dan task.

Pada Container definition ada 3 container definiition yang sudah ada sebagai contoh, kita klik Edit untuk membuat definisi baru.

Isikan nama container, misal virtualpiano. Definisikan URI dari image. Saya gunakan URI dari jurnal sebelumnya. Bisa dibaca disini: AWS: Pushing an Image to Amazon ECR (Elastic Container Registry) Repository

Tentukan juga limit memori dan port mapping yang akan digunakan untuk mengakses container. Jika sudah klik Update

Pada Task Definition kita konfigurasi nama task, mode network container, hingga berapa CPU yang akan digunakan dalam task tersebut. Jika sudah klik Next

Pada langkah kedua adalah mengkonfigurasi Service. Klik Edit untuk mengubah konfigurasi

Tentukan nama service, jumlah task yang ‘seharusnya’ running, security group untuk firewall, dan apakah Load Balancer akan diaktifkan.

Disini saya mengaktifkan load balancer karena saya akan menggunakan 2 task dalam satu cluster. Jadi ketika ada request dari user, load balancer akan otomatis mengarahkan ke container yang ‘tidak terlalu sibuk’. Jika sudah klik Save.

Verifikasi apakah konfigurasi service sudah benar, lalu klik Next

Pada langkah ketiga definisikan nama Cluster lalu klik Next

Pada langkah keempat merupakan review. Pastikan konfigurasi sudah sesuai

Gulir ke bawah dan klik Create.

Tunggu hingga cluster berhasil dibuat.

Klik nama dari cluster untuk melihat detail

Saat masuk ke laman detail dari cluster, akan beberapa tab konfigurasi dan detail dari cluster. Mulai dari Services, Tasks, ECS Instance, hingga Capacity Providers.

Bagaimana cara user mengakses aplikasi yang terdapat di cluster? Klik nama service yaitu virtualpiano-service

Kita akan diarahkan ke laman detail dari service yang bisa kita lihat dan update. Mulai dari Tasks, Events hingga Logs.

Karena tadi saya mengaktifkan ELB (Elastic Load Balancer), akan muncul detail Target Group Name dari ELB. Klik nama targetnya.

ELB atau Elastic Load Balancer merupakan layanan yang bisa kita gunakan untuk mengatur trafik akan diarahkan ke aplikasi apa. Bisa dibayangkan seperti papan penunjuk jalan, dan detail ELB dibahas di jurnal tersendiri ya!.

DI bawah ini merupakan tampilan dari Target groups. Ibaratkan papan penunjuk jalan, ELB akan mengarahkan request ke Target group yang kita definiskan sebelumnya. Terlihat ada 2 target yang terdaftar karena kita mengatur task yang seharusnya berjalan ada 2. Klik Load balancer

Salin DNS name dari ELB dan coba akses di tab baru

Terlihat aplikasi virtual piano muncul dan dapat diakses seperti berikut

Referensi:

  1. https://docs.aws.amazon.com/AmazonECS/latest/developerguide/getting-started-fargate.html

Sekian!