Untuk memodifikasi instance type RDS kita bisa gunakan AWS CLI menggunakan command aws rds modify-db-instance.
Ditutorial ini kita akan memodifikasi instance DB dari tipe db.r5.8xlarge
menjadi db.r5.4xlarge
(downgrade). Berikut spesifikasi lengkapnya:
- MySQL 8.0.36
- DB identifier: my-db
- Instance type: db.r5.8xlarge
- Region code: ap-southeast-1 (singapore)
Note: *Pastikan disini kita sudah memiliki server sendiri (EC2/semacamnya) untuk menjalankan AWS CLI nantinya.
Untuk menggunakan AWS CLI, ada beberapa yang harus dipersiapkan dari sisi IAM (Identity and Access Management), berikut:
- username (access key & secret access key)
- policy
Setelah 2 hal tersebut terbuat, baru kita bisa login ke AWS CLI diterminal menggunakan access key dan secret access key dan menjalankan command aws rds modify-db-instance
.
Buat username IAM
- Masuk ke IAM Dashboard
- Pada menu sebelah kiri, Access Management > Users > Klik Create User
- Contoh disini kita buat username dengan nama user-modify-rds-instance, klik Next
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-35.png)
- Pada halaman Set permissions klik Next saja.
- Pada halaman selanjutnya klik Create User
- Setelah itu user terbuat
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-37.png)
Membuat Access Key untuk User
- Masuk ke halaman detail user: user-modify-rds-instance
- Pilih tab Security Credentials
- Pada bagian Access Keys klik tombol Create access key
- Pilih Use Case: Command Line Interface (CLI) dan check box: I understand the above recommendation and want to proceed to create an access key, klik Next
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-38.png)
- Pada halaman selanjutnya klik Create access key
- Akan terbuat 2 key, yaitu Access key dan Secret access key. Copy kedua key tersebut (wajib), nanti kita akan login ke AWS CLI menggunakan key tersebut. Klik Done
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-39.png)
Buat Policy IAM dan Kaitkan ke User
Selanjutnya kita buat policy (hak akses) untuk bisa memodifikasi instance RDS.
- Masuk ke dashboard IAM
- Pada Access Management > Policies > Create Policy
- Pilih tab JSON, lalu masukkan JSON policy berikut:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowModifyRDSInstance",
"Effect": "Allow",
"Action": [
"rds:Describe*",
"rds:ModifyDBInstance"
],
"Resource": "arn:aws:rds:ap-southeast-1:193xxx:db:my-db"
}
]
}
Penjelasan:
Sid, berinama (bebas) misal AllowModifyRDSInstance
Effect, Allow
artinya semua value dalam field Action[] akan diijinkan saat policy ini dijalankan
Action[], Hak akses yang didapat. rds: describe
bisa melihat deskripsi instance RDS, rds:ModifyDBInstance
bisa memodifikasi instance
Resource: policy ini hanya bisa dijalankan pada resource tertentu saja. Contoh dijalankan di region ap-southeast-1
dengan akun AWS 193xx
dan database identifier my-db
. *Pastikan kalian benar mengisi resourcenya (region code, akun aws dan db identifiernya). Klik Next
![AWS CLI RDS. Memodifikasi instance DB RDS dengan AWS CLI](https://www.latcoding.com/wp-content/uploads/2024/04/image-41.png)
- Berinama policy dengan nama test-modify-rds-instance, lalu klik Create policy
![AWS CLI RDS](https://www.latcoding.com/wp-content/uploads/2024/04/image-42.png)
Kaitkan Policy ke User
- Setelah policy terbuat, kaitkan policy tersebut ke user: user-modify-rds-instance agar user tersebut mendapat hak akses untuk memodifikasi instance RDS
- Masuk ke detail user: user-modify-rds-instance
- Pada tab Permissions, klik Add permissions
- Pada Permission options pilih Attach policies directly, lalu cari policy yang sudah kita buat tadi (test-modify-rds-instance), klik Next
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-43.png)
- Kemudian dihalaman selanjutnya klik Add permissions
- Sekarang policy sudah berhasil diattach/kaitkan ke user: user-modify-rds-instance
![](https://www.latcoding.com/wp-content/uploads/2024/04/image-44.png)
Modifikasi instance RDS dengan AWS CLI
Langkah terakhir, jalankan AWS CLI dengan command aws rds modify-db-instance
.
Kita anggap AWS CLI sudah terinstall diserver. Versi yang saya gunakan adalah:
aws-cli/1.22.34 Python/3.10.12 Linux/6.2.0-1018-aws botocore/1.23.34
- Login ke AWS CLI menggunakan access key dan secret access key yang sudah kita dapat sebelumnya. Jalankan command berikut diterminal:
aws configure --profile test-modify-rds-instance
![AWS CLI RDS](https://www.latcoding.com/wp-content/uploads/2024/04/image-45.png)
- Kemudian kita bisa modifikasi instance RDS dengan command berikut:
aws rds modify-db-instance --db-instance-identifier my-db --db-instance-class db.r5.4xlarge --apply-immediately --profile test-modify-rds-instance
- Buka dashboard RDS, kita bisa lihat DB identifier my-db statusnya sedang Modifying
![AWS CLI RDS](https://www.latcoding.com/wp-content/uploads/2024/04/image-46.png)
- Tunggu beberapa saat, maka spek instance akan turun menjadi
db.r5.4xlarge
![AWS CLI RDS](https://www.latcoding.com/wp-content/uploads/2024/04/image-47.png)
Kendala
Jika menemukan kendala saat menjalankan aws rds modify-db-instance
, misal mendapat error seperti ini:
An error occurred (AccessDenied) when calling the ModifyDBInstance operation: User: arn:aws:iam::193xx:user/user-modify-rds-instance is not authorized to perform: rds:ModifyDBInstance on resource: arn:aws:rds:ap-southeast-1:193xx:db:my-db because no identity-based policy allows the rds:ModifyDBInstance action
Pastikan:
- Policy sudah diattach ke user
- Policy JSON sudah diset dengan benar (region code, akun aws dan db identifiernya)
- Pastikan menggunakan parameter
--profile test-modify-rds-instance
saat menjalankanaws rds modify-db-instance