Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Tutorial: Tentukan instance DB mana yang harus dihentikan dengan menggunakan tag
Tutorial ini mengasumsikan bahwa Anda memiliki beberapa instance DB dalam lingkungan pengembangan atau pengujian. Anda perlu menyimpan instans DB ini selama beberapa hari. Beberapa instans DB menjalankan tes dalam semalam, sedangkan yang lain dapat dihentikan dalam semalam dan dimulai lagi pada hari berikutnya.
Tutorial berikut menunjukkan cara menetapkan tag ke instans DB yang cocok untuk berhenti dalam semalam. Tutorial menunjukkan bagaimana skrip dapat mendeteksi instance DB mana yang memiliki tag dan kemudian menghentikan instance DB yang ditandai. Dalam contoh ini, porsi nilai dari pasangan kunci-nilai tidaklah penting. Keberadaan tag stoppable
menandakan bahwa instans DB memiliki properti yang ditetapkan pengguna ini.
Dalam tutorial berikut, perintah dan APIs untuk penandaan bekerja denganARNs, yang memungkinkan RDS untuk bekerja dengan mulus di seluruh AWS Wilayah, AWS akun, dan berbagai jenis sumber daya yang mungkin memiliki nama pendek yang identik. Anda dapat menentukan ARN bukan ID instans DB dalam CLI perintah yang beroperasi pada instance DB.
Untuk menentukan instans DB yang akan dihentikan
-
Tentukan ARN instance DB yang ingin Anda tetapkan sebagai stoppable.
Dalam contoh berikut, ganti nama instans DB Anda sendiri untuk
dev-test-db-instance
. Dalam perintah berikutnya yang menggunakan ARN parameter, gantikan instans DB Anda sendiri. ARN ARNTermasuk ID AWS akun Anda sendiri dan nama AWS Wilayah tempat instans DB Anda berada.$
aws rds describe-db-instances --db-instance-identifierdev-test-db-instance
\ --query "*[].{DBInstance:DBInstanceArn}" --output textarn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
-
Tambahkan tag
stoppable
ke instans DB ini.Pilih nama untuk tag ini. Karena memperlakukan tag sebagai atribut yang ada atau tidak ada, contoh ini menghilangkan bagian
Value=
dari parameter--tags
. Pendekatan ini berarti Anda dapat menghindari merancang konvensi penamaan yang mengenkode semua informasi yang relevan dalam nama. Dalam konvensi tersebut, Anda dapat mengenkode informasi dalam nama instans DB atau nama-nama sumber daya lainnya.$
aws rds add-tags-to-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
\ --tags Key=stoppable -
Konfirmasi bahwa tag tersebut ada dalam instans DB.
Perintah berikut mengambil informasi tag untuk instance DB dalam JSON format dan teks yang dipisahkan tab biasa.
$
aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
{ "TagList": [ { "Key": "stoppable", "Value": "" } ] }
aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
--output textTAGLIST stoppable
-
Hentikan semua instans DB yang ditetapkan sebagai
stoppable
.Contoh berikut membuat file teks yang mencantumkan semua instance DB Anda. Perintah shell melakukan loop melalui daftar dan memeriksa apakah setiap instans DB ditandai dengan atribut yang relevan dan menjalankan perintah
aws rds stop-db-instance
untuk setiap instans DB.$
aws rds describe-db-instances --query "*[].[DBInstanceArn]" --output text >/tmp/db_instance_arns.lst$
for arn in $(cat /tmp/db_instance_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep stoppable)" if [[ ! -z "$match" ]] then echo "DB instance $arn is tagged as stoppable. Stopping it now." # Note that you need to get the DB instance identifier from the ARN. dbid=$(echo $arn | sed -e 's/.*://') aws rds stop-db-instance --db-instance-identifier $dbid fi doneDB instance arn:arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance is tagged as stoppable. Stopping it now. { "DBInstance": { "DBInstanceIdentifier": "dev-test-db-instance", "DBInstanceClass": "db.t3.medium", ...
Anda dapat menjalankan skrip seperti yang sebelumnya di akhir setiap hari untuk memastikan bahwa instans DB yang tidak penting dihentikan. Anda juga dapat menjadwalkan pekerjaan menggunakan utilitas seperti cron
melakukan pemeriksaan setiap malam. Misalnya, Anda mungkin melakukan ini jika beberapa instans DB dibiarkan berjalan secara tidak sengaja. Di sini, Anda dapat menyempurnakan perintah yang mempersiapkan daftar instans DB untuk diperiksa.
Perintah berikut menghasilkan daftar instans DB, tetapi hanya yang berada dalam status available
. Skrip ini dapat mengabaikan instans DB yang sudah dihentikan, karena instans tersebut akan memiliki nilai status yang berbeda seperti stopped
atau stopping
.
$
aws rds describe-db-instances \ --query '*[].{DBInstanceArn:DBInstanceArn,DBInstanceStatus:DBInstanceStatus}|[?DBInstanceStatus == `available`]|[].{DBInstanceArn:DBInstanceArn}' \ --output textarn:aws:rds:us-east-1:123456789102:db:db-instance-2447 arn:aws:rds:us-east-1:123456789102:db:db-instance-3395 arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance arn:aws:rds:us-east-1:123456789102:db:pg2-db-instance
Tip
Anda dapat menggunakan penetapan tag dan pencarian instans DB dengan tag tersebut untuk mengurangi biaya dengan cara lain. Misalnya, gunakan skenario ini dengan instans DB yang digunakan untuk pengembangan dan pengujian. Dalam hal ini, Anda dapat menunjuk beberapa instans DB yang akan dihapus pada akhir setiap hari. Atau Anda dapat menunjuk instans tersebut agar instans DB-nya diubah menjadi kelas instans DB kecil selama waktu penggunaan rendah yang diharapkan.