SegalaHal - Deploy Aplikasi NodeJs di Compute Engine

Deploy Aplikasi NodeJs di Compute Engine

Diposting pada 552 views

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
deploy aplikasi nodejs di compute engine - akses halaman firewall dari navigation menu
  • Selanjutnya klik tombol Create Firewall Rule untuk membuat aturan firewall baru
deploy aplikasi nodejs di compute engine - klik create firewall rule
  • Kemudian isikan rincian aturan firewallnya seperti pada tabel berikut ini dan selebihnya abaikan saja, biarkan nilai default
Nameallow-port-5000
Description (opsional)Aturan firewall untuk membuka akses port 5000
TargetsSpecified target tags
Target tagssegalahal-nodejs-server
Source filterIPv4 ranges
Source IPv4 ranges0.0.0.0/0
Specified protocols and portsTCP 5000
mengisikan rincian firewall
mengisikan rincian firewall 2
  • Lalu klik tombol Create. Hasilnya akan tampak seperti pada screenshot berikut ini.
tampilan firewall berhasil terbuat

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
mengakses halaman VM instance google compute engine melalui menu navigasi
  • Setelah itu klik tombol Create Instance (bisa yang atas atau yang bawah, sama saja)
klik create instance
  • 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.
Namesegalahal-vm
Regionasia-southeast2 (Jakarta)
SeriesN1
Machine typeShared-core > f1-micro ( 1vCPU , 614 MB Memory )
Allow HTTP TrafficYes (centang)
Network Tagssegalahal-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
deploy aplikasi nodejs di compute engine - klik create untuk membuat compute engine instance sesuai rincian yang sudah diisikan
  • Setelah VM berhasil dibuat maka akan tampil pada halaman VM Instances seperti ini.
deploy aplikasi nodejs di compute engine - VM instance telah berhasil dibuat

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.

error gagal membuat VM karena sedang tidak tersedia

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.
masuk ke VM dengan klik tombol SSH
  • 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.
klik authorize saat masuk SSH
  • Jika telah berhasil masuk ke VM-nya, maka pada jendela SSH-in-browser akan tampil seperti ini.
tampilan SSH-in-browser saat berhasil masuk VM

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
tampilan SSH-in-browser setelah berhasil menginstal NodeJs

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
tampilan SSH-in-browser saat berhasil menginstal dependensi

Selanjutnya kita bisa tes apakah aplikasi webnya bisa berjalan atau belum dengan mengetikkan perintah berikut ini.

node server.js
tampilan terminal menunjukkan keterangan bahwa server sedang berjalan pada port 5000

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>

IP external dari VM yang telah dibuat sebelumnya
Aplikasi web masih belum dapat diakses

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

memperbaiki kode server.js

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
menjalankan server
web telah berhasil tampil

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
menjalankan server menggunakan pm2

Jika sudah tampil seperti demikian artinya server sudah berjalan dan bisa coba akses kembali pada browser.

aplikasi sudah bisa diakses lagi

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. 😀