Keenan Muhammad Otthmar Emzed


Overview

Project ini merupakan salah satu tantangan tambahan yang saya ikuti selama menjalani program Orbit AWS re/Start Batch 13. Tantangan tersebut diberikan untuk memperdalam pemahaman para murid sekaligus mendorong mereka agar dapat menerapkan pengetahuan yang telah dipelajari secara langsung. Di dalam project ini saya membangun diagram arsitektur berdasarkan study case yang diberikan.


Problem

Perusahaan X yang sedang berkembang pesat ingin memindahkan infrastruktur yang menjalankan aplikasi menggunakan container. Infrastruktur diharapkan support terhadap horizontal scaling berbasis aws, sehingga Ketika ada pertumbuhan user yang signifikan aplikasi tidak down. Budget per bulan sekitar 10jt rupiah untuk melakukan hosting aplikasi.


Architecture Diagram

Architecture Diagram.drawio.png


Architecture Explanation

Study Case Review

Di study case tidak dijelaskan perusahaan X menggunakan arsitektur dan sumber daya seperti apa, network trafficnya berapa, dan database sebesar apa. Di study case hanya memberi clue bahwasannya aplikasi tersebut dibungkus menggunakan container dan ingin agar aplikasinya berjalan menggunakan container. Selanjutnya perusahaan ingin agar aplikasi dapat melakukan horizontal scale agar tidak down apabila terjadi traffic spike. Lalu perusahaan hanya memiliki budget 10jt/bulan untuk menyewa servernya. Maka dari itu saya membuat asumsi bahwa perusahaan ini merupakan startup e-commerce. Dalam case ini saya akan menggunakan region singapore karena service lebih lengkap dan harga untuk tiap servicenya lebih murah apabila dibandingkan dengan jakarta.

Fargate + ECS

Saya menggunakan fargate sebagai compute untuk ECS. Karena perusahaan masih dalam tahap berkembang dan tidak dijelaskan memiliki kebutuhan untuk mengelola server secara langsung, ECS dengan Fargate dipilih untuk mengurangi operational overhead dalam pengelolaan container. Fargate juga memungkinkan jumlah task ditingkatkan secara horizontal melalui ECS Service Auto Scaling ketika terjadi peningkatan traffic.

ECS + Application Autoscaling

Saya menjalankan minimum 2 container per AZ dan menyiapkan Application Autosacling untuk melakukan horizontal scaling apabila terjadi lonjakan user atau traffic disaat event tertentu.

RDS Multi-AZ

RDS Multi-AZ dipilih karena database ini bersifat managed. Walaupun study case tidak secara eksplisit meminta database high availability, RDS Multi-AZ dipilih untuk mengurangi single point of failure pada database dan menjaga availability aplikasi ketika terjadi gangguan pada salah satu Availability Zone.