Основа архитектуры AWS Dynamodb и зоны доступности - PullRequest
0 голосов
/ 27 октября 2019

Я изучаю AWS Dynamodb. Как документ AWS, он настроен и настроен AWS как кластер распределенной базы данных, а данные в БД находятся в зонах доступности в регионе AWS для восстановления после отказа.

Я действительно хочу понять основную архитектуру Dynamodb и зоны доступности.

Как мне показалось, существует несколько экземпляров сервера (может быть, экземпляр EC2) в качестве кластера базы данных в зоне доступности как DynamoDB;Dynamodb в зоне доступности будет реплицироваться во все зоны доступности в регионе .

Любая идея, обсуждение или полезная ссылка приветствуются.

1 Ответ

1 голос
/ 27 октября 2019

Мне немного неясно, каков ваш настоящий вопрос, но я постараюсь ответить на то, что, по моему мнению, является ядром вашего вопроса - что делают «зоны доступности». Я опускаю много деталей о лидерской модели и согласованности DynamoDB, которая не имеет никакого отношения к вашему вопросу о зонах доступности. Вы можете найти эти и другие проблемы, объясненные во многих документах, презентациях и видео - одним из моих любимых вариантов является https://www.youtube.com/watch?v=yvBR71D0nAQ.

В любом случае, каждый фрагмент данных в DynamoDB реплицируется на три физических узла (машины). Кластер DynamoDB может на самом деле иметь сотни таких узлов (вы не можете сказать), но каждый элемент данных хранится ровно на трех из них. Вы не знаете, какой именно, но вы знаете, что два элемента в одном разделе (т. Е. Имеют один и тот же ключ раздела) гарантированно находятся на одних и тех же трех узлах - это позволяет выполнить операцию («Запрос») для чтения всего раздела, чтобы быть эффективным, так как он может читать непрерывно с диска одного узла.

В любом случае, эта репликация предоставляет две основные гарантии: она обеспечивает долговечность - значениечто если одна копия будет потеряна, у нас все еще есть другие копии. И он обеспечивает высокая доступность - это означает, что если одна копия временно не работает (например, отключение питания, проблема с сетью и т. Д.), База данных по-прежнему полностью работоспособна - и чтение, и запись могут продолжаться без ожиданиянедостающая копия для повторного использования.

Проблема заключается в том, что если все три копии находятся в одном и том же центре обработки данных, авария может ударить по всем трем одновременно: пожар в центре обработки данных может привести к потере срока службы. (буквально все три экземпляра дымятся). Отключение питания или проблемы с сетью в этом центре обработки данных могут привести к потере high-Availability . Чтобы решить эту проблему, Amazon имеет в каждом географическом регионе несколько отдельных центров обработки данных , которые он называет «зонами доступности». Эти отдельные центры обработки данных находятся в физически разных зданиях, подключенных к разным сетям электропитания, различным точкам подключения к Интернету и т. Д., Чтобы максимально гарантировать, что одна авария не может повлиять более чем на один из этих центров обработки данных. Центры обработки данных расположены физически так, что они расположены достаточно близко друг к другу, поэтому задержка сети между ними минимальна (например, 1 мс), но достаточно далеко друг от друга, так что одна авария вряд ли ударит по обоим.

DynamoDB гарантирует, что три копии каждого элемента данных не просто попадут в одну и ту же зону доступности (центр обработки данных), а перейдут к трем различным. По крайней мере, в тех регионах, где есть три или более зон доступности (в большинстве есть).

Даже при наличии отдельных зон доступности некоторые масштабные бедствия все же могут поразить несколько из них. Вы можете найти много идей о таких бедствиях в фильмах, включая всеобщую ядерную войну, инопланетное вторжение, астероид, цунами, уничтожающее все восточное побережье ;-) По этим и другим менее голливудским причинам Amazon также дает вам возможностьнескольких географических регионов , которые размещают копии ваших данных в совершенно разных странах и континентах. Но из-за высокой задержки между этими копиями, это сильно меняет работу этой репликации (см. «Глобальные таблицы» в документации DynamoDB), и это действительно тема для другого обсуждения.

...