CloudWatchLogsのロググループデータをS3へエクスポートする手順を紹介します。AWS側では顧客のCloudWatchLogsデータが見れません。そのため、AWS側でも閲覧できるS3へエクスポートし共有することで効率的にログを連携できます。

S3のバケットを作成する

S3のコンソール画面より「バケットを作成する」を選択します。

「バケット名」に任意の名前を入力します。全世界でユニークとなる名前を入力する必要があります。「リージョン」はアジアパシフィック(東京)を指定してください。入力が終わったら「作成」を選択してください。

これでS3にバケットが作成されます。

バケットのポリシーを設定する

作成されたバケットを選択します。

「アクセス権限」→「バケットポリシー」と選択し、「バケットポリシーエディター」に以下のコードを編集して入力し「保存」します。

このコードの「test-bucket20180611」を作成したバケット名、「random-string」を任意の文字列(バケット直下の階層名)に変更してください。


CloudWatchLogsのデータをエクスポートする

CloudWatchコンソール画面のログにて、エクスポートしたいロググループをチェックし「アクション」→「データをS3にエクスポート」を選択します。

以下の画面にて各項目を入力し「エクスポートの開始」を選択します。

「開始日・終了日」:この期間に出力されたログをエクスポートします。

「ストリームプレフィックス」:ログストリームを絞り込むための条件を指定します。

「バケット名」:作成したバケットを選択します。

「バケットプレフィックス」:コード画面にて指定した任意の文字列を入力します。

ログの確認

S3のコンソール画面にて、作成したバケット配下に指定した文字列の階層が作成され、そこにファイルが作成されています。上のフォルダアイコンとなっているものがログデータで、下の「aws-logs-write-test」はログを書き込む前に作成されるファイルです。

まとめ

AWSの公式レジュメにも同様の手順が記載されていますので、こちらも参考にしてみてください!

よろしければTwitterのフォローをお願いします