1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon S3 バケットの変更を Amazon SNS でメール通知する

Last updated at Posted at 2024-09-16

1. はじめに

Amazon S3 バケットにファイルが追加されたり更新されたりした際の通知を Amazon SNS で通知させる際の手順をまとめます。

image.png

2. 実装手順

シンプルで待ち時間もないので、慣れると 10-15 分程度で作業が完了します。

(1) Amazon SNS でトピックとサブスクリプションを作成
(2) 登録された宛先 E メールでサブスクライブ登録
(3) Amazon SNS でアクセスポリシーの設定
(4) Amazon S3 でイベント通知の設定
(5) E メール通知の確認

変更を通知したい Amazon S3 バケットはすでに作成されているものとします。

2-1. Amazon SNS でトピックの作成

新規にトピックを作成します。

image.png

今回は特に要件がないので、タイプはスタンダードを選択しました。

image.png

次はサブスクリプションを作成します。

image.png

「トピック ARN」は先ほど作成したものを選択します。

変更の通知先は E メールを選択しました。
他にも SMS や、イベント駆動させたい場合は AWS Lambda なども選択できます。

image.png

2-2. 登録された宛先 E メールでサブスクライブ登録

初回は宛先のメールアドレスにサブスクリプションの確認依頼が届くので、「Confirm Subscription」を実施します。

image.png

サブスクリプションが完了したことを確認します。

image.png

Amazon SNS のコンソールでも「確認済み」と表示されていることを確認します。

image.png

2-3. Amazon SNS でアクセスポリシーの設定

Amazon SNS トピックのアクセスポリシーを編集します。

image.png

Amazon SNS トピックのアクセスポリシー (参考例)
Amazon SNS アクセスポリシー
{
  "Version": "2012-10-17",
  "Id": "<任意の ID>",
  "Statement": [
    {
      "Sid": "<任意のポリシー名>",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SNS:Publish",
      "Resource": "<作成した Amazon SNS トピックの ARN>",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "arn:aws:s3:::<Amazon S3 バケット名>"
        }
      }
    }
  ]
}

(参考) Amazon S3 ユーザーガイド - Amazon SNS トピックを作成する

2-4. Amazon S3 でイベント通知の設定

対象の Amazon S3 バケットの「プロパティ」から、イベント通知を作成します。

image.png

今回はオブジェクト作成に関連する変更の際にイベント通知する設定にしています。
あわせて、オブジェクト削除などの際にイベント通知するような設定も追加できます。

image.png

イベントの通知先として、先ほど作成した SNS トピックを選択します。
もちろん他の活用例として AWS Lambda や Amazon SQS に通知させてイベント駆動のジョブを実行させることもできます。

image.png

S3 のイベント通知が作成されたことを確認します。

image.png

2-5. E メール通知の確認

試しに対象の S3 バケットにファイルを追加してみると、早速 E メールで通知が届きました。

「file03.txt.gz」というファイルが追加されたことがわかります。

image.png

3. まとめ

Amazon S3 バケットにファイルが追加されたり更新されたりした際の通知を Amazon SNS で通知させる際の手順をまとめました。

Amazon S3 + Amazon SNS という超基本的な構成ですが、シンプルなだけに色々と応用が効きそうです。

4. 関連ブログ

前段として、異なる AWS アカウント間の S3 バケットを手動で同期させる手法について紹介しています。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?