Статьи

От нуля до облака: настройка песочницы EC2, часть 3

Это последняя статья из трех статей, посвященных настройке EC2 в качестве «песочницы» для разработчиков приложений. Я предполагаю, что у вас есть аккаунт AWS с Amazon; если вы этого не сделаете, пожалуйста, прочитайте Часть 1, чтобы узнать, как легко зарегистрироваться. Я также предполагаю, что вы настроили свою среду разработки и установили AMI; если нет, пожалуйста, прочитайте Часть 2 . В этой статье мы узнаем, как установить Apache, MySQL и PHP в нашем работающем AMI, а затем клонировать AMI для создания собственного.

Настройка стека лампы

Теперь мы готовы настроить наш стек LAMP. Поскольку это выходит за рамки данной статьи и поскольку существует много точек зрения на передовой опыт, мы не станем настраивать многоуровневую экосистему. Вместо этого мы установим MySQL, Apache и PHP в нашем случае, зная, что когда мы напишем наше приложение, мы обязательно будем структурировать код так, чтобы мы могли легко изменить наш источник данных.

Во-первых, убедитесь, что мы можем делать с этим блоком все, что захотим, запустив интерактивную оболочку с правами администратора.

  ubuntu @ ip-10-112-58-53: ~ $ sudo -i 

Далее установите MySQL через apt-get По пути нам будет предложено выбрать и проверить пароль root для MySQL.

  root @ ip-10-112-58-53: ~ # apt-get установить mysql-сервер mysql-клиент 

Затем установите Apache через apt-get

  root @ ip-10-112-58-53: ~ # apt-get установить apache2 

Конечно, мы также хотим установить PHP и соответствующий модуль Apache.

  root @ ip-10-112-58-53: ~ # apt-get установить php5 libapache2-mod-php5 

Наконец, нам нужно установить хотя бы пакет php5-mysql Мне нравится устанавливать еще несколько… используйте apt-cache search php5

  root @ ip-10-112-58-53: ~ # apt-cache search php5
 root @ ip-10-112-58-53: ~ # apt-get установить php5-mysql php-pear php5-cgi php5-cli php5-общий php5-curl php5-gd php5-gmp php5-ldap php5-odbc php5- pgsql php5-snmp php5-sqlite php5-xmlrpc php5-xsl php5-imagick 

Перезапустите Apache после установки всех новых пакетов.

  root @ ip-10-112-58-53: ~ # service apache2 restart
  * Перезапуск веб-сервера apache2
  ... жду ... сделано. 

После того, как мы закончим, мы должны проверить исправность, чтобы убедиться, что все настроено правильно. Создайте файл с именем phpinfo.php

 <?php
phpinfo();

Сейчас момент истины. Возьмите запись Public DNS, которую мы использовали ранее, вставьте ее в веб-браузер и откройте файл, который вы только что создали. Надеюсь, мы увидим вывод phpinfo()

Страница phpinfo

Выплаченные дивиденды

Мы еще не закончили! Мы усердно работали над созданием надежного базового стека LAMP, поэтому давайте создадим наш собственный AMI, чтобы мы могли запустить экземпляр, идентичный только что настроенному. Для этого мы используем ec2-create-image

  MacBook-Pro: .ec2 john2 $ ec2-create-image i-c795bfa6 -n лампа-стартер
 ИЗОБРАЖЕНИЕ ami-43b5752a 

Нажмите на AMI в разделе ИЗОБРАЖЕНИЙ консоли управления EC2, и мы должны увидеть наш образ.

Консоль управления AWS

Теперь, когда мы успешно прошли путь от нуля до облака, давайте немного повеселимся и представим, что мы создали многоуровневое веб-приложение, которое заработало и имело огромный успех. Предполагая, что мы правильно спроектировали приложение, и игнорируя необходимые настройки балансировки нагрузки, мы можем запустить 10 новых веб-серверов с помощью нескольких нажатий клавиш.

  MacBook-Pro: .ec2 john2 $ ec2-run-instances -k john2.kp - тип экземпляра m1.large -n 10 ami-43b5752a
 БРОНИРОВАНИЕ r-4f433b20 582155754520 по умолчанию
 INSTANCE i-2daa9f4c ami-43b5752a в ожидании john2.kp 0 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-2faa9f4e ami-43b5752a в ожидании john2.kp 1 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-31aa9f50 ami-43b5752a в ожидании john2.kp 2 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-33aa9f52 ami-43b5752a в ожидании john2.kp 3 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-35aa9f54 ami-43b5752a в ожидании john2.kp 4 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-37aa9f56 ami-43b5752a в ожидании john2.kp 5 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-3baa9f5a ami-43b5752a в ожидании john2.kp 6 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-3daa9f5c ami-43b5752a в ожидании john2.kp 7 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-3faa9f5e ami-43b5752a в ожидании john2.kp 8 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 INSTANCE i-01aa9f60 ami-43b5752a в ожидании john2.kp 9 m1.large 2011-08-22T04: 49: 45 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию 

Вы увидите это действие в своей консоли и поймете, почему Amazon запросил информацию о вашей кредитной карте заранее.

Консоль управления AWS

На этом мы завершаем серию из трех частей по настройке изолированной программной среды разработки с Amazon EC2. Мы начали с головы в облаках и закончили с AMI в облаке. Amazon — удивительно дешевая песочница, если вы помните о ее использовании. Выключайте экземпляры, когда они не используются, и обязательно ознакомьтесь с их ценами .

Изображение через Lightspring / Shutterstock