Halo, sahabat-sahabat SegalaHal semuanya! Kalian memiliki aplikasi NodeJs dan ingin mendeploynya agar bisa online dan menjangkau banyak orang? Jika iya, maka kamu bisa deploy menggunakan Google Cloud dengan mudah. Pada tulisan ini kita akan mempraktekkan langkah-langkah untuk melakukan deploy aplikasi NodeJs di Compute Engine. Yuk kita mulai!
Disclaimer:
Saat kalian mengikuti tutorial ini mungkin saja screenshot yang telah saya cantumkan tidak sama dengan tampilan Google Cloud. Hal ini karena Google Cloud biasanya akan melakukan beberapa update secara berkala sehingga tampilannya juga akan berubah seiring berjalannya waktu. Namun sepertinya untuk langkah-langkahnya tidak akan jauh berbeda. Jika kamu menemukan sesuatu yang berbeda maka silakan sampaikan pada kolom komentar ya.
Persiapan
Untuk mempraktekkan langkah-langkah berikut ini maka kamu harus memiliki aplikasi atau project NodeJs terlebih dahulu. Aplikasi NodeJs yang akan saya gunakan pada tulisan ini adalah aplikasi yang ada pada tutorial Menggunakan gitignore saat Bekerja Dengan Git . Tapi tenang saja, saya sudah letakkan project tersebut ke GitHub jadi nanti tinggal kita clone saja.
Selain aplikasi NodeJs, pastinya kamu juga membutuhkan akun Google Cloud yang telah aktif agar kita bisa mempraktekkan deploynya. Selebihnya, kamu hanya perlu akses internet agar bisa mengakses Google Cloud sehingga bisa mendeploy aplikasinya nanti.
Tutorial ini nantinya mungkin agak panjang, jadi agar tidak bosan dan agar tidak ngantuk maka tidak ada salahnya menyiapkan juga secangkir kopi dan camilan secukupnya untuk menemani eksperimen kita kali ini. 😆
Semuanya sudah siap? Langsung saja kita mulai dari membuat aturan firewall.
Membuat Aturan Firewall
- Kamu bisa mulai dengan akses halaman Google Cloud Console
- Kemudian cari VPC Network > Firewall pada menu navigasi sebelah kiri layar
- Selanjutnya klik tombol Create Firewall Rule untuk membuat aturan firewall baru
- Kemudian isikan rincian aturan firewallnya seperti pada tabel berikut ini dan selebihnya abaikan saja, biarkan nilai default
Name | allow-port-5000 |
Description (opsional) | Aturan firewall untuk membuka akses port 5000 |
Targets | Specified target tags |
Target tags | segalahal-nodejs-server |
Source filter | IPv4 ranges |
Source IPv4 ranges | 0.0.0.0/0 |
Specified protocols and ports | TCP 5000 |
- Lalu klik tombol Create. Hasilnya akan tampak seperti pada screenshot berikut ini.
Yeay! Aturan firewallnya sudah berhasil terbuat. Langkah selanjutnya adalah membuat Virtual Machine atau VM Instance pada Google Compute Engine. Yuk kita lanjut!
Membuat VM Instance
- Arahkan ke menu navigasi, kita akan menuju halaman Compute Engine > VM Instances
- Setelah itu klik tombol Create Instance (bisa yang atas atau yang bawah, sama saja)
- Kemudian akan muncul halaman untuk mengisikan rincian VM yang akan kita buat. Kamu bisa isikan sesuai tabel berikut ini dan selebihnya abaikan saja, biarkan nilai default.
Name | segalahal-vm |
Region | asia-southeast2 (Jakarta) |
Series | N1 |
Machine type | Shared-core > f1-micro ( 1vCPU , 614 MB Memory ) |
Allow HTTP Traffic | Yes (centang) |
Network Tags | segalahal-nodejs-server ( untuk mengisikan network tags bisa scroll ke bawah, pilih Advanced options > Networking > isikan kolom Network Tags ) |
- Lalu klik tombol Create yang berada pada bagian bawah untuk membuat VM-nya
- Setelah VM berhasil dibuat maka akan tampil pada halaman VM Instances seperti ini.
Mantap! Saat ini kita telah memiliki sebuah VM dan siap untuk melangkah ke tahap selanjutnya..
Note: Jika muncul error seperti berikut ini maka bisa ulangi langkah-langkahnya dan pilih zone yang berbeda dengan sebelumnya.
Instalasi
Setelah kita berhasil membuat VM, selanjutnya kita akan menginstal beberapa hal agar nantinya aplikasi NodeJS yang telah kita buat dapat berjalan dengan baik. So, yuk kita langsung mulai proses instalasi ini..
- Pertama-tama, kita harus masuk ke VM dengan klik tombol SSH pada halaman VM Instances. Pastikan statusnya sudah dalam keadaan running ya. Jika masih belum running (masih proses pembuatan VM / belum ready) maka tunggu hingga running terlebih dahulu.
- Setelah itu akan terbuka jendela baru bernama SSH-in-browser. Jika muncul prompt untuk meminta izin seperti berikut ini maka bisa klik saja Authorize , dan pilih akun Google yang kamu gunakan untuk login pada Google Cloud.
- Jika telah berhasil masuk ke VM-nya, maka pada jendela SSH-in-browser akan tampil seperti ini.
Update Package Pada VM
- Selanjutnya jalankan perintah berikut ini untuk mengupdate package yang ada pada VM-nya. Ketikkan Y dan tekan Enter jika ada prompt atau pertanyaan pada proses update-nya.
sudo apt-get update && sudo apt-get upgrade
- Proses update tersebut bisa agak lama. Nantinya setiap selesai melakukan proses akan tampil username@nama-vm:~$ seperti saat kita baru berhasil masuk ke VM. Jika belum tampil demikian artinya prosesnya masih berjalan, jadi silakan tunggu saja hingga selesai ya. Sambil menunggu bisa sambil menyeruput kopi dan menikmati camilan dulu. hehe 😁😁
Instal NVM dan NodeJs
- Selanjutnya kita bisa instal NVM ke dalam VM kita. NVM atau Node Version Manager adalah tools untuk mengelola versi NodeJs. NVM akan sangat memudahkan dalam menginstal, meng-upgrade, men-downgrade NodeJs yang akan kita gunakan. Untuk menginstal NVM ini cukup dengan menjalankan perintah berikut ini.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
- Tunggu hingga prosesnya selesai. Kemudian agar NVM dapat kita gunakan maka kita harus keluar dulu dari VM-nya. Kamu bisa keluar dengan menjalankan perintah
exit
.
exit
- Setelah berhasil keluar dan jendela SSH-in-browser telah tertutup, maka silakan masuk kembali dengan menekan tombol SSH seperti pada langkah di awal tadi.
- Lalu untuk mengecek apakah NVM-nya sudah berhasil terinstal atau belum maka bisa coba jalankan perintah berikut ini untuk menampilkan versi NVM yang telah kita instal.
nvm --version
- Selanjutnya untuk menginstal NodeJS versi terbaru yang sudah stable , bisa jalankan perintah berikut ini:
nvm install --lts
nvm use --lts
Sip, sampai pada tahap ini kita telah berhasil menginstal NodeJs pada VM kita. Keren!
Instal Git dan Menyiapkan Kode
Pada tulisan sebelumnya mengenai Menggunakan gitignore saat bekerja dengan git , kita telah membuat aplikasi web sederhana dan menyimpannya pada GitHub. Agar dapat kita download atau clone maka kita perlu menginstal Git pada VM-nya.
Untuk menginstal Git bisa ketikkan perintah berikut:
sudo apt-get install git
Jika muncul pertanyaan konfirmasi untuk melanjutkan, ketikkan Y dan tekan Enter.
Setelah berhasil terinstal, lakukan clone dengan perintah seperti berikut ini.
git clone https://github.com/yusufsugiono/segalahal-web.git
Instal Dependensi
Setelah berhasil clone, saatnya kita menginstal dependensi atau package yang dibutuhkan oleh aplikasi web kita. Caranya yaitu dengan masuk dulu ke folder proyeknya, lalu instal dengan perintah npm install
seperti berikut ini:
cd segalahal-web
npm install
Selanjutnya kita bisa tes apakah aplikasi webnya bisa berjalan atau belum dengan mengetikkan perintah berikut ini.
node server.js
Good!! Server web-nya telah berhasil berjalan. Sekarang kita coba untuk mengakses IP external VM-nya. Pastikan menggunakan HTTP ya. IP External dari VM bisa kita lihat pada halaman VM Instances.
http://<IP-EXTERNAL>:<PORT>
Wah,, ternyata masih belum bisa kita akses. Mari kita coba perbaiki hal ini. Namun sebelum itu kita bisa kembali ke SSH-in-browser dan tekan Ctrl + C untuk menghentikan servernya.
Memperbaiki Kode
Kita bisa buka kode server.js menggunakan teks editor Nano. Untuk membukanya bisa dengan menjalankan perintah berikut ini.
nano server.js
Kemudian ubah host dari localhost menjadi 0.0.0.0
Lalu untuk menyimpannya tekan Ctrl + X , lalu Y ,dan tekan Enter.
Setelah itu kita coba jalankan lagi dengan node server.js
dan lihat hasilnya pada browser.
node server.js
Mantap! Aplikasi webnya sudah bisa berjalan dan bisa kita akses!! Sampai saat ini nampaknya kita sudah melakukan setiap langkahnya dengan baik. Namun ini belum selesai.
Ketika kita menutup jendela SSH-in-browser dan membiarkan VMnya running maka server aplikasi web kita bisa saja terhenti dengan sendirinya (tidak menyala terus menerus). Sehingga nantinya harus masuk SSH lagi, menyalakan servernya lagi agar dapat diakses lagi. Merepotkan bukan?
Untuk mengatasi hal tersebut masih ada 1 hal lagi yang harus kita lakukan, yaitu menjalankan aplikasinya menggunakan Process Manager (PM2) .
Menginstal dan Menggunakan Process Manager (PM2)
Dengan menggunakan PM2 nantinya aplikasi web kita akan menyala terus menerus selama VM-nya dalam keadaan running. Jadi kita tidak perlu khawatir lagi dan tidak perlu repot-repot masuk SSH dan menyalakan servernya lagi.
Saat ini kita bisa hentikan dulu server yang sedang berjalan dengan menekan Ctrl + C . Kemudian jalankan perintah berikut ini untuk menginstal PM2.
npm install pm2 -g
Setelah proses instalnya selesai maka bisa langsung kita gunakan untuk menjalankan server.js dengan perintah berikut
pm2 start server.js
Jika sudah tampil seperti demikian artinya server sudah berjalan dan bisa coba akses kembali pada browser.
Voila!! Sampai sejauh ini kita telah berhasil mendeploy aplikasi web yang kita buat dengan NodeJs pada Compute Engine.. Mantap!!
Dengan demikian berakhir sudah tutorial pada tulisan Deploy Aplikasi NodeJs di Compute Engine kali ini.. Terimakasih sudah membaca dan mengikuti langkah-langkah yang cukup panjang ini. Semoga bermanfaat ya. 😀