ストレージ

S3 イベント通知とは?Lambda / SQS / SNS 連携パターン

S3 イベント通知は オブジェクト操作をトリガーに他サービスを起動する仕組み。`PutObject` で Lambda 起動、`DeleteObject` で監査ログ送信、など、サーバーレス連携の基本機能。EventBridge 統合により高度なフィルタリング・ルーティング...

S3 オブジェクト操作(PUT/DELETE 等)を Lambda / SQS / SNS / EventBridge に通知する機能。


1. 概要(端的に)

S3 イベント通知は オブジェクト操作をトリガーに他サービスを起動する仕組みPutObject で Lambda 起動、DeleteObject で監査ログ送信、など、サーバーレス連携の基本機能。EventBridge 統合により高度なフィルタリング・ルーティングも可能。


2. 何ができるか

  • Lambda 起動:画像アップロード時の自動リサイズ等
  • SQS 通知:非同期処理キュー投入
  • SNS 通知:複数購読者への配信
  • EventBridge 配信:高度なルーティング
  • イベントタイプフィルタ:PUT のみ・DELETE のみ等
  • プレフィックス・サフィックス フィルタuploads/*.jpg のみ等

主なイベントタイプ

  • s3:ObjectCreated:*(PUT / POST / COPY / マルチパート完了)
  • s3:ObjectRemoved:*(DELETE / 削除マーカー追加)
  • s3:ObjectRestore:*(Glacier 復元)
  • s3:Replication:*(レプリケーション)
  • s3:ObjectTagging:*(タグ操作)
  • s3:LifecycleExpiration:*(ライフサイクル削除)

3. 特徴

観点特徴
追加料金S3 イベント通知自体は無料(受信先サービス料金のみ)
配信先Lambda / SQS / SNS / EventBridge
フィルタイベントタイプ + プレフィックス + サフィックス
保証少なくとも 1 回(重複あり得る)
配信遅延通常数秒以内
EventBridge 統合より柔軟なフィルタ・ルーティング

Lambda / SQS / SNS / EventBridge の使い分け

配信先用途
Lambdaリアルタイムで関数実行(画像処理等)
SQS大量イベントを非同期キュー処理
SNS複数サブスクライバーへ Fan-out
EventBridge高度なルーティング・他 AWS アカウント連携

4. 仕組み

S3 はオブジェクト操作を検知すると、設定された通知先に非同期でイベントを送信する。

動作の流れ

  1. バケットでイベント通知設定(マネコン or API)
  2. クライアントが PutObject 等を実行
  3. S3 がイベントを生成(JSON フォーマット)
  4. 設定された宛先(Lambda 等)へ配信
  5. 受信先サービスが処理実行

イベント JSON 例

{
  "Records": [{
    "eventVersion": "2.1",
    "eventSource": "aws:s3",
    "awsRegion": "ap-northeast-1",
    "eventTime": "2026-05-06T12:00:00.000Z",
    "eventName": "ObjectCreated:Put",
    "s3": {
      "bucket": {"name": "my-bucket"},
      "object": {"key": "uploads/image.jpg", "size": 1024}
    }
  }]
}

注意点

  • 同一イベントタイプ・同一プレフィックスの宛先は 1 つだけ(複数宛先は EventBridge 経由)
  • 少なくとも 1 回配信:重複処理対策が必要
  • 順序保証なし:順序依存の処理は要注意

5. ユースケース

ユースケース 1:画像アップロード → リサイズ

S3 PUT → Lambda → リサイズ → 別バケット保存。

ユースケース 2:CSV アップロード → DB 投入

S3 PUT → Lambda → バリデーション → DynamoDB / RDS 書き込み。

ユースケース 3:監査ログ

全削除イベントを SNS → Slack / Email 通知。

ユースケース 4:動画変換

動画アップロード → Lambda → MediaConvert ジョブ起動 → 別バケットに変換結果。

ユースケース 5:ETL パイプライン

ログ ファイル PUT → SQS → 処理ワーカー(複数並列)。


6. 関連用語

  • S3 — イベントの発生源
  • Lambda — 主要な配信先
  • SQS / SNS — メッセージング統合
  • EventBridge — 高度なイベント連携

7. 関連サイト

AWS 公式

参考


🎓 試験での出題傾向

試験重要度主な出題パターン
CLFサーバーレス連携の概念
SAAイベント駆動アーキテクチャ設計
DVALambda トリガー設定、API
SOAイベント運用・モニタリング