Cara Deploy Website Statis ke AWS S3 dan CloudFront
Website company profile yang isinya HTML, CSS, dan gambar tidak butuh server yang hidup 24 jam menunggu diserang, di-update, dan di-restart. Ia hanya butuh tempat menaruh file dan jaringan yang mengantarkannya dengan cepat. Itulah persisnya S3 dan CloudFront: S3 menyimpan file Anda, CloudFront menyalinnya ke ratusan titik di seluruh dunia sehingga pengunjung dari Jakarta maupun Frankfurt sama-sama dilayani dari lokasi terdekat. Tidak ada sistem operasi yang harus di-patch, dan tagihannya mengikuti trafik — situs sepi bayarnya juga sepi.
Kenapa S3 dan CloudFront untuk situs statis
Dibanding shared hosting biasa, kombinasi ini menang di tiga hal: tidak ada server yang bisa tumbang karena kehabisan resource, skala otomatis saat trafik melonjak, dan HTTPS gratis lewat sertifikat AWS. Kekurangannya juga jujur: konsol AWS menakutkan bagi pemula, dan model harganya perlu dipahami supaya tidak ada kejutan. Tutorial ini mengambil jalur paling pendek yang tetap benar.
Langkah 1: Siapkan akun AWS dan pahami free tier
Daftar di aws.amazon.com dengan kartu kredit atau debit yang bisa transaksi internasional. Dua kebiasaan yang wajib dipasang di hari pertama:
- Aktifkan MFA di akun root, lalu buat user IAM terpisah untuk kerja harian. Akun root yang bocor berarti seluruh tagihan jadi milik orang lain.
- Pasang billing alert di CloudWatch, misalnya pada ambang beberapa dolar. Untuk situs statis kecil, tagihan bulanan biasanya di bawah itu — alert ini penjaga kalau ada yang salah konfigurasi.
Langkah 2: Buat bucket dan unggah situs
Buka layanan S3, klik Create bucket. Nama bucket harus unik global; pakai nama domain Anda supaya mudah diingat. Region pilih yang terdekat, misalnya ap-southeast-1 (Singapura). Biarkan Block all public access tetap menyala — kita tidak akan membuka bucket ke publik; CloudFront yang akan mengambilkan file untuk pengunjung.
Unggah seluruh file situs. Lewat konsol bisa drag-and-drop; lewat terminal lebih cepat untuk update rutin:
aws s3 sync ./situs-anda s3://nama-bucket-anda --delete
Flag --delete membuat isi bucket persis mengikuti folder lokal — file yang Anda hapus di lokal ikut hilang di bucket.
Langkah 3: Pasang CloudFront di depannya
Buka CloudFront, klik Create distribution, pilih bucket S3 tadi sebagai origin. Saat ditawari Origin access control, terima dan biarkan CloudFront memasang policy ke bucket — inilah yang membuat bucket bisa tetap tertutup dari publik tapi terbaca oleh CloudFront.
Tiga pengaturan yang layak diubah dari default:
- Default root object: isi
index.html, supaya membuka domain tanpa nama file tetap mendarat di halaman utama. - Viewer protocol policy: pilih redirect HTTP ke HTTPS.
- Price class: kalau pengunjung Anda hampir semua di Asia, price class yang lebih sempit menekan biaya tanpa terasa bedanya.
Setelah distribusi selesai dibuat (butuh beberapa menit), Anda mendapat alamat berakhiran cloudfront.net. Buka dan pastikan situs tampil.
Langkah 4: Arahkan domain dan aktifkan HTTPS
Minta sertifikat di AWS Certificate Manager — dan ini jebakan klasik: sertifikat untuk CloudFront harus dibuat di region us-east-1, apa pun region bucket Anda. Validasi lewat DNS dengan menambahkan record CNAME yang diberikan ACM di pengelola domain Anda.
Setelah sertifikat terbit, edit distribusi CloudFront: tambahkan domain Anda di Alternate domain names dan pilih sertifikat tadi. Terakhir, di pengelola DNS, arahkan domain ke alamat CloudFront dengan record CNAME (atau ALIAS/ANAME untuk root domain, kalau penyedia DNS Anda mendukungnya).
Satu hal lagi yang sering terlupa: setiap kali Anda mengunggah versi baru situs, CloudFront masih menyimpan versi lama di cache. Kosongkan dengan invalidation:
aws cloudfront create-invalidation --distribution-id ID_ANDA --paths "/*"
Kapan hosting biasa lebih masuk akal
Kalau situs Anda dikelola orang non-teknis yang terbiasa cPanel, atau butuh formulir yang diproses server, atau sekadar company profile lima halaman dengan trafik kecil — shared hosting atau platform seperti Vercel memberi hasil yang sama dengan kerumitan jauh lebih rendah. S3 dan CloudFront mulai terbayar saat trafik bermakna, saat Anda butuh kecepatan global, atau saat situs statis itu bagian dari sistem AWS yang lebih besar. Memilih alat mengikuti masalah, bukan sebaliknya.
Penutup
Dengan empat langkah di atas, situs Anda dilayani dari jaringan CDN global, terkunci HTTPS, dan praktis bebas perawatan. Kalau Anda sedang menimbang membangun website dari awal, lihat layanan pembuatan website kami dan layanan pengembangan software, atau diskusikan arsitektur yang pas untuk kebutuhan Anda.
Clovertechno