
Мигрируя ведра S3 между учетными записями AWS, как Pro (не теряя здравомыслия)
11 августа 2025 г.Перемещение ведра Amazon S3 из одной учетной записи AWS в другую звучит просто ... пока вы не попробуете его с4–5 терабайтданных.
В таком масштабе обычные методы -aws s3 cp
Или репликация по перекрестному доступе-чувствуйте, как отправляйте в рассылку каждый отдельный файл через голубь-носитель. Они подходят для гигабайтов, но вы будете ждать дни (и платить больше, чем хотите) за терабайты.
Вот гдеAWS Datasyncвходит. В моем случае это было10 × быстреечем «нормальный» способ, полностью автоматизированный и безопасный. Вот как я это сделал.
Почему DataSync для больших миграций?
DataSync AWS создан для объемного перемещения данных - подумайте о терабайтах в петабайты. Это:
- Перемещает данные непосредственно между службами AWS(или от Prem до AWS) без хранения среднего класса.
- Параллелизирует передачи, делая их намного быстрее.
- Обрабатывает метаданные, теги объектов и ACL автоматически.
- Можно работать постепенно, чтобы вы могли сделать сокращение с минимальным временем простоя.
Когда ты двигаешься4–5 ТБМежду аккаунтами AWS эти льготы имеют значение.
Шаг 1: Приготовьте ведра
Нам нужно два ведра:
- Исходное ведроВ исходной учетной записи AWS (которая удерживает ваши 5 ТБ данных).
- Ведро назначенияВ целевой учетной записи AWS.
Оба должны:
- Существуют до начала.
- Быть в том же регионе AWS, если вы хотите максимальную скорость и снижение стоимости.
- Иметь версию необязательно (DataSync не требует этого, как репликация).
Шаг 2: IAM Роли и разрешения
DataSync требует разрешения для чтения из источника и записаться в пункт назначения - через учетные записи. Вот где вступают роли IAM и политики ведра.
Политика исходного ведра(Разрешить роли данных DataSync DataSync и зарегистрированного пользователя для чтения и списков объектов)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role",
"arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Resource": "arn:aws:s3:::source_bucket"
},
{
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role",
"arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user"
]
},
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObjectTagging",
"s3:GetObjectTagging",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::source_bucket/*"
}
]
}
Политика ролевой учетной записи назначения(Это роли, которую Datasync использует для доступа к ведро источника)
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::source_bucket"
},
{
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObjectTagging",
"s3:ListBucket",
"s3:PutObjectTagging"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::source_bucket/*"
}
]
}
Политика назначения(Разрешить роль DataSync и пользователя учетной записи назначения для написания данных)
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "DataSyncCreateS3LocationAndTaskAccess",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::DIST_ACCOUNT_ID:role/datasync-role",
"arn:aws:iam::DIST_ACCOUNT_ID:user/distention_account_logged_in_user"
]
},
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:GetObject",
"s3:ListMultipartUploadParts",
"s3:PutObject",
"s3:GetObjectTagging",
"s3:PutObjectTagging"
],
"Resource": [
"arn:aws:s3:::dist_bucket",
"arn:aws:s3:::dist_bucket/*"
]
}
]
}
Шаг 3: Создайте местоположения DataSync
Нам нужно два «местоположения» - одно для исходного ведра, одно для места назначения.
Пример AWS CLI для исходного ведра:
aws datasync create-location-s3 \
--s3-bucket-arn arn:aws:s3:::s3-source-01 \
--s3-storage-class STANDARD \
--s3-config BucketAccessRoleArn="arn:aws:iam::1234567890:role/datasync-role" \
--region us-east-1
Повторите для ведра назначения со своим собственным ведром Arn.
Шаг 4: Создайте задачу данных DataSync
Как только оба места созданы, настройте задачу данных DataSync для копирования объектов из места источника в место назначения.
Ты можешь:
- Давать возможностьметаданная копия(сохраняет временные метки, теги).
- БегатьИНКРЕМЕНТАЛЬНАЯ СИННКАдо окончательного сокращения.
- Используйте консоль для мониторинга скорости передачи и завершения.
Шаг 5: Запустите и контролируйте передачу
Для4–5 ТБВы не заканчиваете за считанные минуты, но вы все равно увидите огромное улучшение по сравнению с традиционными методами. В моей миграции разница в скорости была драматичной - часы вместо дней.
Pro Tips for Large Transfers
- Та же регион дешевле и быстрее-перекрестные переводы могут удвоить счет.
- Инкрементные пробежки - ваш друг- Запустите DataSync несколько раз перед окончательным сокращением, так что вы копируете изменения только в последнем запуске.
- Держите IAM-Вы открываете доступ к перекрестному доступу; Удалите его после миграции.
- Пометить миграциюТаким образом, вы можете отслеживать расходы на передачу в AWS Explorer.
Последние мысли
Мигрируя5 ТБ данных S3Между учетными записями AWS, используемыми для выбора междумедленно и свободноилибыстро и дорогоПолем DataSync изменяет это уравнение - давая вамБыстрые, безопасные, повторяемые миграциибез ручных сценариев или простоя.
Думайте об этом как об улучшении от перевозки ведер с водой до установки трубопровода высокого давления. Как только вы его использовали, вы не вернетесь.
Оригинал