

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS の標準キュー
<a name="standard-queues"></a>

Amazon SQS は、デフォルトのキュータイプとして標準キューを提供し、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html) などのアクションに対して 1 秒あたりほぼ無制限の数の API コールをサポートしています。標準キューでは、少なくとも 1 回のメッセージ配信が保証されますが、分散性の高いアーキテクチャにより、メッセージの複数のコピーが配信されたり、メッセージが順不同で着信したりすることがあります。それにもかかわらず、標準キューは、メッセージが送信された順序を維持しようと最善を尽くします。

`SendMessage` を使用してメッセージを送信すると、Amazon SQS はメッセージを確認する前に、メッセージを複数のアベイラビリティーゾーン (AZ) に冗長的に保存します。この冗長性により、単一のコンピュータ、ネットワーク、または AZ の障害によってメッセージがアクセス不能になることがなくなります。

キューは、Amazon SQS コンソールを使用して作成および設定できます。詳細な手順については、「[Amazon SQS コンソールを使用した標準キューの作成](creating-sqs-standard-queues.md#step-create-standard-queue)」を参照してください。Java 固有の例については、「[Amazon SQS Java SDKの例](sqs-java-tutorials.md)」を参照してください。

**標準キューのユースケース**

標準メッセージキューは、メッセージの複数の着信や順不同の着信をアプリケーションで処理できる限り、さまざまなシナリオに適しています。以下に例を示します。
+ **ライブユーザーリクエストを集中的なバックグラウンド作業から分離する** – システムがメディアのサイズ変更やエンコーディングをバックグラウンドで行っている間に、ユーザーはメディアをアップロードできます。
+ **タスクを複数のワーカーノードに割り当てる** – 大量のクレジットカード検証リクエストを処理する場合などが該当します。
+ **後で処理するためにメッセージをバッチ処理する** - 複数のエントリを後でデータベースに追加するようスケジュールします。

標準キューに関連するクォータについては、「[Amazon SQS 標準キューのクォータ](quotas-queues.md)」を参照してください。

標準キューを使用した作業のベストプラクティスについては、「[Amazon SQS のベストプラクティス](sqs-best-practices.md)」を参照してください。

# Amazon SQS の少なくとも 1 回の配信
<a name="standard-queues-at-least-once-delivery"></a>

Amazon SQSでは、冗長性と高可用性を確保するため、メッセージのコピーが複数のサーバーに保存されます。まれではありますが、メッセージを受信または削除するときに、メッセージのコピーが保存されているサーバーの1台が使用できない場合があります。

このような場合、使用できないサーバーではメッセージのコピーが削除されないため、メッセージの受信時に同じメッセージのコピーをもう一度受け取る可能性があります。アプリケーションが*べき等*になるよう設計する必要があります (同じメッセージを繰り返し処理した場合にも悪影響が発生しないように設計する必要があります)。

# Amazon SQSキューとメッセージの識別子
<a name="sqs-queue-message-identifiers"></a>

このトピックでは、標準キューおよび FIFO キューの識別子について説明します。これらの識別子は、特定のキューとメッセージを見つけて操作するうえで役立ちます。

## Amazon SQS の標準キューの識別子
<a name="sqs-general-identifiers"></a>

次の識別子の詳細については、*[Amazon Simpleキューサービス APIリファレンス](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/)*。を参照してください

### キュー名およびURL
<a name="queue-name-url"></a>

新しいキューを作成する際は、 AWS アカウントおよびリージョンに一意なキュー名を指定する必要があります。Amazon SQS は、作成したキューごとに*キュー URL* と呼ばれる識別子を割り当てます。これには、キュー名と他の Amazon SQS コンポーネントが含まれます。キューでアクションを実行するときは必ず、そのキュー URLを指定します。

次に示すのは、AWSアカウント番号`MyQueue`を持つユーザーにより所有される`123456789012`という名前のキューのキュー URL です。

```
https://sqs.us-east-2.amazonaws.com/123456789012/MyQueue
```

キューを一覧表示し、アカウント番号に続く文字列を解析することで、キューのURLをプログラムで取得できます。詳細については、「`[ListQueues](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ListQueues.html)`」を参照してください。

### メッセージ ID
<a name="message-id"></a>

各メッセージは、システム割り当ての*メッセージ ID* を受け取ります。この ID は、Amazon SQS から `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` レスポンスで返されます。この識別子は、メッセージを特定する場合に役立ちます。メッセージ IDの最大長は100文字です。

### 受信ハンドル
<a name="receipt-handle"></a>

キューからメッセージを受信するたびに、そのメッセージの*受信ハンドル*を受け取ります。このハンドルは、メッセージ自体ではなくメッセージ受信のアクションと関連付けられます。メッセージを削除したり、メッセージ可視性を変更したりするには、受信ハンドル (メッセージ ID ではなく) を指定する必要があります。つまり、メッセージを削除する前にメッセージを受信する必要があります (メッセージをキューにおいてから回収することはできません)。受信ハンドルの最大長は1,024文字です。

**重要**  
メッセージを複数回受信した場合、受信するたびに異なる受信ハンドルを受け取ります。メッセージの削除をリクエストするときは、最後に受け取った受信ハンドルを指定してください (そうしないと、メッセージが削除されない可能性があります)。

受信ハンドルの例を次に示します (3 行に分割されています)。

```
MbZj6wDWli+JvwwJaBV+3dcjk2YW2vA3+STFFljTM8tJJg6HRG6PYSasuWXPJB+Cw
Lj1FjgXUv1uSj1gUPAWV66FU/WeR4mq2OKpEGYWbnLmpRCJVAyeMjeU5ZBdtcQ+QE
auMZc8ZRv37sIW2iJKq3M9MFx1YvV11A2x/KSbkJ0=
```