Sebelum mengikuti petunjuk lebih lanjut, pastikan Anda telah mencoba menjalankan Python Bot secara lokal terlebih dahulu. Anda juga perlu memiliki akun AWS sebelum melakukan deployment.
Menyediakan layanan gratis untuk penggunaan ringan selama 1 tahun (AWS Free Tier). Layanan ini sangat fleksibel dan cocok untuk proyek yang lebih kompleks. Buka link untuk mendaftar.
Berikut ini adalah langkah-langkah untuk menggunakan AWS EC2 dan menjalankan kode sumber Python dari GitHub di server tersebut. Pastikan Anda memiliki akun AWS dan sudah masuk.
Catatan: Kita hanya akan menggunakan Free Tier saja.
-
Buka AWS Management Console.
-
Pergi ke layanan EC2 dengan mencarinya di menu Services (di samping logo AWS).
-
Klik Launch Instance.
-
Configure Instance:
-
Beri nama instance (misalnya
MyPythonServer
). -
Pilih Amazon Machine Image (AMI):
- Pilih Ubuntu Server 22.04 LTS (HVM), SSD Volume Type.
-
Pilih Instance Type:
- Pilih t2.micro.
-
-
Configure Key Pair:
-
Buat key pair baru dengan menekan Create new key pair.
-
Beri nama, misalnya
my-key-pair
. -
Pilih format file key:
-
Jika anda akan melakukan koneksi dengan OpenSSH, pilih
.pem
. -
Jika anda akan melakukan koneksi dengan PuTTY (untuk Windows), pilih
.ppk
.
-
-
Simpan file dengan menekan Create key pair.
-
-
Configure Network Settings:
- Centang Allow SSH traffic from dan ganti ke My IP (untuk keamanan) atau biarkan Anywhere
0.0.0.0/0
(agar bisa diakses dari mana saja). Hindari memilih0.0.0.0/0
(akses dari semua IP), kecuali benar-benar diperlukan.
- Centang Allow SSH traffic from dan ganti ke My IP (untuk keamanan) atau biarkan Anywhere
-
Configure Storage:
- Pastikan alokasi storage cukup untuk kebutuhan proyek Anda. 8 GB biasanya cukup untuk aplikasi kecil.
-
(Opsional) Instal dependensi (
pip install
untuk script Python). Pada bagian Advanced Details cari User Data (for bootstrapping) dan tambahkan kode di bawah pada kolom inputan.#!/bin/bash sudo apt-get update sudo apt-get install -y python3-pip pip3 install -r /home/ubuntu/requirements.txt
-
Click Launch Instance.
-
Navigasi ke tab Instances di EC2 Console dan pilih instance Anda, klik tombol Connect, pilih menu SSH client. Salin contoh perintah SSH.
-
Buka terminal di komputer Anda dan akses instance menggunakan SSH, tempel perintah SSH tadi.
-
Ganti lokasi file
.pem
sesuai dengan lokasi file yang Anda simpan. -
Jika ada error terkait izin, jalankan perintah di bawah:
chmod 400 /path/to/my-key-pair.pem
Lalu ulangi memembuat koneksi menggunakan SSH.
-
-
(Opsional) Jika saat membuat koneksi terjadi error dan anda sudah capek, gunakan CloudShell yang berada pada pojok kiri bawah atau pada bagian menu atas dengan ikon console di samping ikon lonceng. Perlu diingat bahwa CloudShell adalah lingkungan sementara. Semua proses yang berjalan akan dihentikan begitu Anda menutup sesi CloudShell atau keluar dari AWS Console.
-
Cek versi Python, Pip dan Git. Jalankan per 1 baris.
python3 --version pip --version git --version
-
Jika terjadi kesalahan pada nomor 1 maka perbarui package list dan install package yang tidak ditemukan.
sudo apt update -y # Sesuaikan dengan package yang error sudo apt install python3 -y sudo apt install python3-pip -y sudo apt install git -y
-
Cek kembali versi package yang telah diinstall seperti nomor 1.
-
Clone repository GitHub.
git clone https://github.com/syauqi-a/GetGrassMiner.git
-
Masuk ke folder project.
cd GetGrassMiner
Direkomendasikan untuk tetap membuat virtual environment.
-
(Opsional) Jika package
virtualenv
belum ada maka install terlebih dahulu:sudo pip3 install virtualenv
-
Buat dan aktifkan virtual environment:
python3 -m venv venv source venv/bin/activate
-
Install dependencies dari file
requirements.txt
.pip install -r requirements.txt
Lakukan pengaturan konfigurasi pada file .env
, config.json
dan proxies.txt
seperti saat menjalankan di lokal, lihat di sini.
Jalankan script utama untuk memulai bot.
python main.py
Jika Anda ingin aplikasi tetap berjalan meskipun Anda keluar dari SSH, gunakan metode berikut:
nohup python main.py > /dev/null 2>&1 & echo $! > nohup_main.pid
Note:
-
Dengan menambahkan
> /dev/null 2>&1
semua output standar (stdout
) dan output error (stderr
) tidak akan disimpan untuk mencegah membengkaknya penyimpanan. -
Melihat proses
main.py
yang berjalan di background.ps -ef | grep main.py
-
Melihat proses secara lebih detail.
htop
Lalu tekan F4, masukkan
main.py
dan tekan ENTER. Untuk keluar tekan Q. -
Menghentikan proses
main.py
yang berjalan di background.kill $(cat nohup_main.pid)