스택큐힙리스트

AWS S3 Sync가 큰 디렉토리로 복사할 때 매우 느립니다. 본문

카테고리 없음

AWS S3 Sync가 큰 디렉토리로 복사할 때 매우 느립니다.

스택큐힙리스트 2023. 11. 3. 23:25
반응형

AWS-CLI를 사용하여 S3의 빈 디렉토리에 데이터를 동기화 할 때 거의 즉시 완료됩니다. 그러나 수백만 개의 폴더가 있는 큰 디렉토리에 대해 동기화를 수행하는 경우 파일을 업로드/동기화하기 전에 매우 오랜 시간이 소요됩니다.


대안적인 방법이 있을까요? S3 디렉토리의 모든 파일을 고려하려는 것 같아 동기화하기 전에 사전에 체크하지 않고 데이터를 업로드하는 것도 좋을 것 같습니다.

답변 1

sync 명령은 버킷에 있는 모든 파일을 열거하여 로컬 파일이 이미 버킷에 있는지 여부와 로컬 파일과 동일한지 여부를 확인해야합니다. 버킷에 있는 문서가 많을수록 시간이 오래 걸릴 것입니다.


이러한 sync 동작이 필요하지 않다면 다음과 같이 재귀적으로 복사하는 명령을 사용하십시오:


aws s3 cp --recursive . s3://mybucket/

그리고 이 명령은 현재 디렉토리의 모든 로컬 파일을 S3 버킷으로 복사해야합니다.

답변 2

AWS S3는 대용량 디렉토리로 복사할 때 매우 느리다.
AWS S3는 신뢰성과 확장성 있게 클라우드 스토리지 솔루션을 제공하여 많은 기업이나 개발자들이 사용하고 있다. 하지만, 대용량 디렉토리를 복사할 때 S3의 동기화 기능이 상당히 느리다는 문제가 있다. 이에 대한 해결책을 알기 전에 왜 이러한 문제가 발생하는지 살펴보자.
대용량 디렉토리는 많은 파일과 하위 디렉토리로 구성되어 있기 때문에 복사 작업에 많은 시간이 소요된다. AWS S3는 일반적으로 데이터를 작은 크기로 나누어 저장하고, 네트워크 대역폭 및 I/O 작업에 대한 부하를 분산시키기 위해 노력한다. 따라서 많은 작은 파일을 한 번에 복사하는 대용량 디렉토리의 경우, 복사 작업에 걸리는 시간이 크게 증가하게 된다.
이러한 현상을 개선하기 위해 AWS S3 SDK의 최적화된 설정을 사용할 수 있다. SDK인 AWS CLI에서는 `--sse` (Server-side encryption) 기능을 사용하여 전송 시 암호화 설정을 적용할 수 있다. 또한, 대용량 파일 복사 시 `--multipart-copy` 옵션을 사용하여 작은 부분으로 나누어 병렬로 전송하도록 설정할 수 있다. 이렇게 함으로써 전체 복사 시간을 줄일 수 있다.
또 다른 해결책은 AWS Transfer Acceleration을 사용하는 것이다. 이 기능을 활성화하면 AWS CloudFront의 콘텐츠 전송 네트워크 (CDN)를 통해 데이터를 전송하므로 복사 작업이 더욱 빨라진다. 자동으로 가장 가까운 엣지 위치로 보내져 지연 시간을 최소화하고 대역폭 이점을 활용한다.
마지막으로, 대용량 디렉토리를 복사하는 경우 AWS Batch 작업을 사용할 수 있다. 이를 통해 다수의 병렬 작업을 동시에 실행하여 전체 복사 속도를 향상시킬 수 있다. 이를 위해 AWS Batch 작업 정의를 작성하여 복사 작업을 일괄적으로 처리해야 하며, 여기에는 실행 능력, 병렬 처리 방법, 우선순위 등을 설정할 수 있다.
요약하자면, 대용량 디렉토리를 AWS S3로 복사할 때 느린 속도 문제가 발생할 수 있다. 그러나 AWS S3 SDK의 최적화된 설정, AWS Transfer Acceleration 활성화, AWS Batch 작업을 활용하여 이러한 문제를 극복할 수 있다. 이를 통해 더 효율적이고 빠른 복사 작업을 수행할 수 있다.

반응형
Comments