Назад | Перейти на главную страницу

Управление постоянными данными на веб-сервере Amazon EC2

Я только начал пробовать сервис Amazon EC2 для запуска веб-приложения asp.net, которое использует базу данных SQL Server 2005 Express. У меня есть несколько вопросов о том, как его лучше всего настроить и использовать для обеспечения надежности, и я надеюсь воспользоваться некоторыми коллективными знаниями здесь, поскольку это мой первый набег на EC2.

Вот как я его настроил сейчас:

ОС: Windows 2003 SQL Server Express 2005

Веб-контент, хранящийся в базе данных тома EBS (диск E). Данные, хранящиеся в базе данных тома EBS (диск E), копируются на «диск C», а затем копируются на S3. Эластичный IP-адрес, прикрепленный к производственному экземпляру.

Теперь, когда я вношу изменения в конфигурацию ОС, я создаю новый AMI, используя функцию пакета. К сожалению, я обнаружил, что это приводит к значительному простою. Пока создается пакет и запускается новый экземпляр. Похоже, что когда я буду готов сделать новый AMI, я должен:

  1. Запустите новый временный экземпляр.
  2. Отсоедините том EBS от производственного экземпляра.
  3. Отсоедините IP-адрес от производственного экземпляра.
  4. Присоедините IP-адрес к временному экземпляру.
  5. Присоедините том EBS к временному экземпляру.
  6. Создайте AMI из производственного экземпляра.
  7. После перезапуска производственного экземпляра выполните действия по подключению / отсоединению в обратном порядке, чтобы вернуть его в производство.

Это правильный порядок событий, чтобы предотвратить любую возможность повреждения тома EBS? Будет ли том EBS поврежден, если я отключу его во время записи базы данных? Должен ли я сделать снимок тома EBS производственного экземпляра и вместо этого присоединить его к временному экземпляру? Или создание снимка тома EBS во время его использования может вызвать повреждение? Есть предложения по повышению надежности и работы?

Это в значительной степени зависит от типов изменений, которые вы вносите, и от того, как вы настроили свой AMI.

Предполагая, что вы просто вносите изменения в ОС, а ваш AMI не монтирует ваши тома EBS автоматически ...

  1. Запустите второй экземпляр вашего AMI
  2. Примените изменения ко второму экземпляру и пакету.
  3. Как только пакет будет завершен, завершите 2-й экземпляр.
  4. Зарегистрируйте новый пакет и запустите его экземпляр.

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

  1. Выключите IIS и службы баз данных в 1-м экземпляре. (И любые другие приложения / службы, обращающиеся к томам EBS)
  2. Сделайте снимок тома EBS
  3. Аккуратно отсоедините том EBS от первого экземпляра. (http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1841.)
  4. Присоедините том EBS и IP-адрес ко второму экземпляру.
  5. Запустите IIS и сервер базы данных во втором экземпляре и проведите дымовой тест.

Поскольку вы выполняете все обновления на втором экземпляре вашего ami, у вас нет простоев во время процедуры объединения. Вы также можете делать обновления в любое время, даже в течение рабочего дня, поскольку вы не касаетесь своего производственного экземпляра. Единственное время простоя, которое у вас есть, - это когда вы переносите том EBS и IP-адрес в новый экземпляр. Другая приятная вещь заключается в том, что если обновления или что-то еще в новом экземпляре не работает, вы можете вернуться к использованию исходного экземпляра.

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