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 への移行:
- AWS AWS SDK ( v1 )のサポートは、2025年12月31日をもって正式に終了しました。 Instana AWS のすべてのセンサーおよび検出コンポーネントを、 AWS SDK( v2 )へ移行しています。これにより、継続的なセキュリティ更新、パフォーマンスの向上、および最新の AWS 機能へのアクセスが確保されます。
- 移行を完了するには、 Instana エージェントを再起動するか、アップグレードする必要があります。 この移行プロセスは、監視の空白が生じず、設定変更も不要な、シームレスな移行を実現するように設計されています。
導入タイプ(ホストベース、 Docker、または Kubernetes )に応じた移行手順の詳細については、「 AWS SDK v1 から AWS SDK v2 への移行」を参照してください。
プラットフォーム
以下のプラットフォームを監視するには、 Instana ホストエージェントをインストールしてください:
モニター対象のサービス
AWS によって管理されている以下のサービスを監視するには、 「 AWS エージェントのインストール 」セクションの手順に従って、 Instana AWS エージェントをインストールしてください:
XRay (非推奨)
AWS エージェントのインストール
AWS エージェントは、 EC2 または ECS 上の Fargate にインストールできます。
注:
クラウド環境内のモニター対象エンティティーの数によっては、ホスト・エージェントの使用可能メモリーの最大量を増やすことが必要な場合があります。 環境変数をデフォルト値の
AGENT_MAX_MEM544 より大きい値に設定することで、エージェントのメモリを増やすことができます。 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 インスタンスが理想的です。
Instana のUIで、 「詳細 」> 「エージェント 」> 「エージェントのインストール 」>「 AWS 」をクリックします。
「テクノロジー」リストから、「Instana AWS センサー」を選択します。
「 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専用の EC2 仮想マシンをスピンアップし、コピーしたスクリプトを
User Dataとして使用します。 EC2 でのUser Data使用方法の詳細については、 Launch のドキュメントにある「 Linux インスタンスでのコマンドの実行」を参照してください。「IAM 役割」 トピックのコード・ブロック内の構成を
IAM_permission.jsonファイルにコピーします。 これらの設定は、 Instana AWS エージェントを実行する EC2 仮想マシンに必要なIAMロールに使用され、 AWS エージェントが AWS リソースを検出および監視できるようにします。 次に、IAM_permission.jsonファイルを使用して IAM 役割を作成します。 詳細については、 「IAM ユーザーに権限を委任するためのロールの作成」 を参照してください。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 エージェントをインストールできます。
Instana のUIで、 「詳細 」> 「エージェント 」> 「エージェントのインストール 」>「 AWS 」をクリックします。
「テクノロジー」リストから、「Instana AWS センサー」を選択します。
AWS エージェントを以下の場所で実行します。 リストから、 エラスティック・コンテナー・サービス (ECS)を選択します。
タスク定義の JSON は、タスク定義 JSON テンプレートで自動的に生成されます。 JSON ファイルをダウンロードし、タスク定義のユーザーインターフェースにある 「 JSON 」関数を使用して設定を行ってください。
IAM権限のJSON ファイルをダウンロードし、新しいタスク定義に対して、ダウンロードした JSON ファイルに記載されている権限を少なくとも含むIAMロールを割り当ててください。
新しく作成したタスク定義のインスタンスを 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=
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 つの方法があります。
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>'
指定された ARN に一致する各役割は、Instana AWS モニターに必要な IAM 権限も構成する必要があります。 したがって、各役割は、以下のようにTrust relationshipポリシーを指定することにより、デフォルト・アカウントが sts: AssumeRole を実行できるようにする必要があります。
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" } ] }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" } ] }
フィルタリングとタグ付け
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: 300AWS サービス当たり
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 」ホストエージェントから利用可能です。