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

Как мне развернуть веб-сервер в Amazon EC2

У меня есть небольшой веб-сайт, который мы хотим развернуть на Amazon EC2. Причина в том, что это дешевле, чем большинство других систем VPS, и мы хотим иметь полностью настраиваемую конфигурацию, поэтому общий хост невозможен. Кроме того, возможность масштабирования до более крупного сервера с такими же образами является одной из причин перехода на EC2.

Поскольку мы начинаем с экземпляра t1.micro, мы будем использовать экземпляры с загрузкой EBS (x64_64). Наша предпочтительная операционная система - Ubuntu Server. Мы сами не компилируем никаких пакетов, придерживаясь стабильных пакетов из репозиториев.

Все данные нашего веб-сервера хранятся на другом томе данных EBS.

Теперь вопрос: как лучше всего развернуть наш веб-сервер, сохраняя при этом данные.

Варианты, которые я рассмотрел до сих пор:

Как лучше всего это сделать? Есть ли какие-то хорошие варианты, которые я пропустил, или есть какие-то другие аспекты моих вариантов, которые я не рассматривал.

Мы используем Ткань и libcloud писать сценарии Python, которые могут вызывать api для запуска сервера, установки всего необходимого программного обеспечения и изменения конфигурации. Каждый раз, когда мы запускаем сервер, требуется немного больше времени, чем если бы у нас был образ диска, но мы думаем, что простота того, что не нужно создавать много образов, намного лучше.

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

fab create_server:server_type=webserver

Я создал свой собственный AMI, в котором уже установлены стек LAMP и все приложения. Я отслеживаю любые изменения, а затем, когда мне достаточно, обновляю изображение. У меня есть файлы конфигурации apache, mysql и php, а также базы данных mysql, связанные с EBS. Это позволяет мне не отслеживать эти изменения, и они фиксируются, когда я прикрепляю текущий моментальный снимок к новому экземпляру.

Ознакомьтесь с Chef и размещенной службой OpsCode. Chef позволяет автоматизировать развертывание и настройку. Chef-client работает на сервере как демон и может обновлять пакеты за вас, если вы хотите.

Fabric тоже великолепна, мы используем ее в основном для управления живыми серверами.