파일 게이트웨이에서 RefreshCache 작업에 시간이 오래 걸리는 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 9월 25일

AWS Storage Gateway의 파일 게이트웨이에서 RefreshCache 작업을 시작했습니다. 하지만 작업을 완료하는 데 시간이 오래 걸립니다. 이 지연의 이유는 무엇입니까?

해결 방법

RefreshCache 작업은 게이트웨이가 마지막으로 객체를 식별하고 캐시한 이후 Amazon Simple Storage Service(Amazon S3) 객체의 변경 사항(업데이트, 업로드 또는 삭제)을 식별합니다. 이 작업을 수행하기 위해 파일 게이트웨이는 S3 버킷에서 재귀 LIST 작업을 실행한 다음 LIST 작업에서 돌아오는 모든 객체에 대해 HEAD 객체 작업을 실행합니다. HEAD 작업은 메타데이터를 가져온 다음 파일 게이트웨이 캐시에 저장됩니다.

다음 요소는 RefreshCache 작업을 완료하는 데 걸리는 시간에 영향을 줄 수 있습니다.

  • S3 버킷에 많은 수의 객체가 있는 경우 RefreshCache의 실행 시간이 늘어납니다. 파일 게이트웨이가 버킷의 모든 객체에 대해 HEAD 객체를 실행하기 때문입니다.
  • RefreshCache 작업은 파일 게이트웨이 내의 개별 파일 공유에만 적용됩니다. 하나의 파일 공유는 주어진 시간에 두 개의 RefreshCache API 작업을 지원합니다. 캐시 새로 고침을 시작하기 위해 더 많은 요청을 보내면 진행 중인 작업이 완료되기 전에도 더 많은 작업이 트리거됩니다. 이로 인해 InvalidGatewayRequestException 오류가 발생할 수 있습니다.
  • S3 버킷에서 접두사마다 초당 3,500개의 PUT/COPY/POST/DELETE 요청 또는 5,500개의 GET/HEAD 요청을 전송할 수 있습니다. 이러한 지원되는 요청 속도는 파일 게이트웨이가 S3 버킷에 대한 요청에도 적용되며, 이로 인해 RefreshCache 작업이 얼마나 빨리 완료될 수 있는지에 영향을 줍니다. S3 버킷이 파일 게이트웨이 이외의 서비스에서도 사용되는 경우 RefreshCache의 실행 시간이 늘어날 수 있습니다.

RefreshCache 작업의 실행 시간을 줄일 수 있는 다음과 같은 방법을 고려하십시오.

  • 버킷의 객체 수를 줄일 수 있습니다.
  • 전체 버킷에 대해 하나의 파일 공유를 갖는 대신 S3 버킷의 개별 접두사에 해당하는 여러 파일 공유를 배포할 수 있습니다. 참고: 개별 파일 게이트웨이에 대해 최대 10개의 파일 공유를 만들 수 있습니다. RefreshCache 작업은 파일 공유별로 실행되므로 이 방법을 사용하면 개별 RefreshCache 작업을 완료하는 데 걸리는 시간을 줄일 수 있습니다.
  • 전체 S3 버킷에 대해 하나의 파일 공유를 사용하는 경우 새 객체로 업데이트되는 버킷의 특정 접두사 또는 폴더에 RefreshCache 작업에 집중합니다. 이렇게 하면 작업 범위가 줄어들어 실행 시간을 줄일 수 있습니다. AWS Command Line Interface(AWS CLI) 또는 Storage Gateway API를 사용하여 작업을 실행할 때 RefreshCache 작업을 특정 폴더로 지정할 수 있습니다. Storage Gateway 콘솔에서는 현재 이 옵션을 사용할 수 없습니다.
    참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인합니다.
  • S3 버킷에 대한 다른 요청에 대해 사용량이 적은 시간에 RefreshCache 작업을 실행할 수 있습니다. AWS Lambda와 Amazon CloudWatch를 사용하여 타이머로 작업을 트리거할 수있습니다.

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?