AWS EC2¶
スクリプトマーケットの「Guanceクラウド同期」シリーズのスクリプトパッケージを使って、クラウド監視のクラウド資産データをGuanceに同期します
設定¶
Func のインストール¶
Guance統合 - 拡張 - マネージド版 Func を有効化することを推奨します。前提条件はすべて自動でインストールされるため、そのままスクリプトのインストールに進んでください
自前で Func をデプロイする場合はFunc の自前デプロイを参照してください
スクリプトを有効化¶
注意:要件を満たす Amazon AK を事前に用意してください(手早く済ませるなら、グローバル読み取り専用権限
ReadOnlyAccessを直接付与しても構いません)
マネージド版でスクリプトを有効化¶
- Guanceコンソールにログインする
- 【統合】メニューをクリックし、【クラウドアカウント管理】を選択する
- 【クラウドアカウントを追加】をクリックし、【AWS】を選択して画面に必要な情報を入力する。すでにクラウドアカウント情報を設定済みの場合は、この手順をスキップする
- 【テスト】をクリックし、成功したら【保存】をクリックする。テストに失敗した場合は、関連する設定が正しいか確認してから再度テストする
- 【クラウドアカウント管理】の一覧で追加済みのクラウドアカウントを確認できる。該当するクラウドアカウントをクリックして詳細ページを開く
- クラウドアカウント詳細ページの【統合】ボタンをクリックし、
未インストール一覧からAWS EC2を見つけて【インストール】ボタンをクリックし、表示されるインストール画面でインストールする
手動でスクリプトを有効化¶
-
Func コンソールにログインし、【スクリプトマーケット】をクリックしてGuanceスクリプトマーケットを開き、
integration_aws_ec2を検索する -
【インストール】をクリックしたら、対応するパラメータを入力する。AWS AK ID、AK Secret、およびアカウント名。
-
【起動スクリプトをデプロイ】をクリックすると、システムが自動で
Startupスクリプトセットを作成し、対応する起動スクリプトを自動設定する。 -
有効化後は「管理 / 自動トリガー設定」で対応する自動トリガー設定を確認できる。【実行】をクリックすれば、定期実行を待たずにすぐ 1 回実行できる。少し待つと、実行タスクの履歴と対応するログを確認できる。
確認¶
- 「管理 / 自動トリガー設定」で対応するタスクに自動トリガー設定が存在するか確認し、あわせて対応するタスク履歴とログを確認して異常がないかチェックする
- Guanceの「インフラストラクチャ / カスタム」で資産情報が存在するか確認する
- Guanceの「メトリクス」で対応する監視データがあるか確認する
メトリクス¶
Amazon CloudWatch を設定すると、デフォルトのメトリクスセットは以下のとおりです。設定により、さらに多くのメトリクスを収集できます Amazon CloudWatch メトリクスの詳細
注意:メモリやディスクのメトリクスが報告されない場合は、AWS コンソールで手動で収集を有効化してください
インスタンスメトリクス¶
AWS/EC2 名前空間には以下のインスタンスメトリクスが含まれます。
| メトリクス | 説明 |
|---|---|
CPUUtilization |
Amazon EC2 が EC2 インスタンスの実行に使用した物理 CPU 時間の割合です。ユーザーコードの実行と Amazon EC2 コードに費やされた時間を含みます。高いレベルでは、CPUUtilization は guest CPUUtilization と hypervisor CPUUtilization の合計です。レガシーデバイスのエミュレーション、レガシーデバイス以外の構成、割り込み集約型ワークロード、ライブマイグレーション、ライブアップデートなどの要因により、OS 内のツールが表示する割合は CloudWatch と異なる場合があります。単位: パーセント |
DiskReadOps |
指定期間内に、インスタンスが使用できるすべてのインスタンスストレージボリュームで完了した読み取り操作数です。この期間の 1 秒あたりの平均 I/O 操作数 (IOPS) を計算するには、その期間の総操作数を総秒数で割ってください。インスタンスストレージボリュームがない場合、値は 0 になるか、メトリクスは報告されません。単位: カウント |
DiskWriteOps |
指定期間内に、インスタンスが使用できるすべてのインスタンスストレージボリュームで完了した書き込み操作数です。この期間の 1 秒あたりの平均 I/O 操作数 (IOPS) を計算するには、その期間の総操作数を総秒数で割ってください。インスタンスストレージボリュームがない場合、値は 0 になるか、メトリクスは報告されません。単位: カウント |
DiskReadBytes |
インスタンスが使用できるすべてのインスタンスストレージボリュームから読み取られたバイト数です。このメトリクスは、アプリケーションがインスタンスのハードディスクから読み取ったデータ量を把握するために使います。アプリケーションの速度を判断するのにも役立ちます。報告値は、その期間に受信したバイト数です。基本監視(5 分)を使用している場合は、この数値を 300 で割るとバイト/秒を得られます。詳細監視(1 分)を使用している場合は、60 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのバイト数を求めることもできます。たとえば、CloudWatch で DiskReadBytes を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、バイト/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。インスタンスストレージボリュームがない場合、値は 0 になるか、メトリクスは報告されません。単位: バイト |
DiskWriteBytes |
インスタンスが使用できるすべてのインスタンスストレージボリュームに書き込まれたバイト数です。このメトリクスは、アプリケーションがインスタンスのハードディスクへ書き込んだデータ量を把握するために使います。アプリケーションの速度を判断するのにも役立ちます。報告値は、その期間に受信したバイト数です。基本監視(5 分)を使用している場合は、この数値を 300 で割るとバイト/秒を得られます。詳細監視(1 分)を使用している場合は、60 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのバイト数を求めることもできます。たとえば、CloudWatch で DiskWriteBytes を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、バイト/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。インスタンスストレージボリュームがない場合、値は 0 になるか、メトリクスは報告されません。単位: バイト |
MetadataNoToken |
トークンなしでインスタンスメタデータサービスへのアクセスに成功した回数です。このメトリクスは、どのプロセスがトークンを使わずにインスタンスメタデータサービス バージョン 1 を使用してインスタンスメタデータへアクセスしているかを判定するために使います。すべてのリクエストがトークン対応のセッション、つまり インスタンスメタデータサービス バージョン 2 を使用している場合、この値は 0 になります。詳細はインスタンスメタデータサービス バージョン 2 の使用への移行を参照してください。単位: カウント |
NetworkIn |
インスタンスがすべてのネットワークインターフェイスで受信したバイト数です。このメトリクスは、単一インスタンスに流入するネットワークトラフィックを把握するために使います。報告値は、その期間に受信したバイト数です。基本監視(5 分)かつ統計データが Sum の場合は、この数値を 300 で割るとバイト/秒を得られます。詳細監視(1 分)かつ統計データが Sum の場合は、60 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのバイト数を求めることもできます。たとえば、CloudWatch で NetworkIn を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、バイト/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。単位: バイト |
NetworkOut |
インスタンスがすべてのネットワークインターフェイスで送信したバイト数です。このメトリクスは、単一インスタンスから出ていくネットワークトラフィックを把握するために使います。報告値は、その期間に送信したバイト数です。基本監視(5 分)かつ統計データが Sum の場合は、この数値を 300 で割るとバイト/秒を得られます。詳細監視(1 分)かつ統計データが Sum の場合は、60 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのバイト数を求めることもできます。たとえば、CloudWatch で NetworkOut を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、バイト/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。単位: バイト |
NetworkPacketsIn |
インスタンスがすべてのネットワークインターフェイスで受信したパケット数です。このメトリクスは、単一インスタンス上のパケット数に基づいて流入トラフィック量を示します。このメトリクスは基本監視(5 分間隔)でのみ使用できます。インスタンスが 5 分間に受信した 1 秒あたりのパケット数(PPS)を計算するには、Sum 統計データを 300 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのパケット数を求めることもできます。たとえば、CloudWatch で NetworkPacketsIn を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、パケット/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。単位: カウント |
NetworkPacketsOut |
インスタンスがすべてのネットワークインターフェイスで送信したパケット数です。このメトリクスは、単一インスタンス上のパケット数に基づいて流出トラフィック量を示します。このメトリクスは基本監視(5 分間隔)でのみ使用できます。インスタンスが 5 分間に送信した 1 秒あたりのパケット数(PPS)を計算するには、Sum 統計データを 300 で割ってください。CloudWatch のメトリクス数学関数 DIFF_TIME を使って、1 秒あたりのパケット数を求めることもできます。たとえば、CloudWatch で NetworkPacketsOut を m1 として描画し、メトリクス数学式 m1/(DIFF_TIME(m1)) を使うと、パケット/秒単位のメトリクスが返されます。DIFF_TIME とその他のメトリクス数学関数の詳細は、『Amazon CloudWatch ユーザーガイド』のメトリクス数学の使用を参照してください。単位: カウント |
CPU メトリクス¶
AWS/EC2 名前空間には、バースト性能インスタンスの以下の CPU クレジットメトリクスが含まれます。
| メトリクス | 説明 |
|---|---|
CPUCreditUsage |
CPU 使用率を維持するためにインスタンスが消費した CPU クレジット数です。1 CPU クレジットは、1 vCPU を 100% の利用率で 1 分間実行すること、または vCPU・利用率・時間の等価な組み合わせ(たとえば、1 vCPU を 50% の利用率で 2 分間実行する、または 2 vCPU を 25% の利用率で 2 分間実行する)に相当します。CPU クレジットメトリクスは 5 分ごとにのみ提供されます。5 分を超える期間を指定する場合は、Average ではなく Sum 統計データを使用してください。単位: クレジット (vCPU 分) |
CPUCreditBalance |
インスタンスの起動後に累積して獲得した CPU クレジット数です。T2 Standard では、CPUCreditBalance に累積済みの起動クレジットも含まれます。クレジットを獲得すると、クレジット残高に加算されます。クレジットを消費すると、残高から差し引かれます。クレジット残高には上限があり、これはインスタンスサイズによって決まります。上限に達すると、以降に獲得した新しいクレジットは破棄されます。T2 Standard では、起動クレジットは上限に含まれません。インスタンスは CPUCreditBalance のクレジットを消費して、ベースライン CPU 使用率を超えてバーストできます。インスタンスの実行中、CPUCreditBalance のクレジットは失効しません。T3 または T3a インスタンスを停止すると、CPUCreditBalance の値は 7 日間保持されます。その後、累積クレジットはすべて失われます。T2 インスタンスを停止した場合、CPUCreditBalance の値は保持されず、累積クレジットはすべて失われます。CPU クレジットメトリクスは 5 分ごとにのみ提供されます。単位: クレジット (vCPU 分) |
CPUSurplusCreditBalance |
unlimited の値がゼロのとき、CPUCreditBalance インスタンスが消費した超過クレジット数です。CPUSurplusCreditBalance の値は、獲得した CPU クレジットで支払われます。超過クレジット数が、インスタンスが 24 時間周期内に獲得できる最大クレジット数を超えると、上限を超えた分の消費済み超過クレジットに追加料金が発生します。CPU クレジットメトリクスは 5 分ごとにのみ提供されます。単位: クレジット (vCPU 分) |
CPUSurplusCreditsCharged |
獲得した CPU クレジットで支払われず、追加料金の対象となる消費済み超過クレジット数です。消費した超過クレジットに課金されるのは、次のいずれかの場合です。消費した超過クレジットが、インスタンスが 24 時間周期内に獲得できる最大クレジット数を超えた場合。上限を超えた消費済み超過クレジットについては、その時間の終了時に課金されます。インスタンスが停止または終了された場合。インスタンスが unlimited から standard に切り替わった場合。CPU クレジットメトリクスは 5 分ごとにのみ提供されます。単位: クレジット (vCPU 分) |
ステータスチェックメトリクス¶
AWS/EC2 名前空間には以下のステータスチェックメトリクスが含まれます。デフォルトでは、ステータスチェックメトリクスは 1 分間隔で無料提供されます。新規起動したインスタンスでは、ステータスチェックメトリクスデータはインスタンスが初期化状態を完了した後、つまりインスタンスが実行状態に入ってから数分以内にのみ提供されます。EC2 のステータスチェックの詳細はインスタンスのステータスチェックを参照してください。
| メトリクス | 説明 |
| :----------------------------- | :----------------------------------------------------------- |
|StatusCheckFailed|前の 1 分間にインスタンスがインスタンスステータスチェックとシステムステータスチェックの両方を通過したかどうかを報告します。このメトリクスは 0(通過)または 1(失敗)です。デフォルトでは、このメトリクスは 1 分間隔で無料提供されます。単位: カウント|
|StatusCheckFailed_Instance|前の 1 分間にインスタンスがインスタンスステータスチェックを通過したかどうかを報告します。このメトリクスは 0(通過)または 1(失敗)です。デフォルトでは、このメトリクスは 1 分間隔で無料提供されます。単位: カウント|
|StatusCheckFailed_System|前の 1 分間にインスタンスがシステムステータスチェックを通過したかどうかを報告します。このメトリクスは 0(通過)または 1(失敗)です。デフォルトでは、このメトリクスは 1 分間隔で無料提供されます。単位: カウント|
オブジェクト¶
収集された AWS EC2 オブジェクトのデータ構造です。オブジェクトデータは「インフラストラクチャ - カスタム」で確認できます
{
"measurement": "aws_ec2",
"tags": {
"name" : "i-0d7620xxxxxxx",
"InstanceId" : "i-0d7620xxxxxxx",
"InstanceType" : "c6g.xlarge",
"PlatformDetails": "Linux/UNIX",
"RegionId" : "cn-northwest-1",
"InstanceName" : "test",
"State" : "running",
"StateReason_Code" : "Client.UserInitiatedHibernate",
"AvailabilityZone": "cn-northwest-1",
},
"fields": {
"BlockDeviceMappings": "{デバイスの JSON データ}",
"LaunchTime" : "2021-10-26T07:00:44Z",
"NetworkInterfaces" : "{ネットワークの JSON データ}",
"Placement" : "{アベイラビリティーゾーンの JSON データ}",
"message" : "{インスタンスの JSON データ}"
}
}
注意:
tags、fieldsの中のフィールドは、今後の更新で変更される可能性がありますヒント 1:
tags.nameの値はインスタンス ID であり、一意識別子として使用します ヒント 2:fields.message、fields.NetworkInterfaces、fields.BlockDeviceMappingsは JSON シリアライズ後の文字列です