タグ

ブックマーク / blog.manabusakai.com (2)

  • Lambda を使って CloudWatch Logs から S3 へ自動的にエクスポートする

    Lambda のログは自動的に CloudWatch Logs に保存されますが、他と連携する場合は S3 のほうが何かと都合がいいです。 CloudWatch Logs にはログデータを一括で Amazon S3 にエクスポートする機能があります。リアルタイム性が求められずバッチ処理で定期的にエクスポートする用途に向いています(リアルタイム性が求められる場合は、サブスクリプションを使用したログデータのリアルタイム処理が用意されています)。 というわけで Lambda と CloudWatch Events を使って、CloudWatch Logs から S3 へ自動的にエクスポートしてみます。 CloudWatch Logs APICreateExportTask S3 へのエクスポートは CloudWatch Logs APICreateExportTask を使います。

    Lambda を使って CloudWatch Logs から S3 へ自動的にエクスポートする
  • Lambda でアトミックなロック処理を実装する

    Lambda はステートレスで冪等性のある処理に向いていますが、処理によっては排他制御を必要とする場合があります。排他制御にはアトミックなロック処理が欠かせませんが、Lambda のアーキテクチャでは少し工夫が必要です。 というのも、Lambda 関数が実行されるインスタンスは常に再利用されるとは限らないため、ロックの状態は Lambda の外で管理しなければなりません。 DynamoDB をロックマネージャーとして使う いろいろ調べたところ、DynamoDB の条件付き書き込みを使うのが良さそうです。 条件付き書き込みを使用すると、オペレーションが成功するのは、項目の属性が 1 つ以上の想定条件を満たす場合のみです。それ以外の場合は、エラーが返されます。 @imaifactory さんの Qiita 記事「DynamoDB をロックマネージャーとして使う」がとてもわかりやすいです。ロック

    Lambda でアトミックなロック処理を実装する
  • 1