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