Add Your Heading Text Here
Rclone adalah utilitas CLI lintas-platform untuk sinkronisasi/arsip data ke berbagai penyimpanan
object storage, termasuk Amazon S3. Kekuatan rclone ada pada konsistensi perintah (
copy,
sync,
move), dukungan enkripsi sisi klien (
crypt), dan opsi teknis yang kaya untuk kinerja serta keamanan. Pada AWS S3, enkripsi
server-side (SSE-S3) kini aktif
by default; Anda dapat menambah SSE-KMS untuk kontrol kunci yang lebih ketat. [lihat Sumber]
Daftar Isi
Instalasi rclone
Metode resmi (Linux):
curl -fsSL https://rclone.org/install.sh | sudo bash
rclone version
Opsi lain: gunakan paket distro/Chocolatey/Homebrew sesuai sistem Anda. [lihat Sumber]
IAM Paling Minimum (Least Privilege)
Buat
user/
role khusus rclone dengan akses hanya ke satu
bucket dan satu
prefix (folder). Contoh kebijakan JSON:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListBucketPrefix",
"Effect": "Allow",
"Action": [ "s3:ListBucket" ],
"Resource": "arn:aws:s3:::<BUCKET_NAME>",
"Condition": { "StringLike": { "s3:prefix": ["<PREFIX>/*"] } }
},
{
"Sid": "CRUDObjectsUnderPrefix",
"Effect": "Allow",
"Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload" ],
"Resource": "arn:aws:s3:::<BUCKET_NAME>/<PREFIX>/*"
}
]
}
Tambahkan izin SSE-KMS jika memakai KMS (lihat bagian Enkripsi). [lihat Sumber]
Konfigurasi Remote S3 (env atau kredensial langsung)
Opsi A — Menggunakan kredensial lingkungan (disarankan)
# Ekspor kredensial (contoh, non-produksi)
export AWS_ACCESS_KEY_ID="<AKIA...>"
export AWS_SECRET_ACCESS_KEY="<SECRET>"
export AWS_DEFAULT_REGION="ap-southeast-1"
# Buat remote S3 bernama "aws-s3" yang mengambil kredensial dari env
rclone config create aws-s3 s3 provider AWS env_auth true region ap-southeast-1
Opsi B — Menyimpan kredensial di rclone.conf
rclone config create aws-s3 s3
provider AWS
env_auth false
access_key_id "<AWS_ACCESS_KEY_ID>"
secret_access_key "<AWS_SECRET_ACCESS_KEY>"
region ap-southeast-1
Catatan: S3 mendukung
virtual-hosted style dan
path-style. Pada AWS, pendekatan
virtual-hosted adalah praktik modern; biarkan rclone memilih default sesuai
provider atau atur sesuai kebutuhan kompatibilitas. [lihat Sumber]
Menambahkan Enkripsi Klien (rclone crypt)
Layer
crypt mengenkripsi nama berkas dan konten di sisi klien sebelum dikirim ke S3. Ini melengkapi SSE-S3/SSE-KMS.
Setup cepat:
# Buat folder khusus di S3 untuk data terenkripsi
rclone mkdir aws-s3:<BUCKET_NAME>/<PREFIX>/enc
# Buat remote "aws-enc" yang membungkus aws-s3:<BUCKET>/<PREFIX>/enc
rclone config create aws-enc crypt
remote aws-s3:<BUCKET_NAME>/<PREFIX>/enc
filename_encryption standard
directory_name_encryption true
password "<PASSPHRASE_UTAMA>"
password2 "<OPSIONAL_SALT>"
Jaga
passphrase dengan aman (password manager/secret store). [lihat Sumber]
Perintah Dasar: copy vs sync
copy: menyalin berkas baru/berubah ke tujuan; tidak menghapus berkas lama di tujuan.
sync: membuat tujuan identik dengan sumber (berkas yang tidak ada di sumber akan dihapus di tujuan). Gunakan hati-hati. [lihat Sumber]
# Uji dulu (tanpa eksekusi) dengan --dry-run
rclone sync /data/backup aws-s3:<BUCKET>/<PREFIX>/backup --dry-run -P
# Jalankan sungguhan dengan verifikasi checksum
rclone sync /data/backup aws-s3:<BUCKET>/<PREFIX>/backup -P --checksum
Optimasi Kinerja: Multipart, Concurrency, Chunk
Unggahan besar memakai
multipart upload. Penyesuaian umum:
# Contoh penyesuaian (uji secara bertahap sesuai jaringan/CPU/RAM)
rclone copy /data/arsip aws-s3:<BUCKET>/arsip -P
--transfers 8
--s3-upload-concurrency 8
--s3-chunk-size 32M
Perhatikan memori: estimasi penggunaan memori multipart ≈
--transfers × --s3-upload-concurrency × --s3-chunk-size. [lihat Sumber]
Enkripsi Server-Side: SSE-S3 & SSE-KMS
Sejak 2023, semua unggahan ke S3 dienkripsi minimal dengan
SSE-S3 secara otomatis. Untuk kontrol kunci granular, gunakan
SSE-KMS plus kebijakan KMS yang sesuai.
# Memaksa SSE-S3 eksplisit (opsional)
rclone copy ./file.log aws-s3:<BUCKET>/logs
--s3-server-side-encryption AES256
# Menggunakan SSE-KMS (ganti alias/ARN kunci Anda)
rclone copy ./db.dump aws-s3:<BUCKET>/db
--s3-server-side-encryption aws:kms
--s3-sse-kms-key-id alias/<ALIAS_KMS>
Tip: jika kebijakan KMS mensyaratkan KMS key tertentu, pastikan parameter rclone cocok; ketidaksesuaian bisa ditolak S3/KMS. [lihat Sumber]
Lifecycle, Glacier & Versioning
Gunakan
Lifecycle untuk memindah objek lama ke kelas lebih hemat (mis.
Intelligent-Tiering,
Glacier Instant Retrieval,
Glacier Flexible Retrieval/
Deep Archive) dan/atau menghapus setelah masa simpan. Perlu diingat transisi bersifat
asynchronous (ada jeda). Aktifkan juga
Versioning untuk pemulihan dari hapus/overwrite.
{
"Rules": [
{
"ID": "Transisi-Arsip",
"Status": "Enabled",
"Filter": { "Prefix": "<PREFIX>/backup/" },
"Transitions": [
{ "Days": 30, "StorageClass": "INTELLIGENT_TIERING" },
{ "Days": 90, "StorageClass": "GLACIER_IR" }
],
"NoncurrentVersionTransitions": [
{ "NoncurrentDays": 30, "StorageClass": "GLACIER_IR" }
],
"Expiration": { "Days": 365 }
}
]
}
Atur
Versioning dan kebijakan penghapusan versi tidak-terbaru sesuai kebutuhan pemulihan. [lihat Sumber]
Otomasi Harian: Skrip & Cron
Contoh skrip umum dengan logging dan notifikasi sederhana (mailx opsional):
#!/usr/bin/env bash
set -euo pipefail
SRC="/data/backup"
DST="aws-s3:<BUCKET>/<PREFIX>/backup"
LOG="/var/log/rclone-backup.log"
# Opsional: SSE-KMS
SSE_ARGS=(--s3-server-side-encryption aws:kms --s3-sse-kms-key-id alias/<ALIAS_KMS>)
# Jika IAM tidak izinkan create/list bucket, hindari pengecekan
NOCHK="--s3-no-check-bucket"
# Jalankan sinkronisasi
rclone sync "$SRC" "$DST" -P --checksum "$NOCHK"
--transfers 8 --s3-upload-concurrency 8 --s3-chunk-size 32M
"${SSE_ARGS[@]}"
--log-file "$LOG" --log-level INFO
echo "[$(date -Is)] Rclone sync OK" | mail -s "Backup OK" admin@example.org || true
# /etc/crontab — jalankan tiap 23:45
45 23 * * * root /usr/local/bin/backup-s3.sh
Contoh untuk Proxmox/PBS & Database
Sinkronisasi arsip Proxmox Backup Server (PBS) ke S3
# Contoh: sinkronkan datastore PBS ke S3 terenkripsi (crypt)
rclone sync /mnt/datastore/backups aws-enc:<BUCKET>/<PREFIX>/enc -P
--s3-no-check-bucket --log-file /var/log/rclone-pbs.log --log-level INFO
Dump database harian lalu kirim ke S3
# MariaDB (rotasi sederhana per tanggal)
mysqldump -u backup -p'<PASS>' --routines --events --triggers --single-transaction
--databases sekolah_db | gzip > /data/backup/db/sekolah_$(date +%F).sql.gz
rclone copy /data/backup/db aws-s3:<BUCKET>/<PREFIX>/db -P --checksum
Troubleshooting Singkat
- AccessDenied saat
copy pada IAM terbatas: tambahkan --s3-no-check-bucket agar rclone tidak mencoba membuat/cek bucket. Pastikan bucket sudah ada. [lihat Sumber]
- Kesalahan dengan SSE-KMS: pastikan
--s3-server-side-encryption aws:kms dan --s3-sse-kms-key-id sesuai kebijakan KMS. [lihat Sumber]
- Performa kurang: tingkatkan bertahap
--transfers, --s3-upload-concurrency, --s3-chunk-size—sambil memantau CPU/RAM/jaringan. [lihat Sumber]
- URL gaya lama: utamakan virtual-hosted sesuai praktik modern S3. [lihat Sumber]
Matriks Keputusan
| Aspek |
Pilihan |
Kelebihan |
Keterbatasan |
Gunakan Saat |
| Kredensial |
ENV (AWS_*) |
Rotasi mudah (IAM), tidak menyimpan di berkas |
Perlu runtime env terkelola |
Server/CI/CD |
| Kredensial |
rclone.conf |
Setup cepat |
Perlu proteksi file (0600) |
Mesin tunggal |
| Enkripsi server-side |
SSE-S3 |
Default & tanpa biaya tambahan |
Kontrol kunci terbatas |
Umum/standar |
| Enkripsi server-side |
SSE-KMS |
Kontrol kunci, audit, kebijakan granular |
Biaya & manajemen KMS |
Data sensitif/ketentuan audit |
| Enkripsi klien |
rclone crypt |
End-to-end, nama & konten terenkripsi |
Perlu manajemen passphrase |
Privasi tingkat lanjut |
| Strategi operasi |
copy |
Aman, tak menghapus tujuan |
Menumpuk berkas lama |
Arsip |
| Strategi operasi |
sync |
Tujuan identik dengan sumber |
Berisiko hapus jika salah target |
Mirror/backup ketat |
Checklist Implementasi & Keamanan
- Gunakan IAM least privilege (bucket/prefix spesifik).
- Aktifkan SSE-S3 (default) atau SSE-KMS + kebijakan kunci.
- Pertimbangkan rclone crypt untuk kerahasiaan menyeluruh.
- Atur Lifecycle ke kelas hemat & hapus setelah masa simpan.
- Aktifkan Versioning untuk lindungi dari hapus/overwrite.
- Automasi cron + log + notifikasi.
- Uji restore berkala; backup yang tidak diuji hanyalah asumsi.
Kesimpulan
Menggabungkan rclone dengan AWS S3 memberi jalur
backup offsite yang andal: kredensial aman (ENV/IAM), enkripsi berlapis (SSE-S3/SSE-KMS +
crypt), kebijakan retensi yang hemat biaya (Lifecycle/Glacier), serta otomasi yang rapi. Dengan penyesuaian performa dan disiplin uji-restore, RPO/RTO realistis untuk lingkungan kecil hingga menengah dapat dicapai tanpa kompleksitas berlebih.
Sumber/Referensi