AWS メトリック・コレクション

ご使用の環境でメトリックの収集を有効にすることを強くお勧めします。 メトリックを有効にすると、 Turbonomic は、VM リソース使用量を最適化するためのスケール・アクションを生成できます。 Turbonomic でメトリックを収集するには、環境内の VM でこれらのメトリックの収集を有効にする必要があります。

このトピックでは、以下のメトリックの収集について説明します。

これを行う手順の一部は、VM が Linux と Windows OS のどちらを実行しているかによって異なります。 メトリック収集を有効にするには、以下の要件を満たす必要があります。

  • VM イメージには SSM エージェントがインストールされている必要があります

    • Linux VM:

      デフォルトでは、 Linux AMI の日付 2017.09 以降には、インストール済みの SSM エージェントが含まれています。

    • Windows VM:

      SSM エージェントを VM にインストールする必要があります。 詳しくは、 SSM エージェントの操作を参照してください。

  • CloudWatch サービスへのアクセス

    AWS インスタンスは、 CloudWatchにデータをプッシュできるように、インターネットにアクセスできるか、 CloudWatch に直接アクセスできる必要があります。

  • Turbonomic からのアクセス

    Turbonomic がメトリックにアクセスするには、 AWS ターゲットへの接続に使用するアカウントに正しい権限が含まれている必要があります。 AWS キー (IAM 役割ではない) を使用して AWS ターゲットを構成した場合は、 AWS ターゲットを 構成 するためのセクションで指定されている権限を含める必要があります。

    Turbonomic 接続に IAM 役割を使用する場合、その役割には少なくとも以下が含まれている必要があります。

    • AmazonEC2ReadOnlyAccess
    • AmazonS3ReadOnlyAccess
    • AmazonRDSReadOnlyAccess

VM のメトリックの収集をセットアップするには、以下のようにします。

  1. 各 VM インスタンスに IAM 役割をアタッチします。

    各 EC2 インスタンスには、 CloudWatch アクセス権限を付与する IAM ロールが付加されている必要があります。 そのアクセス権限を付与するには、役割に AmazonSSMFullAccess ポリシーを含めます。

    AWS System Manager を使用して、必要な役割を VM にアタッチします。

    注:

    より低いアクセス権限をロールに付与する場合は、 AmazonEC2RoleforSSM ポリシーを使用できます。 これは、アクション ssm:GetParameter がリソース arn:aws:ssm:*:*:parameter/*にアクセスすることを許可するカスタム・ポリシーです。

  2. CloudWatch エージェントを Linux VM にインストールします。

    構成するアカウントおよび地域の AWS System Manager サービスにナビゲートします。 サービスで、 「コマンドの実行」 画面にナビゲートし、VM に AmazonCloudWatchAgent をインストールするための AWS-ConfigureAWSPackage コマンドをセットアップします。 詳しくは、 AWS の資料を参照してください。

  3. CloudWatch エージェントの構成データを作成します。

    構成データは JSON オブジェクトで、パラメーター・ストアにパラメーターとして追加します。 オブジェクトには、 Linux 用か Windows VM インスタンス用かに応じて、以下が含まれている必要があります。

    • Linux 標準メモリー用の構成

      {
        "agent":{
         "metrics_collection_interval":60,
         "logfile":"/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
        },
        "metrics":{
         "namespace": "custom",
         "metrics_collected":{
           "mem":{
            "measurement":[
              {
               "name":"mem_available", "rename":"MemoryAvailable", "unit": "Bytes"
              }
            ]
           }
         },
         "append_dimensions":{
           "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
           "ImageId": "${aws:ImageId}",
           "InstanceId": "${aws:InstanceId}",
           "InstanceType": "${aws:InstanceType}"
         }
        }
      }
    • Linux 標準メモリーおよび NVIDIA GPU カード/メモリー使用率の構成

      {
        "agent":{
         "metrics_collection_interval":60,
         "logfile":"/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
        },
        "metrics":{
         "namespace": "CWAgent",
         "metrics_collected":{
            "nvidia_gpu": {
               "measurement": [
                   "utilization_gpu",
                   "memory_used"
                ]
            },
           "mem":{
            "measurement":[
              {
               "name":"mem_available", "rename":"MemoryAvailable", "unit": "Bytes"
              }
            ]
           }
         },
         "append_dimensions":{
           "AutoScalingGroupName": "${aws:AutoScalingGroupName}",
           "ImageId": "${aws:ImageId}",
           "InstanceId": "${aws:InstanceId}",
           "InstanceType": "${aws:InstanceType}"
         }
        }
      }
    • Linux NVIDIA GPU メトリック用の構成 (DCGM)

      データ・センター GPU マネージャー (DCGM) を使用して NVIDIA GPU メトリックの収集を自動化するには、 setup_aws_dcgm_exporter.py スクリプトを実行します。 スクリプトを実行する前に、特定の前提条件を満たす必要があります。 詳しくは、この GitHub ページを参照してください。

      スクリプトについて支援が必要な場合は、 Turbonomic 担当員にお問い合わせください。

    • 標準メモリー用の Windows 構成

      {
        "metrics": {
          "namespace": "Windows System",
          "append_dimensions": {
            "InstanceId": "${aws:InstanceId}"
          },
          "aggregation_dimensions" : [ ["InstanceId"] ],
          "metrics_collected": {
            "Memory": {
              "measurement": [
                {"name" : "Available Bytes", "rename": "MemoryAvailable", "unit": "Bytes"}
              ],
              "metrics_collection_interval": 60
            },
            "Paging File": {
              "measurement": [
                {"name": "% Usage", "rename": "paging_used"}
              ],
              "metrics_collection_interval": 60,
              "resources": [
                "*"
              ]
            }
          }
        }
      }

    CW 名前空間および領域のオプション・パラメーターを構成できることに注意してください。 ただし、 CloudWatch で収集するために追加のメトリックを構成する場合、これらのメトリックは Turbonomic 分析に影響を与えず、ユーザー・インターフェースに表示されません。

  4. パラメーター・ストアを作成します。

    1. パラメーターを作成します。

      AWS System Managerで、 「パラメーター・ストア」 にナビゲートし、パラメーターを作成します。 (前のステップで作成した) JSON エージェント構成をコピーして、パラメーターの 「値」 フィールドに貼り付けます。

    2. パラメーターに名前を付けます。

      例えば、AmazonCloudWatch-MyMemoryParam です。 別の名前を使用することもできますが、Amazon の資料によると、名前は AmazonCloudWatchで始まる 必要があります 。 詳しくは、 パラメーター・ストアでの CloudwatchConfig ファイルの保管を参照してください。

      このパラメーター名を覚えておく必要があります。

    3. パラメーターを作成する場合にクリックします。

  5. CloudWatch パラメーターを VM にデプロイします。

    AWS System Managerで、 「コマンドの実行」 画面にナビゲートして、 AmazonCloudWatch-ManageAgent コマンドを構成して実行します。 構成には以下を含める必要があります。

    • アクション: configure
    • モード: ec2
    • オプションの構成ソース: ssm
    • オプションの構成ロケーション: 前に作成したパラメーターの名前を指定します。
    • オプションの再始動: yes (これにより、VM インスタンスではなく CloudWatch エージェントが再始動されます)
    • ターゲット (Targets): CloudWatch 構成をデプロイする VM

    コマンドが構成されたら、コマンドを実行します。 これにより、インスタンスのメトリックの収集が構成されます。

  6. インスタンスのメトリックを収集していることを確認します。

    CloudWatch ページにナビゲートし、 CWAgent 名前空間に Metrics を表示します。 次に、ID 別にインスタンスを検査して、GPU メトリックを収集している場合に MemoryAvailable メトリックまたは utilization_gpu メトリックおよび memory_used メトリックが表示されることを確認します。

AWSのメトリック収集の有効化について詳しくは、以下のサポート記事を参照してください。