Как проще всего скопировать всю корзину Amazon S3 в корзину в другой учетной записи? В идеале мы хотели бы каждую ночь копировать корзину в другую учетную запись в европейском центре обработки данных Amazon для целей резервного копирования.
S3: Дублирование сегментов
Ответы (6)
Одна вещь, которую следует учитывать, заключается в том, что вы можете захотеть, чтобы все, что это делает, работало на виртуальной машине Amazon EC2. Если у вас есть резервная копия, работающая за пределами облака Amazon, вы платите за передачу данных в обе стороны. Если вы работаете на виртуальной машине EC2, вы не платите за пропускную способность (хотя я не уверен, что это так при переходе между магазинами в Северной Америке и Европе) — только за время работы экземпляра EC2 (и все, что затраты на хранение виртуальной машины EC2, которые, я думаю, должны быть минимальными).
Круто, я могу подумать о написании сценария для размещения на Ec2. Основная цель резервного копирования — защита от человеческих ошибок с нашей стороны — если пользователь случайно удалит корзину или что-то в этом роде.
Если вы беспокоитесь об удалении, вам, вероятно, следует взглянуть на новый Версии.
Я подозреваю, что нет "автоматического" способа сделать это. Вам просто нужно написать простое приложение, которое перемещает файлы. В зависимости от того, как вы отслеживаете файлы в S3, вы также можете перемещать только «изменения».
В связи с этим я почти уверен, что Amazon делает чертовски хорошую работу по резервному копированию данных, поэтому я не думаю, что вам обязательно нужно беспокоиться о потере данных, если только вы не создаете резервную копию для архивных целей, или вы хотите защитить от случайного удаление файлов.
Вы можете создать приложение или службу, ответственную за создание двух экземпляров AmazonS3Client
, один для источника, а другой для назначения, затем источник AmazonS3Client
начнет зацикливаться в исходной корзине и передавать объекты, а пункт назначения AmazonS3Client
будет передавать их в поток ведро назначения.
Примечание. Это не работает для синхронизации между учетными записями, но работает для нескольких регионов в одной и той же учетной записи.
Для простого копирования всего из одного сегмента в другой можно использовать интерфейс командной строки AWS (https://aws.amazon.com/premiumsupport/knowledge-center/move-objects-s3-bucket/): aws s3 sync s3://SOURCE_BUCKET_NAME s3://NEW_BUCKET_NAME
В вашем случае вам понадобится флаг --source-region
: https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
Если вы перемещаете огромное количество данных, вы можете оптимизировать скорость этого процесса, найдя способы разделить передачу на разные группы: https://aws.amazon.com/premiumsupport/knowledge-center/s3.-large-transfer-between-buckets/
Есть множество способов провести эту ночь. Одним из примеров является расписание экземпляров AWS (лично не проверенное) https://docs.aws.amazon.com/solutions/latest/instance-scheduler/appendix-a.html