AWS SDK for PHP Version3を使ってRDSインスタンスの情報を調べる方法です
- AWS SDK for PHP Version3
- IAM:AmazonRDSReadOnlyAccess、CloudWatchReadOnlyAccess
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
require_once("vendor/autoload.php"); $config_jp1 = array( 'credentials' => array( 'key' => 'アクセスキー', 'secret'=> 'シークレットキー', ), 'region' => 'ap-northeast-1', 'version' => 'latest', ); //RDSインスタンスの情報はRdsClientを使用 //RDSのCPU状態や残容量はCloudWatchClientを使用(リージョンは日本) use Aws/Rds/RdsClient; use Aws/CloudWatch/CloudWatchClient; $Client = RdsClient::factory($config_jp1); $CloudWatchClient = CloudWatchClient::factory($config_jp1); //まずはRDSの情報を取得する $result = $Client->describeDBInstances(array( )); $DBInstances = $result['DBInstances']; //取得したRDSのインスタンス名を元にCloudWatchからCPU使用率を求める foreach ($DBInstances as $DBInstance) { $CloudWatchresult = $CloudWatchClient->getMetricStatistics(array( 'Namespace' => 'AWS/RDS', 'MetricName' => 'CPUUtilization', 'StartTime' => strtotime('-1 hour'), 'EndTime' => strtotime('now'), 'Period' => 60*60*3, 'Statistics' => array('Average'), 'Dimensions' => array( array('Name' => 'DBInstanceIdentifier','Value' => $DBInstance['DBInstanceIdentifier']) ) )); $Datapoints = $CloudWatchresult['Datapoints']; foreach ($Datapoints as $Datapoint) { //小数点2桁で丸める $RdsCPUUtilizationStr = round($Datapoint['Average'],2); } //取得したRDSのインスタンス名を元にCloudWatchから残容量を求める $CloudWatchresult = $CloudWatchClient->getMetricStatistics(array( 'Namespace' => 'AWS/RDS', 'MetricName' => 'FreeStorageSpace', 'StartTime' => strtotime('-1 hour'), 'EndTime' => strtotime('now'), 'Period' => 60*60*3, 'Statistics' => array('Average'), 'Dimensions' => array( array('Name' => 'DBInstanceIdentifier','Value' => $DBInstance['DBInstanceIdentifier']) ) )); $RdsFreeStorageSpaces = $CloudWatchresult['Datapoints']; foreach ($RdsFreeStorageSpaces as $RdsFreeStorageSpace) { //GB表記にする $RdsFreeStorageSpaceStr = round($RdsFreeStorageSpace['Average']/1073741824,2); } } |