Архитектура MySQL на EBS для масштабирования (Amazon Web Services) - PullRequest
3 голосов
/ 27 декабря 2010

Я пытаюсь понять, как создать приложение Amazon Web Services.

У меня запущен экземпляр EBS. Насколько я понимаю, мне нужно смонтировать диск EBS, чтобы на нем можно было хранить базу данных MySQL.

Когда я позже захочу увеличить масштаб, как мне это сделать? Я понимаю, что могу добавить больше экземпляров сервера, но как они будут обращаться к базе данных? Поскольку, насколько я понимаю, том EBS можно подключить только к одному экземпляру сервера.

Ответы [ 5 ]

2 голосов
/ 27 декабря 2010

Я не могу говорить с этой конкретной установкой, поскольку у меня нет опыта использования EBS с экземпляром MySQL, но, как правило, этот тип масштабирования достигается путем выделения конкретного экземпляра в качестве главного сервера базы данных. Каждый раз, когда вы запускаете дополнительные веб-серверы, которые все еще используют IP-адрес главной БД для подключения. В то время, когда ваша база данных является узким местом, вы запускаете экземпляр ведомой БД в одном из блоков (или в своем собственном выделенном блоке). Затем вы можете настроить репликацию либо в направлении от ведущего к подчиненному, либо по циклической репликации, чтобы можно было также выполнять запись в подчиненный экземпляр.

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

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

0 голосов
/ 15 апреля 2013

AWS имеет целый продукт, посвященный этому: RDS .

Во всех случаях, кроме самых редких и наиболее специализированных, вам будет лучше использовать RDS, чем пытаться создать и настроить собственную инфраструктуру EBS / EC2 / MySQL.

RDS также напрямую отвечает на ваш вопрос - они напрямую позволяют создавать базы данных только для чтения для использования в качестве подчиненных запросов.RDS также выполняет резервное копирование, обновление и все виды отказоустойчивой инфраструктуры для вас.

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

0 голосов
/ 11 апреля 2013

Емкость томов EBS можно увеличить с помощью технологии «Снимок» -> «Запустить новый том», в качестве альтернативы можно увеличить емкость хранилища с помощью чередования EBS (RAID 0).

В AWS невозможно подключить один том EBS к 2Экземпляры EC2 одновременно, поэтому, когда вы масштабируете свое приложение, вам нужно масштабировать / увеличивать базу данных MySQL либо посредством репликации, либо через кластеризацию.AWS RDS - очень хороший вариант для MySQL. Если ваше приложение интенсивно читается, вы также можете масштабировать его, используя реплику RDS Read.Если вам нужно масштабирование записи, можно изучить функциональные разделы или MySQL Shards.

0 голосов
/ 28 августа 2011

Вы можете попробовать кластеризацию MySQL на экземплярах, поддерживаемых EBS.У меня есть похожий запрос, с дополнительными требованиями, выложил здесь .

0 голосов
/ 04 февраля 2011
...