Tutorial: Menggunakan tag untuk menentukan klaster DB Aurora yang akan dihentikan. - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Tutorial: Menggunakan tag untuk menentukan klaster DB Aurora yang akan dihentikan.

Misalkan Anda membuat sejumlah klaster DB Aurora dalam lingkungan pengembangan atau pengujian. Anda perlu menyimpan semua klaster ini selama beberapa hari. Beberapa klaster menjalankan pengujian di malam hari. Klaster lainnya dapat dihentikan di malam hari dan dimulai lagi keesokan harinya. Contoh berikut menunjukkan cara menetapkan tag untuk klaster yang cocok untuk dihentikan di malam hari. Kemudian contoh berikut menunjukkan bagaimana skrip dapat mendeteksi klaster yang memiliki tag dan kemudian menghentikan klaster tersebut. Dalam contoh ini, porsi nilai dari pasangan kunci-nilai tidaklah penting. Keberadaan tag stoppable menandakan bahwa klaster memiliki properti yang ditetapkan pengguna ini.

Untuk menentukan klaster DB Aurora yang akan dihentikan
  1. Tentukan cluster ARN yang ingin Anda tetapkan sebagai stoppable.

    Perintah dan APIs untuk penandaan berfungsi denganARNs. Dengan begitu, mereka dapat bekerja dengan lancar di seluruh AWS Wilayah, AWS akun, dan berbagai jenis sumber daya yang mungkin memiliki nama pendek yang identik. Anda dapat menentukan ARN bukan ID cluster dalam CLI perintah yang beroperasi pada cluster. Ganti nama klaster Anda sendiri dev-test-cluster. Dalam perintah berikutnya yang menggunakan ARN parameter, gantikan cluster Anda sendiri. ARN ARNTermasuk ID AWS akun Anda sendiri dan nama AWS Wilayah tempat cluster Anda berada.

    $ aws rds describe-db-clusters --db-cluster-identifier dev-test-cluster \ --query "*[].{DBClusterArn:DBClusterArn}" --output text arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster
  2. Tambahkan tag stoppable ke klaster ini.

    Pilih nama untuk tag ini. 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. Karena memperlakukan tag sebagai atribut yang ada atau tidak ada, contoh ini menghilangkan bagian Value= dari parameter --tags.

    $ aws rds add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster \ --tags Key=stoppable
  3. Konfirmasi bahwa tag tersebut ada dalam klaster.

    Perintah ini mengambil informasi tag untuk cluster dalam JSON format dan dalam teks yang dipisahkan tab biasa.

    $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster { "TagList": [ { "Key": "stoppable", "Value": "" } ] } $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster --output text TAGLIST stoppable
  4. Untuk menghentikan semua klaster yang ditunjuk sebagai stoppable, siapkan daftar semua klaster Anda. Lihat daftar dan periksa apakah setiap klaster diberi tag dengan atribut yang relevan.

    Contoh Linux ini menggunakan shell scripting untuk menyimpan daftar cluster ARNs ke file sementara dan kemudian melakukan CLI perintah untuk setiap cluster.

    $ aws rds describe-db-clusters --query "*[].[DBClusterArn]" --output text >/tmp/cluster_arns.lst $ for arn in $(cat /tmp/cluster_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep 'TAGLIST\tstoppable')" if [[ ! -z "$match" ]] then echo "Cluster $arn is tagged as stoppable. Stopping it now." # Note that you can specify the full ARN value as the parameter instead of the short ID 'dev-test-cluster'. aws rds stop-db-cluster --db-cluster-identifier $arn fi done Cluster arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster is tagged as stoppable. Stopping it now. { "DBCluster": { "AllocatedStorage": 1, "AvailabilityZones": [ "us-east-1e", "us-east-1c", "us-east-1d" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "dev-test-cluster", ...

Anda dapat menjalankan skrip seperti ini pada akhir setiap hari untuk memastikan bahwa klaster yang tidak penting dihentikan. Anda juga dapat menjadwalkan pekerjaan menggunakan utilitas seperti cron melakukan pemeriksaan setiap malam. Misalnya, Anda mungkin melakukan ini jika beberapa klaster dibiarkan berjalan secara tidak sengaja. Di sini, Anda dapat menyesuaikan perintah yang mempersiapkan daftar klaster yang akan diperiksa.

Perintah berikut menghasilkan daftar klaster, tetapi hanya yang berada dalam status available. Skrip ini dapat mengabaikan klaster yang sudah dihentikan, karena klaster tersebut akan memiliki nilai status yang berbeda seperti stopped atau stopping.

$ aws rds describe-db-clusters \ --query '*[].{DBClusterArn:DBClusterArn,Status:Status}|[?Status == `available`]|[].{DBClusterArn:DBClusterArn}' \ --output text arn:aws:rds:us-east-1:123456789:cluster:cluster-2447 arn:aws:rds:us-east-1:123456789:cluster:cluster-3395 arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster arn:aws:rds:us-east-1:123456789:cluster:pg2-cluster
Tip

Anda dapat menggunakan penetapan tag dan pencarian klaster dengan tag tersebut untuk mengurangi biaya dengan cara lain. Misalnya, gunakan skenario ini dengan klaster DB Aurora yang digunakan untuk pengembangan dan pengujian. Di sini, Anda dapat menunjuk beberapa klaster untuk dihapus di akhir setiap hari, atau hanya instans DB pembaca saja yang dihapus. Atau Anda dapat menunjuk beberapa klaster agar instans DB-nya diubah menjadi kelas instans DB kecil selama waktu penggunaan rendah yang diharapkan.