AWS Storage Gateway ファイルゲートウェイで Network File System (NFS) または Server Message Block (SMB) ファイル共有を使用しています。ファイルゲートウェイは、Amazon Simple Storage Service (Amazon S3) バケットに関連付けられています。しかし、バケットにファイルを直接アップロードすると、ファイル共有にファイルが表示されません。
解決策
ファイル共有を使用してローカルでキャッシュにファイルを書き込むと、Storage Gateway はファイル共有キャッシュを自動的に更新します。ただし、Amazon S3 にファイルを直接アップロードする際には、Storage Gateway はキャッシュを自動的に更新しません。Amazon S3 にファイルを直接アップロードする場合、ファイル共有で変更を反映するには、RefreshCache 操作を実行する必要があります。
Storage Gateway では、保持期間 (TTL) 値に基づいて RefreshCache 操作を自動化できます。TTL は最後の更新からの経過時間です。TTL 値よりも後にファイルディレクトリにアクセスすると、ファイルゲートウェイは Amazon S3 バケットから取得したディレクトリの内容を更新します。RefreshCache 操作の自動化に有効な TTL 値の範囲は、300 秒から 2,592,000 秒です。
注: TTL 値が期限切れになると、ファイルゲートウェイはフォルダレベルで ListObjects Amazon S3 API コールを呼び出します。TTL を低い値に設定すると、Amazon S3 API リクエストおよび、それに関連するコストが増加する可能性があります。
Storage Gateway コンソールを使用して RefreshCache 操作を自動化することも、UpdateNFSFileShare または UpdateSMBFileShare Storage Gateway API を使用することもできます。いずれの API コールでも、CacheAttributes パラメータを更新し、CacheStaleTimeoutInSeconds で TTL 値を指定する必要があります。
コンソールを使用する場合は、次の手順を実行します。
- Storage Gateway コンソールを開きます。
- [ファイル共有] を選択します。
- RefreshCache 操作を自動化する対象のファイル共有を選択します。
- [アクション] を選択し、[ファイル共有設定の編集] を選択します。
- [ゲートウェイ以外のファイルキャッシュの更新時間] で [更新間隔を設定] を選択します。
- TTL によりファイル共有のキャッシュを更新する時間を、日数、時間、分単位で設定します。有効な値の範囲は 5 分から 30 日です。
- [保存] を選択します。
RefreshCache を 1 回のみ実行する場合は、キャッシュを手動で更新してもかまいません。
更新プロセスが完了するまでにかかる時間は、次の条件に左右されます。
- ゲートウェイにキャッシュされているオブジェクトの数。
- 最後の更新後にバケットに追加したか、バケットから削除したオブジェクトの数。
注: キャッシュの更新時に、RefreshCache が開始されます。ただし、ファイルの更新は別のプロセスです。キャッシュ更新通知を設定することで、ファイル更新プロセスの更新情報を取得できます。refresh-complete 通知を受信した時点で、ファイルの更新処理は完了しています。