Tenn25 Blog
AWS-RunCommandでカスタムメトリクスを設定する
18.01.20192 Min Read — In others

Windows サーバの EC2 に対してカスタムメトリクスの取得設定をした。

参考サイト

https://dev.classmethod.jp/cloud/aws/windows-server-runcommand-custom-metrics/

手順

  • IAM ロール作成

    • [AmazonEC2RoleforSSM]というロールを付与
  • 対象の EC2 に割り当て

    • 即時反映されます
  • runcommand から json 実行

    • RunCommand からは様々なことができる -今回は[AWS-ConfigureCloudWatch]を選択
    • IAM ロールの反映には数分かかるが、反映されたら一覧に出てくるので対象サーバを選択
{
    "EngineConfiguration": {
        "PollInterval": "00:00:15",
        "Components": [
            {
                "Id": "MemoryAvailableMegabytes",
                "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
                "Parameters": {
                    "CategoryName": "Memory",
                    "CounterName": "Available MBytes",
                    "InstanceName": "",
                    "MetricName": "MemoryAvailable",
                    "Unit": "Megabytes",
                    "DimensionName": "InstanceId",
                    "DimensionValue": "{instance_id}"
                }
            },
            {
                "Id": "MemoryUtilization",
                "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
                "Parameters": {
                    "CategoryName": "Memory",
                    "CounterName": "% Committed Bytes in Use",
                    "InstanceName": "",
                    "MetricName": "MemoryUtilization",
                    "Unit": "Percent",
                    "DimensionName": "InstanceId",
                    "DimensionValue": "{instance_id}"
                }
            },
            {
                "Id": "MonitoringFreeSpaceC",
                "FullName": "AWS.EC2.Windows.CloudWatch.PerformanceCounterComponent.PerformanceCounterInputComponent,AWS.EC2.Windows.CloudWatch",
                "Parameters": {
                    "CategoryName": "LogicalDisk",
                    "CounterName": "% Free Space",
                    "InstanceName": "C:",
                    "MetricName": "DiskFreeC",
                    "Unit": "Percent",
                    "DimensionName": "InstanceId",
                    "DimensionValue": "{instance_id}"
                }
            },
            {
                "Id": "CloudWatchLogs",
                "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatchLogsOutput,AWS.EC2.Windows.CloudWatch",
                "Parameters": {
                    "AccessKey": "",
                    "SecretKey": "",
                    "Region": "us-east-1",
                    "LogGroup": "Default-Log-Group",
                    "LogStream": "{instance_id}"
                }
            },
            {
                "Id": "CloudWatch",
                "FullName": "AWS.EC2.Windows.CloudWatch.CloudWatch.CloudWatchOutputComponent,AWS.EC2.Windows.CloudWatch",
                "Parameters":
                {
                    "AccessKey": "",
                    "SecretKey": "",
                    "Region": "ap-northeast-1",
                    "NameSpace": "★★★カスタムメトリクス名を入れる★★★"
                }
            }
        ],
        "Flows": {
            "Flows":
            [
                "(MonitoringFreeSpaceC,MemoryAvailableMegabytes,MemoryUtilization),CloudWatch"
            ]
        }
    }
}
  • IAM ロールで権限付与してるので、key 設定とかは不要
  • 注意として、カスタムメトリクスは削除ができない。

    • 間違った名前空間名で設定しないように(やってしまった)
  • エラー調査ができるようにログを S3 に出力するように設定できる

以上です。