Berpindah dari MySQL ke SQLite

Berpindah dari MySQL ke SQLite

Saya pindahkan blog saya dari wordpress ke ghost, sejauh ini cukup nyaman, performa web dari lighthouse sangat memuaskan hijau-hijau, dari beberapa situ menghitung performa pun bisa dibilang oke, tapi ada satu masalah saat saya pindah ke ghost: SERVER SERING DOWN!

Loh ko bisa? itu pertanyaan saya, harusnya ngelihat kondisi yang lebih ringan dari wordpress gak seekstrim itu dong, permasalahannya ini bukan down servicenya tapi emang servernya alias instance lightsail di aws. Jadi saya gak bisa restart servicenya karena saya gak bisa ssh ke server, harus di reboot/stop manual di halaman aws. Sedih.

Default

Sebagai gambaran saya memasang ghost dengan docker compose, docker compose dari halaman docker ghost, isinya seperti ini

version: '3.1'

services:

  ghost:
    image: ghost:4-alpine
    restart: always
    ports:
      - 8080:2368
    environment:
      # see https://ghost.org/docs/config/#configuration-options
      database__client: mysql
      database__connection__host: db
      database__connection__user: root
      database__connection__password: example
      database__connection__database: ghost
      # this url value is just an example, and is likely wrong for your environment!
      url: http://localhost:8080
      # contrary to the default mentioned in the linked documentation, this image defaults to NODE_ENV=production (so development mode needs to be explicitly specified if desired)
      #NODE_ENV: development

  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: example

gak ada yang aneh, biasa saja, saya coba di lokal juga lancar tapi di lightsail down mulu.

sumber: https://hub.docker.com/_/ghost

Informasi Awal

Sebelum cari solusi kita cari dulu masalahnya, ternyata yang menyebabkan server lightsail sering down karena ada pembatasan penggunaan CPU, sehingga ketika penggunaan CPU naik langsung mati instancenya bukan hanya servicenya.

Kondisi cpu

Bagian hijau di bawah adalah bagian aman, dan bagian oranye bagian burstable alias jika sudah terlalu tinggi instance yang digunakan die.

Percobaan pertama

Jika dilihat dari konfigurasi docker di atas saya hanya menggunakan dua container, ghost dan mysql, asumsi saya waktu itu adalah: jangan-jangan karena langsung dari ghost bikin cpu berat?. Oke saya tambahkan layer baru sebelum ghost yaitu nginx. Lalu hasilnya? Tetap DOWN!.

Percobaan kedua

Percobaan kedua adalah masih di nginx, sekarang saya tambahkan konfigurasi cache, cukup aman, masih down tapi tidak sesering awal-awal. Tapi ya tetep aja Down.

Percobaan terakhir

Percobaan terakhir adalah mengganti stacknya, yaitu mengganti MySQL keSQLite, Ghost support SQLite tapi tidak disarankan untuk production env katanya, tapi hey ini blog doang blog pribadi gak ada aneh-aneh, so, kita ganti ke SQLite. Dan kalau ini masih sering kena burst zone, mari pindah saja ke Digital Ocean atau Vultr.

Hasil

Hasilnya cukup memuaskan, saya ganti ini di hari Rabu malam dan dari Rabu malam sampai Sabtu pagi tak ada Down sama sekali, dicek di metric aws pun cpu stabil di wilayah hijau.

Dari tanggal 26 sampai sekarang stabil di bagian hijau. Tidak ada down.

Yaudah itu saja sih.

Show Comments