« 【AWS発表】 Virtual Private Cloudの中でスポットインスタンスが利用可能に | メイン | AWSマイスターシリーズ(無料Webセミナー)のご紹介 »

【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分の遅延を設定できます。

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

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

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

玉川憲 (@KenTamagawa)

コメント

トラックバック

この記事のトラックバックURL:
http://www.typepad.com/services/trackback/6a00d8341c534853ef0162fbd37b2d970d

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

Featured Event

2016年3 月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31