AWSのITコストを削減 Simpline

選ばれ続けること

 

エンジニアブログ

ホーム - エンジニアブログ - [AWS]S3アクセスログでのプレフィックス指定

[AWS]S3アクセスログでのプレフィックス指定

2019.03.25

こんにちは。middleです。


最近ようやくあったかくなってきて、寒がりには嬉しいかぎりです。


 


★今回のお題


S3サーバーアクセスのログ記録〜プレフィックス指定〜


みなさまS3バケットのアクセスログは有効にされてますか?


これのこと↓↓

Amazon S3 サーバーアクセスのログ記録 - Amazon Simple Storage Service


 


※実際S3はフォルダとかディレクトリとかないのですが、今回はあえてそういう表現をします。


※ちょっとつらすぎてキャプチャとかとってないので、また文字ばかりです。


 


アクセスログを有効にする際プレフィックス指定ができます。

なのでログ保管先バケット「LogBucket」内フォルダ「AccessLog」にログを保管したいと思っています。


 


↓↓↓


 


各ログ名は「YYYY-mm-DD-HH-MM-SS-ランダムな値」でして、指定することでここにプレフィックスをつけられます。

今回は「AccessLog/YYYY-mm-DD-HH-MM-SS-ランダムな値」というようにプレフィックスをつけたいわけですね。

ということでプレフィックスを「AccessLog」と指定してログを有効化しました。(CloudFormationのテンプレートにそう書きました)


 


↓↓↓


 


結果


ログ保管先バケット「LogBucket」直下にログが保管されてしまいました……。

………。

各ログ名は「AccessLogYYYY-mm-DD-HH-MM-SS-ランダムな値」となっています。


スラッシュがないよ〜/(^o^)\


 


↓↓↓


 


プレフィックスを「AccessLog/」と指定しなおすことで、想定通り、フォルダ「AccessLog」にログが格納されました。


 


こんな感じ(修正済み)↓↓↓



[ec2-user@Test01 ~]$ aws s3 ls s3://LogBucket/

            PRE AccessLog/

            PRE piyo/

            PRE piyopiyo/



 


今回アクセスログ有効化したS3バケットが、これがまたログが頻発するバケットだった&修正したのが3ヶ月以上たった後でして……。

バケット直下にログが大量にはかれ、listした時とんでもないことになりました。(Ctrl+C連打……)


 


★おまけ


とはいえ大量のログをそのままにしておくのは収まりが悪いので、フォルダ「AccessLog」に移動させます。


・マネジメントコンソール

→移動と言うか、「切り取り」→「貼り付け」をします。

画面に表示できる数(=一気に切り取りできる数)は300です。


今回対象ログが50万件くらいだったので、早々に挫折しました。


ちなみにもしGlacierに移行済みだった場合、復元しても切り取りや貼り付けができないです。

CLIを使わないでどうにかしようとするならば、一度ダウンロードして、それを正しいフォルダにアップロードする、という方式になります。

しかしマネジメントコンソールからは一括ダウンロードができないのですよね……。CLI使えない環境だとわりときついものがあります。


 


・CLI

→「aws s3 mv」を使います。

ワイルドカードは以下のように指定します。


↓↓↓



aws s3 mv 移動元 移動先 --recursive --exclude "*" --include "ファイル名の共通する部分*"



 


今回はこんな感じ↓↓↓



aws s3 ls s3://LogBucket/ s3://LogBucket/AccessLog--recursive --exclude "*" --include "AccessLog*"



 


いやしかしいろいろうっかりが多すぎて、ログ移動も一苦労でございました。

もう二度とスラッシュ様を忘れはしないと思います。


 


お疲れ様でした :)

1 Star 0 いいねしてね!
Loading...