Включение межрегиональной репликации S3#
Межрегиональная репликация (Cross-region replication или CRR) обеспечивает автоматическое асинхронное копирование объектов между корзинами S3, расположенными в одном и том же или в двух разных кластерах S3. Корзины, для которых настроена межрегиональная репликация, могут принадлежать одному и тому же пользователю. Репликация объектов может выполняться в одну или несколько корзин назначения.
Чтобы включить межрегиональную репликацию, необходимо добавить конфигурацию репликации к исходной корзине. Минимальная конфигурация должна обеспечивать корзины назначения, в которые будет выполняться репликация объектов, и пользователя с ролью, которая позволяет выполнение репликации объектов.
Ограничения
После включения межрегиональной репликации репликация будет выполняться только для новых объектов S3.
Предварительные требования
Кластеры S3 созданы в соответствии с инструкциями в разделе Создание кластера S3.
Настройка межрегиональной репликации между корзинами одного кластера S3
Вам понадобятся одна исходная корзина и хотя бы одна корзина назначения. Если их нет, создайте их с помощью интерфейса командной строки AWS, стороннего приложения S3 или пользовательской панели продукта Кибер Хранилище. Например, чтобы создать корзины с помощью интерфейса командной строки AWS, выполните следующие шаги на машине, где выполняется настройка репликации:
Добавьте профиль пользователя S3 в конфигурационный файл
%USERPROFILE%\.aws\credentialsдля Windows или$HOME/.aws/credentialsдля Linux:[<s3-user-profile>] aws_access_key_id = <key-id> aws_secret_access_key = <key-secret>
Где:
<s3-user-profile>Имя профиля пользователя S3.
<key-id>Идентификатор ключа доступа пользователя S3.
<key-secret>Секретный ключ доступа пользователя S3.
Создайте исходную корзину и от одной до нескольких корзин назначения:
aws s3api create-bucket --bucket <bucket-name> --endpoint-url <s3-api-url> --profile <s3-user-profile>
Где:
<bucket-name>Имя корзины.
<s3-api-url>URL-адрес S3 API.
<s3-user-profile>Имя профиля пользователя S3.
Включите поддержку версий для каждой из этих корзин:
aws s3api put-bucket-versioning --bucket <bucket-name> --endpoint-url <s3-api-url> --profile <s3-user-profile> \ --versioning-configuration 'Status=Enabled'
Где:
<bucket-name>Имя корзины.
<s3-api-url>URL-адрес S3 API.
<s3-user-profile>Имя профиля пользователя S3.
Получите идентификатор пользователя-владельца исходной корзины из вывода команды ниже.
aws s3api list-buckets --endpoint-url <s3-api-url> --profile <s3-user-profile>
Где:
<s3-api-url>URL-адрес S3 API.
<s3-user-profile>Имя профиля пользователя S3.
Пример вывода команды:
{ "Buckets": [ { "Name": "destination", "CreationDate": "2023-07-27T13:01:08+00:00" }, { "Name": "source", "CreationDate": "2023-07-27T12:58:21+00:00" } ], "Owner": { "DisplayName": "s3user", "ID": "e872c6783c209555" } }
Создайте конфигурационный файл репликации на машине, где выполняется настройка репликации. Например, создайте файл
replication.jsonсо следующим содержимым:{ "Role": "arn:aws:iam::<s3-user-id>:role/service-role/s3crr_role", "Rules": [ { "Priority": 1, "DeleteMarkerReplication": {"Status": "Disabled"}, "Filter": {}, "Status": "Enabled", "Destination": { "Bucket": "arn:aws:s3:::<destination-bucket-name>" } } ] }
Элементы конфигурации репликации
RoleУказывает роль, которая будет использоваться для репликации объектов. Задайте значение в формате
arn:aws:iam::<source-s3-user-id>:role/service-role/s3crr_role, где<source-s3-user-id>— это идентификатор пользователя-владельца исходной корзины.RulesПравила репликации, указывающие, для каких объектов выполнять репликацию и где хранить реплики.
IDУникальный идентификатор правила длиной до 255 символов.
PriorityУказывает, какое правило обладает более высоким приоритетом, когда два или более правил конфликтуют.
DestinationКонтейнер для информации о месте назначения репликации и его конфигурации.
BucketУказывает корзину, где необходимо хранить результаты. Задайте значение в формате
arn:aws:s3:::<destination-bucket-name>, где<destination-bucket-name>— это имя корзины назначения.StatusУказывает, включено ли правило. Возможные значения:
EnabledилиDisabled.DeleteMarkerReplicationУказывает, выполнять ли репликацию маркеров удаления. Если указан элемент
Filter, также необходимо указать элементDeleteMarkerReplication.
Подробное описание формата конфигурации репликации, ее элементов и дополнительные примеры см. в документации AWS.
Дополнительная информация
Чтобы просмотреть или проверить текущую конфигурацию репликации исходной корзины, выполните:
aws s3api get-bucket-replication --bucket <source-bucket-name> --endpoint-url <s3-api-url> --profile <s3-user-profile>
Чтобы просмотреть объекты в корзине и их ключи, выполните:
aws s3api list-objects --bucket <bucket-name> --endpoint-url <s3-api-url> --profile <s3-user-profile>
Чтобы просмотреть статус репликации объекта, выполните:
aws s3api head-object --bucket <source-bucket-name> --key <object-key> --endpoint-url <s3-api-url> --profile <s3-user-profile>
Для репликации из исходной корзины в несколько корзин назначения задайте несколько правил репликации в конфигурации репликации, указав соответствующие корзины назначения.
Чтобы выключить репликацию, выполните:
aws s3api delete-bucket-replication --bucket <source-bucket-name> --endpoint-url <s3-api-url> --profile <s3-user-profile>
См. также