2016-07-13 16 views
0

私はユーザーが登録できるWebアプリケーションを持っています。
確認メール(そして最終的にはsms)を送信する必要があります。この場合、BeanstalkワーカープロセスまたはSNSでSQSを使用する方が良いでしょうか?確認メール、SQSまたはSNS awsを送信しますか?

2つ以上の利点はありますか?

答えて

0

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トピックを購読させてそのサービスを使用させる必要があります。

0

送信するメールの量によって異なります。電子メールがたくさんある場合は、それらの電子メールをSQSキューに入れて処理することが最善の方法です。その後、ワーカーはキューから消費し、SESを使用して電子メールメッセージをユーザに送信することができます。

送信する電子メールが少なく、パフォーマンスに影響を与えるだけではない場合は、SESを使用してアプリケーションから電子メールを直接送信できます。

この番号にSMSメッセージを送信できるようにするために、ユーザーの電話番号をSNSトピックに登録する必要はありません[1]。したがって、ユーザ登録時にSMSメッセージを送信したいときには、SQSキュープロセッサ(またはアプリケーション)を変更してSMSメッセージをユーザに送信するだけです。

[1] http://docs.aws.amazon.com/sns/latest/dg/SMSMessages.html

関連する問題