Amazon Relational Database Service (RDS)
Amazon Relational Database Service (RDS) adalah layanan manajemen database relasional yang disediakan oleh Amazon Web Services (AWS). Layanan ini dirancang untuk memudahkan penyiapan, operasi, dan skalabilitas database relasional di cloud. Dengan RDS, Anda dapat menjalankan berbagai jenis database seperti Amazon Aurora, MySQL, MariaDB, Oracle, SQL Server, dan PostgreSQL.
Fitur utama dari Amazon RDS termasuk backup otomatis, pemulihan dari snapshot database, dan patching perangkat lunak database. RDS juga mendukung penyebaran Multi-Availability Zone (Multi-AZ) dan Read Replicas untuk meningkatkan ketersediaan dan durabilitas database, serta skalabilitas database untuk menangani beban kerja yang meningkat.
Amazon RDS Single-AZ Vs Multi-AZ Vs Cluster
• Amazon RDS Single-AZ
Single Availability Zone (Single-AZ) adalah penyebaran Amazon RDS standar yang menjalankan database di satu zona ketersediaan (AZ). AZ adalah pusat data yang berbeda yang berada dalam satu wilayah AWS. Keuntungan dari Single-AZ adalah biayanya yang relatif lebih murah dibandingkan dengan Multi-AZ. Namun, risikonya adalah jika terjadi kegagalan pada AZ tersebut, database akan mengalami downtime.
• Amazon RDS Multi-AZ
Multi-AZ adalah penyebaran Amazon RDS yang menjalankan database pada beberapa zona ketersediaan. Dalam konfigurasi ini, Amazon RDS otomatis membuat salinan standby dari database Anda di zona ketersediaan yang berbeda. Jika terjadi kegagalan pada database utama, Amazon RDS akan otomatis beralih ke database standby. Keuntungan dari Multi-AZ adalah tingkat ketersediaan dan durabilitas yang tinggi. Namun, biayanya juga lebih tinggi dibandingkan dengan Single-AZ.
• Amazon RDS Cluster
Cluster biasanya digunakan dalam konteks Amazon Aurora, yaitu sistem database relasional yang dibangun untuk cloud oleh AWS. Cluster Amazon Aurora terdiri dari satu atau lebih instances database dan berbagi volume storage yang terdistribusi dan replikasi di beberapa zona ketersediaan. Setiap Aurora Cluster memiliki instance database utama dan bisa memiliki hingga 15 read replicas. Instance database utama menangani semua operasi menulis dan read replicas bisa digunakan untuk menyeimbangkan beban operasi baca.
Setiap tipe penyebaran Amazon RDS memiliki kelebihan dan kekurangannya masing-masing. Single-AZ lebih murah dan mungkin cukup untuk aplikasi kecil dan menengah yang dapat menoleransi downtime sesekali. Sementara itu, Multi-AZ lebih mahal tetapi memberikan tingkat ketersediaan dan durabilitas yang lebih tinggi, yang penting untuk aplikasi besar dan kritis. Cluster Amazon Aurora menawarkan fleksibilitas dan performa yang lebih tinggi, tetapi juga memiliki biaya yang lebih tinggi dan lebih kompleks untuk diatur.
Dalam memilih tipe penyebaran Amazon RDS, Anda harus mempertimbangkan faktor seperti ukuran dan kekritisan aplikasi Anda, anggaran, dan kebutuhan untuk ketersediaan tinggi. Anda juga harus mempertimbangkan jenis database yang akan digunakan, karena tidak semua jenis database didukung oleh semua tipe penyebaran Amazon RDS.
Penggunaan Amazon RDS
Amazon RDS merupakan layanan yang populer digunakan oleh banyak perusahaan dan organisasi untuk mengelola database mereka di cloud. Beberapa kasus penggunaan umum dari Amazon RDS antara lain:
1. Aplikasi Web dan Mobile: Amazon RDS menyediakan lingkungan database yang sangat skalabel dan andal untuk aplikasi web dan mobile. Dengan fitur seperti Multi-AZ deployments dan Read Replicas, RDS mampu menangani beban kerja yang meningkat dan memastikan ketersediaan tinggi.
2. Data Warehousing: Amazon RDS mendukung penyimpanan hingga 64 tebibyte data, sehingga sangat cocok untuk digunakan sebagai data warehouse. Dengan Amazon RDS, Anda dapat melakukan analisis data dengan cepat dan efisien.
3. Software as a Service (SaaS): Jika Anda menjalankan bisnis SaaS, Anda dapat menggunakan Amazon RDS untuk mengelola database Anda. Dengan RDS, Anda dapat fokus pada pengembangan produk dan layanan Anda, sementara AWS mengurus pemeliharaan dan operasional database.
4. Migrasi Database: Amazon RDS menyediakan berbagai alat dan layanan yang memudahkan Anda untuk memigrasikan database Anda ke cloud, baik dari on-premises maupun dari platform cloud lain.
Harga Amazon RDS
Biaya penggunaan Amazon RDS tergantung pada beberapa faktor, termasuk tipe instance database yang digunakan, tipe penyebaran (Single-AZ, Multi-AZ, atau Cluster), dan wilayah AWS tempat database dijalankan. Selain itu, Anda juga dapat membayar untuk fitur tambahan seperti penyimpanan, transfer data, dan snapshot.
Untuk mendapatkan estimasi biaya penggunaan Amazon RDS, Anda dapat menggunakan Kalkulator Biaya AWS yang tersedia di website AWS. Anda juga dapat memanfaatkan fitur Saving Plans dan Reserved Instances untuk mendapatkan diskon jika Anda berkomitmen menggunakan Amazon RDS untuk jangka waktu tertentu.
Sebagai contoh, pada saat penulisan ini, biaya penggunaan instance database db.t3.medium (yang merupakan instance database umum) di AWS Region US East (N. Virginia) adalah $0.078 per jam untuk penyebaran Single-AZ dan $0.156 per jam untuk penyebaran Multi-AZ.
Penting untuk diingat bahwa biaya ini hanya mencakup penggunaan instance database itu sendiri. Biaya tambahan seperti penyimpanan dan transfer data akan dikenakan biaya terpisah.
Contoh membuat resource masing-masing jenis RDS dengan code Terraform
Berikut adalah contoh kode Terraform untuk membuat resource Amazon RDS untuk setiap jenis deployment:
1. Single-AZ Deployment:
resource "aws_db_instance" "default" { allocated_storage = 20 engine = "mysql" engine_version = "5.7" instance_class = "db.t3.micro" name = "mydb" username = "foo" password = "foobarbaz" parameter_group_name = "default.mysql5.7" skip_final_snapshot = true }
2. Multi-AZ Deployment:
resource "aws_db_instance" "default" { allocated_storage = 20 engine = "mysql" engine_version = "5.7" instance_class = "db.t3.micro" name = "mydb" username = "foo" password = "foobarbaz" parameter_group_name = "default.mysql5.7" multi_az = true skip_final_snapshot = true }
3. Aurora Cluster:
resource "aws_rds_cluster" "default" { cluster_identifier = "aurora-cluster-demo" engine = "aurora-mysql" engine_version = "5.7.mysql_aurora.2.03.2" availability_zones = ["us-west-2a", "us-west-2b", "us-west-2c"] database_name = "mydb" master_username = "foo" master_password = "foobarbaz" backup_retention_period = 5 preferred_backup_window = "07:00-09:00" } resource "aws_rds_cluster_instance" "cluster_instances" { count = 2 identifier = "aurora-cluster-demo-${count.index}" cluster_identifier = aws_rds_cluster.default.id instance_class = "db.r4.large" engine = "aurora-mysql" engine_version = "5.7.mysql_aurora.2.03.2" publicly_accessible = true }
Untuk menjalankan kode ini, Anda harus memiliki AWS CLI dan Terraform diinstal pada sistem Anda. Setelah itu, simpan kode di atas dalam file .tf, lalu jalankan terraform init untuk menginisialisasi directory, diikuti dengan terraform apply untuk membuat resource.
Ingatlah untuk selalu merahasiakan kredensial seperti username dan password saat bekerja dengan kode secara langsung, dan gunakan variabel lingkungan atau secrets manager jika memungkinkan.
Kesimpulan
Amazon RDS adalah layanan manajemen database yang kuat dan fleksibel yang disediakan oleh AWS. Dengan RDS, Anda dapat dengan mudah menyiapkan, mengoperasikan, dan menskalakan database relasional di cloud. Tipe penyebaran RDS yang berbeda (Single-AZ, Multi-AZ, dan Cluster) menawarkan berbagai tingkat ketersediaan, durabilitas, dan harga, memungkinkan Anda untuk memilih opsi yang paling sesuai dengan kebutuhan dan anggaran Anda.