Статьи

Amazon EC2: Apache, Git, хостинг веб-сайтов с Cloud-Init

В последнее время мне нравилось работать со статическими веб-сайтами. Веб-страницы моей компании ранее работали на WordPress, и теперь они просто статические HTML-страницы . Есть несколько вещей, которые мне особенно нравятся в статическом веб-сайте по сравнению с другими решениями:

  • Производительность
  • Варианты хостинга
  • Простота развертывания

Производительность

Несмотря на то, что WordPress почти великолепен со всеми его плагинами и темами, предыдущий веб-сайт никогда не чувствовал себя достаточно быстро. Со статическим веб-сайтом вам обычно не нужно беспокоиться о производительности.

Варианты хостинга

Вы можете разместить статический сайт почти везде: вам не нужен ASP.NET или PHP. Вам просто нужен веб-сервер, такой как IIS или Apache. Или GitHub. Веб-сервер может быть запущен с использованием, например, Amazon EC2.

Простота развертывания

В дополнение к упомянутым выше преимуществам статический веб-сайт также прост в развертывании: нет необходимости в базе данных или конфигурации. В моем случае веб-сайт компании (html, css и js) доступен из репозитория GitHub. Для размещения сайта на новом веб-сервере требуется только Git Clone в правильном каталоге.

Использование Amazon EC2 для размещения веб-сайта: автоматизация развертывания

Учитывая, что статический веб-сайт доступен с помощью Git, и поскольку нам нужен только веб-сервер для размещения сайта, мы можем автоматизировать развертывание сайта. Вот как мы можем сделать это с помощью Amazon EC2:

1. Запустите новый экземпляр

Запустите мастер быстрого запуска и выберите Amazon Linux AMI:

образ

Amazon Linux поддерживает настройку процесса запуска с помощью cloud-init . К сожалению, я не нашел действительно хороших примеров использования cloud-init, но вот несколько источников: ветка на форумах AWS и следующий источник.

2. Убедитесь, что брандмауэр экземпляра пропускает веб-трафик через

По умолчанию TCP-порт 80 заблокирован. Выберите группу безопасности, которая пропускает трафик, или создайте новую группу безопасности:

образ

3. Введите cloud-init в поле «Данные пользователя»

Вот код инициализации cloud-init, который выполняет следующие действия:

  1. Устанавливает Apache
  2. Устанавливает Git
  3. Запускает веб-сервер
  4. Клонирует веб-сайт из GitHub в корневой каталог веб-сервера
#cloud-config
packages:
 - httpd
 - git
 
runcmd:
 - [ /etc/init.d/httpd, restart ]
 - [ git, clone, "-b", "gh-pages", "git://github.com/mikoskinen/softwaremkwebsite.git", "/var/www/html"]

Вот как можно установить код инициализации cloud-init при запуске нового экземпляра Amazon EC2:

 образ

И это все . Через несколько минут Amazon EC2 готов и размещает статический веб-сайт:

образ

образ