2023.04.10

AWSのSQSメッセージリングで非同期処理設計を実現

はじめに

こんにちは。グループ研究開発本部 次世代システム研究室のK.X.Dです。

普段の仕事時間以外に、職場のクラウド勉強会に参加しています。
勉強会の各メンバーがテーマを持って、毎週自分のテーマを調べたことを共有するという活動があります。
今回、私のテーマをブログで共有させていただきます。

1.非同期処理とは:

「非同期処理とは、あるタスクを実行してる際に、他のタスクが別の処理を実装できる方式である。」と色々なところに書いてありますが、自分の見解は他の処理結果に依存しない、またトリガー処理がないで独立で実行できる処理です。
普段のシステム開発には、
  • 同期で対応できない処理また、発火(トリガー)がわからない処理がバッグラウンドの定期的クロンバッチにオフロードします。
    事例:第3者システムに連携時、失敗ある前提でリトライを実装必要の処理です。
    ユーザのSubscriptionが期限切れにより、会員権限を更新する処理です。
  • JavascriptのAPIリクエストでレスポンス待たずに、次の定義処理が実行されます。

2.非同期処理事例:

上記に記述したような事例で、同期処理が対応できない仕様で非同期処理で対応可能です。
  1. さらにシステム的に非同期の性質を応用して、同期処理設計より非同期処理設計は下記のようなメリットを持っております。
    応答性の改善:すぐ返信必要はない重い処理を非同期にして、ユーザを待たせずに先にレスポンスします。
  2. 耐障害性・可用性向上:エラーが発生しやすい重い処理が非同期に移動されて、エラー発生を問わずにユーザへ先にうまくレスポンスできました。
    エラー発生するリソースに対して、サービス内にリカバリ仕組みを作ります。
  3. 疎結合を実装でコンポーネントごとに最適なリソース割り当て可能:重い処理が非同期処理として、別のサービスに移動します。
    ユーザへレスポンス軽い処理サービスが、高いスペックでなくてもユーザへうまくレスポンスできます。
    重い処理サービスが、高いスペックでなくても、ユーザのエクスペリエンスに影響しないでゆっくり処理できます。

3.AWSのSQSで非同期処理実現:

非同期処理を実装ために、「非同期実行」依頼リクエストを格納コンポーネントが必要です。
簡単な仕様がRDBMSのテーブル、インメモリストレージなどで楽で実装ができますが、スケーラビリティで非同期処理数を増やせば、下記のデメリットがあります。
  1. プログラムシンプルになる:RDBMSなどではリトライだ、重複読み出し、レコードロックの制御を考える必要あります。
  2. 負荷分散しやすい:非同期処理数を増やせば、RDBMSなどでは並列度を上げてクエリーが増加して性能も劣化します。
  3. マイクロサービスの場合、システム間でRDBMSでの情報共有は少し重いです。お互いの仕様調整や運用管理などが煩雑になります。
    完全にマネージドなキューシステムを採用することでこの問題を最小化できます。
代わりにAWSのSQSサービスのようなメッセージキューサービスを利用するとしたら、課題を常に解決されて、仕様実装に集中できます。

3-1.AWSのSQS特徴:

  • フルマネージド型(サーバ管理不要)
  • ほぼ無制限のTPS
  • 利用した分だけの従量課金(100万リクエストで0.40USD) ⇨ 超安い
  • 分散キューモデルによる高い可用性を提供

3-2.AWSのSQS構成:

引用:https://docs.aws.amazon.com/ja_jp/sqs/index.html

プロデューサー : メッセージをSQSに送信するアプリケーションのこと
コンシューマ : SQSからメッセージをポーリング(取りに行く)アプリケーションのこと
メッセージ : 送受信されるデータのこと(非同期処理依頼)

                          ※コンシューマが受信メッセージを処理した後に、キューからメッセージを削除します。

  • キュータイプ:標準キュー、FIFOキュー2類あります。

標準キュー

FIFOキュー

引用:https://docs.aws.amazon.com/ja_jp/sqs/index.html

3-3.標準キュー設定

メッセージの順序を考慮なく、非同期処理を実現の標準キュー設定を紹介したいと思います。
  • Amazon SQSコンソールに入って、キュー作成画面の標準タイプを選択します。この辺りに、キュー名を入力します。
  • 次に以下の設定辺に、キューの各設定を入力します。可視性タイムアウト: (1つのコンシューマーによって) キューから受信されたメッセージが他のメッセージコンシューマーに表示されない時間の長さを設定します。配信遅延:このキューに追加された各メッセージの初回配信の遅延時間です。メッセージ受信待機時間:メッセージが利用可能になるまでポーリングが待機する最大時間。メッセージ保持期間: 削除されないメッセージを Amazon SQS が保持する期間。最大メッセージサイズ:このキューの最大メッセージサイズ。(MAX:256KB) メッセージ受信待機時間により、ショートポーリングまたロングポーリング方式に切り替えできます。
    – ショートポーリング:メッセージ受信待機時間を0設定、
    – ロングポーリング:メッセージ受信待機時間を0上回り設定

  • キューのメッセージの暗号化、アクセスポリシー設定:アクセスポリシーはSQSにアクセス可能リソースを定義します、暗号化を有効にすると、基本的に許可リソースからSQSへ送信されたメッセージを暗号化されます。許可リソースからSQSを受信したメッセージを複合化して、配信します。アクセスポリシーは匿名リソースを許可した場合、暗号化を無効しないといけないです。

  • 許可ポリシーの再実行:
    どのソースキューがこのキューをデッドレターキューとして使用できるかを定義します。

  • デッドレターキュー:
    キューの選択:別のSQSキューを作成して、設定中のキューのデッドレターキューとして選択します。
    最大受信数: メッセージがデッドレターキューに移動するタイミングを定義します。
    メッセージ配信数が最大受信数を超えるとデッドレターキューに移動します。

    デッドレターキューの仕組み、利用シーン:
    AWSのデッドレターキューは、Amazon Simple Queue Service(SQS)において、メッセージの受信に失敗し、処理に失敗した場合に、そのメッセージを再度処理するために使用されます。

    デッドレターキューは、正常に処理できなかったメッセージを保持するための専用のキューで、ソースのキューから分離されます。

    デッドレターキューを使用することで、処理できなかったメッセージを再処理するためのメカニズムが提供されます。
    これにより、システムの信頼性を向上させることができます。

    引用:https://docs.aws.amazon.com/ja_jp/sqs/index.html

3-4.メッセージが重複受信考慮:

  • 発生ケース:
    – Amazon SQSの標準キューはAt-least-once デリバリーですが、SQSの仕組みでメッセージのコピーが複数のサーバーに保存されます。
    1台のサーバから受信及び削除できましたが、他のサーバにあるメッセージがネットワーク問題などで削除できない場合、メッセージが重複受信になります。
    – メッセージを処理完了しても、ネットワークの問題などでキューから削除処理ができない場合、メッセージが重複受信して、2回処理は発生する可能があります。
  • 対策: SQSから2重発信がある前提で、冪等性を担保できるシステムを設計すべきです。
    メッセージを送信時、メッセージ属性にメッセージごとに紐づくユニークIDを設定します。
    メッセージを受信するアプリは、メッセージのユニークID属性を利用して、同一ユニークIDを2回で処理しないように実装します。

3-5.AWSのSQSを送受信メッセージを体験:

AWSのCLIを利用して、SQSへメッセージ送受信をしてみます。
  • メッセージを10個送信:キューにメッセージ10個格納します。
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 1 , context : Message 1}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID1"}'
{
    "MD5OfMessageBody": "b01733011e058c6c98b4932ed528fdcc",
    "MD5OfMessageAttributes": "627df0cc9d61905c91b5537674255b2f",
    "MessageId": "7e528eda-25b3-4980-a32c-c41f7eed2dc1"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 2 , context : Message 2}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID2"}'
{
    "MD5OfMessageBody": "a0a27eefe5a3710b86cc85b4279aabdb",
    "MD5OfMessageAttributes": "ff071026032d0eba8fc300e5963d3003",
    "MessageId": "ec7a06af-142e-49a5-8d4f-2f8104293a90"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 3 , context : Message 3}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID3"}'
{
    "MD5OfMessageBody": "501b68c8f94f0921da1d8cf1bd3230b2",
    "MD5OfMessageAttributes": "097069b27cadd9b453b3945e93c0745e",
    "MessageId": "4169db9f-3d60-4bb2-8298-3ffae4780f5b"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 4 , context : Message 4}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID4"}'
{
    "MD5OfMessageBody": "c336af338cba762d1a50c7e1b29d0f11",
    "MD5OfMessageAttributes": "7c0417680e887bc2dc19b9f642e5c98f",
    "MessageId": "17aa3e66-1506-4c13-8764-4db9b0f6cec0"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 5 , context : Message 5}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID5"}'
{
    "MD5OfMessageBody": "3e256141cf30387e41d96dbe53c54963",
    "MD5OfMessageAttributes": "aee3235202734136403de9c3ea418bcc",
    "MessageId": "f24aed3b-7a79-4045-a832-797957ac1bc4"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 6 , context : Message 6}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID6"}'
{
    "MD5OfMessageBody": "b23d1a7fee8dc631615beafeb07393f9",
    "MD5OfMessageAttributes": "e51cbaa80da1174945860d976441b7c2",
    "MessageId": "87b9c78c-ef52-4d97-8072-4f6041385e2e"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 7 , context : Message 7}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID7"}'
{
    "MD5OfMessageBody": "e1eb6dde396c266b27eeec61bd7b700f",
    "MD5OfMessageAttributes": "0ccb423641ac33ecf1d13a7239a45c99",
    "MessageId": "e2345332-5080-4656-ab27-2e096769d4a0"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 8 , context : Message 8}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID8"}'
{
    "MD5OfMessageBody": "b853ec2b271b03b5866aa1319a0c5b72",
    "MD5OfMessageAttributes": "c5c574df9482b393551ccb3a23f09561",
    "MessageId": "d3ab1abf-2c8f-44a7-9cca-41534ef28d25"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue 
                                                         --message-body "{id : 9 , context : Message 9}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID9"}'
{
    "MD5OfMessageBody": "d88601e435f85f92cc1069e4d44e4785",
    "MD5OfMessageAttributes": "a19ca6233b3dd1c2bc9452271344d932",
    "MessageId": "cf572ec3-c096-4246-ab1a-14c115bf018d"
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs send-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                         --message-body "{id : 10 , context : Message 10}"\n
                                                         --message-attributes 'ID={DataType=String , StringValue="ID10"}'
{
    "MD5OfMessageBody": "28876511b3ecffbdbd8d3412daa2ca98",
    "MD5OfMessageAttributes": "9560e7f0ea6d127d0b8ca2f6f02faaff",
    "MessageId": "015cfe92-7cde-40c2-a886-c3f62791a8f5"
}
  • メッセージをポーリング:–max-number-of-messages:5、–wait-time-seconds:3で1回で複数メッセージポーリングします。
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs receive-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                            --max-number-of-messages 5\n
                                                            --wait-time-seconds 3
{
    "Messages": [
        {
            "MessageId": "e2345332-5080-4656-ab27-2e096769d4a0",
            "ReceiptHandle": "AQEB4jf/M3L6We7l8zCAzsipH6n/jLP95ND68qrNslGFgs2ErSO/25gvvvYEdHq5EhzzbcACx3HtyOG4JkGsBQnKDSy8Ek4E+yBERcLr76TNmJnc4XnZrcnb1hTwBUNTo0hP9yptbSEI++Nt2x0VAv2HNM4W4lzCWdr7uU32WqcAzThmDDbtcdo5yqxZ6ojDyu2egDaFfzchXnMUfXvgpK55p6MGZly2lgOXpE/85y6sjZBEvrcQA0lJJcTlCrXVaW+tGvpki79mJkFn4yVaE8GGbZw1SW/XkhcvUzlmzctTdlGIFc5LhfiNlmLRcV91AiqorjzsrCe4bXIYRrcUC3nV+r1NGr+BZ3vkd6x3BfXKdtGc11zMO0t0iIE/hJT5W5fbuaFrfK1NLAPznBFx5QWNIg==",
            "MD5OfBody": "e1eb6dde396c266b27eeec61bd7b700f",
            "Body": "{id : 7 , context : Message 7}"
        }
    ]
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs receive-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
                                                            --max-number-of-messages 5\n
                                                            --wait-time-seconds 3
{
    "Messages": [
        {
            "MessageId": "f24aed3b-7a79-4045-a832-797957ac1bc4",
            "ReceiptHandle": "AQEBeNwZ7eArNCiIj+C6ZysDMZgTth+yBu/8q4x1344phANDPVRBsnBN7BhB1JzeEi2ZUCKr6P/h6bHYQM8GUYKVKBR5En/cufN5aHA4v23674gyH3scfuWaGq/82fYj8UqSgdlaxVQ+HGKoE91p5JV3UYnIwE0N/PVX6ZMSQhStn6s9H9uimACc8Dktux4nRUyGkxMLY1IKl0Pp5GtnfYNBSvxWIyYCKtO4Su1WJ3FEwNTeAn5WNBLBy+edekpT3fIbhk9LIrZDxVvIUVxzh9WUfhnnh5ujOcKHWJCVviXaI79h5nmDmiVqOKxpylKCJG7T7NMXRxXnlWd/DpEx8IgoM6FeYa3duPZtx542B0NpczdU19Rd7s/Cow9mxuxY9ZtYtUiwQrxZbledB11QQb518w==",
            "MD5OfBody": "3e256141cf30387e41d96dbe53c54963",
            "Body": "{id : 5 , context : Message 5}"
        }
    ]
}
[cloudshell-user@ip-10-2-66-186 ~]$ aws sqs receive-message --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n 
                                                            --max-number-of-messages 5\n
                                                            --wait-time-seconds 3
{
    "Messages": [
        {
            "MessageId": "7e528eda-25b3-4980-a32c-c41f7eed2dc1",
            "ReceiptHandle": "AQEBVDQorGul5fUiEvXlPmTZedWQ34kk+8isRxcEFeXLQIut0eY+5x4oN65cLk+Vc09kXlO+RuaO4wEA5uUyT+aE9AJ0T3yrrQHsxki4cEzOoZaSsIAGezet8u1dVFyY8BL+sWDj5soo3O5hd8/YoMxFkt3mQrnyKuVYprPwWrqJzUccMSl+5j2c66FllFk0lGM7HN1qUHES+JHqrOY3dciExISH7SschUCuirVvSbNkARKGb+87uzkQUk19sMCABVVT35xA+ZrFrdtbwmZg0qpboLW2zcc6ehXxiKsJlcoWJ6ljAUft42sUgYwQGcc3efKuPtGGYhWRM0CmYijR9mUlVY9CnrKlxfquggq5CVMIhOBYBUWC7OuO/6L8Y8tG2zgtCWvo/U3zs4XwwoMZUHX94g==",
            "MD5OfBody": "b01733011e058c6c98b4932ed528fdcc",
            "Body": "{id : 1 , context : Message 1}"
        },
        {
            "MessageId": "ec7a06af-142e-49a5-8d4f-2f8104293a90",
            "ReceiptHandle": "AQEBsc/qIwaJCvvSt0KXCNoLwlllWVjMaAdn6R6ynhDeBxa76lcydrV49MX9S2sz6Dasin1mqo4Q+Hd77hZMX5ZUmiP4lX18tH6U4w8xeXHAYnfvWLbybjoRFuViI9IcP6vfQz1of1nMiyp4tCjwrOtVn6Hm9cQi2ZIRsC7B+9nBQ0XNDuMbv1ulCzgnjlvsUuUTDa5kuY1myq7l+l4JXSQh+2yoEQE2kL2KK/6fF57m2dIWjndbGeG4DvMjaWERPI9ne41TgA/LnL4DVFfmc0PEKeEvO3EDNSvttp5YJXZ+hqNWhDuFIVyUJgxzhoqYOq3nA872/vUoYHkYYRbnS4hB/X6CcfULELjJ7Ych8YePPMg+FweUmgsXRWyXWMa6CzfDCAOnA9qLPtfqQrJNgkX/ug==",
            "MD5OfBody": "a0a27eefe5a3710b86cc85b4279aabdb",
            "Body": "{id : 2 , context : Message 2}"
        },
        {
            "MessageId": "17aa3e66-1506-4c13-8764-4db9b0f6cec0",
            "ReceiptHandle": "AQEBqepC1EzdtJLdWbWfGJQlGkdWjDjzDvDHh1+wtV3Bph7wQtuHun/YXOLmYj8xOg98NFra+po5Z7ULmEFXWEc2b/JSUJKdTk0GggL+un3qsIeX52Q38O+BCOxgIMkLXSf8k/yqbDmniq3IhLasBj1P0efter8Eo5sIdlbnNJviQHo2Xv7SD2kKA+Ba2+nsUD98jh+OIQ+vYunSJilgU4lZLQ849kyEYPomEf4tBcWfpTaJOwdALSsgzbN7As5ydvat6rRnI1jwqjztuiNP1uorO4zaqOsKYYmsk7gPhQCnNfu3MDJZQR13qwsEWmfRDLyKfp9dk9ljR++Yf7QhCPkGTYg15WhQNsz+2JyFzjlyKhL0M5MVDlO4kI9L8b7lffl1lKWSzw/H+zcy5+6HhtwgGw==",
            "MD5OfBody": "c336af338cba762d1a50c7e1b29d0f11",
            "Body": "{id : 4 , context : Message 4}"
        },
        {
            "MessageId": "d3ab1abf-2c8f-44a7-9cca-41534ef28d25",
            "ReceiptHandle": "AQEB4UXFrwQEIxud1SnLCFbBCLsfIL8C7DqfZfVNuGX2GsiyBeTUgvgZzXIM72iQvXzNGM58mNYNIUdcQzwLUcO2SB7eF3CXaS8Ie7ZAJpGimsztcnB4M4hYRIMZLO/6rqZzDOwJBThkxBixqzdUtzEBi/UHjK5Tqs5ls8JxzTKhhXPKKndKOmvZyw7edOEqe2DIAYd7lSFLfbYQHymoJQvC6QCD4Humtkpnp4UFtVkz7Yxfw7sMMsI6EHxAnuHqi8rqhclrnbbI/12pnuqZQUh9/SK7LTWCAwurjjQKve+hQvcToakWwoARcOdG2bXFtxu9ZVF7jj6qOJn3plDXoGYCOGyV5YO2yE551wDw0QSZqQ/a4lccayRVptU4CakW8oyBtHl5BVzghtvLN+ORqR3+Hg==",
            "MD5OfBody": "b853ec2b271b03b5866aa1319a0c5b72",
            "Body": "{id : 8 , context : Message 8}"
        },
        {
            "MessageId": "cf572ec3-c096-4246-ab1a-14c115bf018d",
            "ReceiptHandle": "AQEBSb4zhB3vXNAMpSEm2WF72ZRarywar4Bgwf4jWrHcnO1I97FBBTDxAMT8Uvle5AFGbxaA4s2t3PF8SMDfqf1g6LVEcMMUghQI1FZ1kJjjQG+Cs9feHYhGb7z0P5ZZH4Bqlq05/UbL69QhL3qvbNyoaU9RE0m+YYl6u/syuRNYIxNs5nr0fQbNUvBsBfd8+ONZb4Kibvpznf7lkkspmnHAmE7rXWNYqoARcL/3q4i30BOBRN+sHrpPf78Iq2rv96A52l6yFMf3U+zFiV5VLAOS63jQjigmdQtOiJl1sGUAe2gJQYf897Ozuif7idCtQAZZcJlnGYVAgflDcWIRopFnoG1z0Iz8OijGhzLZ43IUVQMgiMYYLZcmwarUpNE/LB40v7hkYPvDOc98b+hk/amgsw==",
            "MD5OfBody": "d88601e435f85f92cc1069e4d44e4785",
            "Body": "{id : 9 , context : Message 9}"
        }
    ]
}
  • キューのメッセージを削除:Batchリクエストで1回で複数のメッセージを削除します。
aws sqs delete-message-batch --queue-url https://sqs.ap-northeast-1.amazonaws.com/153216492591/StandardQueue\n
--entries '[{"Id" : "Batch-1" ,  "ReceiptHandle" : "AQEB5x98UFzciOMO/OC3NwKp3qaG7jlWAU+8dZcRpl0qm2kkMmJQ64QbYbETuQivPqq1ChM9jmnivP8wEeYaVo8SNJUlNzmJCaN8vt7N8zJwZhP+wnVM87nQSD1a5dA0si6MurJemPcxbc0CsEImC6qC5w5mCk41mK0NO1vVJdUttwDNpbO16iO2bPVbqFxsiZpVF8dEvt7T2P3NdYCAw1jWmqFs3nuW224cedCmdvma74u3GncsvrmgLSL8h5ys/AAskiy7cz5Tnh3qahWQY+0T8Q/VhFwMAchcvU0l+DIBbVp2FEekl9VhZWJbqOEfsQgUJl2+kqLxRnarD1eFNhD2Px+WBGqKX+oa6vWpBfoikNjjkQvK3cofjqY2coGfuL+Gny7sWTm7GmlkieaVDhra0g=="},{"Id":"Batch2","ReceiptHandle":"AQEBlz/BumVpP1kICebtYFqrQMYWbonRstjtREUw40Id9BMvFzFUibKuscVePqG0mtav8vyMvi0xNb/Pz4BzKZvgelUciyvOslXWLiLyos2aHV9Q618cYh3nTkbQ/VCrLHg7SUptUag++2chx4kn328kotyLO0piDNxA2C+6DT2V8gI9AzK4Cl5FVXnOsIfwrrWInvUm3z06KlaakLTp5SIkm6K/CjttliDFYHhxVi/RR1o/GMpz67lxgFk0lnACZiYlDJxOBFjtS9LjkMpXlALBCpk1QWqNzBVBAuzxx0PUx/KKYwmS3tEvjLOW3aFkuLgjdoDqjbblYkhbp2xLz4+Yj1u1jiwlip11vTDDD+ZgQrefcxx9n0qioVNXsEQQCiomwxseVpaxgHTC0SMSTEcojQ=="}]'

{
    "Successful": [
        {
            "Id": "Batch2"
        },
        {
            "Id": "Batch-1"
        }
    ]
}

4.まとめ

実際にシステム設計にメッセージキューイングが色々活用されてまので、今回AWSクラウドサービスの1サービスとして、紹介いたしました。
ご参考になっていただくと幸いです。

5.伝言

次世代システム研究室では、最新のテクノロジーを調査・検証しながらインターネットのいろんなアプリケーションの開発を行うアーキテクトを募集しています。募集職種一覧 からご応募をお待ちしています。

  • Twitter
  • Facebook
  • はてなブックマークに追加

グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。

 
  • AI研究開発室
  • 大阪研究開発グループ

関連記事