Як перемістити відро S3 в інше місце


20

Ми використовуємо S3 для зберігання мільйонів записів у нашому веб-сервері, тепер ми переміщуємо все до EC2, серверів ЄС, а також хочемо перенести ці дані S3 в ЄС. Але відро, яке ми використовуємо, знаходиться в США, і, здається, немає інструменту для переміщення всього вмісту відра до іншого відра.

Існує також проблема з тим, як згодом синхронізувати дані, коли ми переходимо до відра ЄС, дані, які будуть створені тим часом під час міграції.

Відповіді:


18

Новий офіційний CLI AWS підтримує більшість функціональних можливостей s3cmd.

http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2

Де ви можете знайти список назв регіонів?
барт

Ви можете знайти регіони S3 тут: docs.aws.amazon.com/general/latest/gr/rande.html#s3_region Вони майже ідентичні регіонам EC2, з яких ви отримуєте aws ec2 describe-regions, але us-east-1також відомий як стандарт США для S3 і є дещо інша з історичних причин.
AB

5

Я думаю, ви можете запустити:

s3cmd --recursive cp s3://oldbucket/ s3://newbucket

Слід скопіювати його безпосередньо.


CLI каже: "команду не знайдено"
барт

3

Я не знаю пакетованого рішення, щоб це зробити, але це по суті лише список відра, а потім PUT-копіювати кожен об'єкт із відра США до відра ЄС. API PUT-copy підтримує "if-modified-since" та "if-none-match", тому ви можете запускати його повторно, не дублюючи зусилля: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/ API / index.html? RESTObjectCOPY.html

Для живої міграції я б запропонував такий підхід:

  1. Необов’язковий перший крок: Якщо у вас є величезна кількість даних для міграції, рекомендуйте скористатись імпортом / експортом AWS, щоб зробити перший знімок даних на фізичному пристрої в США та фізично відправити їх до ЄС. Це може заощадити ваш час і гроші.
    • Створіть сценарій для переміщення даних із США до ЄС, використовуючи параметр if-modified-since або if-none, як описано вище. Зробіть це досить розумним, щоб не клопотати свіжі дані ЄС з усталеними даними про США (як тільки ви перейдете до кроку 5 нижче). Запускайте його постійно в циклі, поки два відра не будуть приблизно в одному стані.
    • Змініть веб-додаток на дані PUT одночасно у відрі США та ЄС, продовжуючи отримувати дані виключно з США.
    • Продовжуйте запускати міграційний сценарій, поки не будете впевнені, що відра знаходяться в точно такому самому стані (або настільки ж близькому, як ви можете, з огляду на можливу послідовність).
    • Ще раз змініть веб-додаток на отримання GET даних виключно з групи ЄС.
    • Тепер ви можете вимкнути міграційний сценарій.
    • Шукайте можливі аномалії консистенції та очистіть їх.
    • Змініть веб-додаток, щоб зупинити введення даних у відро США.
    • Зняти все у відрі США.

Можливо, ви хочете використовувати S3 зі зниженою надмірністю зберігання у вашому відрі ЄС під час міграції, щоб отримати дешевші показники даних та швидший час реакції, оскільки дані є лише дублікатом даних США.


1

Ви також можете розглянути можливість встановлення міжрегіональної реплікації, яка дозволяє копіювати та зберігати синхронізацію даних між регіонами https://aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon- s3 /


Розгорніть свою публікацію, щоб бути самодостатньою.
Мисливець на оленів

0

Я провів неабияку роботу з S3 і жодного разу не натрапив на інструмент, який би робив це на самому собі. Однак було б не все так складно використовувати пару скриптів синхронізації s3cmd-sync, щоб тримати два відра синхронізовані між собою.


так, це спрацювало б, але вимагаємо від нас завантажити все локально, тоді як API S3 підтримує переміщення / копіювання записів без їх завантаження.
skrat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.