Deploy Aplikasi Web Python pada NAT VPS

NATVPS.id – Kita dapat men-deploy aplikasi web Python (Flask, Django, dan lain-lain) pada NAT VPS. Tujuannya agar aplikasi kita dapat berjalan pada cloud server dan dapat diakses oleh publik. Pada artikel ini kita akan membahasnya.

Artikel ini akan menggunakan Flask dan Gunicorn, dengan aplikasi sederhana. Perlu diketahui bahwa masing-masing web framework memiliki metode deployment yang berbeda, seperti Sanic yang memiliki web server nya sendiri, sedangkan Flask memerlukan WSGI/uWSGI/ASGI agar dapat berjalan di mode production dengan aman. Silahkan periksa dokumentasi dari tiap-tiap framework.

Instalasi Flask

Jika belum, pasang dependensi yang diperlukan yaitu Python, Flask, dan Gunicorn pada VPS.

Pertama, pasang Python 3 dan PIP dengan command:

sudo apt-get install python3 python3-pip -y
# Tambah lokasi library Python ke PATH
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

Selanjutnya, pasang library Flask dan Gunicorn menggunakan PIP:

pip3 install flask gunicorn

Konfirmasi instalasi dengan mencoba untuk mengeksekusi command flask dan gunicorn:

flask --version
gunicorn --version

Jika dapat tereksekusi, maka library telah berhasil terpasang.

Menjalankan Aplikasi Sederhana: Hello, World!

Buat direktori baru “helloworld” menggunakan command:

mkdir ~/helloworld
cd ~/helloworld

Kemudian buat file baru dengan nama app.py dan paste-kan kode berikut:

nano app.py
# app.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Hello, World!"

if __name__ == "__main__":
    app.run()

Jalankan aplikasi tersebut:

python3 app.py

Jika berhasil berjalan, maka tidak ada error pada aplikasi.

Menjalankan Flask Melalui Gunicorn

Gunicorn adalah WSGI web server yang biasa digunakan untuk menjalankan aplikasi web Python pada tingkat produksi (siap untuk akses publik).

Baca Juga:  Instalasi Nextcloud + NGINX (HTTPS) di NAT VPS

Coba jalankan Gunicorn yang mengarah ke aplikasi Flask kita sebelumnya (app:app):

gunicorn app:app

Jika tidak ada error, maka Gunicorn dapat berjalan dengan baik. Saatnya untuk proses deployment.

Untuk menjalankan Gunicorn di latar belakang (tidak terhenti pada saat logout SSH), kita dapat menggunakan tmux, utilitas untuk menjalankan berbagai sesi Terminal dan menempatkannya di background.

Kita perlu memasang tmux terlebih dahulu, menggunakan command:

sudo apt-get install tmux -y

Jika sudah, mulai sesi Terminal baru dengan memasukkan:

tmux

Jika tampilan Terminal Anda berubah seperti ketika Anda baru login, maka Anda telah masuk ke dalam sesi baru.

Pada sesi baru ini, jalankan Gunicorn dengan memasukkan command seperti sebelumnya:

gunicorn app:app --bind 127.0.0.1:9090

Jika tidak ada error, maka Gunicorn berhasil berjalan pada port 9090. Keluar (detach) dari sesi tersebut (tanpa memberhentikan Gunicorn) dengan menekan Ctrl + B, kemudian D.

Untuk kembali ke sesi Gunicorn, masukkan command:

tmux attach

Konfigurasi Port Forwarding

Sama seperti program lainnya, pengaturan port forwarding perlu dilakukan agar aplikasi dapat diakses oleh publik.

  • Protokol: TCP
  • Source Domain/IP: Pilih IP publik VPS
  • Source Port: Port bebas asal tidak terpakai
  • Destination IP: Pilih yang tersedia (IP lokal VPS)
  • Destination Port: 9090

Akses aplikasi pada URL http://SourceIP:SourcePort, misalnya http://103.76.129.90:47004.

Penutup

Demikianlah artikel kali ini mengenai deploy aplikasi web Python pada NAT VPS. Silahkan dikembangkan sesuai kebutuhan. Semoga dapat membantu Anda dan terima kasih sudah membaca.

 

You May Also Like

About the Author: Hendra Manudinata