Memilih Region Function Vercel: iad1, sin1, dan CDN untuk Pengunjung Indonesia
Default Vercel iad1 Washington hanya untuk function — CDN 126 PoP sudah melayani pembaca dari Singapura. Cara memilih dan mengganti region yang benar.
Project baru Vercel ternyata "di Washington"
Buka pengaturan project Vercel yang baru dibuat, dan Anda akan menemukan function region-nya: iad1, Washington D.C., Amerika Serikat. Dari Indonesia, refleksi pertama kebanyakan orang sama: "kenapa server saya sejauh itu?" Jawaban resminya sederhana — itu default untuk semua project baru, dipilih karena banyak sumber data eksternal (database, API pihak ketiga) memang berada di East Coast AS. Perilaku ini tercantum jelas di dokumentasi konfigurasi region function.
Tapi kesimpulan "server jauh = situs lambat" terlalu cepat. Artikel ini membongkar bagian mana dari arsitektur Vercel yang benar-benar kena jarak, bagian mana yang tidak, dan bagaimana saya memutuskan region untuk blog ini sendiri — termasuk cara menggantinya dari dashboard maupun vercel.json.
Yang dekat dan yang jauh: CDN dulu, function belakangan
Vercel bukan satu server di satu kota. Infrastrukturnya dua lapis, dijelaskan di halaman global network and regions: lebih dari 126 PoP (Points of Presence) CDN yang tersebar di seluruh dunia, dan 20 region compute tempat kode Anda benar-benar dieksekusi. Request pembaca masuk lewat PoP terdekat — untuk Indonesia umumnya Singapura — lewat jaringan privat berlatensi milidetik.
Akibatnya, untuk situs konten seperti blog berbasis Next.js dengan ISR:
- Dilayani dari Singapura (dekat): halaman statis hasil prerender, halaman ISR yang sudah ter-cache, gambar, CSS, JS. Ini mayoritas traffic — dan tidak peduli function region Anda di mana.
- Diproses di region function (bisa jauh): Server-Side Rendering penuh, ISR revalidate saat cache kedaluwarsa, API routes, dan semua fetch ke sumber data dari dalam server component.
Jadi sebelum panik melihat iad1, cek dulu: berapa persen halaman Anda benar-benar butuh eksekusi server per request? Untuk blog, jawabannya kecil.
Aturan pemilihan region: dekati data, bukan pembaca
Ini bagian yang paling sering salah dipahami. Dokumentasi Vercel menegaskan function sebaiknya dieksekusi "di region yang sama dengan database, atau sedekat mungkin dengannya" — bukan sedekat mungkin dengan pembaca. Alasannya: pembaca sudah dilayani PoP terdekat, sedangkan function yang jauh dari datanya akan membayar bolak-balik lintas benua setiap kali fetch.
Kasus nyata blog ini: frontend di Vercel, API di VPS alamat 165.22.105.83. Lookup IP menunjukkan VPS itu DigitalOcean di Singapura. Maka region function yang tepak adalah sin1 (ap-southeast-1, Singapura) — setiap SSR dan revalidate ISR mengambil data dari API yang berjarak milidetik, bukan melintasi Pasifik ke Washington lalu kembali. Kalau sebaliknya database Anda di AWS us-east-1 atau layanan pihak ketiga bermarkas di AS, memindah function ke Asia justru memperburuk latensi.
Tiga cara mengganti region
Vercel menyediakan tiga jalur konfigurasi, semuanya setara:
- Dashboard — Project Settings → Functions → buka accordion Function Regions, pilih region, simpan. Perubahan berlaku pada deployment berikutnya.
- vercel.json — tambahkan key
regionsdi root project:
{
"regions": ["sin1"]
}
Jalur file ini lebih saya sarankan untuk blog ini: konfigurasi ikut ter-version-control di git, ter-deploy lewat alur branch yang sama seperti kode, dan terbaca siapa saja yang membuka repo — tidak tersembunyi di pengaturan dashboard. Untuk project monorepo, letakkan di root yang menjadi Root Directory project Vercel Anda.
- CLI —
vercel --regions sin1saat deploy.
Batas plan: Hobby satu region saja
Berapa region boleh dipakai bergantung plan, sesuai tabel limit di dokumentasi region:
| Plan | Function regions |
|---|---|
| Hobby | 1 region |
| Pro | 5 region |
| Enterprise | Semua (20) |
Untuk penggunaan pribadi, satu region bukan keterbatasan nyata — malah memaksa keputusan yang benar: pilih satu region terdekat ke data Anda. Redundansi lintas region otomatis hanya ada di Enterprise via functionFailoverRegions; di dalam satu region sendiri, Vercel Functions sudah punya redundansi availability zone secara default. Ada satu pengecualian menarik: Routing Middleware tetap di-deploy ke semua region di semua plan, terlepas dari pengaturan region function Anda.
Peta region Asia
Dari 20 region compute Vercel, yang relevan untuk pembaca dan infrastruktur di Asia Tenggara:
| Kode | Lokasi |
|---|---|
sin1 | Singapura (ap-southeast-1) |
hkg1 | Hong Kong (ap-east-1) |
icn1 | Seoul (ap-northeast-2) |
bom1 | Mumbai (ap-south-1) |
hnd1 / kix1 | Tokyo / Osaka |
Untuk Indonesia, sin1 hampir selalu jawaban yang tepat: rute kabel laut langsung ke Singapura, dan mayoritas penyedia VPS/cloud yang dipakai developer Indonesia punya presence di sana.
Checklist sebelum pindah region
- Pastikan dulu arsitektur Anda: halaman yang ter-cache di CDN tidak kena region — pindah region hanya memperbaiki jalur SSR/fetch.
- Temukan lokasi sumber data (lookup IP VPS atau cek region database), bukan lokasi pembaca.
- Set region via
vercel.jsonsupaya ikut version-control:{"regions": ["sin1"]}. - Setelah deploy, konfirmasi di dashboard (Settings → Functions) bahwa region aktif sesuai.
- Jangan lupa limit plan: Hobby satu region; minta lebih dari yang diizinkan akan gagal build.
Region function itu keputusan tentang jarak function ke data. Untuk pembaca, jarak sudah diselesaikan oleh 126 PoP CDN — termasuk yang ada di Singapura, beberapa milisekon dari Jakarta.