Amazon Web Services ブログ

Amazon SQS の新機能 – AWS SDK を更新してレイテンシーを削減

Amazon SQS では、ソフトウェアコンポーネント間でメッセージの送受信をあらゆる規模で実行することができます。これは私が最初に使用した AWS サービスの 1 つで、ソリューションアーキテクトとしても、多くのお客様がメッセージキューを使用して非同期通信を活用できるように支援しました。実際に、Amazon SQS は 2006 年 7 月から一般提供されており、その内部では AWS クエリプロトコルと呼ばれる同じ XML ベースのワイヤプロトコルが常に使用されてきました。

11月9日に、Amazon SQS がすべての API で JSON ベースのワイヤプロトコルをサポートするようになったことをお知らせします。AWS JSON プロトコルは、AWS クエリプロトコルの多くの欠点を回避します。

AWS JSON はこれまでの XML ベースのプロトコルよりも効率的で、SQS メッセージを送受信する際のレイテンシーとクライアント側の CPU 使用量の両方を削減できます。例えば、シンプルな「hello world」メッセージを送信するリクエストの場合、古い AWS クエリプロトコルを使用するレスポンスボディのサイズは約 400 バイトです。新しい AWS JSON プロトコルを使用する同一の SendMessage レスポンスのコンテンツ長は、以前のサイズの 3 分の 1 未満になります。

Amazon SQS での新しい JSON ベースプロトコルの使用
これが今回のローンチの最も素晴らしいところです! AWS JSON プロトコルのメリットは、AWS SDK を最新バージョンに更新するだけで得ることができます。この新しい機能を構築するにあたって、SQS チームは、新しい JSON ベースのワイヤプロトコルの使用にコードの変更が必要にならないよう慎重に作業を進めました。

例えば、古いワイヤプロトコルと新しいワイヤプロトコルを比較するために、AWS SDK for Java を使用してベンチマークを実行しました。私たちは、他の AWS SDK からも同様の結果が得られることを見込んでいます。5 KB のメッセージペイロードに対する AWS パフォーマンステストに基づくと、Amazon SQS の JSON プロトコルは、エンドツーエンドメッセージ処理のレイテンシーを最大 23 パーセント削減し、アプリケーションクライアント側の CPU とメモリの使用量も削減します。これらの数値は実際の実装によって左右され、お使いのアプリケーションで確認される数値とは異なる場合があります。

利用可能なリージョンと料金
新しい JSON プロトコルに対する Amazon SQS のサポートは、SQS が提供されているすべての AWS リージョンで今すぐご利用いただけます。一般提供されているすべての AWS SDK が、SQS API の AWS JSON をサポートするようになりました。この最適化のメリットは、AWS SDK を利用可能な最新バージョンに更新するだけで得ることができます。

AWS JSON プロトコルを使用しても、料金は変更されません。詳細については、「Amazon SQS の料金」を参照してください。

AWS プロトコルの仕組みに関する詳細情報に興味がある場合は、AWS がサービスと SDK の定義に使用する言語である Smithy をご覧ください。

一般提供が開始されてからほぼ 17 年が経過した今も、私たちは最も古いサービスの改善と革新を行っています。ほんの数か月前にも、新たに作成されたキューのための Amazon SQS マネージド暗号化キー (SSE-SQS) を用いたデフォルトでのサーバー側暗号化を導入し、FIFO キューの高スループットモードに対するデフォルトクォータを引き上げ、キュータグを使用した属性ベースのアクセス制御 (ABAC) のサポートを発表しました。最近では、Amazon SQS がデッドレターキュー (DLQ) リドライブをプログラム的に管理するための新しい API を追加しました。AWS では毎日がはじまりの日です!

AWS SDK を更新して、Amazon SQS の使用時における CPU とメモリの使用量を改善し、レイテンシーを削減しましょう。

Danilo

原文はこちらです。