Мигрируя ведра S3 между учетными записями AWS, как Pro (не теряя здравомыслия)

Мигрируя ведра 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

  1. Та же регион дешевле и быстрее-перекрестные переводы могут удвоить счет.
  2. Инкрементные пробежки - ваш друг- Запустите DataSync несколько раз перед окончательным сокращением, так что вы копируете изменения только в последнем запуске.
  3. Держите IAM-Вы открываете доступ к перекрестному доступу; Удалите его после миграции.
  4. Пометить миграциюТаким образом, вы можете отслеживать расходы на передачу в AWS Explorer.

Последние мысли

Мигрируя5 ТБ данных S3Между учетными записями AWS, используемыми для выбора междумедленно и свободноилибыстро и дорогоПолем DataSync изменяет это уравнение - давая вамБыстрые, безопасные, повторяемые миграциибез ручных сценариев или простоя.

Думайте об этом как об улучшении от перевозки ведер с водой до установки трубопровода высокого давления. Как только вы его использовали, вы не вернетесь.


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE