TeknoCerdas.com – Salam cerdas untuk kita semua. AWS dua hari lalu tepatnya 18 Mei 2021 meluncurkan sebuah layanan baru yang disebut AWS App Runner. AWS App Runner adalah layanan untuk memudahkan pengembang dalam melakukan deployment aplikasi berbasis container tanpa perlu memikirkan infrastruktur. Tipe aplikasi yang cocok contohnya adalah web app atau web API.
Selain dengan container App Runner juga mendukung deployment aplikasi langsung dari kode sumber yang diletakkan di GitHub. Untuk saat ini runtime bahasa pemrograman yang didukung dengan model kode sumber ini adalah Python dan NodeJS v12.
Baca Juga
Mencoba S3 Object Lambda Menggunakan Python
Memaket aplikasi dengan container adalah hal mudah. Namun melakukan deployment ke production dan membuatnya dapat diakses lewat domain yang sudah memiliki SSL serta scaling adalah hal lain.
Daftar Isi
- Fitur utama AWS App Runner
- Perhitungan Harga
- Perbedaan dengan Lambda
- Bagaimana dengan Database, Cache dan Storage
Fitur utama AWS App Runner
Automatic Deployment
Cukup koneksikan App Runner ke GitHub repository atau container registry maka App Runner akan melakukan build dan deploy secara otomatis.
Load Balancing
App Runner secara otomatis akan melakukan load balancing pada request yang datang untuk didistribusikan kepada container yang berjalan. Ini semua otomatis.
Auto Scaling
App Runner secara otomatis akan menambahkan jumlah container jika diperlukan sehingga aplikasi dapat menangani jumlah traffic yang tinggi. Minimum dan Maximum concurency dapat diatur.
Certificate untuk Domain
App Runner otomatis menyediakan SSL certificate untuk domain yang digenerate sehingga aplikasi aman secara default. Certificate juga akan diperbarui otomatis jika akan kadaluarsa.
Pause dan Resume
Aplikasi pada App Runner dapat dihentikan (pause) atau dijalankan kembali (resume) sesuai keperluan. Ini akan menghemat biaya dan sangat berguna ketika testing.
Log dan Monitoring
App Runner menyediakan log ketika aplikasi di build, deploy dan dijalankan. Sehingga memudahkan pengembang untuk melakukan diagnosa aplikasi.
Perhitungan Harga
Seperti layaknya layanan AWS yang lain yaitu pay-as-you-go. Maka App Runner juga mengadopsi hal yang sama. Dua hal yang mempengaruhi biaya adalah:
- Container instance
- Jumlah request yang diterima
Berikut ini adalah tipe container yang didukung oleh App Runner.
CPU | RAM |
---|---|
1 vCPU | 2GB |
1 vCPU | 3GB |
1 vCPU | 4GB |
2 vCPU | 4GB |
Untuk perhitungannya sendiri menggunakan rumus berikut (Asumsi region us-east-1):
Harga RAM = $0.007 / GB-hour
= JML jam x JML active container x (JML RAM x $0.007)
Harga CPU = $0.064 / vCPU-hour
= JML jam x JML active container x
[(JML vCPU x $0.064) + (JML RAM x $0.007)] -
JML jam x JML active container x (JML RAM x $0.007)
Jadi selama container berjalan maka ada harga RAM yang harus selalu dibayar. Ketika container menerima request maka billing untuk CPU juga dijalankan hal ini karena pemrosesan request pasti memerlukan CPU.
Contoh Perhitungan Harga 1
Konfigurasi App Runner adalah sebagai berikut:
- Tipe Container 1 vCPU dan 2GB RAM
- Concurrency: 100 requests/active container
- Provisioned container instance count: 1
Aplikasi ini menyala 24 jam selama 30 hari (1 bulan). Tapi tidak ada request yang diterima. Perhitungan biayanya adalah:
Harga RAM = 24 x 1 x (2GB x $0.007)
= $0.336 / hari
Harga CPU = 0 jam x 1 actice container x
[(1 vCPU x $0.064) + (2GB x $0.007)] - 0 jam x 1 active container x (2GB x $0.007)
= $0 / hari
Harga per hari = Harga RAM + Harga CPU
= $0.336 + $0 = $0.336
Harga 1 bulan = $0.336 x 30 = $10.08
Contoh Perhitungan Harga 2
Kondisinya mirip dengan contoh perhitungan harga 1, namun disini yang membedakan adalah aplikasi menerima request 50 request/detik selama 12 jam per hari. Perhitungan biayanya adalah:
Harga RAM = 24 x 1 x (2GB x $0.007)
= $0.336 / hari
Harga CPU = 12 jam x 1 actice container x
[(1 vCPU x $0.064) + (2GB x $0.007)] - 12 jam x 1 active container x (2GB x $0.007)
= $0.935 - $0.336 = $0.76 / hari
Harga per Hari = Harga RAM + Harga CPU
= $0.336 + $0.935 = $1.27
Harga 1 bulan = $1.27 x 30 = $38.1
Perbedaan dengan Lambda
Perbedaan fundamental dengan Lambda adalah container dari App Runner selalu menyala untuk dapat menerima request. Sehingga tidak ada cold start. Inilah yang menyebabkan App Runner secara biaya lebih mahal dari Lambda karena container terus berjalan meskipun tidak ada request.
Bagaimana dengan Database, Cache dan Storage
Untuk saat ini tidak ada fitur built-in untuk menghubungkan App Runner dengan RDS. Sehingga koneksi ke database tetap harus menggunakan koneksi string database normal.
Masalah lain adalah persistent storage. Pada App Runner tidak ada konfigurasi disk untuk menyimpan persistent data. Tidak ada opsi untuk EBS atau EFS untuk saat ini.
Perlu diingat bahwa secara bawaan App Runner tidak membatasi akses ke jaringan tertentu. Jadi jika storage, database atau layanan lain dapat diakses lewat jaringan harusnya juga bisa diakses oleh aplikasi dalam App Runner.