ファイルゲートウェイに対する RefreshCache 操作に時間がかかる理由を知りたいです。

所要時間1分
0

AWS Storage Gateway で、ファイルゲートウェイに RefreshCache 操作を開始すると、その操作が完了するまでに長い時間がかかります。

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。

RefreshCache 操作は、ゲートウェイが最後にオブジェクトを識別してキャッシュしたとき以降の Amazon Simple Storage Service (Amazon S3) オブジェクトの変更を識別します。変更には、更新、アップロード、または削除されたオブジェクトが含まれます。この操作を完了するために、ファイルゲートウェイは Amazon S3 バケットで再帰的な LIST 操作を実行します。次に、ファイルゲートウェイは、LIST 操作から戻ってきたすべてのオブジェクトに対して HEAD オブジェクト操作を実行します。HEAD 操作はメタデータを保持し、ファイルゲートウェイキャッシュに保存します。

RefreshCache 操作にかかる時間には、次の要因が影響します。

  • S3 バケットに多数のオブジェクトがある場合、RefreshCache の実行時間が長くなります。これは、ファイルゲートウェイがバケット内のすべてのオブジェクトに対して HEAD オブジェクトを実行するためです。
  • RefreshCache 操作は、ファイルゲートウェイ内の個々のファイル共有に固有です。1 件のファイル共有では、一度に 2 件の RefreshCache API 操作がサポートされます。キャッシュの更新を開始するリクエストをさらに送信すると、進行中の操作が完了する前に、さらに多くの操作が開始されます。これにより、InvalidGatewayRequestException エラーが発生する場合があります。
  • S3 バケットは、プレフィックスにつき、1 秒あたり 3,500 件の PUT/COPY/POST/DELETE または 5,500 件の GET/HEAD リクエストをサポートできます。これらのサポートされているリクエストレートは、ファイルゲートウェイが S3 バケットに対して行うリクエストにも適用されます。リクエストの数は、RefreshCache 操作が完了する速さに影響します。S3 バケットをファイルゲートウェイ以外のサービスも使用している場合、RefreshCache の実行時間が長くなる可能性があります。

RefreshCache 操作の実行時間を短縮するには、次のいずれかを実行します。

  • バケット内のオブジェクトの数を減らします。
  • S3 バケットの個別のプレフィックスに対応する複数のファイル共有をデプロイします。1 件のファイル共有を、バケット全体には使用しないでください。
    : 個々のファイルゲートウェイに最大 10 個のファイル共有を作成できます。RefreshCache 操作はファイル共有ごとに実行されるため、こうすることで、個々の RefreshCache 操作を完了するのにかかる時間を短縮できます。
  • S3 バケット全体に 1 件のファイル共有を使用する場合は、新しいオブジェクトで更新されるバケットの特定のプレフィックスまたはフォルダに RefreshCache 操作を集中させます。これにより、操作の範囲を絞り込み、実行時間を短縮できます。AWS CLI または Storage Gateway API を使用して操作を実行する場合、RefreshCache 操作の対象を特定のフォルダに限定します。この方法は、Storage Gateway コンソールでは使用できません。
  • S3 バケットへの他のリクエストについては、オフピーク時に RefreshCache 操作を実行します。AWS Lambda と Amazon CloudWatch を使用することで、タイマーで操作を開始できます。

関連情報

AWS Storage Gateway のファイルゲートウェイで、キャッシュ更新プロセスを自動化する

AWS公式
AWS公式更新しました 4ヶ月前
コメントはありません