SlideShare a Scribd company logo
1 of 11
AWSでメール非
同期処理
前提
1-1.シナリオ
• AWS-VPC構成
• WEBシステムで『ユーザーリクエストを元
にしてメール送信処理』が走る
• 『ユーザーリクエストは即時返答』し、
『メール送信は後回し』
• メールはSESを使う
• リバウンド等のメール送信エラーについ
て、何らかの処理を行う
方針
2-1.AWS-Native構成
EC2-Frontからメール送信
命令が登録される(①)
②-2

②-1
EC2 - Front

SQSをポーリングして、
キューが登録されたら処
理開始(②-1)

EC2 - Worker

デキューされた処理を元
に、SESにメール送信(②2)

SESエラーが発生すると、
SNS Notificationを元にEC2Workerに処理依頼(③-1)

①
③-2
SQS

③-1
SES

EC2-WorkerはSQSに再処理
用のエンキュー(③-2)
2-1.所感
• SQS/SESをそのまま使うので運用は楽
• 開発~本番全てをAWSで完結する必要有
• SQS in/outが遅いため、パフォーマンスが
出しにくい
• SNS Topics⇒SQSにすれば多少は改善…?
• SQSメッセージサイズが小さいため、
キューで処理したい内容は別ストレージ
に保存
2-2.(多分)最速構成
②-1

EC2 - Front

③-2

EC2-Frontからメール送信
命令が登録される(①)
EC2 - Worker
②-2

③-1
①

EC2 - Redis

SES
N-Virginia Region

EC2-Workerが北米⇒日本に
定期的ポーリングでEC2Redisを監視(②-1)
デキューされた処理を元
に、SESにメール送信(②2)

SESエラーが発生すると、
SNS Notificationを元にEC2Workerに処理依頼(③-1)
EC2-WorkerはEC2-Redisに再
処理用のエンキュー(③-2)
2-2.所感
• N.Virginia EC2(Worker)からAsia Pacific
EC2(Redis) はほぼリアルタイム
• N.Virginia EC2 ⇒ SESもほぼリアルタイム
• VPC内のEC2 Redisへアクセスするため、
ELBを使ってNAT変換
• EC2-Redisが単一障害点
• N.VirginiaにEC2が存在するため、そちらの
フォローが必要(運用・監視等)
2-3.妥協構成
②-2

EC2-Workerが定期的ポーリ
ングでElastiCacheを監視
(②-1)

EC2 - Front

EC2 - Worker
①

③-1

デキューされた処理を元
に、SESにメール送信(②2)

②-1
③-2

ElastiCache

EC2-Frontからメール送信
命令が登録される(①)

SES
N-Virginia Region

SESエラーが発生すると、
SNS Notificationを元にEC2Workerに処理依頼(③-1)
EC2-WorkerはElastiCacheに
再処理用のエンキュー(③2)
2-3.所感
• EC2-Workerはなんでもいいので、リソース
があまっているところを探せば同居も可
能
• シンプル
• ElastiCacheはリージョンを超えられない
• EC2-Worker⇒SESの処理が遅い(1通4秒と
か)
• VPC内で完結
• リアルタイム性を求められないならアリ
以上

More Related Content

What's hot

AWS サービスアップデートまとめ 2013年10月
AWS サービスアップデートまとめ 2013年10月AWS サービスアップデートまとめ 2013年10月
AWS サービスアップデートまとめ 2013年10月
Yasuhiro Horiuchi
 
AWS サービスアップデートまとめ 2013年11月
AWS サービスアップデートまとめ 2013年11月AWS サービスアップデートまとめ 2013年11月
AWS サービスアップデートまとめ 2013年11月
Yasuhiro Horiuchi
 
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
SORACOM, INC
 
cloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたことcloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたこと
Hiroyasu Suzuki
 
AWS サービスアップデートまとめ 2014年2月
AWS サービスアップデートまとめ 2014年2月AWS サービスアップデートまとめ 2014年2月
AWS サービスアップデートまとめ 2014年2月
Yasuhiro Horiuchi
 
AWSマイスターシリーズ(Elastic Beanstalk)
AWSマイスターシリーズ(Elastic Beanstalk)AWSマイスターシリーズ(Elastic Beanstalk)
AWSマイスターシリーズ(Elastic Beanstalk)
Akio Katayama
 
AWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップAWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップ
Hiroyasu Suzuki
 
AWS サービスアップデートまとめ 2013年7月
AWS サービスアップデートまとめ 2013年7月AWS サービスアップデートまとめ 2013年7月
AWS サービスアップデートまとめ 2013年7月
Yasuhiro Horiuchi
 

What's hot (16)

Aws cli
Aws cliAws cli
Aws cli
 
これからAzureを始める人へ(LT)
これからAzureを始める人へ(LT)これからAzureを始める人へ(LT)
これからAzureを始める人へ(LT)
 
AWS サービスアップデートまとめ 2013年10月
AWS サービスアップデートまとめ 2013年10月AWS サービスアップデートまとめ 2013年10月
AWS サービスアップデートまとめ 2013年10月
 
ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
 
第6回rest勉強会 アソシエーション編
第6回rest勉強会 アソシエーション編第6回rest勉強会 アソシエーション編
第6回rest勉強会 アソシエーション編
 
AWS サービスアップデートまとめ 2013年11月
AWS サービスアップデートまとめ 2013年11月AWS サービスアップデートまとめ 2013年11月
AWS サービスアップデートまとめ 2013年11月
 
ドキュメント週末趣味のAWS Elastic Beanstalk 編
ドキュメント週末趣味のAWS Elastic Beanstalk 編ドキュメント週末趣味のAWS Elastic Beanstalk 編
ドキュメント週末趣味のAWS Elastic Beanstalk 編
 
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
AWS Elastic Beanstalk 詳細 -ほぼ週刊AWSマイスターシリーズ第9回-
 
「SITE PUBLIS 4.3」新機能と導入事例のご案内
「SITE PUBLIS 4.3」新機能と導入事例のご案内「SITE PUBLIS 4.3」新機能と導入事例のご案内
「SITE PUBLIS 4.3」新機能と導入事例のご案内
 
cloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたことcloudpack(AWS運用事業)一周年でわかってきたこと
cloudpack(AWS運用事業)一周年でわかってきたこと
 
AWS サービスアップデートまとめ 2014年2月
AWS サービスアップデートまとめ 2014年2月AWS サービスアップデートまとめ 2014年2月
AWS サービスアップデートまとめ 2014年2月
 
AWSマイスターシリーズ(Elastic Beanstalk)
AWSマイスターシリーズ(Elastic Beanstalk)AWSマイスターシリーズ(Elastic Beanstalk)
AWSマイスターシリーズ(Elastic Beanstalk)
 
AWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップAWS+でスケールアウト&スケールアップ
AWS+でスケールアウト&スケールアップ
 
AWS サービスアップデートまとめ 2013年7月
AWS サービスアップデートまとめ 2013年7月AWS サービスアップデートまとめ 2013年7月
AWS サービスアップデートまとめ 2013年7月
 
cloudpack導入資料(2011/05/06版)
cloudpack導入資料(2011/05/06版)cloudpack導入資料(2011/05/06版)
cloudpack導入資料(2011/05/06版)
 

Viewers also liked

Viewers also liked (6)

AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へAWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
AWS Lambda ハンズオン 2-Tier アーキテクチャで未来へ
 
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
Cognito、Mobile SDK、SNSでサーバいらずのプッシュ通知
 
Cognito User Pool
Cognito User PoolCognito User Pool
Cognito User Pool
 
AWS Black Belt Tech シリーズ 2016 - Amazon SES
AWS Black Belt Tech シリーズ 2016 - Amazon SESAWS Black Belt Tech シリーズ 2016 - Amazon SES
AWS Black Belt Tech シリーズ 2016 - Amazon SES
 
AWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDKAWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDK
 
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API GatewayAWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
AWS Black Belt Tech シリーズ 2015 - Amazon API Gateway
 

AWSでメール非同期処理