HSM スロットリング
ワークロードが AWS CloudHSM クラスター内の ハードウェアセキュリティモジュール (HSM) 容量を超えると、HSM がビジー状態またはスロットリングされていることを示すエラーメッセージが表示されます。この場合、スループットが低下したり、HSM からのリクエストを拒否する割合が高くなることがあります。さらに、HSM は次のビジーエラーを送信する可能性があります。
PKCS11 では、ビジーエラーは
CKR_FUNCTION_FAILED
にマップされます。このエラーは複数の理由で発生する可能性がありますが、HSM スロットリングによってこのエラーが発生すると、ログに次のログ行が表示されます。[cloudhsm_provider::hsm1::hsm_connection::e2e_encryption::error] Failed to prepare E2E response. Error: Received error response code from Server. Response Code: 187
[cloudhsm_pkcs11::decryption::aes_gcm] Received error from the server. Error: This operation is already in progress. Internal error code: 0x000000BB
JCE では、ビジーエラーは
com.amazonaws.cloudhsm.jce.jni.exception.InternalException: Unexpected error with the Provider: The HSM could not queue the request for processing.
にマップされます。他の SDK のビジーエラーはメッセージ「
Received error response code from Server. Response Code: 187
」を出力します。
PKCS11 では、ビジーエラーは
CKR_OPERATION_ACTIVE
にマップされます。JCE では、ビジーエラーは
0xBB (187)
ステータスとしてCFM2Exception
にマップされます。アプリケーションはCFM2Exception
のgetStatus()
関数を使用して HSM からどのようなステータスが返されたかを確認できます。他の SDK のビジーエラーはメッセージ「
HSM Error: HSM is already busy generating the keys(or random bytes) for another request.
」を出力します。
解決方法
この問題は、次の 1 つまたは複数のアクションを実行することで解決できます。
拒否された HSM オペレーションに対する再試行コマンドをアプリケーションレイヤーに追加します。再試行コマンドを有効にする前に、クラスターがピーク時の負荷に対応できる適切なサイズになっていることを確認してください。
注記
クライアント SDK 5.8.0 以降では、再試行コマンドはデフォルトでオンになっています。各 SDK の再試行コマンド設定の詳細については、「クライアント SDK 5 設定ツールの詳細設定」を参照してください。
「AWS CloudHSM クラスター内の HSM のスケーリング」の手順に従って HSM をクラスターに追加してください。
重要
クラスターの負荷テストを行って予測すべきピーク負荷を決定し、高可用性を確保するためにクラスターに HSM を 1 つ追加することを推奨します。