読者です 読者をやめる 読者になる 読者になる

【Aws】Elastic Beanstalk(Worker)を使ってみた

はじめに

今回、少しアクセスの大きいサービスの開発をawsで行っています。
で、とにかくレスポンスはなるべく早めに返したいということで以下のユーザーへのレスポンスへ影響のない処理を非同期に行うことを検討しました
・メール送信
・ログデータなどの登録

調べてみるとSQSを使うといいらしということがわかりました。
で、さらに調べてみるとElastic Benastalkを使うとやりたいことがさらにシンプルに実装できそうでした

イメージ

f:id:yoppy0066:20160209012144p:plain

自分なりにイメージにまとめてみました(Cacooの使い方の勉強も兼ねて)
まさにこんなイメージで

ElasticBenastalk(worker)を使うとsqsdというのがあって、SQSへメッセージを送信するとElasticBeanstalk上のEC2にHTTPリクエストの形でメッセージを送ってくれるようです。
なので、

>ElasticBeanstalk(worker)を使わずに実装
cronなどでSQSへ定期的に問い合わせてメッセージを取得して処理を行う

>ElasticBeanstalk(worker)を使った場合
sqsdがリクエストしてくれるのでwebサービスを作る感覚で処理を書いておけばOK

よくわからなかったこと

デプロイ方法としてはzipで固めてアップロードようななのですが、zipの中身がまるごと置きかわるイメージ。
アプリ内で出力しているログなども置き換わってしまう?
というのがよくわからなくて、そもそもアプリが出力するログの出力先をEC2内のファイルにしているのが概念的にも違う?

今までこの形で実装してきたのでElasticBeanstalkだけ別の形で実装する必要があるのであればちょっと採用は厳しいかも、、、
現時点の自分の理解だとEC2内にcronでSQSから定期的にメッセージを取得するっていうのが現実的かなぁ、、、

以上です