Назад | Перейти на главную страницу

Каков наиболее эффективный способ передачи файлов с AWS S3 на S3?

В ведре AWS S3 хранится большое количество файлов. Мне нужно перенести эти файлы в другую корзину S3, принадлежащую другому пользователю, и в другом регионе. Файлы хранятся в разных местах в моем ведре S3 - эти ключи (например, location1 & location2) тоже нужно перенести. Оба сегмента S3 связаны с серверами AWS EC2 Ubuntu. Вот пример структуры моего ведра S3:

s3://mybucket/location1/some_file
s3://mybucket/location1/some_file2
s3://mybucket/location2/some_file
etc...

Какой подход к передаче файлов с S3 на S3 был бы наиболее эффективным с учетом этих ограничений?

https://aws.amazon.com/premiumsupport/knowledge-center/account-transfer-s3/

Вы можете скопировать объекты Amazon S3 из одной учетной записи AWS в другую с помощью операции S3 COPY. Вы должны предоставить целевой учетной записи AWS доступ к ресурсам исходной учетной записи AWS с помощью списков управления доступом Amazon S3 (ACL) или политик корзин.

После настройки разрешений IAM для нескольких учетных записей это так же просто, как aws s3 sync s3://sourcebucket s3://destinationbucket через интерфейс командной строки. Серверы-посредники не требуются - все происходит на S3 напрямую (и в результате будет значительно быстрее).

(Если вам не нужна вся корзина, CLI может так же легко копировать отдельные объекты)

Вы можете реализовать следующий сценарий:

  1. Разверните временный экземпляр EC2 в исходном или целевом регионе. Чем больше вы выберете, тем лучше производительность.
  2. Установите клиент S3 на этот экземпляр и перенесите файлы.
  3. После завершения операции остановите свой экземпляр EC2.