Fargate #

Dalam beberapa tahun terakhir, pendekatan serverless semakin populer karena menjanjikan pengelolaan infrastruktur yang lebih sederhana, skalabilitas otomatis, dan efisiensi biaya. Namun, tidak semua workload cocok dijalankan sebagai Function as a Service (FaaS) seperti AWS Lambda. Di sinilah AWS Fargate mengambil peran penting: menghadirkan konsep serverless untuk container.

AWS Fargate memungkinkan kita menjalankan container tanpa harus memikirkan provisioning server, cluster EC2, atau kapasitas VM. Fokus developer berpindah dari mengelola server menjadi mengelola aplikasi.

Apa Itu AWS Fargate? #

AWS Fargate adalah serverless compute engine untuk container yang terintegrasi dengan:

  • Amazon ECS (Elastic Container Service)
  • Amazon EKS (Elastic Kubernetes Service)

Dengan Fargate, kita cukup mendefinisikan:

  • Image container (Docker image)
  • Kebutuhan CPU dan memory
  • Networking dan IAM

Tanpa perlu:

  • Membuat atau mengelola EC2 instance
  • Mengatur autoscaling group
  • Melakukan patching OS atau AMI

Secara sederhana:

Fargate = Container + Serverless Runtime


Kenapa AWS Fargate Disebut Serverless? #

Walaupun kita tetap menjalankan container, Fargate memenuhi karakteristik utama serverless:

  1. No Server Management Tidak ada EC2 yang perlu di-launch, di-patch, atau di-scale secara manual.

  2. Pay Per Use Billing dihitung berdasarkan:

    • vCPU yang digunakan
    • Memory (GB) yang dialokasikan
    • Durasi container berjalan
  3. Auto Scaling by Design Task dapat otomatis bertambah atau berkurang mengikuti traffic (melalui ECS Service Auto Scaling atau HPA di EKS).

  4. High Availability by Default AWS mengatur placement task di infrastruktur yang redundant.

  5. Infrastructure Abstraction Developer tidak tahu (dan tidak perlu tahu) server fisik atau VM di balik container.

Karena itu, Fargate sering disebut sebagai Container as a Service (CaaS) berbasis serverless.


Arsitektur Singkat AWS Fargate #

Secara konseptual:

  1. Developer build Docker image
  2. Image disimpan di Amazon ECR (atau registry lain)
  3. ECS/EKS menjalankan task/pod menggunakan Fargate
  4. AWS menyediakan compute, network, dan isolation

Aplikasi berjalan seperti container biasa, tetapi infrastrukturnya sepenuhnya dikelola AWS.


Konfigurasi yang Bisa Diset di AWS Fargate #

CPU dan Memory #

Fargate menggunakan kombinasi CPU dan memory yang sudah ditentukan. Contoh:

  • 0.25 vCPU – 0.5 GB / 1 GB / 2 GB
  • 0.5 vCPU – 1 GB / 2 GB / 3 GB / 4 GB
  • 1 vCPU – 2 GB – 8 GB

⚠️ Tidak bisa memilih CPU dan memory secara bebas seperti EC2.

Task Definition (ECS) #

Dalam task definition, kita bisa mengatur:

  • Image container
  • Port mapping
  • Environment variables
  • Secrets (AWS Secrets Manager / SSM Parameter Store)
  • Log configuration
  • Health check container

Networking #

Fargate menggunakan awsvpc network mode:

  • Setiap task mendapatkan ENI (Elastic Network Interface)
  • IP address sendiri

Konfigurasi yang bisa diatur:

  • VPC dan Subnet
  • Security Group
  • Public / private IP

IAM Role #

Terdapat dua role penting:

  • Task Role → hak akses aplikasi ke AWS service (S3, DynamoDB, SQS, dll)
  • Execution Role → hak ECS untuk pull image dan push log

Prinsip least privilege sangat krusial di sini.

Storage #

  • Ephemeral storage (default 20 GB, bisa ditambah)
  • EFS (Elastic File System) untuk storage persisten

Scaling #

  • ECS Service Auto Scaling (berdasarkan CPU, memory, atau custom CloudWatch metric)
  • Event-driven scaling (misalnya dari SQS depth)

Apa Saja yang Bisa Dimonitor? #

Resource Utilization #

Melalui Amazon CloudWatch:

  • CPU utilization
  • Memory utilization
  • Network RX/TX
  • Disk usage (ephemeral)

Log Aplikasi #

  • Container logs ke CloudWatch Logs

  • Bisa diintegrasikan dengan:

    • OpenSearch
    • Datadog
    • New Relic

Health & Availability #

  • Container health check
  • Task status (RUNNING, STOPPED)
  • Restart count

Tracing & Observability #

  • AWS X-Ray
  • OpenTelemetry

Sangat berguna untuk microservices dan debugging latency.


Kelebihan (Pros) AWS Fargate #

  1. Tidak Perlu Kelola Server Fokus penuh ke aplikasi dan bisnis.

  2. Security Lebih Baik by Default Isolasi task, IAM granular, tanpa SSH ke server.

  3. Scaling Cepat dan Mudah Cocok untuk workload fluktuatif.

  4. Integrasi Native dengan AWS IAM, VPC, ALB, CloudWatch, ECR.

  5. Cocok untuk Microservices Arsitektur modern berbasis container.


Kekurangan (Cons) AWS Fargate #

  1. Biaya Lebih Mahal untuk Long-Running Workload Untuk beban stabil 24/7, EC2 bisa lebih murah.

  2. Kontrol Infrastruktur Terbatas Tidak bisa tuning OS, kernel, atau instance type.

  3. Cold Start Task Walaupun lebih cepat dari Lambda, tetap ada latency saat scale dari nol.

  4. Pilihan Resource Terbatas Tidak sefleksibel EC2.

  5. Debugging Lebih Abstrak Tidak bisa login ke host.


Kapan AWS Fargate Paling Tepat Digunakan? #

AWS Fargate sangat cocok untuk:

  • Microservices API
  • Background worker
  • Event-driven processing
  • Aplikasi dengan traffic fluktuatif
  • Tim kecil yang ingin fokus ke development

Kurang cocok untuk:

  • Workload berat dan stabil 24/7
  • Aplikasi yang butuh kontrol OS rendah

Best Practice #

Gunakan Right-Sizing CPU & Memory #

Monitor utilisasi, lalu sesuaikan konfigurasi task untuk menghindari overprovisioning.

Gunakan IAM Task Role (Bukan Hardcoded Credential) #

Jangan pernah menyimpan AWS credential di image atau env file.

Pisahkan Service Kecil #

Lebih baik banyak task kecil daripada satu task besar (microservices mindset).

Optimalkan Docker Image #

  • Gunakan multi-stage build
  • Image kecil = startup lebih cepat

Gunakan ALB + Health Check #

Pastikan traffic hanya masuk ke task yang sehat.

Monitoring dan Alerting #

Set CloudWatch Alarm untuk:

  • CPU / memory tinggi
  • Task restart berulang

Penutup #

AWS Fargate menjembatani dunia serverless dan container. Ia memberikan kemudahan seperti Lambda, namun fleksibilitas seperti Docker. Dengan memahami konfigurasi, monitoring, serta trade-off biaya dan kontrol, Fargate bisa menjadi fondasi kuat untuk arsitektur cloud modern.

Jika tujuan Anda adalah kecepatan, skalabilitas, dan minim overhead operasional, AWS Fargate adalah pilihan yang sangat layak dipertimbangkan.

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact