DigitalOcean Spaces, S3QL dan Mount Folder pada Linux Server

Saya biasanya menggunakan Amazon S3 untuk menyimpan file-file yang jarang diakses atau “infrequent access” namun filenya tetap diperlukan dan tidak boleh dihapus. Jadi semacam model tier storage, dimana storage utama menggunakan harddisk SSD, harddisk kedua menggunakan block storage dan harddisk ketiga menggunakan Amazon S3. Jika dianalogikan dengan tier storage di level server, anggaplah tier-1 menggunakan harddisk SSD atau SAS 15K RPM, tier-2 menggunakan harddisk SAS 10K RPM dan tier-3 menggunakan SAS atau SATA 7200 RPM.

Biasanya tier-1 digunakan untuk storage utama, tier-2 digunakan untuk data replica atau data slave atau data non transactional sedangkan tier-3 digunakan untuk data arsip atau backup atau data yang jarang diakses.

Pada sistem Linux, saya menggunakan S3ql untuk mounting data Amazon S3. Karena DigitalOcean (DO) sudah beberapa lama merilis layanan S3-alike yaitu DO Spaces, saya mencoba menggunakannya dengan menjadikan DO spaces sebagai folder tambahan pada server Linux. Proses mountingnya dilakukan menggunakan S3ql.

Berikut adalah prosesnya :

  1. Buat 1 buah DO spaces, pilih regional terdekat supaya aksesnya tidak lambat. Proses ini jika menggunakan AWS S3 sama dengan melakukan pembuatan bucket. Kalau belum pernah pakai DO atau belum punya account DO, bisa pakai link referral saya untuk mendapatkan voucher $ tambahan : DO Signup.
  2. Buatlah nama bucket yang sesuai dengan fungsinya dan mudah diingat, pilih juga pilihan yang sesuai (misalnya mengaktifkan CDN agar mudah diakses pada lokasi geografis yang berbeda, disable file listing dan lain-lain)
  3. Klik pada side menu, pilih menu API. Pada tampilan API, pilih bagian Spaces access keys, buat AccessKey dan Secret (password) dengan cara melakukan klik pada tombol “Generate New Key
  4. Catat nama bucket yang sudah dibuat, Access Key dan Secret/Passwordnya
  5. Pada server Linux yang hendak digunakan, lakukan instalasi package s3ql. Pada Ubuntu, cukup menjalankan perintah :
    [code lang=”bash”]
    apt-get install s3ql
    [/code]
  6. Jalankan perintah berikut untuk melakukan proses partisi sekaligus mount folder (misalnya dimount pada folder /srv/vavai dengan menggunakan bucket dengan nama excellent-vavai) :
    [code lang=”bash”]
    mkdir /srv/vavai
    mkfs.s3ql –plain –cachedir /var/cache/s3ql s3c://sgp1.digitaloceanspaces.com:443/excellent-vavai/
    mount.s3ql –cachedir /var/cache/s3ql s3c://excellent-vavai.sgp1.digitaloceanspaces.com:443/excellent-vavai /srv/vavai/ –allow-other
    [/code]
  7. Saat menjalankan perintah diatas biasanya akan dimintakan back-end login dan back-end password. Back-end login adalah AccessKey sedangkan back-end password adalah SecretKey. Jika tidak ingin selalu memasukan AccessKey dan Password, kita bisa membuat file ~/.s3ql/authinfo2 (misalnya /root/.s3ql/authinfo2 atau /home/vavai/.s3ql/authinfo2 tergantung home folder user yang kita gunakan) dengan contoh isi sebagai berikut :
    [code lang=”bash”]
    storage-url: s3c://vavai-excellent.sgp1.digitaloceanspaces.com
    backend-login: AccessKeyYangDiGenerate
    backend-password: PasswordSecretDariAccessKey
    fs-passphrase: FileSystemPassPhraseBebasIsinya
    [/code]
    Kemudian jalankan perintah mkfs maupun mount diatas dengan tambahan parameter –authfile /root/.s3ql/authinfo2
  8. Setelah dijalankan, check dengan perintah df -h, mestinya folder mount yang dimaksud sudah ada. Kita bisa melakukan proses test dengan cara membuat atau menyalin sebuah file ke folder mount tersebut kemudian mengecek isinya. s3ql secara otomatis melakukan proses enkripsi data, sehingga yang tampil disisi DO spaces adalah file-file hasil enkripsi, namun jika dicheck pada folder mount, hasilnya adalah file dan folder normal sebagaimana mestinya

Dengan biaya DO spaces yang relatif rendah dibandingkan Amazon S3 atau penyedia object storage lainnya, kita bisa mendapatkan lokasi penyimpanan data yang cukup besar dan aksesnya cukup mudah. Menarik bukan?

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.