Google Cloud Storage 버킷 백업 중

Google Cloud Storage 버킷 백업 중

한 버킷에서 파일이 삭제된 경우 항상 다른 버킷에서 복구할 수 있도록 한 버킷을 다른 버킷에 정기적으로 백업할 수 있는 방법이 있습니까?

답변1

이를 위해 고려할 수 있는 몇 가지 옵션이 있습니다.

먼저 다음을 사용하여 전송 작업을 생성할 수 있습니다.보관이전 서비스('저장소' > '전송'으로 이동). 한 버킷에서 다른 버킷으로 데이터를 자동으로 백업하도록 구성할 수 있습니다(AWS 버킷을 Google Cloud Storage에 백업하도록 구성할 수도 있음). 전송은 매우 유연한 도구이며 무엇보다도 파일 접두사, 수정 시간 또는 대상 특정 개체 URL을 기반으로 전송할 파일을 정의할 수 있습니다.

또 다른 옵션은 명령을 사용하여 gsutil한 버킷에서 다른 버킷으로 파일을 복사하거나 동기화하는 것입니다. 이 프로세스를 자동화하려면 명령을 인스턴스에 cronjob으로 추가하고 선택한 시간/간격에 따라 실행할 수 있습니다.

예를 들어 원본 버킷의 모든 내용을 대상 버킷에 복사하려면 다음과 유사한 명령을 사용할 수 있습니다.

$ gsutil cp -r gs://SOURCE_BUCKET_NAME/* gs://DESTINATION_BUCKET_NAME/

또는 -r 스위치와 함께 gsutil rsync를 사용하여 소스 버킷의 콘텐츠를 대상 버킷과 동기화할 수 있습니다. 예를 들어:

$ gsutil rsync -r gs://SOURCE_BUCKET_NAME gs://DESTINATION_BUCKET_NAME/

파일 삭제가 걱정된다면 살펴보는 것이 좋습니다.Cloud Storage 객체 버전 관리. 이 기능이 활성화된 경우 버킷의 객체를 덮어쓰거나 삭제하면 원본 객체의 보관된 버전이 생성되므로 나중에 필요할 경우 원본 객체를 검색할 수 있습니다. 이는 본질적으로 실수로 객체가 삭제되는 것을 방지합니다.

객체 버전 관리에서는 보관된 각 객체가 라이브 객체 버전만큼 많은 공간을 차지하고 보관된 스토리지에 대해 라이브 스토리지와 동일한 금액이 청구된다는 점에 주목할 가치가 있습니다. 보관된 객체는 다음을 활용하여 관리(예: 특정 연령에 도달하면 자동 삭제)할 수 있습니다.객체 수명주기 관리.

답변2

Cloud Scheduler 및 Cloud Functions를 사용하여 자동 백업을 위한 크론 작업을 설정할 수 있습니다.

Node.js를 사용하면 다음 코드와 같은 파일 이름 목록을 얻을 수 있습니다.

const [sourceFiles] = await sourceBucket.getFiles({
    prefix: 'data/'
});

그런 다음 다음 코드와 같이 파일을 다른 버킷에 복사합니다.

let promises = [];
for (let fileName of sourceFileNames) {
  const copyFilePromise = sourceBucket.file(fileName).copy(destBucket.file(`${dateStr}/${fileName}`));
  promises.push(copyFilePromise);
}
await Promise.all(promises);

관련 정보