Amazon SWF クォータ - Amazon Simple Workflow Service

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

Amazon SWF クォータ

Amazon SWF では、アカウントごとのドメイン数やワークフロー実行履歴のサイズなど、特定のワークフローパラメータのサイズにクォータを設定します。これらのクォータは、誤ったワークフローがシステムのすべてのリソースを消費するの防ぐために設計されていますが、ハードの制限ではありません。アプリケーションがこれらのクォータを頻繁に超えている場合、サービスクォータの増加を申請できます。

Amazon SWF の全般アカウントクォータ

  • 最大登録ドメイン数 - 100

    このクォータには登録済みドメインと廃止ドメインの両方が含まれています。

  • ワークフローとアクティビティタイプの最大数 – ドメインごとに 10,000

    このクォータには登録済みドメインと廃止タイプの両方が含まれています。

  • API コールのクォータ – 頻繁でないスパイクを超えてアプリケーションが非常に短期間に大量の API コールを実行した場合、アプリケーションは調整されることがあります。

  • 最大のリクエストサイズ – リクエストあたり 1 MB

    これは Amazon SWF API リクエストあたりの合計データサイズで、リクエストヘッダーおよびその他すべての関連するリクエストデータを含みます。

  • Count API の切り捨てられたレスポンス - 内部クォータに達したこと、およびレスポンスが総数ではないことを示します。

    一部のクエリでは、完全なレスポンスを返す前に、内部的に 1 MB のクォータに達します。以下では、総数ではなく切り捨てられたレスポンスが返される場合があります。

    これらのそれぞれに対して、truncated レスポンスが true に設定されている場合、数は総数より小さくなります。この内部クォータを引き上げることはできません。

  • タグの最大数 - リソースあたり 50 個。

    50 個を超えるタグを追加しようとすると、400 エラー TooManyTagsFault が発生します。

ワークフロー実行のクォータ

  • オープン状態のワークフロー実行の最大数 - ドメインあたり 100,000

    この数には、子ワークフローの実行が含まれます。

  • 最大ワークフロー実行時間 - 1 年 これはハードクォータであり、変更できません。

  • 最大ワークフロー実行履歴サイズ - 25,000 イベント これはハードクォータであり、変更できません。

    ベストプラクティスは、各ワークフローの履歴が 10,000 イベントを超えないように構成することです。ディサイダーはワークフロー履歴を取得する必要があるため、履歴が小さいほどディサイダーはよりすばやく完了できます。Flow Framework を使用している場合、ContinueAsNew を使用して新しい履歴でワークフローを継続して使用できます。

  • 子ワークフロー実行の最大数 - ワークフロー実行あたり 1,000

  • ワークフロー実行アイドルタイムクォータ - 1 年 (ワークフロー実行時間の最大値により制約されます)

    ワークフロータイムアウトを設定して、ワークフローの特定の段階で大幅に時間がかかる場合にタイムアウトイベントを発生できます。

  • ワークフロー保持期間クォータ - 90 日

    この期間後は、ワークフロー履歴の取得や表示はできません。Amazon SWF が保持するクローズしたワークフロー実行の数にはこれ以上の制限はありません。

ユースケースでこれらのクォータを超える必要がある場合は、Amazon SWF の機能を使用して実行を継続し、子ワークフロー実行を使用してアプリケーションを構成します。さらにクォータを増やす必要がある場合は、「クォータ引き上げのリクエスト」を参照してください。

タスク実行におけるクォータ

  • タスクリストあたりの最大ポーラー数 - タスクリストあたり 1,000

    特定のタスクリストに対して同時にポーリングを実行するポーラーを、最大 1,000 個持つことができます。1,000 個を超えた場合は、LimitExceededException が発生します。

    注記

    最大値は 1,000 個ですが、このクォータの前に LimitExceededException エラーが発生する場合があります。このエラーは、タスクが遅れていることを意味するものではありません。そうではなく、1 つのタスクリストでアイドル状態のポーラーの数が最大数に達していることを意味します。Amazon SWF は、クライアント側とサーバー側の両方でリソースを節約するためにこの制限を設定しています。制限を設定することで、過剰な数のポーラーが不必要に待機することを防ぎます。複数のタスクリストを使用してポーリングを分散することで、LimitExceededException エラーを減らすことができます。

  • 1 秒あたりにスケジュールされるタスクの最大数 — タスクリストあたり 2,000 個

    特定のタスクリストに対して、1 秒あたり最大 2,000 個のタスクをスケジュールできます。2,000 個を超えると、ScheduleActivityTask 決定が ACTIVITY_CREATION_RATE_EXCEEDED エラーで失敗します。

    注記

    最大値は 2,000 個ですが、このクォータの前に ACTIVITY_CREATION_RATE_EXCEEDED エラーが発生する場合があります。これらのエラーを減らすには、複数のタスクリストを使用して負荷を分散します。

  • 最大タスク実行時間 - 1 年 (ワークフロー実行時間の最大値による制約)

    アクティビティのタイムアウトを設定して、アクティビティタスク実行の特定の段階で大幅に時間がかかる場合にタイムアウトイベントを発生できます。

  • SWF がタスクをキューに保持する最大時間 – 1 年 (ワークフロー実行時間のクォータにより制約されます)

    アクティビティ登録中にデフォルトのアクティビティのタイムアウトを設定すると、アクティビティタスク実行の特定の段階で大幅に時間がかかる場合にタイムアウトイベントが発生します。ディサイダーコードでアクティビティタスクをスケジュールするときに、デフォルトのアクティビティタイムアウトを上書きすることもできます。

  • 最大オープンアクティビティタスク - ワークフロー実行あたり 1,000

    このクォータには、ワーカーによってスケジュールされたアクティビティタスクと処理中のアクティビティタスクの両方が含まれます。

  • 最大オープンタイマー - ワークフロー実行あたり 1,000

  • 最大入力/結果データサイズ - 32,768 文字

    このクォータは、アクティビティまたはワークフロー実行結果データ、アクティビティタスクまたはワークフロー実行をスケジューリングする時の入力データ、およびワークフロー実行シグナルと共に送信される入力に影響します。

  • 決定タスクの応答の最大決定 - それぞれで異なる

    最大 API リクエストのサイズに 1 MB のクォータがあるため、RespondDecisionTaskCompleted への単一の呼び出しで返される決定の数は、スケジューリングされたアクティビティタスクまたはワークフロー実行に提供される入力データのサイズを含む、各決定で使用されるデータのサイズに応じて制限されます。

Amazon SWF スロットリングのクォータ

前に説明したサービスのクォータに加え、特定の Amazon SWF API コールおよび決定イベントは、トークンバケットスキームを使用してサービス帯域幅を維持するために調整されます。リクエストのレートがここに記載されているレートを継続的に超えている場合、スロットルクォータの増加をリクエストできます。

スロットリングクォータと決定クォータはすべてのリージョンで同じです。

すべてのリージョンのスロットリングクォータ

以下のクォータは個々のアカウントレベルで適用されます。次のクォータの引き上げをリクエストすることもできます。これを行う方法については、「クォータ引き上げのリクエスト」を参照してください。

API 名 バケットサイズ 補充レート/秒
CountClosedWorkflowExecutions 2000 6
CountOpenWorkflowExecutions 2000 6
CountPendingActivityTasks 200 6
CountPendingDecisionTasks 200 6
DeprecateActivityType 200 6
DeprecateDomain 100 6
UndeprecateDomain 100 6
DeprecateWorkflowType 200 6
UndeprecateWorkflowType 200 6
DescribeActivityType 2000 6
DescribeDomain 200 6
DescribeWorkflowExecution 2000 6
DescribeWorkflowType 2000 6
GetWorkflowExecutionHistory 2000 60
ListActivityTypes 200 6
ListDomains 100 6
ListClosedWorkflowExecutions 200 6
ListOpenWorkflowExecutions 200 48
ListWorkflowTypes 200 6
PollForActivityTask 2000 200
PollForDecisionTask 2000 200
RecordActivityTaskHeartbeat 2000 160
RegisterActivityType 200 60
RegisterDomain 100 6
RegisterWorkflowType 200 60
RequestCancelWorkflowExecution 2000 30
RespondActivityTaskCompleted 2000 200
RespondActivityTaskCanceled 2000 200
RespondActivityTaskFailed 2000 200
RespondDecisionTaskCompleted 2000 200
SignalWorkflowExecution 2000 30
StartWorkflowExecution 2000 200
TerminateWorkflowExecution 2000 60
UndeprecateActivityType 200 6
TagResource 50 30
UntagResource 50 30
ListTagsForResource 50 30

すべてのリージョンの決定クォータ

以下のクォータは個々のアカウントレベルで適用されます。次のクォータの引き上げをリクエストすることもできます。これを行う方法については、「クォータ引き上げのリクエスト」を参照してください。

API 名 バケットサイズ 補充レート/秒
RequestCancelExternalWorkflowExecution 1200 120
ScheduleActivityTask 500 200
SignalExternalWorkflowExecution 1200 120
StartChildWorkflowExecution 500 12
StartTimer 2000 200

ワークフローレベルのクォータ

以下のクォータはワークフローレベルで適用され、増やすことはできません。

API 名 バケットサイズ 補充レート/秒
GetWorkflowExecutionHistory 400 200
SignalWorkflowExecution 1,000 1,000
RecordActivityTaskHeartbeat 1,000 1,000
RequestCancelWorkflowExecution 200 200

クォータ引き上げのリクエスト

AWS Management Console の [サポートセンター] ページを使用して、すべてのリージョンのスロットリングクォータ および すべてのリージョンの決定クォータ のクォータ引き上げをリクエストしてください。詳細については、「AWS 全般のリファレンス」の「クォータの引き上げをリクエストする方法」を参照してください。