Skip to content
Jagoan Cloud Docs
  • Solutions
    • Server Ujian Online
    • Scalable WordPress
  • Products
    • Jagoan Cloud PaaS
      • Pricing
    • Cloud Backup
    • VPS Windows
    • Business Mail
    • SSL Certificate
  • Login App
Popular Search settingphpsshdockerdomain

Rapor Digital Madrasah

  • Cara Instalasi RDM

Panduan Dasar

  • Cara Memasang SSL di Jagoan Cloud
  • Mengubah domain Jagoan Cloud ke Domain Sendiri
  • Cara Menambahkan IP Public

Moodle

  • Cara Login ke Server Moodle di Jagoan Cloud
  • Cara Login ke Aplikasi Moodle di Jagoan Cloud
  • Cara Menggunakan Domain Pribadi untuk Aplikasi Moodle

Quick Start

  • Getting Started
  • Dashboard Guide
  • Welcome Tutorial
  • Software Stack Versions

Platform Overview

  • What is Platform-as-a-Service
  • Concept and Terminology
  • What are System Containers
  • What are Application Containers
  • Isolated Containers
  • What is Auto-Clustering
  • Cloudlet

Containers

  • Container Types
  • Container Image Requirements
  • Connect to Custom Container
  • Custom Container SSH Access
  • Private Registry Inside PaaS
  • Building Custom Containers

Environment Management

  • HTTP Headers
  • Clone Environment

Application Settings

  • Configuration File Manager
  • Managing Timezone Settings

Development Tools

  • FTP/FTPS Support

Account and Pricing

  • Account Registration
  • Account Types
  • Account Statuses
  • Account Password Reset
  • Quotas System
  • Two Factor Authentication
  • Personal Access Token
  • Upgrade and Refill Account
  • Pricing Model Overview

Architecture Overview

  • Cluster Overview
  • Cluster Orchestrator

Container Deployment

  • Certified Containers Deployment
  • Custom Containers Deployment
  • Docker Engine Deployment

Container Redeploy

  • Redeploy Overview
  • Preserve Data

Container Configuration

  • Configuration Tools
  • Container Environment Variables
  • Container Linking
  • Container Volumes
  • Container Ports
  • Container Run Configuration

Environment Variables

  • Java Options and Arguments
  • Default Environment Variables
  • Custom Environment Variables

Environment Groups

  • Overview
  • Group Creation
  • Navigation Between Groups
  • Group Management
  • Environment Isolations

Scaling and Clustering

  • Automatic Vertical Scaling
  • Horizontal Scaling
  • Automatic Horizontal Scaling
  • Data Synchronization
  • File Synchronization in Cluster
  • Auto-Clustering of Instances

Built-In Monitoring

  • Log Files
  • Statistics
  • Load Alerts

SSH

  • Generate SSH Key
  • Add SSH Key
  • SSH Access

Resource Charging

  • Pricing FAQ
  • Charged Resources
  • Monitoring Consumed Resource

Kubernetes

  • GitLab CI/CD Integration
  • Cluster Automated Upgrade
  • Public IP for Access to Kubernetes
  • Traefik v2 Ingress Controller

Kubernetes Cluster

  • Kubernetes Overview
  • System Requirements
  • Cluster Installation
  • Cluster Versions

Managing Kubernetes

  • Cluster Access
  • Access Controll
  • Cluster Troubleshooting
  • Cluster Upgrade
  • Velero Backup

Kubernetes Scalability

  • Vertical Scalling
  • Horizontal Scalling

Application Deployment

  • Helm Integration
  • YAML Deployments
  • Internal Networking
  • Exposing Services
  • Creating Ingresses

Persistent Data

  • Volume Provisioner
  • Persistent Volume Claim
  • Custom Storage

Domain Name Management

  • Swap Domain
  • Multiple Domain for PHP
  • Container DNS Hostnames

External Access to Applications

  • Shared Load Balancer
  • Public IP
  • Container Firewall
  • Endpoints

Traffic Distributor

  • Traffic Distributor Overview
  • Routing Methods
  • Traffic Distributor Installation
  • Traffic Distributor Integration
  • Use Case

SSL

  • Secure Socket Layer
  • Built-In SSL
  • Custom SSL
  • Custom SSL via SLB

Scheduling Configuration

  • Setting Up Cronjob
View Categories
  • Docs
  • Panduan Penggunaan Layanan & Platform Jagoan Cloud
  • Jagoan Cloud PaaS
  • Panduan Dasar
  • Application Settings
  • Scaling and Clustering
  • File Synchronization in Cluster

File Synchronization in Cluster

5 min read

File Synchronization Between Several Application Servers in a Cluster #

Seiring dengan meningkatnya trafik ke proyek kamu, performa aplikasi juga perlu ditingkatkan agar tetap bisa mengikuti permintaan. Memang, platform ini secara otomatis menyediakan ruang ekstra melalui vertical scaling sesuai batas yang ditetapkan. Tapi, seiring bertambahnya popularitas layananmu, kemungkinan besar Kamu akan butuh menambah jumlah node — alias melakukan horizontal scaling.

Namun, untuk banyak aplikasi populer seperti WordPress, Drupal, Joomla, Liferay, Redmine, dan sejenisnya, mendistribusikan aplikasi ke beberapa instance web server bisa jadi masalah. Hal ini karena file yang diunggah pengguna biasanya hanya tersimpan di node tempat upload dilakukan, sehingga node lain tidak memiliki file tersebut — menyebabkan data tidak sinkron.

Untuk mengatasi masalah itu, platform ini menyediakan add-on khusus bernama File Synchronization, yang bertujuan menjaga file upload tetap sinkron di semua instance web server. Menariknya, sinkronisasi ini bisa diterapkan di dalam satu environment dengan node horizontal scale, atau di dua environment berbeda, meskipun stack atau aplikasinya tidak sama.

File Synchronization Add-on Implementation #

Add-on ini menggunakan kombinasi dari lsyncd daemon – memonitor perubahan file, cron utility – untuk tugas terjadwal, dan inotify – hanya memicu sinkronisasi saat ada perubahan file nyata. Pendekatan ini jauh lebih ringan bagi CPU dibanding sinkronisasi terus-menerus, tapi tetap menjaga data kamu selalu terbarui, hemat resource, dan mudah digunakan.

Add-on File Sync bisa diinstal pada semua application server stack yang dikelola oleh platform, kecuali Docker containers.

Sebelum pemasangan, kamu akan diminta memilih folder yang ingin disinkronkan. Dengan begitu, hanya bagian tertentu dari file sistem aplikasi yang memang perlu sinkronisasi yang akan diproses — lebih efisien. Nantinya, hanya perubahan dalam direktori yang dipilih (pada salah satu instance server aplikasi) yang akan memicu proses sinkronisasi. 

Di bawah ini akan kami jelaskan mengenai langkah-langkah untuk melakukan sinkronisasi file ini.

Install Aplikasi #

Untuk contoh ini, kita akan menggunakan WordPress, yang dideploy dalam satu environment berisi dua server aplikasi NGINX + PHP.


💡 TIP

Instruksi di bawah ini juga sepenuhnya berlaku untuk aplikasi lain yang serupa, seperti Drupal, Joomla, Liferay, Redmine, dan sebagainya — baik yang berbasis Java, PHP, Ruby, maupun bahasa pemrograman lain yang didukung platform.

 

1. Kamu bisa menginstal aplikasi WordPress secara manual, atau gunakan paket satu klik (one-click package) yang tersedia di Marketplace untuk melakukan deploy secara otomatis dan lebih cepat.

 

Klik Install, lalu isi detail yang dibutuhkan seperti, environment name, display name (alias), versi PHP, fitur tambahan.

 

Konfirmasi instalasi dan tunggu sebentar hingga muncul pesan berisi data login admin. Informasi ini juga akan dikirim ke email kamu secara otomatis.

2. Klik Change Environment Topology, lalu gunakan tombol + di bagian Horizontal Scaling untuk menambahkan satu lagi application server node.
Dengan begitu, Kamu sudah membuat cluster WordPress yang siap digunakan untuk uji coba sinkronisasi file antar-node.

Jika sudah, klik “Apply”.


💡 TIP
Dengan mengikuti panduan di dokumentasi ini, Kamu bisa dengan mudah menambahkan application server tambahan, mengaktifkan high availability, atau bahkan mengatur solusi cluster secara penuh. Dalam contoh ini, kita cukup menambahkan satu server aplikasi lagi ke environment. Namun, jika Kamu ingin skenario yang lebih kompleks dan siap produksi, kamu bisa langsung konfigurasi solusi cluster lengkap untuk WordPress kamu agar lebih stabil, skalabel, dan tahan gangguan.

Test File Upload Without Synchronization #

1. Akses Admin Panel WordPress

Tambahkan /wp-login.php di akhir domain environmentmu, contohnya:

https://nama-environmentmu.jh-beon.cloud/wp-login.php 

Lalu, login menggunakan kredensial admin yang sudah Kamu terima lewat email saat instalasi tadi.

2. Setelah berhasil login, lakukan beberapa perubahan pada situs WordPress kamu

Sebagai contoh kita upload gambar ke menu Media.

3. Sekarang, kembali ke dashboard app.jagoan.cloud, lalu klik tombol Config yang ada di sebelah layer App Server (application server).

4. Arahkan ke direktori webroot dengan cara : dari Favorites → ROOT → wp-content. Lakukan ini pada kedua node di layer aplikasi, lalu bandingkan isinya.


📝 NOTE
Lokasi direktori tempat file hasil upload disimpan tergantung dari aplikasi yang kamu gunakan. Berikut daftar folder upload untuk beberapa aplikasi populer:

  • WordPress → webroot/ROOT/wp-content
  • Drupal → webroot/ROOT/sites
  • Joomla → webroot/ROOT/images
  • Liferay → webroot/home/liferay/data

Pastikan Kamu memilih direktori yang tepat saat mengaktifkan fitur File Synchronization, agar sinkronisasi berjalan sesuai dengan struktur file aplikasi yang kamu pakai.

Seperti yang bisa Kamu lihat, salah satu instance app server (misalnya Node ID 54502) memiliki file baru di direktori uploads, sedangkan instance lainnya (misalnya Node ID 54505) belum memiliki file tersebut.

Apply File Synchronization #

Untuk menyinkronkan konten antar node di dalam cluster, maka kita perlu mengaktifkan add-on File Synchronization.

1. Temukan dan install addon File Synchronization pada menu Marketplace.

2. Pada kotak dialog yang muncul setelah Kamu klik Install, Kamu perlu mengatur beberapa parameter sinkronisasi tambahan : 

Di bagian ini, kamu perlu menentukan apakah proses File Synchronization akan dijalankan dalam satu environment (seperti contoh pada tutorial ini) atau antara dua environment berbeda (tersedia sebagai opsi tambahan di formulir).

  • Sync path : Path folder yang ingin disinkronkan, relatif terhadap direktori webroot.
    Contoh: /ROOT/wp-content untuk WordPress.
  • Sync delay (sec) : Waktu jeda antar proses sinkronisasi, dalam detik. Misal: 10 untuk delay 10 detik.
  • Environment name : Pilih environment tempat kamu ingin mengaktifkan sinkronisasi, dari daftar yang tersedia.
  • Nodes : Layer application server akan terisi otomatis setelah environment dipilih. Kamu tinggal pilih node-node yang akan disinkronkan.

Jika sudah Kamu konfigurasi, klik Install.


💡 TIP
Untuk menjalankan sinkronisasi antar dua environment berbeda, kamu perlu menginstal add-on File Synchronization di web server masing-masing environment.Pastikan kamu memilih opsi “Two environments synchronization” pada saat instalasi, lalu lakukan konfigurasi pada kedua environment secara terpisah.Berikut parameter tambahan yang harus diisi:

  • 2nd Environment IP: Alamat IP dari salah satu application server node di environment kedua. Gunakan internal IP jika kedua environment berjalan di platform dan region yang sama. Gunakan external IP jika berada di region/platform yang berbeda.
  • Password (opsional): Jika ingin mengamankan sinkronisasi, kamu bisa mengatur password. Pastikan password ini sama di kedua environment agar proses sinkronisasi berhasil.

3. Setelah proses instalasi selesai, akan muncul notifikasi instalasi selesai

4. Pada tahap ini Kamu bisa cek file yang sudah kamu upload di kedua node


💡 TIP

Jika kamu melakukan perubahan pada topologi environment dengan menambahkan app server baru, add-on File Synchronization akan secara otomatis menerapkan sinkronisasi file ke node baru tersebut.

 


📝 NOTE
Jika di dalam direktori yang disinkronkan terdapat mount point (misalnya mount dari storage eksternal), Kamu perlu mengecualikannya dari proses sinkronisasi agar tidak terjadi error atau konflik.Berikut ini langkah yang perlu dilakukan:

  1. Edit file konfigurasi sinkronisasi
  2. Buka file berikut di setiap node:
    <sync_path>/lsyncd/etc/lsyncd.conf 
  3. Tambahkan path mount point tersebut ke dalam daftar exception, agar tidak ikut disinkronkan oleh lsyncd.
  4. Restart proses sinkronisasi secara manual

Jalankan perintah berikut di masing-masing node :

for pid in $(ps aux | grep 'rsync\|lsyncd' | awk '!/grep/{print $2}'); do kill -9 $pid;  done

Command ini akan mematikan semua proses rsync dan lsyncd yang sedang aktif. Setelah itu, service akan otomatis berjalan kembali dengan pengaturan terbaru.

Sinkronisasi file akan berjalan otomatis setiap kali kamu menambahkan atau mengubah apa pun di WordPress-mu (atau aplikasi lain yang kamu gunakan). Dengan begitu, data di semua server akan selalu identik dan up-to-date, tanpa perlu intervensi manual.

Check Log #

Proses sinkronisasi bisa Kamu monitor melalui file log yang terletak di direktori berikut pada web server: webroot/lsyncd/var/log

Informasi paling penting terkait proses sinkronisasi dapat kamu temukan di dua file utama berikut:

  1. lsyncd.log – berisi catatan detail semua aktivitas sinkronisasi, termasuk file yang diubah, waktu sinkronisasi, dan event yang terjadi.
  2. lsyncd.status – menunjukkan status terkini dari proses sinkronisasi, seperti node mana yang aktif, apakah sinkronisasi berhasil, atau sedang berlangsung.

Semoga panduan ini membantu kamu ya!

What are your Feelings

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on June 25, 2025
Data SynchronizationAuto-Clustering of Instances

Powered by BetterDocs

Daftar Isi
  • File Synchronization Between Several Application Servers in a Cluster
  • File Synchronization Add-on Implementation
  • Install Aplikasi
  • Test File Upload Without Synchronization
  • Apply File Synchronization
  • Check Log
© 2022 Jagoan Cloud