Wednesday, July 22, 2020

Deploy Aplikasi django di AWS Lightsail Bagian 2



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:




Previous Post
Next Post

0 comments: