CloudWatchLogsのロググループデータをS3へエクスポートする手順を紹介します。AWS側では顧客のCloudWatchLogsデータが見れません。そのため、AWS側でも閲覧できるS3へエクスポートし共有することで効率的にログを連携できます。
S3のバケットを作成する
S3のコンソール画面より「バケットを作成する」を選択します。
「バケット名」に任意の名前を入力します。全世界でユニークとなる名前を入力する必要があります。「リージョン」はアジアパシフィック(東京)を指定してください。入力が終わったら「作成」を選択してください。
これでS3にバケットが作成されます。
バケットのポリシーを設定する
作成されたバケットを選択します。
「アクセス権限」→「バケットポリシー」と選択し、「バケットポリシーエディター」に以下のコードを編集して入力し「保存」します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[js] { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::test-bucket20180611", "Principal": { "Service": "logs.ap-northeast-1.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::test-bucket20180611/random-string/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.ap-northeast-1.amazonaws.com" } } ] } [/js] |
このコードの「test-bucket20180611」を作成したバケット名、「random-string」を任意の文字列(バケット直下の階層名)に変更してください。
CloudWatchLogsのデータをエクスポートする
CloudWatchコンソール画面のログにて、エクスポートしたいロググループをチェックし「アクション」→「データをS3にエクスポート」を選択します。
以下の画面にて各項目を入力し「エクスポートの開始」を選択します。
「開始日・終了日」:この期間に出力されたログをエクスポートします。
「ストリームプレフィックス」:ログストリームを絞り込むための条件を指定します。
「バケット名」:作成したバケットを選択します。
「バケットプレフィックス」:コード画面にて指定した任意の文字列を入力します。
ログの確認
S3のコンソール画面にて、作成したバケット配下に指定した文字列の階層が作成され、そこにファイルが作成されています。上のフォルダアイコンとなっているものがログデータで、下の「aws-logs-write-test」はログを書き込む前に作成されるファイルです。
まとめ
AWSの公式レジュメにも同様の手順が記載されていますので、こちらも参考にしてみてください!