Amazon S3 버킷에서 객체 새로 고침 - AWSStorage Gateway

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon S3 버킷에서 객체 새로 고침

NFS 또는 SMB 클라이언트가 파일 시스템 작업을 수행할 때 게이트웨이가 파일 공유와 연결된 S3 버킷의 객체 인벤토리를 유지합니다. 게이트웨이가 이 캐싱된 인벤토리를 사용하여 S3 버킷의 지연 시간 및 빈도를 줄입니다. 이 작업은 파일을 S3 파일 게이트웨이 캐시 스토리지로 가져오지 않습니다. S3 버킷에 있는 객체의 인벤토리의 변경 사항을 반영하도록 캐시된 인벤토리만 업데이트합니다.

파일 공유에 대한 S3 버킷을 새로 고치려면 Storage Gateway 콘솔인RefreshCacheStorage Gateway API에서의 작업 또는AWS Lambda함수.

콘솔에서 S3 버킷에 있는 객체를 새로 고치려면
  1. 에서 Storage Gateway 콘솔 열기https://console.aws.amazon.com/storagegateway/home.

  2. 파일 공유를 선택한 후 새로 고칠 S3 버킷과 연결된 파일 공유를 선택하십시오.

  3. 작업에서 캐시 새로 고침을 선택하십시오.

    새로 고침 프로세스에 걸리는 시간은 게이트웨이에 캐싱된 객체의 수와 S3 버킷에 추가되거나 S3 버킷에서 제거된 객체의 수에 따라 달라집니다.

를 사용하여 S3 버킷의 객체를 새로 고치려면AWS Lambda기능
  1. S3 파일 게이트웨이에서 사용하는 S3 버킷을 식별합니다.

  2. 를 선택합니다.이벤트섹션이 비어 있습니다. 나중에 자동으로 채워집니다.

  3. IAM 역할 생성 및 Lambda에 대한 신뢰 관계 허용lambda.amazonaws.com.

  4. 다음 정책을 사용합니다.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "StorageGatewayPermissions", "Effect": "Allow", "Action": "storagegateway:RefreshCache", "Resource": "*" }, { "Sid": "CloudWatchLogsPermissions", "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" } ] }
  5. Lambda 콘솔에서 Lambda 함수를 생성합니다.

  6. Lambda 작업에 다음 함수를 사용합니다.

    import json import boto3 client = boto3.client('storagegateway') def lambda_handler(event, context): print(event) response = client.refresh_cache( FileShareARN='arn:aws:storagegateway:ap-southeast-2:672406774878:share/share-E51FBD9C' ) print(response) return 'Your FileShare cache has been refreshed'
  7. 실행 역할를 선택하여 생성한 IAM 역할을 선택합니다.

  8. 선택 사항: Amazon S3 대한 트리거를 추가하고 이벤트를 선택합니다.ObjectCreated또는ObjectRemoved.

    참고

    RefreshCache다른 프로세스를 시작하기 전에 한 프로세스를 완료해야 합니다. 버킷에서 여러 객체를 생성하거나 삭제하면 성능이 저하될 수 있습니다. 따라서 S3 트리거를 사용하지 않는 것이 좋습니다. 대신 다음에 설명된 Amazon CloudWatch 규칙을 사용합니다.

  9. CloudWatch 콘솔에서 CloudWatch 규칙을 생성하고 일정을 추가합니다. 일반적으로 다음을 권장합니다.고정 비율30분입니다. 그러나 대용량 S3 버킷에서는 1-2시간을 사용할 수 있습니다.

  10. CloudWatch 이벤트에 대한 새 트리거를 추가하고 방금 생성한 규칙을 선택합니다.

  11. Lambda 구성을 저장합니다. 테스트를 선택합니다.

  12. 선택S3 풋요구 사항에 맞게 테스트를 사용자 지정할 수 있습니다.

  13. 테스트가 성공합니다. 그렇지 않은 경우 JSON을 요구 사항에 맞게 수정하고 다시 테스트하십시오.

  14. Amazon S3 콘솔을 열고 생성한 이벤트와 Lambda 함수 ARN이 있는지 확인합니다.

  15. Amazon S3 콘솔이나 을 (를) 사용하여 S3 버킷에 객체를 업로드합니다.AWS CLI.

    CloudWatch 콘솔은 다음과 비슷한 CloudWatch 출력을 생성합니다.

    { u'Records': [ {u'eventVersion': u'2.0', u'eventTime': u'2018-09-10T01:03:59.217Z', u'requestParameters': {u'sourceIPAddress': u'MY-IP-ADDRESS'}, u's3': {u'configurationId': u'95a51e1c-999f-485a-b994-9f830f84769f', u'object': {u'sequencer': u'00549CC2BF34D47AED', u'key': u'new/filename.jpeg'}, u'bucket': {u'arn': u'arn:aws:s3:::MY-BUCKET', u'name': u'MY-GATEWAY-NAME', u'ownerIdentity': {u'principalId': u'A3OKNBZ72HVPP9'}}, u's3SchemaVersion': u'1.0'}, u'responseElements': {u'x-amz-id-2': u'76tiugjhvjfyriugiug87t890nefevbck0iA3rPU9I/s4NY9uXwtRL75tCyxasgsdgfsq+IhvAg5M=', u'x-amz-request-id': u'651C2D4101D31593'}, u'awsRegion': u'MY-REGION', u'eventName': u'ObjectCreated:PUT', u'userIdentity': {u'principalId': u'AWS:AROAI5LQR5JHFHDFHDFHJ:MY-USERNAME'}, u'eventSource': u'aws:s3'} ] }

    Lambda 호출은 다음과 비슷한 출력을 제공합니다.

    { u'FileShareARN': u'arn:aws:storagegateway:REGION:ACCOUNT-ID:share/MY-SHARE-ID', 'ResponseMetadata': {'RetryAttempts': 0, 'HTTPStatusCode': 200, 'RequestId': '6663236a-b495-11e8-946a-bf44f413b71f', 'HTTPHeaders': {'x-amzn-requestid': '6663236a-b495-11e8-946a-bf44f413b71f', 'date': 'Mon, 10 Sep 2018 01:03:59 GMT', 'content-length': '90', 'content-type': 'application/x-amz-json-1.1' } } }

    클라이언트에 마운트된 NFS 공유에 이 업데이트가 반영됩니다.

    참고

    수백만 개의 객체가 있는 대형 버킷에서 대규모 객체 생성 또는 삭제를 업데이트하는 캐시의 경우 업데이트에는 몇 시간이 걸릴 수 있습니다.

  16. Amazon S3 콘솔을 사용하여 객체를 수동으로 삭제하거나AWS CLI.

  17. 클라이언트에 마운트된 NFS 공유를 확인합니다. 캐시가 새로 고쳐졌기 때문에 객체가 사라졌는지 확인합니다.

  18. CloudWatch 로그를 확인하여 이벤트와 함께 삭제 로그를 확인합니다.ObjectRemoved:Delete.

    { u'account': u'MY-ACCOUNT-ID', u'region': u'MY-REGION', u'detail': {}, u'detail-type': u'Scheduled Event', u'source': u'aws.events', u'version': u'0', u'time': u'2018-09-10T03:42:06Z', u'id': u'6468ef77-4db8-0200-82f0-04e16a8c2bdb', u'resources': [u'arn:aws:events:REGION:MY-ACCOUNT-ID:rule/FGw-RefreshCache-CW'] }
    참고

    크론 작업 또는 예약된 작업의 경우 CloudWatch 로그 이벤트는u'detail-type': u'Scheduled Event'.

캐시를 새로 고치면 새로 고침 작업만 시작됩니다. 캐시 새로 고침이 완료되었다고 해서 반드시 파일 새로 고침이 완료되었음을 의미하지는 않습니다. 게이트웨이 파일 공유에서 새 파일을 확인하기 전에 파일 새로 고침 작업이 완료되었는지 확인하려면 refresh-complete 알림을 사용하십시오. 이렇게 하려면 구독을 통해 Amazon CloudWatch 이벤트를 통해 알림을 받을 수 있습니다.RefreshCache작업이 완료됩니다. 자세한 정보는 파일 작업에 대한 알림 받기을 참조하십시오.