監視 Amazon Web Services ( AWS ) による Amazon Web Services ( AWS ) エージェント
Instanaが管理するサービスを監視するには、ホストエージェントやその他のタイプのエージェントをインストール AWS できないAPI( S3CloudWatch, 例: AWS X-Rayなど)からデータを収集する必要があります。
ただし、Instanaホストエージェントは特定の方法で設定することで、 AWS によって管理されるサービスを監視できます。 特定の方法で設定され、サービスを AWS 監視するホストエージェントはエージェント AWS と呼ばれる。 エージェント AWS は専用のホストマシンにインストールすることを推奨します。 また、各地域 AWS に少なくとも1人の AWS 担当者が配置されていることを確認してください。
エージェント AWS をインストールすると、サポート AWS 対象サービスとの間でデータのやり取りが可能になりますが、サービスを支える基盤インフラへのアクセス権は付与されません。
注:
Amazon Elastic Computing Service ( EC2 ECS) 上で実行される Kubernetes クラスター(お客様自身でインストールおよび管理する ECS または Amazon Kubernetes Service Elastic Compute Cloud (EC2) を使用する場合)、または Amazon Elastic AWS Container Service (ECS) クラスターを監視するには、Amazon Elastic Compute Cloud (EC2) エージェント AWS ではなく、Instana ホスト エージェントを使用する必要があります。 ホストエージェントのインストール手順の詳細については、 「プラットフォーム 」セクションのトピックを参照してください。
クラスタ Kubernetes 内の Red Hat OpenShift ノードを AWS 監視する場合、クラスタの各ノードにInstana AWS エージェントをインストールしないでください。 専用ホストマシンにエージェント AWS をインストールする。
プラットフォーム
以下のプラットフォームを監視するには、Instanaホストエージェントをインストールしてください:
モニター対象のサービス
エージェント AWS のインストール
エージェント AWS は、ECS上のFargateまたはECS EC2 上にインストールできます。
注:
クラウド環境で監視対象エンティティの数に応じて、ホストエージェントに割り当てられるメモリの最大容量を増やす必要がある場合があります。 エージェントのメモリは、環境変数を MiB デフォルト値の
AGENT_MAX_MEM544より大きい値に設定することで増やすことができます。 たとえば、エージェントのメモリを1GBに設定するには、次のように設定できますAGENT_MAX_MEM=1024M。アカウント AWS と AWS リージョンの組み合わせごとに、エージェント AWS を1つだけインストールしてください。 AWS アカウントと AWS リージョンの同じ組み合わせに対して複数の AWS エージェントをインストールすると、Instana を使用したモニターの品質という点で追加の利点なしに、AWS の追加コストが発生する可能性があります。
インストール EC2
エージェント AWS は Windows または Linux に EC2 インストールできます。 Instana AWS エージェントは、. Linux® NETを実行する現行世代汎用マシン上で実行することを推奨します。例えば、 m5.large インスタンスが理想的です。
Instana UI で、 [詳細] > [エージェント] AWS > [エージェントのインストール ] をクリックします。
「テクノロジー」リストから、「Instana AWS センサー」を選択します。
リストからエージェント AWS を実行する項目で、 Compute Elastic Cloud ( EC2 ) を選択します(デフォルトです)。
エージェントキーとロケーションはスクリプト内で事前に入力済みであり、
User Dataとして使用されます EC2。 表示されているスクリプトをコピーしてください。 スクリプトは以下の通りですが、必要な情報はすべて提供されています:#!/bin/bash curl -o setup_agent.sh https://setup.instana.io/agent chmod 700 ./setup_agent.sh sudo ./setup_agent.sh -y -a <your-agent-key> -m aws -t dynamic -e <location> -s専用の EC2 仮想マシンを起動し、コピーしたスクリプトを.
User Dataとして使用します。 詳細については、 Launch ドキュメントの「インスタンス Linux でのUser Dataコマンドの実行 EC2 」を参照してください。IAMロールのトピックにあるコードブロックの設定をファイル
IAM_permission.jsonにコピーしてください。 これらの設定は、Instana AWS エージェントを実行する仮想 EC2 マシンに必要なIAMロールに使用され、エージェント AWS が AWS リソースを検出および監視できるようにします。 次に、ファイルIAM_permission.jsonを使用してIAMロールを作成します。 詳細については、 「IAM ユーザーに権限を委任するロールの作成」 を参照してください。IAMロールがアクション
AssumedRoleを実行するには、以下のようにTrust Relationship編集します(Instana UItrust_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 のインストール
エージェント AWS は Windows 上にインストールできます。または ECS 上の Linux Fargate にインストールできます。
Instana UI で、 [詳細] > [エージェント] AWS > [エージェントのインストール ] をクリックします。
「テクノロジー」リストから、「Instana AWS センサー」を選択します。
「 エージェント AWS を実行する 」リストから、 Elastic Container Service (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 名前付きプロファイルを使用する方法
複数のアカウントを監視するには、 CLI AWS を使用する場合と同様に名前付きプロファイルを定義するか、ファイルを手動で作成する必要があります。 .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 に対してより厳格なルールを設定するか、 別の AWS Instanaユーザーを作成し、 その ~/.aws/credentials 方法でrootユーザーのセキュリティ認証情報をファイルに追加することを避けるべきです。
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 には追加コストは発生しません)。 両方の詳細については、 価格 CloudWatchAWS ページでご確認いただけます。
以下の表は、ポーリング間隔が5分、Amazonの課金単価が1000 CloudWatch メトリックあたり 0.01 $の場合における、各エージェント AWS のおおよその推定日次コストを示しています:
| AWS センサー | メトリック数 | インスタンス当たりの日次コスト | 注 |
|---|---|---|---|
| API Gateway | 5 - 11 | $0.0144 - $0.0317 | メトリクスの数はAPIプロトコルによって異なります。 |
| AppSync | 18 | $0.0518 | |
| 自動スケーリング | ※13 | $0.0374 | |
| ビーンストーク | 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 | メトリックの数は、ロードバランサーのタイプとアベイラビリティゾーンの数によって異なります。 |
| 電子医療記録 | 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 | |
| タイムストリーム | 9 | $0.0230 |
CloudWatch は EC2 およびポーリング・タグでは使用されないため、CloudWatch のコストは発生しないことに注意してください。
ポーリング間隔を長くすると CloudWatch のコストを削減できます。 ポーリング間隔を増やすことの欠点は、CloudWatch からの細分度メトリックを減らすことです。 各要求は単一のメトリック値を提供するため、60s と 300s のポーリング間隔の違いは、300s 期間の 5 つのメトリック値または 1 つのメトリック値です。
デフォルトのポーリング間隔がお客様のビジネスに適しているかどうか、またはコストと洞察の品質のバランスを取るようにカスタマイズするかどうかは、お客様が判断する必要があります。
トラブルシューティング
エアギャップ環境におけるサービスの AWS 監視に失敗しました
Instanaホストエージェントがインターネット接続のない EC2 マシン上で実行される場合、エージェントはサービスの AWS パブリックAPIにアクセスできず、その結果、サポート AWS 対象サービスの監視に失敗します。
PrivateLinkAWS パブリックIPを使用する必要がなく、トラフィックがインターネットを経由する必要もない状態で、高可用性とスケーラビリティを AWS 備えた方法でホストされているサービスへのプライベートアクセスを提供します。
監視が必要なすべての AWS サービスに対して、 VPCエンドポイントを作成 PrivateLink,AWS します。 VPCエンドポイントは、サブネット内にプライベートIPアドレスを持つ弾性ネットワークインターフェースを提供し、Instanaホストエージェントが利用可能な AWS サービスAPIに接続します。