Amazon RDS atau relational database merupakan data yang disusun dalam tabel berdasarkan kolom dan baris. Jadi makna dari relational database adalah adanya hubungan antara baris dan kolom. Amazon RDS memiliki 7 engine, yaitu Aurora (MySQL Compatible), Aurora (PostgreSQL Compatible), MySQL, MariaDB, PostgreSQL, Oracle, dan Microsoft SQL Server. Karena layer dari Amazon RDS adalah instance maka keamanannya menggunakan Security Group. Dari Security Group tersebutlah memungkinkan terhubungnya EC2 instance ke Amazon RDS. Biasanya RDS berada di private subnet yang kemudian terhubung dengan EC2 instance yang berada di public subnet. Perhatikan cara membuat Amazon RDS:
- Pastikan telah memiliki akun AWS
- Sudah login di akun
- Buat security group untuk Amazon RDS dengan ketentuan:
- Inbound
- Type: MYSQL/Aurora
- Source: sg- (cari security group dari EC2 instance yang akan digunakan terhubung ke Amazon RDS)
- Pada management console ketik RDS dan pilih
- Pada panel sebelah kiri pilih Subnet groups
- Klik tombol Create DB subnet group
- Subnet group details
- Name : nama dari subnet group untuk RDS
- Description : deskripsi singkat untuk menjelaskan subnet
- VPC : harus sama dengan VPC dari EC2 instance yang akan terhubung
- Add subnets
- Availability Zones : pilih 2 availability zone untuk fault tolerance
- Subnets : pilih subnet yang ada di 2 AZ yang telah dipilih
- Klik tombol Create
- Sekarang akan dibuat database maka pada panel sebelah kiri pilih Databases
- Klik tombol Create database
- Pada halam Create database:
- Choose a database creation method
- Standard create : semua konfigurasi diset sendiri
- Easy create : rekomendasi konfigurasi dari praktek terbaik digunakan

sumber: aws.amazon.com - Engine options
- Engine type
- Aurora (MySQL Compatible) : kecepatan lebih tinggi dari MySQL
- Aurora (PostgreSQL Compatible) : kecepatan lebih tinggi dari PostgreSQL
- MySQL
- MariaDB
- PostgreSQL
- Oracle
- Microsoft SQL Server
- DB instance size
- DB cluster identifier
- Master username
- Auto generate a password

sumber: aws.amazon.com - Templates
- Settings
- DB cluster identifier
- Credential Settings
- Master username
- Manage master credentials in AWS Secrets Manager
- Auto generate a password
- Master password
- Confirm master password

sumber: aws.amazon.com - Instance configuration
- DB instance class
- Memory optimized classes (includes r classes)
- Burstable classes (includes t classes)

sumber: aws.amazon.com - Availability & durability
- Connectivity
- Compute resource
- Network type
- Virtual private cloud
- DB subnet group
- Public access
- VPC security group (firewall)
- Existing VPC security groups
- RDS proxy

sumber: aws.amazon.com - Database authentication
- Monitoring
- Turn on Performance Insights
- Retention period for Performance Insight
- AWS KMS key
- Account
- KMS key ID
- Additional configuration
- Enable Enhanced monitoring
- Granularity
- Monitoring Role

sumber: aws.amazon.com - Additional configuration
- Database options
- Initial database name
- DB cluster parameter group
- DB parameter group
- Option group
- Failover priority
- Backup
- Backup retention period
- Encryption
- Enable encryption
- AWS KMS key
- Account
- KMS key ID
- Backtrack
- Log exports
- Maintenance
- Enable auto minor version upgrade
- Maintenance window
- Deletion protection

sumber: aws.amazon.com - Klik tombol Create database
- Tunggu berubah status dari Creating menjadi Availability
- Melakukan koneksi dari EC2 instance
- Pastikan EC2 sudah terbuat
- Pastikan EC2 instance dengan Security Group yang sesuai dengan Source pada Security Group database yang dibuat
- Konek dengan EC2 melalui SSH
- Setelah masuk sistem EC2 instance gunakan command:
- Engine MySQL/MariaDB
- mysql -h <endpointRDS> -u <username> -p
- Engine PostgreSQL
- psql --host=<endpointRDS> --port=5432 --username=<username> --password --dbname=<namadatabase>
- Selesai
Migrasi
Pada level awal penggunaan komputasi awan akan menggunakan EC2 instance untuk membuat database sendiri, misalnya dengan menginstal MySQL di atas EC2 instance. Hal itu memungkinkan namun cukup riskan ketika terjadi masalah pada instance yang secara otomatis akan berpengaruh juga pada database yang diinstall di atas instance. Cukup mudah untuk memindahkan MySQL dari EC2 instance ke Amazon RDS dengan engine MySQL, caranya:
- Masuk ke EC2 instance untu meng-capture data saat ini dengan mysqldump, gunakan command:
- mysqldump --databases <nama database> -u root -p > myDBDump.sql
- Masukkan password database yang ada di EC2
- Pastikan database telah ter-capture dengan adanya file bernama myDBDump.sql
- Pastikan EC2 instance memiliki celah terhubung ke Amazon RDS yaitu melalui security group inbound di Amazon RDS-nya
- Sebisa mungkin hindari source all IP address di inbound security group Amazon RDS, sebagai saran gunakan ID security group dari EC2 instance sehingga hanya dapat diakses oleh setiap instance yang memiliki ID security group tersebut
- Sekarang lakukan import file myDBDump.sql yang telah dicapture sebelumnya ke Amazon RDS dengan command:
- mysql -u admin -p --host <rds-endpoint> < myDBDump.sql
- Masukkan password database yang ada di Amazon RDS
- Jika tidak ada error maka proses import telah berhasil
- Untuk memeriksa apakah sudah berhasil terimport masuk ke RDS database dengan command:
- mysql -u admin -p --host <rds-endpoint>
- Masukkan password database yang ada di Amazon RDS, lalu gunakan command:
- show databases;
- Untuk melakukan penghubungan antara web di EC2 instance dan database di Amazon RDS lakukan:
- Konfigurasi pada AWS System Manager di bagian Parameter Store seperti username, password database, url database, dan nama database
- Lakukan penghentian database yang berjalan di EC2 instance
- Misalnya untuk mariaDB: sudo service mariadb stop
- Lalu coba akses web
- Jika terjadi kegagalan perhatikan kembali langkah-langkah di atas
Hal berbeda tentunya jika melakukan migrasi dari engine database yang berbeda. Sebelum database dimigrasikan, database asal harus di konversikan dengan Amazon Schema Conversion Tool baru kemudian dimigrasikan seperti langkah di atas tadi.
ref:



Komentar