Amazon Simple Queue Service
Amazon Simple Queue Service logo
Amazon Simple Queue Service
開発元 Amazon.com
サポート状況 アクティブ
ライセンス プロプライエタリソフトウェア
公式サイト aws.amazon.com/sqs/
テンプレートを表示

Amazon Simple Queue Service (Amazon SQS) は、2004年後半にAmazon.comによって導入された分散型メッセージキューイングサービス[1]で、Amazon Web Servicesで提供された初のサービスでもある。インターネットを介して通信する手段として、Webサービスアプリケーションを介したプログラムによるメッセージの送信をサポートしている。 SQSは、共通の生産者-消費者問題または生産者と消費者間の接続に起因する問題を解決する高度にスケーラブルなホストメッセージキューを提供することを目的としている。

Amazon SQSは、メッセージングサービスの商品化として表現できる。 よく知られているメッセージング・サービス技術の例には、IBM WebSphere MQとMicrosoft Message Queuingがある。これらのテクノロジーとは異なり、ユーザーは独自のサーバーを保守する必要はない。 AmazonはSQSを実行し、SQSサービスを使用率ごとに販売している。

API

編集

Amazonは、Java、Ruby、Python、.NET、PHP、Javascriptなどのいくつかのプログラミング言語でSDKを提供している。 Amazon SQSのJava Message Service(JMS)1.1クライアントが2014年12月にリリースされた。

認証

編集

Amazon SQSは、データの安全な処理を可能にする認証手順を提供している。 AmazonはAmazon Web Services(AWS)のIDを使用してこれを行い、ユーザーにはAmazon.comのAWS対応アカウントを要求する。 これはhttp://aws.amazon.comで作成できる。 AWSは、AWS対応のアカウントに、AWSのアクセスキーである関連するIDのペアを割り当てて識別を実行する。 最初の識別子は、パブリック20文字のアクセスキーであり、このキーはユーザーを識別するAWSサービス要求に含まれている。 ユーザーがWS-SecuritySOAPを使用していない場合、40文字のプライベートIDである秘密鍵を使用してデジタル署名が計算される。 AWSは、サービスリクエストで提供されたアクセスキーIDを使用して、アカウントの秘密鍵をルックアップする。 Amazon.comはその鍵でデジタル署名を計算する。一致した場合、ユーザーは本物とみなされ、そうでない場合、認証は失敗し要求は処理されない。

メッセージ配信

編集

Amazon SQSは、少なくとも一度の配信を保証する。 メッセージは複数のサーバーに格納され、冗長性と可用性を確保している。 サーバーが利用できないときにメッセージが配信される場合、そのサーバーのキューから削除されず、再送信される可能性がある。 Amazon SQSは、受信者が送信者によって送信された順序でメッセージを受信することを保証していない。 メッセージの順序付けが重要な場合は、配信後に並べ替えを可能にするために、アプリケーション内で順序情報をメッセージ内に配置する必要がある。

メッセージはどのような種類のものでもよく、その中に含まれるデータは制限がない。 メッセージ本文は最初はサイズが8KBに制限されていたが、2010年7月1日に64KBに[2]、2013年6月18日に256KBに引き上げられた[3]。 サイズが大きいメッセージの場合、ユーザーはこの制限を回避するためのいくつかの選択肢が存在する。 大きなメッセージは、別々に送信される複数のセグメントに分割することも、SQSメッセージで送信されるデータへのポインタだけを使用してAmazon Simple Storage Service (Amazon S3) またはAmazon DynamoDBを使用してメッセージデータを格納することもできる。 Amazonはこの目的のために拡張クライアントライブラリを提供している、

このサービスは、無制限のキューとメッセージトラフィックの両方をサポートしている。

メッセージ削除

編集

SQSは、受信したメッセージを自動的に削除しない。 メッセージが受信されると、その配信用に受信ハンドルが生成され、受信者に送信される。これらの受信ハンドルは、メッセージとともに送信されるのではなく、それに加えて送信される。 SQSでは、受信者がメッセージを削除するために受信ハンドルを指定する必要がある。 この機能は、メッセージの削除にメッセージIDだけが必要だった2008年に追加された新しい機能である。 システムが分散されているため、メッセージは複数回受信することがあり、そのたびに異なる受信ハンドルを受け取る。この場合、メッセージを削除するには最新の受信ハンドルの指定が必要である。

メッセージが配信されると、他のコンポーネントがそのメッセージを処理するのを防ぐために、メッセージの可視性タイムアウトが設定されている。 可視性タイムアウトのカウントは、メッセージを受信すると開始される。デフォルトの時間は30秒であり、この時間中にキューを削除するようにDeleteメッセージが呼び出されない場合、メッセージは再び表示され、再度受信される。

各キューは、デフォルトで4日間の保持パラメータで構成されている。 キューにそれより長くあるメッセージは、自動的にパージされる。 保存期間は、ユーザーが1分から14日まで変更可能であり、メッセージがすでにキューに入っている時に保持が変更された場合は、新しい保持期間を超えているメッセージはパージされる。

著明な利用

編集

DropboxNetflix[4]及びNextdoor[5]はSQSを広く使用している企業の例である。SQSはAmazon内で広く使われている。

関連リンク

編集

脚注

編集

外部リンク

編集

📚 Artikel Terkait di Wikipedia

Microsoft Transaction Server

(SCM) Microsoft Distributed Transaction Coordinator (MSDTC) Microsoft Message Queue (MSMQ) COM-Transaction Integrator (COM-TI) その他 MTS実行部の制御下で動作するCOMコン

OpenMQ

Open Message Queue (OpenMQ) は オープンソースの メッセージ指向ミドルウェアを開発するプロジェクト。オープンソースアプリケーションサーバ開発プロジェクトGlassFishのサブプロジェクトとしてコミュニティによる開発が進められている。 Java Message Service

メッセージキュー

メッセージキュー(英: Message queue)は、プロセス間通信や同一プロセス内のスレッド間通信に使われるソフトウェアコンポーネントである。制御やデータを伝達するメッセージのキューである。 メッセージキューは非同期型通信プロトコルの一種を提供しており、送信側と受信側がメッセージキューに同時に

イベントループ

Java言語向けのAndroid SDKにおけるアプリケーションフレームワークには、メッセージを表現するandroid.os.Messageクラス、メッセージキューを表現するandroid.os.MessageQueueクラス、メッセージループの実装であるandroid.os.Looperクラス、メッセージの送信と処理を担当するandroid

MQ

MQ, mq メッセージキュー (message queue) - コンピュータにおけるメッセージングの方法、またはその保管場所 WebSphere MQ - IBMのメッセージング用ミドルウェア マキアージュ (MAQuillAGE) - 資生堂の化粧品 アメリカン・イーグル航空のIATA航空会社コード。

IBM MQ

IBM MQ の機能を利用する方法はいくつもある。IBM がサポートする API として以下のものがある。 IBM Message Queue Interface (MQI) : C言語、COBOL、PL/I、Java Java 向けには J2EE で標準化された JMS もある。

UNIXドメインソケット

mirror) に実装される。SOCK_STREAMの場合、カーネル内部ではソケットバッファへのメッセージコピー・peerがもつsk_receive_queueのtail、受信側のsk_data_ready呼び出し、を繰り返すことでデータを転送する。 UNIXドメインソケットは単一マシン上のIPCが前提

OpenTP1

TP1/NET/UserDatagramProtocol(プロトコルUDP) メッセージ通信を行う場合の各種通信プロトコル対応製品。 TP1/MessageQueue メッセージキューイング機能を制御する製品。対象はIBM MQである uCosminexusTP1/Extensionfor.NET Framework サーバプログラムを