本記事では、AWS のマネージドサービスを組み合わせて、S3 バケット間のファイルコピーと処理を自動化するシステムの構築方法について説明します。
システム概要
このシステムは以下の流れでファイルの自動処理を行います:
- Aバケットにファイルがアップロードされる
- EventBridgeが定期的(1分間隔)にLambda関数をトリガー
- Lambda関数がAバケットからBバケットにファイルをコピー
- Bバケットでのファイル作成イベントがSQSにメッセージを送信
- SQSが別のLambda関数をトリガーしてファイル処理を実行
システム構成
以下のフロー図は、システム全体のアーキテクチャを示しています:
各コンポーネントの役割
- EventBridge(定期実行)
役割: 1分間隔でLambda関数を定期実行
設定:
rate(1 minutes)
スケジュール式を使用
メリット: 確実な定期実行とサーバーレス運用 - Lambda関数(ファイルコピー)
役割: AバケットからBバケットへのファイルコピー
処理内容:
Aバケット内の未処理ファイルを検索
ファイルをBバケットにコピー
処理済みフラグの設定 - SQS(メッセージキュー)
役割: Bバケットでのファイル作成イベントを受信し、Lambda関数をトリガー
メリット:
非同期処理によるスケーラビリティ
エラー時の再試行機能
デッドレターキューによる障害対応 - Lambda関数(ファイル処理)
役割: Bバケット内のファイルに対する実際の処理
処理内容:
ファイルの読み込み
データ変換・加工
結果の保存または外部システムへの連携