Cara Deploy Fullstack App React + Go Fiber ke AWS EC2 dengan Docker & GitHub Actions CI/CD
Panduan lengkap dari nol: setup EC2, Docker Compose, Nginx reverse proxy, SSL,
sampai CI/CD pipeline otomatis yang berjalan tiap push ke main branch.
Semua berdasarkan pengalaman langsung deploy proyek
Letta School.
L
Maulana Nur Anfajm (Lananuranf)
Fullstack Developer · Mahasiswa Universitas Gunadarma
Stack yang digunakan:ReactGo FiberPostgreSQLDockerDocker ComposeAWS EC2GitHub ActionsNginxSSL/HTTPS
Pendahuluan
Salah satu skill yang paling berguna tapi jarang diajarkan di kampus adalah bagaimana cara deploy aplikasi ke internet secara benar — bukan cuma "bisa diakses", tapi production-grade: aman, otomatis, dan mudah dimaintain.
Artikel ini adalah panduan lengkap yang saya tulis berdasarkan pengalaman langsung men-deploy Letta School, sebuah fullstack school management system dengan React di frontend dan Go Fiber di backend.
⚡ Yang akan kamu pelajari:
Setup AWS EC2 instance (Ubuntu) dari nol
Dockerize React app dan Go Fiber app
Orchestrate multi-container dengan Docker Compose
Konfigurasi Nginx reverse proxy + SSL dengan Let's Encrypt
Build GitHub Actions CI/CD pipeline yang fully automated
Tips production: health check, restart policy, environment variables
Prasyarat
Akun AWS (bisa pakai free tier untuk EC2 t2.micro)
Domain yang sudah diarahkan ke IP EC2 (untuk SSL)
Pemahaman dasar Docker dan Linux command line
Repository GitHub dengan kode React + Go Fiber
Step 1: Setup AWS EC2 Instance
Login ke AWS Console → EC2 → "Launch Instance". Pilih Ubuntu Server 22.04 LTS. Instance type t2.micro cukup untuk project kecil-menengah (masuk free tier).
Security Group — buka port berikut:
22 (SSH) — restrict ke IP kamu saja
80 (HTTP) — dari mana saja
443 (HTTPS) — dari mana saja
Download file .pem, simpan aman, lalu koneksi SSH:
Database backup: Setup cronjob backup PostgreSQL ke S3 secara rutin.
Jangan commit .env: Tambahkan .env ke .gitignore.
Resource limit: Tambahkan memory dan CPU limits di docker-compose.yml.
Hasil Akhir
Workflow deployment kamu jadi: push ke main → GitHub Actions scan security → SSH ke EC2 → docker compose up --build -d → aplikasi live dalam 2-3 menit tanpa manual intervention. Ini persis workflow yang dipakai untuk deploy Letta School.
Tentang penulis
Maulana Nur Anfajm (Lananuranf) — mahasiswa Sistem Informasi Universitas Gunadarma semester 6. Fullstack developer spesialis React, Go Fiber, Docker, AWS, dan DevSecOps.
Lihat portfolio lengkap →