CloudWatch Contributor Insightsを使ってみる

記事タイトルとURLをコピーする

こんにちは。島村です。

奄美地方は梅雨が明けたようですね
例年7月中頃までは梅雨が続いていたイメージがあり、想像よりも今年は梅雨明けが早そうです。

さて、今回はCloudWatch Contributor Insightsを使ってみようと思います。
私自身、CloudWatch Contributor Insightsはあまり馴染みのない機能なので、使い所から設定方法まで、当記事でまとめていければと思います。

概要

CloudWatch Contributor InsightsはCloudWatch Logsから取得した時系列データから上位の要素をリアルタイム分析を簡素できる機能です。

CloudWatch Logsにエクスポートしたシステムやアプリケーションログからパフォーマンスのボトルネックや、使用されているリソースなどを一目で確認できるダッシュボードで 確認することができます。

実際にVPC Flow Logsで確認した際のダッシュボードは以下の通りです。

CloudWatch Contributor Insightsでは、CloudWatch LogsやDynamo DBのテーブル、またはグローバルセカンダリインデックスを対象に設定を行うことができます。
CloudWatch Logsでは、アプリケーションのアクセスログなどからエラーが多いURLを特定したり、VPC Flow Logsで意図しないIPアドレスからのアクセスを特定したりすることができます。

料金

Contributor Insightsの利用料金を確認していきます。
CloudWatchとDynamoDBで少し料金が違いますね。

CloudWatch Logs

課金対象 料金
Contributor Insights ルール 1ルールに対して、月ごと 0.50USD
一致したログイベント 月に一致する 100 万件のログイベントごと 0.03USD

DynamoDB

課金対象 料金
Contributor Insights ルール 1ルールに対して、月ごと 0.50USD
DynamoDB イベント 月に一致する 100 万件のログイベントごと 0.034USD

無料利用枠

以下の通り、無料枠が用意されています。
お試しで1つのルールを作成するだけであれば、ログエントリが少なければ費用はほぼゼロで利用できるかと思います。

・1 か月あたり 1 回の Contributor Insights ルール
・1 か月あたりのルールに一致する最初の 100 万回のログイベント

マルチアカウント対応

CloudWatch Contributor Insightsはマルチアカウント対応(Organizations)に対応しています。
監視アカウントのような専用のアカウントを用意しておくことで、メトリクスやロググループ、X-Rayトレースを共有することができます。
監視専用アカウントがある場合は、複数のアカウントのロググループに対してCloudWatch Contributor Insightsを使用することが可能です。

データ保持期間

Contributor Insightsは24時間枠となりますが、15日前まで保持されます。
なので、CloudWatch Logsの失効期間が1日だったとしても、Contributor Insightsは15日前まで確認することが可能です。

設定してみる

今回はVPC Flow Logsを使用して、あらかじめAWSが用意してあるプリセットルールを使用して設定を行なっていきます。

CloudWatch コンソールへ移動します。左メニューにある[インサイト]欄から[Contributor Insights]を選択します。
画面が遷移したら、[ルールを作成]を選択し、設定に進んでいきます。

ロググループの選択

ルールの定義を行なっていきます。
ロググループを選択します。上限は20グループとなります。
直接指定することもできますし、プレフィックスを指定することでまとめて選択することもできます。

ルールタイプの選択

ルールタイプを選択していきます。
今回はあらかじめ用意されているサンプルルールを使用します。

サンプルルールが用意されている次の通りです。

・Amazon API Gateway ログ
・Amazon Route 53 パブリック DNS クエリログ
・Amazon Route 53 Resolver クエリログ
・CloudWatch Container Insights ログ
・VPC フローログ


サンプルルールを選択すると、その後入力する項目は埋められます。
カスタムルールの場合は自身で項目を入力していく必要があります。


ログの形式

JSONもしくはCLF(Common Log Format)が選択できます。

コントリビューション

ログから取得する要素をログフィールド(キー)から指定できます。
最大4つまで選ぶことが可能です。
コントリビューションで指定した値がTOP Nの要素として表示されます

もし、ログフィールドの値が不明の場合は、確認することができます。
CloudWatch Insightを選択し、ロググループを指定することで検出されたフィールド欄で、ある程度ログフィールドを確認することができます。
全て表示されるわけではなさそうなので、気をつけましょう。

VPC Flow Logsのサンプルルールで指定した場合は以下のログフィールドが選択されていました。

フィルター

フィルターもコントリビューションと同様に4つまで指定することができます。
複数指定した場合はAND条件となる点に気をつけましょう。

集計

合計か、カウントを選択することができます。 カウントは指定したコントリビューション、フィルターにマッチしたログイベントがカウントされます。
アクセス数などを確認したい場合に選択できそうですね。

一方、合計は指定したログフィールドの値の合計を確認できます。
データ量などはこちら方が判断できそうと考えます。

設定する

全ての要素を設定し終えたら、ルール名を指定し、プレビューを確認して作成します。

ダッシュボードに表示されるまでに5分程度時間がかかりますので、しばらく時間が経ってから確認してみましょう

ダッシュボードを確認してみる

しばらくすると、VPC Flow Logsのログからアクセス数が多いIPアドレスが表示されました。
TOP25,TOP50,TOP100まで要素を表示することができます。

CloudWatchダッシュボードにもエクスポートできますね。
また、ファイル(CSV形式)でエクスポート、クリップボードにエクスポートも可能です。
一時的にルールも無効化にできるので、使用しないときは無効化とすることでコストも抑えることができそうです。

最後に

今回はCloudWatch Contributor Insightsをサンプルルールで使用してみました。
使用できるフィルターや条件は4つまでしかかけられないものの、ルールは複数作れるので 確認したい内容に合わせて複数のルールを用意しておくことで、すぐに確認できますね。

参考

docs.aws.amazon.com

docs.aws.amazon.com

docs.aws.amazon.com

島村 輝 (Shimamura Hikaru) 記事一覧はコチラ

最近ECS周りをキャッチアップ中。趣味は車・バイク全般。
一応、AWS12冠です。