Tech Sketch Bucket of Technical Chips by TIS Inc.

全リージョンのCloudTrailログをAmazon Elasticsearch Serviceに集約・可視化する

Pocket

今回は、Amazon Elasticsearch Service(Amazon ES)と、 昨年12月に追加されたCloudTrailの全リージョン有効化機能を組み合わせ、 全リージョンのログをAmazon ESに簡単に集約してみた様子をご紹介します。

はじめに

AWSではCloudTrailを用いることで操作履歴を全てログに記録することができます。 さらに昨年10月にはAmazon Elasticsearch Service(Amazon ES)が開始され、 CloudWatch LogsとLambdaを通じてCloudTrailとAmazon ESを連携させる機能も提供されたことで、容易にログをElasticsearch上で分析できるようになりました。

しかしこの連携機能は、Management Consoleの画面からは同一リージョン内に存在するAmazon ESしか選択できませんでした。 CloudTrailをリージョン単位で設定しているとログは各リージョンのCloudWatch Logsに個別に記録されるため、 1つのリージョンのログを集約するのは容易でしたが、全リージョン分のログを一つのAmazon ESに集約するには一手間必要でした。

そこに、昨年12月にCloudTrailを全リージョンで一括で有効化する機能が追加されました。 新たにリージョンが増えても自動的に適用できるようになったという面が注目される新機能ですが、 副次的な効果として、特定のリージョンのCloudWatch Logsに全てのリージョン分のログが記録されるようになりました。 つまり、異なるリージョンの問題に悩むことなく、非常に簡単に一つのAmazon ESに全リージョンのログを集約できるようになったのです。

今回はこの機能を使ってAmazon ESに全リージョン分のログを集約・可視化してみた様子をご紹介します。

全リージョン用のTrailの作成

まずはじめに行うことは、全リージョン用のTrailの作成です。 この機能の実装に合わせて1リージョン辺りに作成できるTrailの数も増加しているので、既存のTrailがある場合もすぐに削除する必要はありません。 並行稼動させると若干の追加費用が生じますが、確認が取れるまで既存のTrailも並行稼動させておくのが良いでしょう。

Create Trailの画面で「Apply trail to all regions」の設定をYesにしておけば全リージョンにCloudTrailによるログの記録が適用されます。

create_trail

この全リージョン用のTrailを作成する際の注意点として、 必ずAmazon ESを稼動させる予定のリージョンを選択しておく必要があります。 全リージョン用のTrailは、作成時に選択されていたリージョンに全てのログを集約します。 間違って別のリージョンで作成してしまうと、冒頭で述べた他リージョンのログを連携できないという問題に戻ってしまいます。 CloudTrailの一覧画面はどのリージョンを選択していても全リージョン分のTrailが表示されるので 違うリージョンを選択していても気付きにくいのですが、必ず意図したリージョンで作成していることを確認しましょう。

CloudTrailとAmazon ESの連携

ここから先は従来のCloudTrailとAmazon ESの連携手順と変わりません。 手順は以下のクラスメソッドさんやcloudpackさんの記事がよくまとまっていてわかりやすいと思います。 リージョンは先ほどTrailを作成したリージョンを選択して進めましょう。

上記の手順を行うと、晴れて全リージョン分のCloudTrailログをAmazon ES上で確認することが可能になります。 Management Consoleから操作するだけなので非常に簡単ですね。

集約後の画面の一例

検証用のAWSアカウントのログを集約してみた様子がこちらです。 無事に全リージョン分のログを一箇所で確認することができるようになりました。

amazon_es_sample

まとめ

Amazon Elasticsearch Serviceを使えば簡単にAWSのログを可視化することができます。 新たに追加された全リージョン用のTrailにより、全リージョン分のログを集めることも非常に簡単になりました。 ログは有事の際だけでなく、利用料の削減等に向けた分析などにも非常に有用です。 ぜひElasticsearchを使って分析してみてください。

エンジニア採用中!私たちと一緒に働いてみませんか?