Amazon Marketplace Web Service (MWS) will no longer be available after March 31, 2024. All MWS developers must migrate to Selling Partner API (SP-API) to avoid service disruptions. Refer to the Migration Hub for more information.
AmazonマーケットプレイスWebサービス(Amazon MWS)を正常に使用するには、スロットルを理解する必要があります。スロットルとは、一定時間内に送信できるリクエスト数を制限するプロセスのことです。リクエストとは、在庫フィードを送信したとき、または注文レポートをリクエストしたときなどです。スロットルは、リクエストがWebサービスに殺到するのを防ぎ、認証されたすべての開発者が確実にWebサービスにアクセスできるようにするものです。
Amazon MWSでは、リーキー・バケット・アルゴリズムのバリエーションを使用して、Webサービスを測定し、スロットルを実行します。このアルゴリズムは、下部にあいた穴から一定速度で水が流れ出すバケツの例えに基づいています。断続的にバケツに水を追加することができますが、あまりにも多くの水を一度に加えたり、速すぎる平均速度で水を加えたりした場合、水がバケツの容量を超えてしまいます。
バケツを最大リクエストクォータ、つまり一度に行うことができるリクエストの最大数と考え、Amazon MWSにこの例えを適用してみてください。バケツの穴は回復レート、つまり新しいリクエストを行うことができるようになるまでにかかる時間を表しています。したがって、一度に多すぎるリクエストを送信するとバケツの水があふれます。これをAmazon MWSの場合に置き換えると、スロットルが起こります。水はバケツから一定速度で漏れているため、バケツを満たしておくには、バケツに水を追加する前に少し待たなければなりません。そのため、最大リクエストクォータに達した後のリクエスト実行能力は、回復レート、つまり新しいリクエストを行えるようになるまでの時間によって管理されています。
Amazon MWSスロットルをコントロールする3つの値の定義は以下のとおりです。
次の例を考え、これらのアイデアを適用してみてください。SubmitFeedオペレーションを使って、25の在庫フィードを送信したいと考えてください。SubmitFeedオペレーションの最大リクエストクォータは15回で、2分ごとに新規1リクエストの回復レートです。一度に25フィードのリクエストを送信すると、15回以降のリクエストはスロットルされます。そのため、リクエストクォータが復元された後で、もう一度10個のフィードのリクエストを再送信する必要があります。回復レートは2分ごとに1リクエストであるため、残り10個のフィードのリクエストを送信できるようなるまでに20分かかります。そのため、すべてのリクエストを送信してスロットルされたリクエストを再送信する代わりに、プロセスを自動化して徐々にフィードのリクエストを送信することができます。
例えば、(元の25フィードのうちの)10個のフィードのリクエストを送信すると、リクエストクォータにはまだ5リクエストが残っています。その後10分待つと、回復レートによりリクエストクォータが10回に増加します(2分ごとにリクエスト1つが増えるので、10分で5つの新しいリクエストができます)。そして、もう10個のフィードのリクエストを送信します。残りの5つのフィードのリクエストは、さらに10分待ってから送信できます。万事がうまくいけば、25個すべてのインベントリフィードを約20分で送信できることになります。
リクエストを自動化すること考慮し、代替え処理ができるようにしてください。そうすれば、最大リクエストクォータに達したか、またはWebサービスに高いトラフィック量が起きたかでスロットルが発生した場合には、リクエストの数を減らして、最初に送信されなかったリクエストを再送信することができます。
フィードや送信したリクエストが正常に処理されるよう、以下の点をご確認ください。