API GatewayとSQSの組み合わせについて

まず、API Gatewayは、ウェブサービスやアプリケーションなどとコンピューター間で通信を行うためのゲートウェイです。

イメージとしては、インターネットの出入り口のようなものです。

これは、外部のリクエストを受け取り、それを適切なサーバーやマイクロサービスにルーティングする役割を果たします。

 

そして、SQS(Simple Queue Service)は、キューと呼ばれるものを提供するサービスです。

キューは、データを一時的に保存する場所で、後で処理するためにデータを保持します。

SQSは、複数のシステムやアプリケーション間での非同期通信を可能にするために使用されます。

これら2つを組み合わせることで、例えばウェブサイトやアプリでユーザーが何かリクエストを送信した場合、API Gatewayがそのリクエストを受け取り、必要な処理を行うサーバーやマイクロサービスにルーティングします。

その際、処理に時間がかかる場合や、システムの負荷を考慮して直ちに処理できない場合がありますが、そのリクエストを失わずに保存しておく必要があります。

そこで、SQSが登場します。

API GatewayはSQSにそのリクエストをキューイングし、後で処理するために保存します。

そして、システムが準備ができた時に、SQSからデータを取り出して処理を行います。

 

つまり、API GatewayとSQSの組み合わせは、外部からのリクエストを安全に受け取り、適切に処理するためのしくみで、SQSを使うことで、システムが忙しい時でもリクエストを失うことなく、処理を後回しにすることができます。

 

例として、オンラインショッピングサイトでの注文処理を考えてみましょう。

  1. ユーザーがオンラインショッピングサイトで商品を購入し、注文を確定します。
  2. ユーザーの注文情報(商品、数量、配送先など)がAPI Gatewayを介してサーバーに送信されます。
  3. サーバーは注文情報を処理し、在庫を確認したり、支払いを処理したりします。この処理には時間がかかる場合があります。
  4. API Gatewayは処理が完了するまでユーザーに待機させるか、もしくは別の応答を返します。
  5. サーバーが注文処理を完了すると、その結果(注文受付確認や配送状況など)をSQSにキューイングします。
  6. 別のサーバーやシステムがSQSから注文情報を取り出し、配送手配や在庫管理などの追加処理を行います。

    これにより、システムが注文処理に忙しくても、注文情報が失われることなく処理されます。

このように、API GatewayとSQSを組み合わせることで、オンラインショッピングサイトの注文処理など、多くのリクエストを安全に処理し、システムの負荷を分散させることができます。