臼田佳祐(129)28この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。こんにちは、臼田です。AthenaでS3に格納されているデータを分析できるようになってから久しいですが、CloudFrontのログを直接参照しようとすると少し問題になります。CloudFrontのログはディストリビューション毎に一括して保存されていて、Athenaはそのディストリビューションのログのレンジ(日時)を絞ってクエリできません。その為、CloudFrontのログを「年/月/日」のようにプレフィックスを変更することで、Athenaで利用しやすい状態となります。この方法については以前下記ブログで紹介されていたのですが、ログが保存されるたびに実行しなくても日時バッチ的な方法でもいいかなーといったことや、エラーによる処理漏れとかがあっても簡単に再試行出来るようにと思い別のスクリプトを作成しました。LambdaでCloudFrontのログをリネームしてみたコンセプト今回のスクリプトのコンセプトは以下のとおりです。基本的には上記に上げたブログを参考にしてください。違いがある部分についてここで説明していきます。LambdaLambda用のコードは下記のとおりです。Python3.6で実装しています。{})環境変数でバケット名とプレフィックスを指定します。これは、移動先に同じバケットを指定することもできますし、別のバケットを指定することもできます。今回は、CloudFrontで生成されるプレフィックスから、archive/へリネーム(移動)するように設定しています。リネームするパターンですが、複数パターン用意しました。'target/yyyy/mm/dd/''target/yyyy/mm/dd/hh/''target/yyyy-mm-dd/''target/yyyy-mm-dd-hh/'この辺は好みになると思いますが、大体は「'target/yyyy/mm/dd/'」で大丈夫だと思います。IAMロールboto3にてバケットを参照しているため、参照元のブログの設定に追加してActionに"s3:ListBucket"、Resourceに"arn:aws:s3:::バケット名"("/*"を含まない)を追加する必要があります。]}トリガーLambdaのトリガーはコンセプト通りなんでも大丈夫です。cronでデイリーで実行するなどがいいと思います。まとめイベントドリブンで引数を取って実行するのもいいですが、エラー設計とか、エラー時の対処が面倒になることもあります。冪等性を意識して実装しておくことも一つの方法としていいかと思います。1,296,035AWSとセキュリティを頑張る。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治253re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹409こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。濱田孝治253re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。