Amazon Web Services (AWS) エージェントを使用した Amazon Web Services (AWS) のモニター

AWS によって管理されているサービスを監視するには、 Instana が、 CloudWatch,、 S3、X-Rayなどの AWS APIからデータを収集する必要があります。これらのAPIには、ホストエージェントやその他の種類のエージェントをインストールすることはできません。

ただし、 Instana のホストエージェントを特定の方法で設定することで、 AWS によって管理されているサービスを監視することができます。 AWS のサービスを監視するために特定の方法で設定されたホストエージェントは、 AWS エージェントと呼ばれます。 AWS エージェントは、専用のホストマシンにインストールすることをお勧めします。 また、各 AWS リージョンに、少なくとも1つの AWS エージェントが利用可能であることを確認してください。

AWS エージェントをインストールした後、サポートされる AWS サービスとの間でデータを取得できますが、サービスを強化するインフラストラクチャーにアクセスすることはできません。

注:
  • Amazon Elastic Computing( EC2 )の仮想マシン、 AWS 上で動作する Kubernetes クラスター(お客様自身でインストールおよび管理しているもの、またはAmazon Elastic Kubernetes Service を利用しているもの)、あるいはAmazon Elastic Containerクラスターを監視するには、 AWS エージェントではなく、 Instana ホストエージェントを使用する必要があります。 ホスト・エージェントのインストール手順について詳しくは、「 プラットフォーム 」セクションのトピックを参照してください。
  • Kubernetes または Red Hat OpenShift クラスタ内の AWS を監視する場合、クラスタの各ノードに Instana AWS エージェントをインストールしないでください。 専用ホストマシンに AWS エージェントをインストールします。
  • AWS SDK v2 への移行:
    1. AWS AWS SDK ( v1 )のサポートは、2025年12月31日をもって正式に終了しました。 Instana AWS のすべてのセンサーおよび検出コンポーネントを、 AWS SDK( v2 )へ移行しています。これにより、継続的なセキュリティ更新、パフォーマンスの向上、および最新の AWS 機能へのアクセスが確保されます。
    2. 移行を完了するには、 Instana エージェントを再起動するか、アップグレードする必要があります。 この移行プロセスは、監視の空白が生じず、設定変更も不要な、シームレスな移行を実現するように設計されています。

    導入タイプ(ホストベース、 Docker、または Kubernetes )に応じた移行手順の詳細については、「 AWS SDK v1 から AWS SDK v2 への移行」を参照してください。

モニター対象のサービス

AWS によって管理されている以下のサービスを監視するには、 「 AWS エージェントのインストール 」セクションの手順に従って、 Instana AWS エージェントをインストールしてください:

: AWS CloudWatch API の性質のために、メトリックの取得に遅延が生じる可能性があります。 整合性を保つために、メトリックの表示値にも遅延が生じます。 この遅延は、実際の AWS サービスとデータの可用性によって異なりますが、通常は約 10 分です。

AWS エージェントのインストール

AWS エージェントは、 EC2 または ECS 上の Fargate にインストールできます。

注:

  • クラウド環境内のモニター対象エンティティーの数によっては、ホスト・エージェントの使用可能メモリーの最大量を増やすことが必要な場合があります。 環境変数をデフォルト値の AGENT_MAX_MEM 544 より大きい値に設定することで、エージェントのメモリを増やすことができます。 MiB 例えば、エージェント・メモリーを 1 GB に設定するには、 AGENT_MAX_MEM=1024Mを設定します。

  • AWS アカウントと AWS 領域の組み合わせごとに、1 つの AWS エージェントのみをインストールします。 AWS アカウントと AWS リージョンの同じ組み合わせに対して複数の AWS エージェントをインストールすると、Instana を使用したモニターの品質という点で追加の利点なしに、AWS の追加コストが発生する可能性があります。

EC2 へのインストール

「 AWS 」エージェントは、 Windows または Linux から EC2 にインストールできます。 Instana AWS エージェントは、 Linux® を実行している現行世代の汎用マシン上で実行することをお勧めします。例えば、 m5.large インスタンスが理想的です。

注:Windows マシンが AWS にホストされている場合でも、 Windows に AWS エージェントをインストールする場合は、「 AWS インフラストラクチャ外でのインストール 」セクションの手順を完了する必要があります。
  1. Instana のUIで、 「詳細 」> 「エージェント 」> 「エージェントのインストール 」>「 AWS 」をクリックします。

  2. 「テクノロジー」リストから、「Instana AWS センサー」を選択します。

  3. AWS エージェントを実行する 」リストから、 「 Elastic Cloud Compute ( EC2 ) 」を選択します(これがデフォルトです)。

    エージェントの鍵と場所は、 EC2上で User Data として使用されるスクリプトに事前に取り込まれます。 表示されているスクリプトをコピーします。 スクリプトは以下のようになりますが、必要な情報がすべて提供されている点が異なります。

    #!/bin/bash
    
    curl -o setup_agent.sh https://setup.instana.io/agent
    chmod 700 ./setup_agent.sh
    sudo -E ./setup_agent.sh -y -a <your-agent-key> -m aws -t dynamic -e <location> -s
     
  4. 専用の EC2 仮想マシンをスピンアップし、コピーしたスクリプトを User Dataとして使用します。 EC2 での User Data 使用方法の詳細については、 Launch のドキュメントにある「 Linux インスタンスでのコマンドの実行」を参照してください。

  5. 「IAM 役割」 トピックのコード・ブロック内の構成を IAM_permission.json ファイルにコピーします。 これらの設定は、 Instana AWS エージェントを実行する EC2 仮想マシンに必要なIAMロールに使用され、 AWS エージェントが AWS リソースを検出および監視できるようにします。 次に、 IAM_permission.json ファイルを使用して IAM 役割を作成します。 詳細については、 「IAM ユーザーに権限を委任するためのロールの作成」 を参照してください。

  6. IAMロールがアクション AssumedRole を実行できるようにするには、以下のように( Trust RelationshipInstana のUIでは trust_relationship.json 「」として表示されます)を編集してください:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    エージェントがインターネットに接続できない EC2 マシン上で実行される場合は、次 Trust Relationship のように編集してください:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "ec2.amazonaws.com.cn"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    その他の必要な設定については、 「STSリージョンエンドポイントの設定」 を参照してください。

ECS への Fargate のインストール

ECS上のFargateで、 Windows または Linux に AWS エージェントをインストールできます。

注:Windows マシンが AWS にホストされている場合でも、 Windows に AWS エージェントをインストールする場合は、「 AWS インフラストラクチャ外でのインストール 」セクションの手順を完了する必要があります。
  1. Instana のUIで、 「詳細 」> 「エージェント 」> 「エージェントのインストール 」>「 AWS 」をクリックします。

  2. 「テクノロジー」リストから、「Instana AWS センサー」を選択します。

  3. AWS エージェントを以下の場所で実行します。 リストから、 エラスティック・コンテナー・サービス (ECS)を選択します。

    タスク定義の JSON は、タスク定義 JSON テンプレートで自動的に生成されます。 JSON ファイルをダウンロードし、タスク定義のユーザーインターフェースにある 「 JSON 」関数を使用して設定を行ってください。

  4. IAM権限のJSON ファイルをダウンロードし、新しいタスク定義に対して、ダウンロードした JSON ファイルに記載されている権限を少なくとも含むIAMロールを割り当ててください。

  5. 新しく作成したタスク定義のインスタンスを 1 つ持つ ECS サービスを作成します。

構成

AWS インフラストラクチャー外部へのインストール

AWS インフラストラクチャーの外部で実行されるすべてのエージェントを専用にすることもできます。 この目標を達成するには、 setenv ファイル内に以下の環境変数を指定する必要があります。

  • Linux の場合:
    /opt/instana/agent/bin/setenv
  • Windows の場合:
    C:\Program Files\Instana\instana-agent\bin\setenv
  • モニター対象の地域:
    INSTANA_AWS_REGION_CONFIG=
  • AWS リソースにアクセスするための資格情報。 これらの資格情報は、 Amazon Web Services IAM の構成 セクションで既に説明されているリソースへのアクセスが許可されているユーザーに属している必要があります。
    AWS_ACCESS_KEY_ID=
    AWS_SECRET_ACCESS_KEY=

プロキシー構成

環境変数を使用する場合

プロキシー構成を使用するように AWS センサーを構成するには、 *instanaAgentDir*/bin/setenv内で以下の環境変数を指定します。

export HTTP_PROXY=
export HTTPS_PROXY=
 
注: 両方の環境変数を定義する必要があります。 定義後に、Instana エージェントをリブートして変更を有効にする必要があります。

HTTP プロキシに関する詳細情報は、こちらのリンクからご覧いただけます。

エージェントの configuration.yaml を使用する場合

プロキシー構成を使用するように AWS エージェントを構成するには、以下のエージェント構成設定を追加します。

com.instana.plugin.aws:
  proxy_host: 'example.com' # proxy host name or ip address
  proxy_port: 3128 # proxy port
  proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
  proxy_username: 'username' # OPTIONAL: proxy username
  proxy_password: 'password' # OPTIONAL: proxy password
  tagging: # proxy setup for AWS Tagging API, used for AWS resource monitoring filtering
    proxy_host: 'example.com' # proxy host name or ip address
    proxy_port: 3128 # proxy port
    proxy_protocol: 'HTTP' # proxy protocol: HTTP or HTTPS
    proxy_username: 'username' # OPTIONAL: proxy username
    proxy_password: 'password' # OPTIONAL: proxy password
 

プロキシー設定は、個々の AWS センサーのレベルで構成することもできます。 この場合、前述のグローバル構成は、特定の AWS センサー構成によってオーバーライドされます。 詳しくは、特定の AWS センサーの資料を参照してください。

STSのリージョンエンドポイントの設定

デフォルトでは、Instana エージェントは、 EC2 インスタンスからグローバル STS エンドポイントに接続して、インスタンス・プロファイル資格情報を収集します。 ただし、 Instana ホストエージェントがインターネットに接続できない EC2 マシン(例えば、中国地域など)上で実行される場合、STSリージョンのエンドポイントを環境変数として指定する必要があります。これにより、 Instana エージェントはリージョンのSTSエンドポイントを使用するようになります。

Instana エージェントがインストールされたら、*instanaAgentDir*/bin/setenv内で以下の環境変数を指定します。

export AWS_STS_REGIONAL_ENDPOINTS=regional
 

特定のサービスのモニターの有効化

サービスごとに、モニター対象サービス セクションからリンクされた個々のサービス・ページに必要な許可を追加する必要があります。 サービスをモニター対象から除外するには、それぞれのアクセス許可を除外します。

あるいは、以下の個々のサービス・ページで説明されているように、モニター対象からサービスを除外する別の方法として、<agent_install_dir>/etc/instana/configuration.ymlに適切な-enabled_ フラグを追加することもできます。

複数の AWS アカウントのモニター

AWS Instana エージェントは、同じリージョン内の複数の AWS アカウントのモニタリング・サービスをサポートしています。 現在、AWS 名前付きプロファイルを使用する方法と、AWS セキュリティー・トークン・サービス (STS) を使用する方法の 2 つの方法があります。

注:Instana エージェントを設定して複数の AWS アカウントを監視する場合、利用可能な2つの方法のうち、いずれか一方のみを使用してください。

AWS 名前付きプロファイルを使用する方法

複数のアカウントを監視するには、 AWS CLI を使用する場合と同様に名前付きプロファイルを定義するか、手動でファイルを作成する必要があります。 .aws/credentials ファイルを、Instana エージェントを実行するユーザー (通常は root) のホーム・ディレクトリー内に作成する必要があります。 AWS CLI は、以下のように資格情報ファイル ~/.aws/credentials を使用します。

[default]
aws_access_key_id = accessKey1
aws_secret_access_key = secretAccessKey1

[profile2]
aws_access_key_id = accessKey2
aws_secret_access_key = secretAccessKey2

[profile3]
aws_access_key_id = accessKey3
aws_secret_access_key = secretAccessKey3
 

すべてのプロファイルが AWS 名前付きプロファイルと AWS アクセス資格情報の間のマッピングを表します。 AWS エージェントのインストールでは、 default AWS プロファイルが作成されます。 default プロファイルを ~/.aws/credentials ファイルに追加する必要はありません。

AWS エージェントによって使用される追加のプロファイルは、エージェント構成ファイル /opt/instana/agent/etc/instana/configuration.yaml に以下のようにリストされている必要があります。

com.instana.plugin.aws:
  profile_names:
    - 'profile2'
    - 'profile3'
 

注記:

  • 特定の構成内の特定の AWS サービスに対して、複数の AWS アカウントのモニターを指定することもできます。 特定のサービスに対して指定されたプロファイルのリストは、一般構成をオーバーライドします。
  • 資格情報ファイルの作成に関しては、必ず推奨事項に従ってください。

セキュリティ上の脅威を防ぐため、 EC2 インスタンスに対してより厳格なルールを設定するか、 Instana AWS 用の別のユーザーを作成し、そのようにしてrootユーザーのセキュリティ ~/.aws/credentials 認証情報をファイルに追加しないようにしてください。

AWS STS を使用する方法

この方法では、AWS STS サービス API を使用して、Instana エージェントによってモニターする必要があるすべての追加 AWS アカウントのアクセス資格情報を取得します。 エージェントがインストールされ、デフォルト・アカウントをモニターするように構成された後、Installationセクションで説明されている手順に従って、すべての追加 AWS アカウントから IAM ロール ARN を以下のように指定する必要があります。

com.instana.plugin.aws:
  role_arns:
    - 'arn:aws:iam::<account_2_id>:role/<role_2_name>'
    - 'arn:aws:iam::<account_3_id>:role/<role_3_name>'
 
注: 複数の AWS アカウントの監視は、個々の設定内で特定の AWS サービスに対して指定することも可能です。 特定のサービスに対して指定されている IAM 役割のリストが一般構成を オーバーライド

指定された ARN に一致する各役割は、Instana AWS モニターに必要な IAM 権限も構成する必要があります。 したがって、各役割は、以下のようにTrust relationshipポリシーを指定することにより、デフォルト・アカウントsts: AssumeRole を実行できるようにする必要があります。

  1. sts:AssumeRole が AWS ユーザー・コンテキストから実行される場合 - エージェントが AWS インフラストラクチャーの外部にインストールされている場合

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<default_account_id>:user/<default_account_username>"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     
  2. sts:AssumeRole が IAM 役割のコンテキストから実行される場合 - エージェントが EC2 にインストールされている場合

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<default_account_id>:role/<default_account_IAM_role_name>"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
     

    同様に、デフォルト・アカウントは、すべての追加アカウントに対して sts: AssumeRole を実行することも許可する必要があります。 これを行うには、以下のように、Instana のモニターに使用される IAM 役割内に追加の IAM ポリシーを指定します。

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            #Instana monitoring policy specifications
          },
          {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::<account_1_id>:role/<role_1_name>",
            "Effect": "Allow"
          },
          {
            "Action": [
                "sts:AssumeRole"
            ],
            "Resource": "arn:aws:iam::<account_2_id>:role/<role_2_name>",
            "Effect": "Allow"
          }
        ]
      }
     

フィルタリングとタグ付け

注: フィルタリングを有効にするには、 AWS エージェントに付与されるIAM権限に、IAM権限を含める tag:GetResources 必要があります。

サービスのモニターを有効にした後、AWS エージェントのエージェント構成ファイル /opt/instana/agent/etc/instana/configuration.yaml を変更することで、Instana が AWS タグに基づいてモニターするインスタンスをフィルタリングすることができます。

構成ファイルで使用可能なオプションは、以下のとおりです。

com.instana.plugin.aws:
  # Comma-separated list of tags in key:value format.
  # Any AWS resource containing at least one of the specified tags is discovered.
  include_tags: ...
  # Comma-separated list of tags in key:value format.
  # Any AWS resource containing at least one of the specified tags is omitted from discovery.
  exclude_tags: ...
  # Exclude untagged AWS resources by setting the flag to `false`
  include_untagged: ...
 

複数のタグを定義するには、コンマで区切ります。 タグは、 :で区切られたキーと値のペアでなければなりません。 両方のリスト (包含と除外) にタグを定義すると、除外リストの優先順位が高くなります。 サービスをフィルタリングする必要がない場合は、構成を定義しないでください。

Instana エージェントは、タグが割り当てられていないすべての AWS リソースを自動的に監視します。 {: note} タグのないリソースを監視対象から除外するには、フラグ include_untagged を に設定してください false

フィルタリングをサービス・レベルで構成することもできます。 この場合、特定のサービスのデフォルト構成はオーバーライドされます。 特定のサービスによるディスカバリー・フィルタリングについて詳しくは、特定のサービスの資料を参照してください。

タグのポーリング頻度

AWS エージェントがモニター対象 AWS サービスをポーリングして関連タグを取得する頻度を指定するには、 tagged-services-poll-rate 構成プロパティーを使用します。 デフォルトは 300 秒です。 エージェントは、 AWS サービス・クライアントを使用してタグをポーリングします。

タグ付きリソースのポーリング頻度の構成は、以下のとおりです。

com.instana.plugin.aws:
  tagged-services-poll-rate: 60 #default 300
 

ポーリング間隔

ポーリング間隔は、 AWS エージェントが CloudWatch の API を呼び出す頻度を示します。 これは、 configuration.yml ファイル内で cloudwatch_period として構成可能です。 デフォルト値は 300 秒です。 最も一般的なのは、モニター・プラットフォームが 5 分から 10 分の値を使用することです。

ポーリング間隔は、以下の 2 つのレベルで構成可能です。

  • エージェントによってモニターされるすべての AWS サービスのエージェント・レベル

    com.instana.plugin.aws:
      cloudwatch_period: 300
     
  • AWS サービス当たり

    com.instana.plugin.aws.rds:
      cloudwatch_period: 300
     

単一サービスの構成は、エージェント・レベルの構成をオーバーライドします。

CloudWatch のコスト

AWS サービスに対する洞察を提供するには、Instana などのモニタリング・プラットフォームで CloudWatch API を使用する必要があります。 この API は、AWS によって消費量ベースの価格設定と共に提供されます。この資料の目的は、Instana が CloudWatch API を使用して AWS 請求への影響をユーザーが理解する方法を透過的に示すことです。

CloudWatch のコストは、以下の要因に影響を受けます。

  • AWS サービスのモニター対象インスタンスの数
  • AWS エージェントごとに収集されるメトリックの数
  • ポーリング間隔 (構成可能)

各 AWS エージェントは、メトリクスの収集のために CloudWatchGetMetricData API リクエストを呼び出し、それが失敗した場合は代替 GetMetricStatistics 手段としてが呼び出されます。 どちらのエンドポイントも、メトリクスあたりのコストは同じです(なお、のフォールバック利用 GetMetricStatistics には追加コストは発生しません)。 両製品の詳細については、 AWS の CloudWatch 価格ページをご覧ください。

以下の表は、ポーリング間隔が 5 分で、Amazon の課金が 1000 CloudWatch メトリックごとに $0.01 である場合の、さまざまな AWS エージェントの日次コストの概算を示しています。

AWS センサー メトリック数 インスタンス当たりの日次コスト
API Gateway 5~11 $0.0144 - $0.0317 メトリクスの数は、 API プロトコルによって異なります。
AppSync 18 $0.0518
Auto Scaling ※13 $0.0374
Beanstalk 31 $0.0893
CloudFront ※13 $0.0374 メトリクスの数は、関連する関数の数に依存する。 例えば、この表はモニターされたディストリビューションに関連する1つの関数を示している。
DynamoDB 71 $0.2045
EBS 9 $0.0230
ElastiCache 25~39 $0.0720 - $0.1123 メトリクスの数は、使用するエンジンによって異なる。
OpenSearch 12 $0.0346
ELB 5 - 15 $0.0144 - $0.0432 メトリクスの数は、ロード・バランサーのタイプとアベイラビリティ・ゾーンの数によって異なります。
EMR 15 $0.0432
IoT Core 23 $0.0662
Kinesis 16 $0.0461
Lambda 21 $0.0605
MQ 22 $0.0634
MSK 37 $0.0844 メトリックの数は、クラスタ内のブローカの数に依存します。 例えば、この表は1人のブローカーを監視していることを示している。
RDS 18 $0.0518
Redshift 17 $0.0490 メトリクスの数はクラスタ内のノード数に依存します。 例えば、この表は1つのノードが監視されていることを示している。
S3 ※13 $0.0374
SNS 7 $0.0202
SQS 9 $0.0230
Timestream 9 $0.0230

CloudWatch は EC2 およびポーリング・タグでは使用されないため、CloudWatch のコストは発生しないことに注意してください。

ポーリング間隔を長くすると CloudWatch のコストを削減できます。 ポーリング間隔を増やすことの欠点は、CloudWatch からの細分度メトリックを減らすことです。 各要求は単一のメトリック値を提供するため、60s と 300s のポーリング間隔の違いは、300s 期間の 5 つのメトリック値または 1 つのメトリック値です。

デフォルトのポーリング間隔がお客様のビジネスに適しているかどうか、またはコストと洞察の品質のバランスを取るようにカスタマイズするかどうかは、お客様が判断する必要があります。

トラブルシューティング

エアギャップ環境において、 AWS サービスの監視に失敗しました

Instana のホストエージェントが、インターネットに接続されていない EC2 マシン上で実行されている場合、エージェントは AWS サービスのパブリックAPIにアクセスできなくなり、その結果、サポートされている AWS サービスの監視に失敗します。

AWS PrivateLink AWS 上でホストされているサービスへのプライベートなアクセスを、高い可用性と拡張性を確保した形で提供します。これにはパブリックIPアドレスの使用が不要であり、トラフィックがインターネットを経由する必要もありません。

AWS PrivateLink を使用するには、監視が必要なすべての AWS サービスに対して VPC エンドポイントを作成してください。 VPCエンドポイントは、サブネット内にプライベートIPアドレスを持つElastic Network Interfaceを提供し、これを介して「 AWS 」サービス( API )に接続します。このインターフェースは、「 Instana 」ホストエージェントから利用可能です。

注: フィルタリングおよびタグ付け機能を提供するために Instana ホストエージェントで使用される AWS リソースグループのタグ付け API については、VPCエンドポイントを使用することはできず、この API にはパブリックIPアドレス経由でのみアクセス可能です。 考えられる解決策の一つは、 プロキシを設定して、 AWS のリソースグループタグ付け機能( API )を Instana のホストエージェントから利用できるようにすることです。