В прошлое десятилетие хостинг крупномасштабных веб-приложений представлял собой достаточно сложную задачу, которая была под силу лишь экспертам. Но не теперь; когда Amazon открыл свою серверную архитектуру, все изменилось. Компьютерная техника, перемещенная в облако, стала доступной любому разработчику. В этом руководстве мы покажем вам, как установить WordPress в облако.
Введение
Большинство блогов и сайтов малого бизнеса хранятся на виртуальных хостинг-сервисах, которые требуют взноса фиксированной ежемесячной платы в обмен на предопределенный набор возможностей и установленное программное обеспечение. В большинстве случаев этот выбор будет являться оправданным, однако запуск вашего блога в облаке Amazon имеет при себе некоторые преимущества, которые делают его достойным рассмотрения:
- Простота обновления. Создание новой серверной машины в облаке Amazon может быть выполнено в течение нескольких минут. Таким образом, используя сервис, вы всегда подготовлены к обработке мгновенных скачков трафика. Если запись попадает на главную страницу Digg или Reddit, вы можете добавить большее количество серверов и тем самым сбалансировать нагрузку.
- Экономия средств для крупномасштабных сервисов. Если ваш сайт привлекает к себе большие объемы пользователей и в конечном счете выходит за установленные лимиты регулярного хостинга, вы можете воспользоваться сервисом Amazon Web Services, который предлагает вам свободу действий в проектировании серверной архитектуры, отвечающей вашим целям, причем с огромной экономией средств, без необходимости нанимать специалистов для настройки сети. Именно так известные разработчики Facebook строили свои серверы.
- Полноценное управление вашей сборкой. Хотя этот пункт не является таким уж важным при запуске WordPress, его стоит рассмотреть, если вы хотите в будущем построить свой проект на базе чего-то более экзотического, чем обычная связка PHP и MySQL. В таком случае вам не придется задавать вопросы вашей хостинг-компании. Вы устанавливаете программное обеспечение, которое желаете, по аналогии с тем, как если бы у вас был свой собственный сервер.
Является ли размещение вашего сайта на Amazon верным решением, зависит от трафика, который получает ваш блог, а также от того, насколько вам важна точная настройка сервера под ваши потребности.
Шаг 1. Создаем аккаунт в Amazon Web Services.
Перед тем как начать использовать облако Amazon для реализации потребностей в хостинге, вы должны создать аккаунт в Amazon Web Services (AWS). Переходим по ссылке на aws.amazon.com и щелкаем по кнопке «Sign Up Now».
Если вы уже использовали Amazon.com ранее, то в таком случае вы можете использовать свой старый email и пароль для входа в AWS. Вы можете также создать новый аккаунт путем выбора «I am a new user».
На данном этапе вам понадобится ввести контактную информацию и номер кредитной карты, чтобы Amazon смог выставить вам счет за услуги, которые вы используете. Создание аккаунта – бесплатное действие, но при этом все остальное стоит денег.
Ценовая модель достаточно проста – вы платите за каждый час работы вашего сервера – однако поскольку имеется также много разных опций, расчет актуальной цены может оказаться более сложным. При запуске своего собственного сайта на Amazon лучше предостеречь себя и несколько раз проверить ценовые расчеты, прежде чем оставлять свой сервер запущенным, чтобы потом в конце месяца не было никаких сюрпризов.
Формирование нашей сборки WordPress не займет больше часа, и мы остановим все, когда закончим, так что цена за прохождение этого руководства будет близка к нулю.
Шаг 2. Запуск своей первой серверной машины
Наша настройка сервера будет состоять из двух частей:
- Сервер приложения размещается на Amazon’s Elastic Computing Cloud (EC2), запускаются Apache и PHP, устанавливается WordPress.
- База данных MySQL размещается на Amazon’s Relational Database Service (RDS).
Более дешевый, но сложный способ заключается в ручной установке MySQL-сервера на ту же самую машину с Apache и PHP. В данном руководстве я воспользуюсь Relational Database Service, потому что его проще использовать и потому что в данном случае Amazon заботится о бэкапах и обслуживании базы данных — вам не нужно волноваться о дополнительной безопасности.
Давайте начнем с создания нашего первого экземпляра сервера приложения.
Щелкаем по вкладке EC2 в консоли управления AWS (AWS Management Console). Поскольку вы первый раз используете сервис EC2, вам понадобится отдельно зарегистрироваться в нем. Щелкаем по кнопке Sign Up For Amazon EC2.
В качестве дополнительного шага Amazon проверит вас путем выполнения вызова на ваш телефон. Весь процесс автоматизирован: вы вводите код с веб-страницы в ваш телефон и, как только система проверит соответствие кода, вы будете перенесены на следующую страницу.
Когда вы закончите процесс регистрации, перейдите к консоли управления и вкладке EC2. Вы увидите страницу, которая выглядит следующим образом. Щелкните по кнопке Launch Instance.
Появится всплывающее окно со списком Amazon Machine Images (AMIs). AMIs – это копии запущенных компьютеров.
Большинство из них состоят из операционной системы и нескольких утилит, однако вы можете создавать AMIs любой сложности, которая вам требуется – даже включающие в себя ваше полное приложение, готовое к запуску на виртуальной машине путем щелка по кнопке.
Вы выберем самую базовую опцию: «Basic 32-bit Amazon Linux AMI 1.0.». Щелкаем по пункту Select следом за AMI и идем дальше.
После выбора AMI на следующем шаге мы должны решить, какие аппаратные средства мы будем использовать, чтобы запустить копию. В зависимости от того, выбрали ли вы 32-битную или 64-битную AMI, вы увидите разный список настроек. 32-битная AMI предлагает самые дешевые опции.
Для тестирования нам не нужно много памяти или мощности процессора, так что мы возьмем экземпляр Micro. Выбираем тип экземпляра и щелкаем Continue.
На следующем экране все детали выставлены верно. Щелкаем Continue.
Когда у вас имеется много машин с разными ролями, очень просто потеряться среди них и потратить много времени на поиск верной машины. Присваивание названий машинам спасает в данной ситуации. В нашем случае наименование машин не так важно, поскольку мы запускаем только один экземпляр EC2, однако давайте все же дадим ему какое-нибудь имя. Введите любое имя, которое вам больше нравится, и выберите Continue.
Затем вас попросят создать файл пары ключей для надежного соединения с машиной. Ключ заменяет пароль при соединении с машиной через SSH. Задаем имя для файла пары ключей, после чего щелкаем по Create & Download your Key Pair. Копируем файл пары ключей в безопасное место (если вы используете UNIX-систему, такую как Mac OSX или Linux, то хорошим местом будет ~/.ssh). После копирования файла измените его права доступа на 400:
chmod 400 wordpress_demo.pem
Если вы используете Windows, вам, возможно, понадобится использовать PuTTY для SSH. PuTTY работает со своим собственным форматом (ppk), так что вам понадобится конвертировать ключ в данный формат, используя инструмент Puttygen, доступный для скачивания на странице PuTTY.
После создания пары ключей вас попросят настроить файрвол для вашей новой машины. По умолчанию никто не может подключаться к вашей машине – все порты закрыты. Давайте откроем порты 22 (SSH) и 80 (HTTP), чтобы мы могли настроить машину через SSH и получить доступ к блогу из браузера. Выбираем тип соединения из раскрывающегося списка в самом низу всплывающего окна и щелкаем Add Rule. Когда вы закончите настройку, нажмите Continue.
Изучаем конфигурацию, и если все задано корректно, щелкаем Launch.
Машина запущена! Закрываем всплывающее окно и возвращаемся к консоли. Сначала вы заметите то, что статус экземпляра изменился до «pending» — в течение нескольких минут он переключится к «running». Это означает, что сервер запущен – вы можете начать использовать его.
Когда машина запущена, к ней может быть осуществлен доступ через порты, которые вы определили в конфигурации файрвола. Давайте используем SSH для подключения к машине и закончим ее настройку, установив Apache, PHP, MySQL и WordPress.
Шаг 3. Установка необходимого серверного ПО.
Делаем правый щелчок по названию машины, после чего выбираем Connect из выпадающего списка. Появится всплывающее окно с SSH-командой.
Выделяем команду и копируем ее в консоль, если вы используете Mac- или Unix-машину. Команда будет иметь примерно такой вид:
ssh -i wordpress_demo.pem [email protected]
Если вы сохранили ваш pem-ключ в ~/.ssh, обновите путь в команде. Также вам понадобится изменить root на ec2-user – Amazon еще не обновил команду для соответствия новым AMI-настройкам, поэтому подключиться под root-юзером не получится.
Если вы используете Windows или предпочитаете использовать графическое SSH-приложение, просто скопируйте название машины и откройте ее в вашем предпочтительном SSH-приложении. Помните, что нужно использовать имя пользователя ec2-user и связанный файл пары ключей (wordpress_demo.pem).
После входа вы можете использовать виртуальную машину так же, как и любую другую Linux-машину.
Чтобы установить программное обеспечение, мы будем использовать простой установщик, который называется Yum. Для начала давайте установим веб-сервер Apache. Для этого введите следующую команду:
sudo yum install httpd
Установщик попросит вас подтвердить пакет для установки, а также, возможно, вам понадобится сделать другие шаги. Отвечайте на все вопросы «Y», и вы получите установленный Apache.
Затем ставим PHP:
sudo yum install php
И то же самое делаем для MySQL:
sudo yum install php-mysql
Готово: установка завершена, и мы готовы приступить к тестированию Apache. Запустим его при помощи команды (впоследствии вы можете заменить start на stop или restart в зависимости от того, что именно вы хотите сделать с веб-сервером):
sudo /etc/init.d/httpd start
Веб-сервер запустится, и вы сможете протестировать его путем копирования URL машины в ваш браузер.
Шаг 4. Создаем машину для базы данных.
Перед установкой WordPress нам нужна база данных. Установка базы данных через RDS – очень простой процесс, напоминающий ввод нескольких значений на паре экранов настроек и щелчки по нескольким кнопкам.
В вашей консоли AWS переключаемся на вкладку RDS. Поскольку вы не использовали этот сервис ранее, вас попросят включить его. В данном случае процесс включения происходит гораздо быстрее и проще, чем в случае с EC2. Щелкаем по Sign Up For Amazon RDS для начала.
Доводим процесс установки до конца, и после окончания переходим обратно к вкладке RDS в консоли AWS. Экран, который вы увидите, будет во многом напоминать консоль EC2, которую мы использовали на прошлом шаге. Щелкаем по Launch DB Instance.
Откроется всплывающее окно, где вы можете выбрать свойства для сервера базы данных, такие как экземпляр сервера, а также выделяемое пространство. Давайте установим минимальные значения, поскольку их будет более чем достаточно для нашего тестирования.
Выбираем название для нашего сервера базы данных и root-пользователя для нее. Я использую wordpress-db в качестве названия сервера, а также «root» / «rootpass» в качестве мастер-логина. Не самые безопасные варианты, но нашей машине они длиннее и не нужны, так что для этого экземпляра не страшно.
После установки информации сервера с базой данных, вас попросят определить стандартную базу данных, которая будет создана на сервере. Мы назовем ее wordpress, чтобы соответствовать рекомендациям WP. Остальные настройки экрана можно оставить нетронутыми.
На следующем экране вы можете определить параметры для бэкапов базы данных. Здесь мы тоже оставим все значения по умолчанию и щелкнем Continue.
После проверки настроек щелкаем Launch DB Instance.
Создание экземпляра базы данных требует чуть большего времени, чем создание экземпляра EC2, однако после примерно пяти минут ожидания вы должны увидеть экземпляр базы данных со статусом «available» во вкладке экземпляров.
Щелкам по экземпляру, чтобы увидеть дополнительную информацию о нем, затем копируем значение endpoint. Это URL сервера с базой данных, который мы будем использовать в нашей сборке WordPress.
Есть еще один шаг, который нам нужно выполнить до того, как перейти к установке WordPress: нам нужно настроить файрвол для нашей базы данных, чтобы сервер приложения мог получить к ней доступ.
Все там же во вкладке RDS консоли AWS щелкаем по DB Security Groups. Вы увидите, что здесь не требуется авторизация:
Чтобы предоставить нашему серверу приложения доступ к базе данных, нам нужно внести его группу безопасности в группу безопасности базы данных. Выбираем пункт EC2 Instance из выпадающего списка под No Authorizations и вводим название группы безопасности (“wordpress_app_server“) и ваш Amazon Account ID в два текстовых поля, которые расположены следом за выпадающим списком.
Ваш account ID скрыт достаточно глубоко в настройках AWS: найти его можно путем щелчка по ссылке Account в самом верху страницы и перейдя по ссылке Security Credentials на открывшейся странице.
После ввода необходимой информации и щелчка по кнопке Add вы увидите свою группу безопасности со статусом authorized. Мы готовы установить WordPress.
Шаг 5. Устанавливаем WordPress.
Если вы больше не подключены к серверу приложения, открываем SSH-соединение для него снова. Для начала мы загрузим WordPress на машину. По умолчанию Apache настроен на поиск HTML-файлов в папке var/www/html/, так что загрузим WP в эту директорию:
cd /var/www/html
Чтобы облегчить выполнение действий в будущем, мы сделаем ec2-user владельцем данной директории:
sudo chown ec2-user .
Вы можете скачать WordPress на ваш собственный компьютер и после этого загрузить его туда через SCP, однако, мне кажется, гораздо проще скачать его сразу на машину Amazon, используя wget:
wget http://wordpress.org/latest.zip
Таким образом, архив WordPress будет сразу в своей окончательной локации, и вам понадобится только разархивировать его:
unzip latest.zip
Мы готовы приступить к настройке блога. Наш последний шаг в командной строке – изменение прав доступа к директории wordpress, которая была недавно создана, чтобы скрипт установки мог создать файл wp-config.php:
chmod o+w wordpress
Теперь открываем URL WordPress в браузере (URL-адрес экземпляра EC2 сразу после /wordpress). Щелкаем по Create a Configuration File и затем на следующей странице выбираем Let’s go!
Вы увидите страницу, где нужно будет ввести параметры базы данных. Вводим название базы данных, имя пользователя и пароль, а также URL экземпляра RDS. Щелкаем Submit.
Отлично, мы практически достигли цели. Настройте оставшуюся часть блога, чтобы закончить установку, и наслаждайтесь свежим ресурсом!
Вы установили WordPress в облако!
Шаг 6. Останавливаем все.
Как я отметил в начале руководства, оплата AWS основана на количестве часов использования, так что убедитесь в том, что вам не понадобится оплачивать время, которое вы не использовали в действительности – для этого остановите все компоненты, как только вы завершите тестирование.
Для начала остановите экземпляр EC2: выбираем его в админке, щелкаем правой кнопкой по нему и жмем Stop. Если вы захотите впоследствии вновь запустить машину, просто выберите Start в том же самом выпадающем списке. Машина продолжит свою работу с того момента, как вы остановили ее.
Остановка базы данных так же легка, но у нее есть одно исключение – вы не сможете возобновить работу базы данных снова. Это не очень хорошо, но, к счастью, выход есть – вы можете сохранить копию данных при остановке базы. Впоследствии вы можете использовать эти данные для восстановления параметров базы данных в любое время.
Во вкладке RDS совершаем правый щелчок по экземпляру базы данных и выбираем Delete.
Проверьте, что все остановлено, после чего покиньте консоль AWS. Ваш блог перестанет работать так же быстро, как и был включен.
Что-то я совсем не понял — что это, для чего это, сколько стоит и в чем преимущества перед обычным хостингом.
Аналогичный вопрос.
Облака часто используются крупными компаниями с масштабными приложениями, чтобы сократить расходы на оплату серверов. Они могут пользоваться специализированным ПО, строить подходящую инфраструктуру, причем не нужно это делать физически — арендовать свой ЦОД, покупать программы и т.д. Просто предлагается удаленный доступ ко всем требуемым аппаратным и программным компонентам.
Вот более подробно о разных видах облачных моделей (SaaS, PaaS и т.д.):
http://ru.wikipedia.org/wiki/%CE%E1%EB%E0%F7%ED%FB%E5_%E2%FB%F7%E8%F1%EB%E5%ED%E8%FF
А вот сервисы, описанные в статье:
http://ru.wikipedia.org/wiki/Amazon_EC2
http://ru.wikipedia.org/wiki/Amazon_S3
Я всё равно не понял что это такое) Это типа выделенного сервера, куда я могу например игровой сервер поставить?
Ну вот к примеру хочется замутить мощный интернет-магазин. Можно воспользоваться тем же облачным провайдером, который будет предлагать разные системы учета товаров, продажи под заказ, продажи со склада, рассылку клиентам всяких там уведомлений по SMS и почте, можно прикрутить статусы заказов, есть программы-анализаторы продаж, можно даже свой call-центр создать. Причем все это можно делать через свой компьютер и интернет, не нужно никуда ходить, и обойдется это очень дешево. Сайт mrsale.ru, к примеру, предлагает все эти фишки — и еще кучу других — по 17р в день. Это копейки по сравнению с тем, что пришлось бы заплатить, если бы все это нужно было ставить самому на сервер и потом еще тестировать, чтобы все работало как надо.
Очень интересная статья. Перечитаю еще раз, хочу лучше запомнить информацию.