概要
本日はS3とSNSの連携を試してみたいと思います。AWS認定ソリューションアーキテクト-アソシエイトに合格したものの、実際にAWSを触ったことがあまりないため、少しずつですが色々なサービスを使っていこうと思います。
今回の目標
S3とSNSを連携させる
使用するサービス
- S3
- SNS
構成
手順
1.SNSトピックを作成
以下のようにSNSトピックを作成します。
2.サブスクリプションの設定
以下のようにサブスクリプションの設定を行います。
3.S3にバケットを作成
S3に適当にバケットを作成します。今回は前回のエントリーで使用したバケットを使用します。
4.SNSトピックアクセスポリシーの編集
SNSコンソールページに戻り先ほど作成したトピックを選択し、編集を押下しアクセスポリシーを以下のように編集します。(バケットポリシーを編集)
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:ListSubscriptionsByTopic", "SNS:Publish" ], "Resource":"<SNSトピックのARN>" "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:<バケット名>" } } } ] }
5.S3イベント通知の作成
作成したバケットに対してイベント通知の作成を行います。
6.動作確認
バケットにファイルをアップロードするとこのようにメールを受信することができるようになりました。
まとめ
いかがでしたでしょうか。AWS認定試験で頻繁に問われるS3とSNSの連携ですが、実際に行ってみるとすごく簡単にできることがわかりました。やはり自分で手を動かしてみると本を読んで勉強するよりイメージが湧きやすくなりますね。次回は Lambda に挑戦してみようと思います。