Blog AWS Indonesia

Menghitung biaya penyimpanan backup Amazon RDS

Amazon Relational Database Service (Amazon RDS) adalah sebuah layanan terkelola yang memudahkan pelanggan menyiapkan, mengoperasikan dan meningkatkan kapasitas database relasional di cloud. Amazon RDS memberikan Anda akses ke berbagai kemampuan database yang sudah Anda kenal, database seperti MySQL, MariaDB, Oracle, SQL Server atau PostgreSQL.

Amazon RDS menyediakan dua metode berbeda untuk melakukan backup dan restore instance database Anda: backup otomatis dan database snapshots (snapshot manual). Backup otomatis melakukan snapshot harian untuk data Anda (pada periode waktu backup yang Anda tentukan) dan menyimpan log transaksi untuk memungkinkan point-in-time restore. Snapshot manual diinisiasi oleh pengguna dan memungkinkan Anda untuk melakukan backup database instance Anda pada saat tertentu sesering yang diperlukan dan untuk melakukan restore ke saat spesifik tersebut kapan saja.

Para pelanggan sering bertanya tentang perkiraan biaya backup Amazon RDS dalam sesi diskusi teknis, terutama para pelanggan yang baru memulai perjalanan cloud mereka dan sedang membiasakan diri dengan model pembayaran pay-as-you-go. Mereka sering ingin melakukan prakiraan alokasi budget untuk keperluan database backup berdasarkan kebutuhan bisnis mereka.

Dalam post ini, kami menjelaskan biaya terkait backup Amazon RDS, variable yang menentukan biaya bulanan, dan skenario backup dan retensi yang umum. Anda tidak dikenakan biaya backup storage jika total backup storage yang Anda pakai tidak melebihi 100% ukuran storage database Anda dalam satu region. Fitur backup otomatis dan snapshot manual yang berkontribusi ke ukuran backup storage. Pernyataan ini bisa dilihat baik di Amazon RDS Pricing dan AWS Pricing Calculator.

Ada beberapa hal di luar lingkup blog ini yang ingin kami sampaikan sebelum melanjutkan post ini :

  • Biaya backup storage tidak mencakup biaya yang ditimbulkan ketika melakukan backup database secara native. Amazon RDS sendiri tidak melakukan backup secara native, tapi Anda dapat melakukannya jika dibutuhkan.
  • Backup antar region (biaya storage dan biaya transfer data)
  • Biaya backup Amazon Aurora. Untuk informasi lebih mengenai biaya backup storage untuk Amazon Aurora, Anda bisa merujuk ke Understanding Amazon Aurora backup storage usage.

Mari kita fokus ke variabel yang bisa mempengaruhi biaya bulanan untuk backup storage:

  • Ukuran storage database
  • Pola workload database
  • Periode retensi
  • Frekuensi snapshot yang diinisiasi pengguna (snapshot manual)
  • Instance database lain, ukuran storage database mereka dan policy backup di Region.

Ukuran storage database

Ukuran ini mengacu pada storage yang dialokasikan untuk instance-instance database Anda dalam sebuah Region. Contohnya jika Anda memiliki sebuah instance Amazon RDS for Oracle yang aktif dengan 1 TiB storage dan sebuah instance Amazon RDS for SQL Server dengan 800 GiB storage, kami menyediakan sampai 1.8 TiB per bulan storage backup tanpa biaya tambahan. Ketika storage database bertambah karena auto scalling atau diubah secara manual, kuota storage backup gratis juga akan bertambah. Log transaksi backup yang dibutuhkan untuk point-in-time recovery dalam periode waktu backup otomatis tidak berkontribusi ke ukuran storage backup. Tidak ada perbedaan antara konfigurasi Single-AZ dan Multi-AZ untuk perhitungan backup storage yang gratis. Misalnya, untuk instance RDS for Oracle Multi AZ dengan 1 TiB storage yang memiliki total 2 TiB storage (1 TiB untuk primary dan 1 TiB untuk standby), Anda hanya mendapat 1 Tib storage backup gratis.

Pola workload database

Snapshot awal mencakup blok-blok yang digunakan oleh data Anda. Contohnya, untuk sebuah database dengan 1 TiB storage, kapasitas storage yang terpakai mungkin 700 GiB untuk data Anda, dengan 30% storage yang masih belum terpakai. Snapshot berikutnya bersifat incremental (selama snapshot full masih ada), dan hanya berisi blok-blok yang berubah setelah snapshot sebelumnya. Antara snapshot, jika workload mengubah blok secara random, ukuran snapshot akan jadi lebih besar.

Periode retensi

Periode retensi untuk backup otomatis antara 0 sampai 35 hari. Bila kita set periode retensi backup menjadi 0 maka backup otomatis akan disable dan semua backup otomatis yang ada untuk instance tersebut akan dihapus. Jika anda set periode retensi ke 1 hari, kemungkinan besar Anda tidak akan dibebani biaya storage backup. Namun, jika Anda menaikkan periode retensi backup Anda, ini akan meningkatkan ukuran total storage backup yang dipakai oleh akun Anda dalam Region tersebut. Periksalah lifecycle policy untuk backup Amazon RDS Anda dan tentukan periode retensi sesuai dengan kebijakan compliance dan retensi organizasi anda.

Frekuensi snapshot manual

Selain backup otomatis, Anda bisa melakukan snapshot manual untuk instance anda untuk kebutuhan penyimpanan jangka panjang. Manual backup tidak mengikuti periode retensi yang Anda tentukan. Semakin sering Anda melakukan snapshot manual, semakin banyak storage yang mereka gunakan sehingga dapat meningkatkan biaya backup storage. Gunakan snapshot manual sesuai kebutuhan dan hapus yang sudah tidak diperlukan lagi, misalnya snapshot yang dibuat sebelum melakukan upgrade versi besar atau kecil.

Instance lain, ukuran storage dan policy backup

Karena kuota storage backup yang gratis berdasarkan ukuran total storage database dari semua instance yang ada dalam sebuah Region, maka instace lain, policy backup dan retensi mereka akan berkontribusi pada biaya bulanan backup storage Anda. Jika policy backup dan retensi distandarisasi untuk semua instance, pengaturan ini bisa menimbulkan biaya tambahan. Ini sebabnya pengelompokan instance dan memiliki policy backup dan retensi yang terpisah bisa membantu mengontrol biaya.

Skenario menentukan ukuran backup storage Amazon RDS

Mari kita tinjau beberapa skenario untuk menunjukkan bagaimana memperkirakan ukuran snapshot untuk workload database kita. Untuk menyederhanakan proses ini kami membuat asumsi bahwa tidak ada database lain di Region yang bisa mempengaruhi ukuran backup storage yang gratis.

Skenario 1: Backup otomatis dengan retensi 1 hari

Dalam skenario ini, ukuran storage database yang dialokasikan tidak ada pengaruhnya, tidak ada biaya tambahan untuk backup storage sampai 100% total ukuran database untuk sebuah Region. Perkiraan ukuran backup storage tambahan adalah 0 GiB.

Skenario 2: Backup otomatis dengan retensi 7 hari

Mari kita dalami skenario ini dengan membuat asumsi berikut:

  • Ukuran storage Database – 1,000 GiB
  • Ukuran data – 700 GiB
  • Perubahan data per hari – 50 GiB

Ukuran data termasuk ruang yang dipakai oleh file data, log transaksi, dan file file lain yang merupakan bagian operasional database. Perkiraan ukuran storage backup tambahan adalah 700 + 7*50 – 1000 = 50 GiB. Dalam skenario ini, tidak akan ada tambahan biaya untuk backup storage sampai 1,000 GiB (tergantung ukuran total storage database Anda). Pemakaian backup storage lebih tinggi dari itu akan dikenakan $0.095 per GiB month. Tarif ini berdasar tarif region Singapura dan sudah up-to-date pada waktu tulisan ini diterbitkan. Tarif untuk backup storage tambahan akan sama untuk skenario 3 dan skenario 4.

Skenario 3: Backup otomatis ditambah snapshot manual mingguan, dengan retensi 30 hari

Jika kita meningkatkan jumlah snapshot yang diretensi di skenario 2, perkiraan ukuran backup storage akan meningkat. Dengan retensi 30 hari, dan tambahan snapshot manual pada hari Sabtu, kita akan memiliki total 34 snapshot yang diretensi untuk database ini. Perkiraan ukuran tambahan backup storage yang berbayar adalah 700 + 34*50 – 1000 = 1,400 GiB. Rumus yang digunakan disini hanya untuk perkiraan kasar, walaupun dengan tambahan satu snapshot manual yang dibuat hari Sabtu, total ukuran storage untuk snapshot kemungkinan tidak akan sampai dua kali lipat, karena snapshot selalu bersifat incremental.

Skenario 4: Backup otomatis dengan retensi 30 hari, ditambah snapshot manual bulanan dengan retensi 12 bulan

Mari kita tinjau skenario dengan periode retensi yang lebih lama, yang umum bagi pelanggan yang menjalankan business-critical workloads di industri yang diregulasi. Snapshot manual yang dilakukan tiap bulan masih berupa snapshot incremental.

Jika perubahan data tiap bulan besarnya 200 GiB, perkiraan ukuran tambahan backup storage adalah 700 + 12*200 + 30*50 – 1000 = 3,600 GiB

Simulasi

Untuk mengerti lebih baik bagaimana hubungan antara ukuran backup storage dengan perubahan data, kami telah menyiapkan dua environment berikut untuk mensimulasikan dan mencatat biaya volume backup selama sebulan.

Simulasi 1

Untuk simulasi pertama kami, kami mengadakan percobaan di sebuah Region tanpa ada instace RDS lain di akun yang sama selama periode testing. Parameter environment adalah sebagai berikut:

  • Database engine – Oracle
  • Ukuran awal storage database – 40 GiB
  • Ukuran awal database – 30 GiB (besar tabel 27.4 GiB dengan besar index 0.4 GiB)
  • Ukuran akhir storage database – 140 GiB (storage auto scaling enabled)
  • Workload – Berdasarkan jumlah record di table sekarang, lakukan 5% INSERT, 4% UPDATE, dan 1% DELETE setiap hari
  • Snapshot manual – Setiap hari Minggu
  • Retensi Snapshot – 31 hari
  • Periode – 16 Oktober 2021 sampai 17 November 2021

Instance untuk test menggunakan RDS Storage Auto Scaling yang akan meningkatkan kapasitas storage secara otomatis bila data workload bertumbuh. Berdasarkan data yang kami rekam, storage yang dialokasikan untuk database tumbuh menjadi 140 GiB pada akhir waktu testing. Dengan bantuan AWS Cost Explorer, kami dapat memvisualisasikan biaya dan penggunaan biaya tersebut, seperti ditunjukan di screenshot berikut. Jumlah backup yang dikenakan biaya adalah 823.84 GiB selama periode testing.

Grafik simulasi 1

Pada 3 hari pertama, tidak ada backup yang dikenakan biaya, karena ukuran backup storage lebih kecil dari ukuran alokasi storage untuk database. Dari hari ke empat dan seterusnya, biaya storage backup tambahan meningkat tiap hari, karena snapshot baru dibuat tiap hari, dan tidak ada snapshot yang dihapus dalam periode retensi.

Simulasi 2

Environment kedua berisi instance-instance RDS lain yang memiliki total ukuran volume  Amazon Elastic Block Store (Amazon EBS) yang lebih besar tapi dengan periode retensi 1 hari untuk semua instance kecuali untuk instance testing. Parametersnya adalah sebagai berikut:

  • Database engine – SQL Server
  • Ukuran awal storage database – 20 GiB
  • Ukuran awal database – 10 GiB (9 GiB data file, 1 GiB log file)
  • Ukuran akhir storage database – 256 GiB (storage auto scaling enabled)
  • Pola workload – 5% INSERT, 4% UPDATE, dan 1% DELETE tiap hari
  • Snapshot manual – Setiap hari Senin
  • Retensi Snapshot – 31 hari

Perbedaan antara simulasi kedua dengan simulasi pertama ialah adanya instance RDS lain dalam Region yang sama, yang berarti ukuran total storage database lebih besar dari hanya satu instance. Total storage untuk instance lain jumlahnya 61 GiB sebelum simulasi. Berdasarkan nilai variabel kita, grafik berikut menunjukan total biaya backup untuk periode 30 hari dari 18 Oktober sampai 17 November. Ada penurunan pada pemakaian dan biaya backup storage pada 14 November karena penambahan alokasi storage RDS. Ini menunjukkan bahwa ukuran total storage database memiliki pengaruh pada biaya backup storage Anda.

Grafik simulasi 2

Biaya backup storage tidak tercatat sampai separuh dari periode karena ukuran backup storage lebih kecil dari ukuran storage yang dialokasikan untuk database. Untuk informasi lebih jauh, lihat di Amazon RDS for SQL Server Pricing.

Bagaimana Anda menentukan biaya backup tiap instance database ?

Anda dapat menentukan biaya backup masing masing instance database dengan menggunakan cost allocation tags. Kami sangat merekomendasikan Anda untuk melakukan tagging pada instance database Anda ketika pertama membuat instance agar bisa menentukan biaya mereka masing masing nantinya. Untuk informasi tentang melakukan tagging untuk resource Amazon RDS Anda, lihat artikel Amazon RDS now supports detailed backup storage billing.

Kesimpulan

Dalam post ini, kami menjelaskan variabel utama yang mempengaruhi biaya backup Amazon RDS Anda, juga bagaimana memperkirakan ukuran backup storage untuk berbagai skenario yang umum. Hal-hal yang penting untuk diingat adalah:

  • Hapus snapshot manual yang tidak dibutuhkan lagi
  • Tentukan periode retensi secukupnya untuk memenuhi kebutuhan recovery point objective (RPO) bisnis Anda.
  • Gunakan cost allocation tags untuk melacak biaya backup storage

Terapkan poin-poin penting ini untuk mengoptimalkan dan melacak biaya backup storage Anda, dan jika anda memiliki komentar atau pertanyaan tinggalkan mereka di bagian komentar.

Artikel ini merupakan terjemahan dari artikel asli berjudul Demystifying Amazon RDS backup storage costs yang ditulis oleh Donghua Luo dan Barry Oi.

Adrianus Kurnadi

Adrianus Kurnadi

Adrianus Budiardjo Kurnadi is a Senior Solutions Architect at Amazon Web Services Indonesia. He has a strong passion for databases and machine learning and work closely with Indonesian machine learning community to introduce them to various AWS Machine Learning services. In his spare time, he enjoys singing in a choir, reading and play with his two children.