0

Memodifikasi instance type RDS dengan AWS CLI

Untuk memodifikasi instance type RDS kita bisa gunakan AWS CLI menggunakan command aws rds modify-db-instance.

modify instance DB RDS using AWS CLI


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
  • Pada halaman Set permissions klik Next saja.
  • Pada halaman selanjutnya klik Create User
  • Setelah itu user terbuat

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
  • 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

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
  • Berinama policy dengan nama test-modify-rds-instance, lalu klik Create policy
AWS CLI RDS

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
  • Kemudian dihalaman selanjutnya klik Add permissions
  • Sekarang policy sudah berhasil diattach/kaitkan ke user: user-modify-rds-instance

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
  • 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
  • Tunggu beberapa saat, maka spek instance akan turun menjadi db.r5.4xlarge
AWS CLI RDS

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 menjalankan aws rds modify-db-instance

Ambar Hasbiyatmoko

Hello, I'm web developer. Passionate about programming, web server, and networking.

Leave a Reply

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

Time limit is exhausted. Please reload the CAPTCHA.