🐈

AWS SDK for Ruby で Aurora My SQL DB クラスターのストレージ使用量を取得するには

2023/01/31に公開

この記事では、AWS SDK for Ruby を使って Aurora MySQL DB クラスターの 現在のストレージ使用量を取得する方法 を説明します。

Aurora MySQL DB クラスターのストレージ

Aurora MySQL DB クラスターのストレージ容量は自動拡張されます。従って、クラスターの設定から取得することはできません。(RDS MySQLであれば取得できます)

https://aws.amazon.com/jp/premiumsupport/knowledge-center/view-storage-aurora-cluster/

CloudWatchの VolumeBytesUsedメトリクスの値 を取得する必要があります。

サンプルコード

このコードは、AWS CloudWatch クライアントを使用して、Aurora MySQL DB クラスターのストレージ使用量のメトリックを取得し、直近1時間の平均値を返すものです。

cloudwatch = Aws::CloudWatch::Client.new(region: aws_region, credentials: credentials)

statistic_params = {
  namespace: 'AWS/RDS',
  metric_name: 'VolumeBytesUsed',
  dimensions: [
    {
      name: "DBClusterIdentifier",
      value: db_cluster_identifier,  # 必要
    },
  ],
  start_time: now - 1.hour,
  end_time: now,
  period: 1.hour.to_i,
  unit: "Bytes",
  statistics: ["Average"],
}
resp = cloudwatch.get_metric_statistics(statistic_params)

datapoint = resp && resp.datapoints[0]

datapoint&.average

DBClusterIdentifierを得るには

DBClusterIdentifierの値は、RDSのデータベース一覧のDB識別子列または設定タブパネルのDBクラスターIDから確認できますが、SDKを使用して取得するには次のようにします。

rds = Aws::RDS::Client.new(region: aws_region, credentials: credentials)
resp = rds.describe_db_clusters

db_cluster_identifier = resp.db_clusters.map(&:db_cluster_identifier).first
タケユー・ウェブ株式会社

Discussion