Pada tulisan selanjutnya saya sudah membahas bagaimana deploy aplikasi Django di AWS Lightsail sampai kita berhasil menajalankan aplikasi Django di virtual server. Kali ini saya akan coba bahas bagaimana cara mengaksses virtual server AWS Lightsail menggunakan SSH dan Filezilla.
Dalam tulisan ini aplikasi yang dibutuhkan adalah aplikasi FTP untuk download dan upload file dari dan ke virtual server AWS Lightsail. Untuk download aplikasi Filezilla dapat di dapatkan
Versi Windows 64 bit disini
atau untuk semua Versi OS disini
Langkah yang dilakukan:
- Download dan install Filezilla,
- Kemudian buka website aws lightsail. dan pada bagian atas menu Account
- Kemudian tampil halaman seperti di bawah, klik tab SSH Keys, kemudian klik Download, untuk menyimpan file ssh dengan ekstensi .pem
- Buka aplikasi filezilla, dan buat koneksi baru dengan cara klik File - > Site Manager.
- Klik New site, dan pada bagian kanan isikan pada Tab General:
Protocol : SFTP - SSH File Transfer Protocol
Host : <alamat IP server lightsail>
Logon Type : Key file
User : <userkita>
Key file : <file ssh.pem>
Setelah semua diisi dengan benar, kemudian klik Connect, lalu OK
- Jika berhasil konek ke virtual server, maka akan menampilkan folder dan data yang terdapat di server.
- Dalam gambar di atas susunan folder untuk aplikasi django kita adalah sebagai berikut:
aplikasi django akan disimpan di folder Project (yang dalam gambar ada background biru).
Jika anda punya aplikasi django yang dibuat di komputer/lokal maka bisa diupload ke sini.
Dalam langkah selanjutnya bagaimana merubah file settings.py dan mengupload aplikasi django dari komputer lokal
- Masuk ke folder Project di virtual server dan download file settings.py ke komputer kita. Caranya klik file settings.py dan drag ke bagian kiri komputer lokal kita.
- Lakukan penyesuaikan/edit file settings.py untuk menambahkan app, setting database, dan static file dll. Misal yang saya lakukan menambahkan kode sintax seperti dibawah ini (ini merupakan cuplikan sebagian kode saja)
import os
import sys
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
...
- Masukan nama aplikasi kita pada bagian INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'<nama app kita>',
]
- Setting Database, jika misalkan kita menggunakan database di tempat lain
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '<nama database>',
'HOST': '<host>',
'PORT': '<port>',
'USER': '<user>',
'PASSWORD': '<password>'
}
}
- Setting file static
STATIC_URL = '/Project/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
- Set templates
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'Project/templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- Kemudian upload kembali file settings yang sudah diubah tersebut ke virtual server pilih overwrite (timpa).
- Langkah selanjutnya adalah copy folder aplikasi dari django kita dan folder lain yang dibutuhkan misal static, template atau folder lain yang terdapat dalam aplikasi yang kita buat di komputer lokal kita.
Lakukan migrasi ke database
- Buka command promt dengan connect SSH, dan lakukan update sistem dll
- Misal kita upgrade pip, sudo pip3 install --upgrade pip
- Setelah semua library terinstal, lakukan migrasi (sintak yang kita tulis yang di border kuning)
bitnami@ip-172-26-15-70:~$ ls
apps bitnami_application_password bitnami_credentials htdocs stack
bitnami@ip-172-26-15-70:~$ cd apps
bitnami@ip-172-26-15-70:~/apps$ ls
django
bitnami@ip-172-26-15-70:~/apps$ cd django
bitnami@ip-172-26-15-70:~/apps/django$ ls
bin bnconfig conf django_projects lib licenses
bitnami@ip-172-26-15-70:~/apps/django$ cd django_projects
bitnami@ip-172-26-15-70:~/apps/django/django_projects$ ls
Project
bitnami@ip-172-26-15-70:~/apps/django/django_projects$ cd Project
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ ls
conf db.sqlite3 gisapp manage.py media Project static
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ python3 manage.py makemigrations
/opt/bitnami/python/lib/python3.7/site-packages/pkg_resources/__init__.py:1243: UserWarnin
g: /opt/bitnami/.tmp is writable by group/others and vulnerable to attack when used with g
et_resource_filename. Consider a more secure location (set with .set_extraction_path or th
e PYTHON_EGG_CACHE environment variable).
warnings.warn(msg, UserWarning)
Migrations for 'gisapp':
gisapp/migrations/0006_auto_20200721_1043.py
- Change managers on sarpras
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ python3 manage.py migrate
- Buat super user
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ python3 manage.py createsuperuser
/opt/bitnami/python/lib/python3.7/site-packages/pkg_resources/__init__.py:1243: UserWarnin
g: /opt/bitnami/.tmp is writable by group/others and vulnerable to attack when used with g
et_resource_filename. Consider a more secure location (set with .set_extraction_path or th
e PYTHON_EGG_CACHE environment variable).
warnings.warn(msg, UserWarning)
Username (leave blank to use 'bitnami'): user1
Email address: user1@mail.com
Password:
Password (again):
Superuser created successfully.
- Cek tampilan web kita, coba cek halaman admin dengan alamat: NO_IP/Project/admin/ sehingga tampil seperti halaman di bawah dimana stylenya masih belum betul.
- lakukan perintah collectstatic
python3 manage.py collectstatic
You have requested to collect static files at the destination
location as specified in your settings:
/opt/bitnami/apps/django/django_projects/Project/static
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
- Lalu set file configuration
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ ls
conf db.sqlite3 gisapp manage.py media Project static
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project$ cd conf/
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project/conf$ ls
httpd-app.conf httpd-prefix.conf httpd-vhosts.conf
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project/conf$ pwd
/home/bitnami/apps/django/django_projects/Project/conf
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project/conf$ ls
httpd-app.conf httpd-prefix.conf httpd-vhosts.conf
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project/conf$ sudo nano httpd-app.conf
- Kemudian masukan kode ini di paling bawah
Alias /static/ 'opt/bitnami/apps/django/django_projects/static/'
<Directory opt/bitnami/apps/django/django_projects/static>
Require all granted
</Directory>
Alias /media/ 'opt/bitnami/apps/django/django_projects/media/'
<Directory opt/bitnami/apps/django/django_projects/media>
Require all granted
</Directory>
- Kemudian restart bitnami server
bitnami@ip-172-26-15-70:~/apps/django/django_projects/Project/conf$ sudo /opt/bitnami/ctlscript.sh restart
- Cek kembali tampilan admin, dan lihat tampilan admin menampilkan style dengan baik.
Demikian tulisan tentang deploying django di AWS Lightsail, silahkan tambahkan dan rubah aplikasi django kita sesuai dengan keinginan.
Terima kasih semoga bermanfaat. @wawanhn
Referensi: