Вопрос

Я планирую развернуть свое веб -приложение в EC2. У меня есть несколько экземпляров веб -сервера. У меня 1 основной экземпляр базы данных. У меня есть 1 экземпляр базы данных о отказе. Мне нужна стратегия, чтобы перенаправить WebServers на IP -экземпляр базы данных о отказоустойчивой базе, когда сбой основного экземпляра базы данных.

Я надеялся, что смогу использовать упругой IP в моих строках соединения. Но веб -серверы не могут получить доступ/пинг эластичного IP. У меня есть несколько идей грубой силы, чтобы решить проблему. Тем не менее, я пытаюсь найти самое элегантное решение.

Я использую все .NET и SQL Server. Мои строки соединения зашифрованы.

Есть ли у кого -нибудь стратегия сбоя в случае экземпляра базы данных в EC2, используя некоторую форму автоматизации или конфигурации DNS?

Пожалуйста, дай мне знать.

Это было полезно?

Решение

http://alestic.com/2009/06/ec2-elastic-ip-internal

Рассказывает, как использовать Elastic IP Public DNS.

Другие советы

Не использовал EC2, но, конечно, вам нужно:

(a) Поместите свой фронт в какой-то пользовательский режим обслуживания, который вы определяете, пока вы переключаете IP; и попросить передовые выполнения необходимых шагов для управления целостностью потенциальной целостности данных и потери данных, связанных с тем, что предыдущий сервер, и новый сервер появится, когда он входит, и покидает ваш пользовательский режим обслуживания

Или, для нулевой системы простоя:

(б) Разработайте систему на уровнях объекта/реляционных и транзакций с нуля, чтобы поддержать сбои с нулевым временем. Это не то, что вы можете привязать к Quicjkly, чтобы любое приложение.

(c) Используйте некоторую поддержку базы данных для автоматического переключения. Я не знаю, существует ли поддержка SQL Server для отказоустойчивости подходящей для вашего приложения или уместна здесь. Я предлагаю добавить тег «SQL-Server» в вопрос, чтобы начать поиск правильной аудитории.

Если упругие IP не работают (что, по меньшей мере, звучит странно - разве вы не должны говорить с EC2 об этом), вы можете иметь возможность инструктировать свой фронт -концо Это перейти от режима обслуживания в нормальный режим.

Если вы готовы выложить немного дополнительных денег, взгляните на ПРАВО инструменты; Они создали пользовательские изображения серверов и поддерживающие инструменты, которые обрабатывают отказоустойчивости базы данных (среди многих других вещей). Эта ссылка объясняет, как сделать это с MySQL, поэтому, надеюсь, покажет вам несколько принципов, даже если он не использует SQL Server.

Я всегда думал, что в строке разъединения была такая возможность

Это взято (но еще не проверено) из Как добавить партнера по переключению к строке подключения в vb.net :

Если вы подключитесь к ADO.NET или нативному клиенту SQL к базе данных, которая отражается, ваше приложение может воспользоваться возможностью драйверов автоматически перенаправлять соединения, когда происходит отказоустойчивость базы данных. Вы должны указать начальный основной сервер и базу данных в строке подключения и Saffover Partner Server.

Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;
Initial Catalog=myDataBase;Integrated Security=True;

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

Чтобы расширить ответ Гарета, программные анализа облачного управления обычно решают этот тип проблем. RightScale - один из них, но вы можете попробовать Ensstratus или Шкаф (Отказ от ответственности: я работаю в Scalr). Эти инструменты предоставляют отказоустойчивые решения, такие как:

  • Резервные копии: вы можете запланировать автоматические снимки тома EBS, содержащий данные
  • База данных с неисправностью: в случае сбоя раб, продвигаемый мастер, а монтированное хранилище будет переключено, если неудачный мастер и новый мастер находятся в том же AZ, или сделанный снимок громкости

Если вы хотите создать свое собственное решение, вы можете воспроизвести процесс, подробный ниже, который мы используем в Scalr:

  • Есть ли раб в том же AZ? Если это так, продвигайте его, переключайте объемы EBS (которые ограничены одним AZ), переключите любую эластику, которая может иметь, реконфигурируйте репликацию оставшихся рабов.
  • Если нет, то есть ли раб, полностью воспроизведенный в другом AZ? Если это так, продвигайте это, тогда сделайте вышеперечисленное.
  • Если в том же AZ нет раба, и нет подчиненного, полностью реплицированного в другом AZ, то создайте снимок из Master's Moster и используйте этот снимок, чтобы создать новый громкость в AZ, где работает раб. Тогда сделайте вышеперечисленное.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top