私はユーザーが登録できるWebアプリケーションを持っています。
確認メール(そして最終的にはsms)を送信する必要があります。この場合、BeanstalkワーカープロセスまたはSNSでSQSを使用する方が良いでしょうか?確認メール、SQSまたはSNS awsを送信しますか?
2つ以上の利点はありますか?
私はユーザーが登録できるWebアプリケーションを持っています。
確認メール(そして最終的にはsms)を送信する必要があります。この場合、BeanstalkワーカープロセスまたはSNSでSQSを使用する方が良いでしょうか?確認メール、SQSまたはSNS awsを送信しますか?
2つ以上の利点はありますか?
SNSとSESは、時にはユースケースを混乱させる可能性があります。名前のように、SNSは電子メール、プッシュ通知、SMSなどの通知用で、SESは電子メール用です。
SNSの場合、ユーザーはトピックを購読する必要があり、トピックが更新されたときにこのトピックから更新が届きます。したがって、SNSでは、彼はトピックからの電子メールを受信するために組織購読を確認する必要があります。 SESでは、ユーザーは取引のケースやプロモーションのメールを受け取ることができます。
AWS Lambdaを使用して、登録時にSESの確認メールをユーザーに送信することをお勧めします。
ユーザーに登録を求めずにSESを使用して電子メールを送信するには、まず使用制限を増やすためにAWSへのサポートチケットを作成する必要があります。その後、送信者の電子メールを登録するだけで済みます。その後
、AWSラムダ関数を作成し、それはSESでメールを送信することができますし、ここでのNode.jsとSESとラムダを使用して電子メールを送信するためのサンプルコードで役割を追加します。
var AWS = require('aws-sdk');
exports.handler = (event, context, callback) => {
var ses = new AWS.SES({
apiVersion: '2010-12-01'
});
var email = event['email'];
var email_text = '<body><h5>Hello, World!</h5></body>';
ses.sendEmail({
Source: 'My Email <[email protected]>',
Destination: {
ToAddresses: [email]
},
Message: {
Body: {
Html: {
Data: email_text
},
Text: {
Data: email_text
}
},
Subject: {
Data: 'Confirmation'
}
}
}, function (err, data) {
if (err) {
callback(null, err);
} else {
callback(null, 'ok');
}
});
}
の場合後で何らかの更新のためにSNSを送信する必要がある場合、ユーザーにSNSトピックを購読させてそのサービスを使用させる必要があります。
送信するメールの量によって異なります。電子メールがたくさんある場合は、それらの電子メールをSQSキューに入れて処理することが最善の方法です。その後、ワーカーはキューから消費し、SESを使用して電子メールメッセージをユーザに送信することができます。
送信する電子メールが少なく、パフォーマンスに影響を与えるだけではない場合は、SESを使用してアプリケーションから電子メールを直接送信できます。
この番号にSMSメッセージを送信できるようにするために、ユーザーの電話番号をSNSトピックに登録する必要はありません[1]。したがって、ユーザ登録時にSMSメッセージを送信したいときには、SQSキュープロセッサ(またはアプリケーション)を変更してSMSメッセージをユーザに送信するだけです。
[1] http://docs.aws.amazon.com/sns/latest/dg/SMSMessages.html