Quantcast
Viewing all articles
Browse latest Browse all 906

【AWS発表】 Amazon Simple Queue Serviceに新機能追加: キューに保存するメッセージのバッチ処理、キューやメッセージに対する遅延設定が可能に

今回の発表により、キューイングのクラウドサービスであるSimple Queue Serviceに新しい機能を追加しました。

注: SQSをご存じない方のために、簡単にSQSを説明させて頂きますと、SQSでは各リージョン - 東京、米国東など5エリア- に対して、キューという入れ物を作成することができ、そのキューに対してメッセージを送信できます(Send)。メッセージはキューの中にスタックされます。このメッセージを処理する必要があるプロセスがメッセージを読み込むと(Recieve)、キューは他のプロセスが同時に処理できないように、一定期間見えなくなります(Visibility Timeoutとして設定できる)。そのプロセスが処理を成功すると、メッセージを削除します(delete)。万が一、アプリが処理に失敗すると、削除されないままなので設定したVisibility Timeoutの後にメッセージが他のプロセスから再度見えるようになる、というからくりです。このSQSを用いることで、複数のアプリケーションの非同期処理を効率よく行えます。このキューは、他のAWSユーザーと共有することもできますし、IPアドレスや時間で制限することもできます。

まず、今回の発表により、このSQSのキューの送信にバッチ処理を利用できるようになりましたので、メッセージ群の送信、削除が、非常に効率よく低コストで実現できます。また、特定のキューを遅延キュー(delay queue)に設定して、送信されたメッセージがキューの中で見えるようになるまで遅延を設定することができます。また、各メッセージに対しても、メッセージタイマーを用いることで遅延をセットできます。

バッチ処理
新しいSendMessageBatchDeleteMessageBatch関数を用いると、一度に10メッセージまで処理することができます。各メッセージの最大サイズは64 KB (65,536 bytes)まで使えますが、一つのバッチでは、合計で64KBを越えないように気をつけてください。バッチ処理を用いると、アプリケーションとAWS間のネットワーク上のやり取りが少なくなるので、効率があがるでしょう。また、一つのリクエストあたりで処理できるメッセージ数が増えるので、コスト効率も高まります。

遅延キュー
遅延キューというものを作成できます。この遅延キューには遅延時間を設定することができます。つまり、メッセージを作成すると、キューのメッセージは遅延時間の分だけ遅れて見えるようになります。例えば、120秒の遅延を設定すると、そのキューに対して、ポストされたメッセージは120秒後に見えるようになります。

メッセージタイマー
各メッセージに対して、遅延を設定することができます。例えば、0秒、60秒、120秒、180秒など、各メッセージ毎に自由に遅延を設定できます。各メッセージの送信の際に(SendMessage関数 or SendMessageBatch関数)、DelaySeconds属性を利用することで遅延を設定できます。

コンソールのサポート
AWS Management Console (Webコンソール)は、今回発表した遅延キューやメッセージタイマーをサポートしています。 遅延キューを作成するには、"Delivery Delay"をゼロ以外の数値に設定します。最大15分の遅延を設定できます。

Image may be NSFW.
Clik here to view.

既存のキューに対しても、デリバリー遅延 (Delivery Delay) を設定、編集することができます。

Image may be NSFW.
Clik here to view.

各メッセージを送信する際に、遅延を設定することが可能です。最大5分まで設定できます。

Image may be NSFW.
Clik here to view.

キュー、メッセージの遅延も自在にコントロールできるようになったので、またさらにSQSの利用範囲が拡がったと思います。面白い利用方法などありましたら、是非お報せください!

玉川憲 (@KenTamagawa)


Viewing all articles
Browse latest Browse all 906

Trending Articles