まえがき

cloudpackサポートの木村です。

弊社cloudpackサポートでは、お客様よりいただいたお問い合わせに関する調査のために
CloudWatch Logsに保管されたログファイルの提供をお客様へ依頼することがございます。

本記事では、CloudWatch Logsに保管されたログファイルのダウンロード方法のひとつとして、
S3へエクスポートする方法をご紹介いたします。

なお、CloudWatch Logsに保管されたログファイルをS3へエクスポートする方法につきましては、
AWS公式ドキュメントにも記載がございます。

コンソールを使用してログデータを Amazon S3 にエクスポートする

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/S3ExportTasksConsole.html

本記事はこちらのドキュメントに記載の内容を噛み砕いた内容となります。

手順

ステップ1 IAMユーザーのアクセス権限確認

本記事に記載の手順を実施するIAMユーザーにS3およびCloudWatch Logsへのフルアクセス権限が付与されているか確認します。
付与されていない場合は、下記のAWS管理ポリシーを対象IAMユーザーへアタッチします。

・AmazonS3FullAccess
・CloudWatchLogsFullAccess

1.ポリシーが無い場合でアクセス権限を追加する場合は上記画像の[ アクセス権限の追加 ]を押下。

2.[ 既存のポリシーを直接アタッチ ]を選択後、ポリシーのフィルタで検索→チェックして[ 次のステップ:確認 ]を押下。

3.[ アクセス権限の追加 ]押下。

ステップ2 S3バケット作成

今回はエクスポート用に新規バケットを作成する手順を記載します。

バケット作成するために下記を決めてください。

・バケット名=[ ※本記事では「 iretmedia-test-log 」とします ]
・AWSリージョン=[エクスポートするCloudWatch Logsがあるリージョンを指定※本記事では「 ap-northeast-1 」とします ]
・他はデフォルトのままで構いません。

1.[ バケットを作成 ] を押下。

2.バケット名、AWSリージョンを設定後、最下部の[ バケットを作成 ]を押下。

ステップ3 S3バケットポリシー修正

1.作成したバケットの[ アクセス許可 ]タブを開いて[ 編集 ]を押下。

2.下記「 jsonポリシードキュメント例 」より、バケット名とリージョン名の部分を変更して「バケットポリシー」欄にコピーペーストしてください。
※バケット名・リージョン名とも2箇所ずつ記載箇所があります

【jsonポリシードキュメント例】

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.《リージョン名》.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::《バケット名》"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.《リージョン名》.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::《バケット名》/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}

以下、実際の記載例となります。
バケット名:iretmedia-test-log
リージョン:ap-northeast-1

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:GetBucketAcl",
"Resource": "arn:aws:s3:::iretmedia-test-log"
},
{
"Effect": "Allow",
"Principal": {
"Service": "logs.ap-northeast-1.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::iretmedia-test-log/*",
"Condition": {
"StringEquals": {
"s3:x-amz-acl": "bucket-owner-full-control"
}
}
}
]
}

※注意点:ポリシー欄にデフォルトで 空白 があります。こちらを消去して貼り付けてください

3.上記入力後[ 変更の保存 ]を押下。

ステップ4 CloudWatch Logs設定

1.エクスポートしたいロググループにチェックします。

2.[ アクション ]→[ データをAmazon S3にエクスポート ]押下。

3.下記を入力してください。

・取得したいデータの開始と終了を入力してください ( UTC時刻なので注意してください )
・作成したS3バケット名を入力( ※例として「 iretmedia-test-log 」を入力 )
・S3バケットプレフィックス-オプション = [ 作成したS3バケット名の配下に作成されるオブジェクトフォルダ※この記事では「 Lambda-log 」とします ]

4.入力後 [ エクスポート ] を押下。

下図がエクスポート後の画面になります。

  • 「 aws-logs-write-test 」はデフォルトで自動作成されます。
  • 「 82b0faf0-ced3-4fc4-b6d4-33d8805ddb31/ 」のような自動生成されるオブジェクトフォルダが作成されます。

・その作成されたオブジェクトフォルダ内に複数のフォルダが作成されています。

・複数のフォルダは指定した日付のログストリーム毎に作成されます。

5.自PCにダウンロードする場合はフォルダ内のファイルを選択して [ ダウンロード ]を押下。

以上になります。
ご覧いただきありがとうございました。


アイレットなら、AWS で稼働するサーバーを対象とした監視・運用・保守における煩わしい作業をすべて一括して対応し、経験豊富なプロフェッショナルが最適なシステム環境を実現いたします。AWS プレミアティアサービスパートナーであるアイレットに、ぜひお任せください。

AWS 運用・保守サービスページ

その他のサービスについてのお問合せ、お見積り依頼は下記フォームよりお気軽にご相談ください。
https://www.iret.co.jp/contact/service/form/