S3에서 여러 개의 대용량 파일을 단일 압축 파일로 백업하는 방법

S3에서 여러 개의 대용량 파일을 단일 압축 파일로 백업하는 방법

내 애플리케이션에는 총 10TB가 넘는 수천 개의 파일이 포함되어 있습니다.

이 데이터를 어딘가(아마도 AWS S3)에 백업해야 합니다.

제 생각에는:

  1. 백업 중인 데이터 압축
  2. 백업을 단일 파일로 저장

예를 들어 gzip으로 압축된 tar 파일입니다.

크기 때문에 gzip 압축 tar 파일이 너무 커서 로컬에서 생성할 수 없습니다.

내가 어떻게 할 수있는:

  1. 이러한 모든 폴더와 파일을 단일 압축 파일로 AWS S3에 스트리밍하시겠습니까?
  2. 압축된 파일을 S3에서 내 디스크로 다시 스트리밍하고 원래 파일 시스템 레이아웃을 유지하시겠습니까?

답변1

이는 기본 파이프라인 및 ssh사용 사례입니다.

$ tar zcf - -C /path/to/your/files . | ssh S3_hostname 'cat > yourfile.tar.gz'

압축을 푼다:

$ ssh S3_hostname 'cat yourfile.tar.gz' | tar zxf - -C /path/to/extract/to

여기서 핵심은 로컬 파일 시스템의 파일 대신 / tar에서 쓰거나 읽어야 함을 알려주는 것입니다 . 아카이브를 생성하는 경우 tar 의 데이터가 입력되고 S3 호스트에서 실행되는 원격 호출로 파이프되며 출력이 파일에 기록됩니다 . 압축 해제 시나리오에서 이는 다시 원격 호스트에서 파일을 읽기 위해 호출하는 데 사용되며 스트림은 인수에 지정된 경로로 아카이브를 추출하는 로컬 호출에 대한 스트림이 됩니다 .stdoutstdintarstdoutsshcatyourfile.tar.gzsshcatstdintar-C

관련 정보