Deploy Aplikasi Ke AWS Elastic Container Registry
Menyimpan source code aplikasi Anda ke dalam bentuk Docker Image dan mengunggahnya ke AWS ECR (Elastic Container Registry) sebenarnya tidak sesulit yang dibayangkan. Pikirkan ECR ini seperti GitHub, tapi khusus untuk menyimpan Docker Image secara aman di ekosistem AWS.
Berikut adalah panduan langkah demi langkah yang terstruktur dari awal sampai akhir, khusus dirancang agar mudah dipahami oleh pemula.
Prasyarat Sebelum Memulai
Sebelum masuk ke terminal, pastikan Anda sudah menyiapkan 3 hal ini:
-
Akun AWS yang aktif.
-
AWS CLI sudah terinstal di komputer Anda dan sudah dikonfigurasi (aws configure) menggunakan IAM User yang memiliki akses ke ECR (minimal kebijakan AmazonEC2ContainerRegistryFullAccess).
-
Docker sudah terinstal dan berjalan di komputer Anda.
Tahapan yang akan dilakukan adalah
Buat Repositori di AWS ECR
Langkah pertama adalah membuat "rumah" atau wadah untuk tempat menyimpan image Anda di AWS Console.
-
Buka AWS Management Console, lalu cari dan pilih layanan Elastic Container Registry (ECR).
-
Pastikan Anda berada di Region AWS yang Anda inginkan (misalnya: ap-southeast-3 untuk Jakarta, atau ap-southeast-1 untuk Singapura) di pojok kanan atas.
-
Di menu sebelah kiri, pilih Repositories di bawah kelompok Private registry.
-
Klik tombol Create repository.
-
Konfigurasikan hal berikut:
-
Visibility settings: Pilih Private (agar hanya Anda atau sistem Anda yang bisa mengaksesnya).
-
Repository name: Masukkan nama repositori Anda (misalnya: my-web-app). Gunakan huruf kecil dan tanda hubung jika lebih dari satu kata.
-
Biarkan pengaturan lainnya secara default.
-
-
Gulir ke bawah dan klik Create repository.
Sekarang, Anda akan melihat repositori baru Anda di daftar lengkap dengan URI Repositori (misalnya: 123456789012.dkr.ecr.ap-southeast-1.amazonaws.com/my-web-app). Simpan atau catat URI ini.
Login Docker ke AWS ECR via Terminal
Agar komputer local Anda diizinkan untuk mengirim (push) data ke AWS, Docker di komputer Anda harus melakukan autentikasi ke ECR terlebih dahulu.
Buka terminal (atau Command Prompt/PowerShell) Anda, lalu jalankan perintah di bawah ini.
Tips Praktis: Di AWS Console pada repositori yang baru Anda buat, ada tombol "View push commands" di pojok kanan atas. Anda bisa mengklik tombol itu untuk menyalin perintah yang sudah otomatis terisi dengan ID Akun AWS Anda.
Secara manual, perintahnya berbentuk seperti ini (ganti bagian yang di-bold sesuai akun Anda):
aws ecr get-login-password --region <region-anda> | docker login --username AWS --password-stdin <id-akun-aws>.dkr.ecr.<region-anda>.amazonaws.comaws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-southeast-1.amazonaws.comJika berhasil, Anda akan melihat pesan: Login Succeeded.
Build Docker Image Aplikasi Anda
Sekarang, pastikan Anda sudah berada di dalam direktori project aplikasi Anda yang sudah memiliki file Dockerfile. Kita akan membuat (build) image dari project tersebut.
Jalankan perintah berikut untuk mem-build image local (jangan lupa tanda titik . di akhir perintah yang menandakan direktori saat ini):
docker build -t my-web-app .
Catatan: my-web-app di sini adalah nama lokal untuk image Anda.
Berikan Tag (Label) pada Image untuk ECR
Sebelum dikirim ke AWS, Docker perlu tahu ke repositori ECR mana image ini harus diarahkan. Kita melakukannya dengan memberikan tag khusus yang mengarah ke URI repositori ECR Anda.
Jalankan perintah berikut (ganti bagian URI dengan URI repositori yang Anda dapatkan di Langkah 1):
docker tag my-web-app:latest <id-akun-aws>.dkr.ecr.<region-anda>.amazonaws.com/my-web-app:latest
docker tag my-web-app:latest <id-akun-aws>.dkr.ecr.<region-anda>.amazonaws.com/my-web-app:latestPerintah ini tidak mengubah apa pun di dalam aplikasi Anda, ia hanya membuat "alias" atau penanda baru agar Docker tahu tujuan pengirimannya.
Push Image ke AWS ECR
Ini adalah langkah terakhir. Kita akan mengunggah image yang sudah diberi tag tadi ke server AWS ECR.
Jalankan perintah push berikut:
docker push <id-akun-aws>.dkr.ecr.<region-anda>.amazonaws.com/my-web-app:latest
docker push 123456789012.dkr.ecr.ap-southeast-1.amazonaws.com/my-web-app:latestNote:
Proses ini akan memakan waktu beberapa saat tergantung pada ukuran aplikasi Anda dan kecepatan koneksi internet, karena Docker akan mengunggah lapisan-lapisan (layers) dari image Anda ke AWS.
Verifikasi Hasil Terunggah
Setelah proses pengunggahan selesai di terminal:
-
Kembali ke halaman AWS ECR Console.
-
Masuk ke dalam repositori my-web-app yang Anda buat.
-
Anda akan melihat sebuah image baru muncul di dalam daftar dengan Image tag latest.
Rangkuman
Jika nanti Anda melakukan perubahan pada kode aplikasi dan ingin melakukan deploy ulang, Anda hanya perlu mengulang langkah-langkah di terminal ini:
# 1. Login ke ECR (Jika session login sebelumnya sudah habis)
aws ecr get-login-password --region ap-southeast-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-southeast-1.amazonaws.com# 2. Build ulang image aplikasi Anda
docker build -t my-web-app .# 3. Beri tag baru untuk ECR
docker tag my-web-app:latest 123456789012.dkr.ecr.ap-southeast-1.amazonaws.com/my-web-app:latest# 4. Push ke ECR
docker push 123456789012.dkr.ecr.ap-southeast-1.amazonaws.com/my-web-app:latest