Существует несколько архитектур хранения, одна из которых - объектная. Объектное хранилище, также известное как объектно-ориентированное хранилище, управляет данными как объектами, в отличие от других архитектур, таких как File (который управляет как файловая иерархия) и Block (который управляет блоками в секторе и дорожками).

Многие стартапы и предприятия используют объектные хранилища для огромных объемов неструктурированных данных. Facebook использует объектное хранилище для хранения фотографий, Spotify использует его для песен, некоторые банки используют его для хранения данных KYC, локальные центры обработки данных хранят долгосрочные архивные данные через объектное хранилище.

Amazon Simple Storage Service S3 - один из широко известных сервисов, предлагаемых AWS. S3 относится к архитектуре объектного хранилища. А Amazon гарантирует доступность сервиса «четыре девятки» (99,99%) и «одиннадцать девяток» для данных в хранилище S3. Это означает, что S3 может отключиться / стать недоступным максимум на 52,56 минуты в год, и вы, вероятно, проживете сто лет без потери ни одного файла из миллиарда. Но так бывает не всегда.

Вы можете прочитать некоторые из моих предыдущих сообщений, чтобы понять, почему нам нужна стратегия резервного копирования и аварийного восстановления для вашего бизнеса в облаке.

Чтобы предотвратить непредвиденные простои критически важных для вашего бизнеса приложений, которые используют S3 для хранения данных, вы можете использовать функцию Amazon S3 под названием Cross-Region Replication.

Репликация не является резервной копией.

Если ваши данные повреждены, те же данные будут реплицированы на другой конец хранилища.

Репликация S3

S3 Replication - это функция, которая обеспечивает автоматическое и асинхронное копирование ваших данных из одной корзины в другую.

Копии реплицированных объектов в целевом сегменте идентичны копиям в исходном сегменте, что означает, что эти объекты имеют то же имя и метаданные.

У вас будет возможность выбрать все объекты для репликации или отфильтрованные по префиксу или объекту с тегами, и у вас будет возможность включить репликацию для существующих объектов или только для новых объектов.

И у вас будет возможность включить шифрование (данные в состоянии покоя) с помощью KMS или CMK AWS по умолчанию. И объект, с которым связана роль, имеет разрешение на чтение и чтение ACL, будет только реплицироваться.

Объекты репликации AWS не являются «транзитивными», вы не можете иметь многоуровневую репликацию, при которой репликация объекта в 3-ю корзину из второй корзины невозможна. И вы должны включить управление версиями корзины, чтобы включить репликацию.

Настройте репликацию S3 в консоли AWS

У меня есть два ведра, а именно asvignesh-src и asvignesh-dst, где src находится в US-EAST-1, а цель - US-EAST-2.

Перейдите в раздел «Управление исходным сегментом» и нажмите «Создать правило репликации».

Создать правило репликации

Установите имя правила репликации и включите статус.

Настройте область правила для репликации.

Выберите целевой сегмент, у вас будет возможность выбрать сегмент в другой учетной записи, убедитесь, что у вас есть разрешение для сегмента.

Выберите роль IAM для репликации S3 (примерная роль).

вы можете выбрать шифрование (вы можете использовать существующий CMK или создать новый ключ для объекта репликации или использовать KMS по умолчанию).

У вас есть возможность выбрать класс целевого хранилища, вы можете уменьшить избыточность, чтобы сэкономить деньги.

Дополнительные параметры репликации, такие как ETC, метрика и уведомление, синхронизация модификации реплики и маркер удаления.

Маркер удаления - это когда вы удаляете объект, S3 помечает объект как удаленный в версии, у вас есть возможность удалить маркер удаления, который снова сделает файл доступным.

Тестирование функции репликации

Я загрузил файл asvignesh.log в корзину src

потребовалось некоторое время, чтобы увидеть файл в целевом сегменте

Если вы хотите синхронизировать файлы более агрессивно, вы можете включить контроль времени репликации RTC, который позволяет реплицировать 99,99% объектов в корзине в целевую корзину в течение 15 минут и предоставляет метрики репликации и уведомления за дополнительную плату.

Примечание. Помимо стоимости хранения, вам также выставляется счет за передачу данных за использование этой функции.

Создать правило репликации с помощью Java SDK

Создайте объект S3Client

AmazonS3 s3Client = AmazonS3Client.builder()
            .withCredentials(new ProfileCredentialsProvider())
            .withRegion(clientRegion)
            .build();

Создать целевое ведро

CreateBucketRequest request = new CreateBucketRequest("asvignesh-dst", region.getName());
s3Client.createBucket(request);

Включить управление версиями

BucketVersioningConfiguration configuration = new BucketVersioningConfiguration().withStatus(BucketVersioningConfiguration.ENABLED);

        SetBucketVersioningConfigurationRequest enableVersioningRequest = new SetBucketVersioningConfigurationRequest("asvignesh-dst", configuration);
        s3Client.setBucketVersioningConfiguration(enableVersioningRequest);

Создать правило репликации

new ReplicationRule()
                    .withPriority(0)
                    .withStatus(ReplicationRuleStatus.Enabled)
                    .withDeleteMarkerReplication(new DeleteMarkerReplication().withStatus(DeleteMarkerReplicationStatus.DISABLED))
                    .withFilter(new ReplicationFilter().withPredicate(new ReplicationPrefixPredicate(prefix)))
                    .withDestinationConfig(new ReplicationDestinationConfig()
                        .withBucketARN(destinationBucketARN)
                        .withStorageClass(StorageClass.Standard)));

Установить репликацию корзины

s3Client.setBucketReplicationConfiguration("asvignesh-src",
                new BucketReplicationConfiguration()
                    .withRoleARN(roleARN)
                    .withRules(replicationRules));

Изначально опубликовано в Vignesh A S - Blog.

Больше контента на plainenglish.io