Статьи

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

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

Конфигурирование вашей среды разработки

Прежде чем мы увлечемся, давайте удостоверимся, что наш местный клиент готов к работе. Amazon предоставляет богатый набор инструментов для командной строки, который прекрасно сочетается с Консолью управления AWS. Если вы сделали это далеко, скорее всего, вы предпочитаете командную строку.

Сначала нам нужно загрузить наш сертификат X.509, который является открытым ключом, который позволяет нам делать безопасные SOAP-запросы к Amazon, и наш соответствующий закрытый ключ. Вы можете загрузить свой сертификат X.509 в любой момент, но Amazon дает вам только один раз ваш закрытый ключ и не хранит его. Убедитесь, что вы храните его, не делитесь им и имейте в виду, что нет способа восстановить его, если он когда-нибудь потеряется.

Нажмите на учетную запись в верхнем меню; это приведет нас к странице вашего аккаунта. Затем нажмите «Учетные данные безопасности» в правом столбце. Прокрутите вниз до Access Credentials, выберите вкладку X.509 и нажмите Create a New Certificate. Появится диалоговое окно со ссылками на два вышеупомянутых файла: ваш закрытый ключ и сертификат X.509 (открытый ключ). Помните, что это ваш единственный шанс загрузить свой закрытый ключ. Обязательно сделайте это и храните в надежном месте.

Всплывающее окно сертификата X.509

Затем нам нужно загрузить инструменты API Amazon EC2, которые являются клиентским интерфейсом для веб-сервисов Amazon EC2. Перейдите на http://aws.amazon.com/developertools/ .

Страница инструментов разработчика AWS

Найдите и нажмите Инструменты Amazon EC2 API. Разархивируйте загрузку, и у нас должны быть следующие файлы.

Распакованная папка «Инструменты EC2 API»

Теперь давайте откроем оболочку и настроим нашу рабочую станцию ​​для взаимодействия с Amazon и взаимодействия с нашей средой EC2.

Сначала создайте скрытый каталог .ec2 в вашем домашнем каталоге.

  Последний вход в систему: ср 17 авг 22:34:19 на ttys000
 MacBook-Pro: ~ john2 $ mkdir ~ / .ec2 

Затем переместите сертификат X.509, файл ~/.ec2 ключа и папку ec2-api-tools в ~/.ec2 .

  MacBook-Pro: ~ john2 $ cd .ec2
 MacBook-Pro: .ec2 john2 $ mv ../Downloads/*.pem.
 MacBook-Pro: .ec2 john2 $ mv ../Downloads/ec2-api-tools-1.4.4.0.
 MacBook-Pro: .ec2 john2 $ ls -las
 всего 16
 0 drwxr-xr-x 5 john2 персонал 170 авг 17 22:38.
 0 drwxr-xr-x + 16 john2 персонал 544 авг 17 22:35 ..
 8-rw-r - r - @ 1 john2 персонал 916 авг 17 22:28 cert- {YOUR-HASH} .pem
 0 drwxr-xr-x @ 7 john2 персонал 238 августа 3 04:24 ec2-api-tools-1.4.4.0
 8-rw-r - r - @ 1 john2 персонал 924 авг 17 22:28 pk- {YOUR-HASH} .pem
 MacBook-Pro: .ec2 john2 $ ls -las ec2-api-tools-1.4.4.0 /
 всего 120
  0 drwxr-xr-x @ 7 john2 персонал 238 авг 3 04:24.
  0 drwxr-xr-x 5 john2 персонал 170 авг 17 22:38 ..
 96-rw-r - r - @ 1 john2 персонал 46468 3 августа 04:19 THIRDPARTYLICENSE.TXT
  0 drwxr-xr-x @ 510 john2 персонал 17340 3 авг 04:24 bin
  0 drwxr-xr-x @ 33 john2 персонал 1122 авг 3 04:24 lib
 16-rw-r - r - @ 1 john2 персонал 4852 3 августа 04:19 license.txt
  8-rw-r - r - @ 1 john2 персонал 539 авг 3 04:19 note.txt 

Далее, это хорошая идея отредактировать ~/.bash_profile чтобы предоставить нашей машине необходимые пути EC2.

  MacBook-Pro: .ec2 john2 $ vi ~ / .bash_profile
 export EC2_HOME = ~ / .ec2 / ec2-api-tools-1.4.4.0
 экспорт PATH = $ PATH: $ EC2_HOME / bin
 export EC2_PRIVATE_KEY = pk- {YOUR-HASH} .pem
 export EC2_CERT = cert- {YOUR-HASH} .pem
 export JAVA_HOME = / Система / Библиотека / Каркасы / JavaVM.framework / Home / 

После этого обязательно используйте ~/.bash_profile чтобы использовать эти переменные в текущем сеансе.

  MacBook-Pro: .ec2 john2 $ source ~ / .bash_profile 

Теперь у нас есть локальная среда разработки, настроенная для общения с EC2 и выдачи удаленных команд через клиентский интерфейс ec2 . Следующим шагом является создание пары ключей, которую мы можем использовать для запуска экземпляров; и после запуска подключитесь через ssh. Это новый и другой набор ключей, который мы создали при настройке нашего SOAP-клиента для самого Amazon EC2.

  MacBook-Pro: .ec2 john2 $ ec2-create-keypair john2.kp> john2.kp
 MacBook-Pro: .ec2 john2 $ ec2- description-keypairs
 КЛАВИАТУРА john2.kp 42: a8: 19: 7d: 85: fc: aa: e7: a8: 13: cc: c2: 2b: 92: b9: ee: c6: 6e: 07: f5
 MacBook-Pro: .ec2 john2 $ chmod 600 john2.kp 
 MacBook-Pro: .ec2 john2 $ cat john2.kp
 КЛАВИАТУРА john2.kp 42: a8: 19: 7d: 85: fc: aa: e7: a8: 13: cc: c2: 2b: 92: b9: ee: c6: 6e: 07: f5
 ----- НАЧАТЬ RSA ЧАСТНЫЙ КЛЮЧ -----
 СУПЕР СЕКРЕТНЫЙ ПЕРСОНАЛ
 ----- END RSA ЧАСТНЫЙ КЛЮЧ ----- 

Если вы столкнетесь с сообщениями, которые не нашли команду ec2-xxx-xxxx, убедитесь, что ~/.bash_profile был получен в этом конкретном терминальном сеансе и что в нем указаны правильные пути для EC2.

В поисках AMI

Следующим шагом является поиск инстанса машины Amazon (AMI). AMI — это готовый образ экземпляра операционной системы. Вы можете найти множество поставщиков AMI для многих операционных систем от Windows до Red Hat. Хорошее место для начала — http://aws.amazon.com/amis .

Если вы заинтересованы в работе с Ubuntu, Alestic предоставляет надежные AMI на основе Ubuntu. Просто зайдите на http://alestic.com/ , выберите свой регион и просмотрите доступные изображения.

Ubuntu AMI на алестик

Я выберу us-east-1 Ubuntu 11.04 Natty EBS boot server 64-bit . Мы можем использовать ec2-describe-images чтобы Amazon распознавал наш идентификатор изображения и просматривал детали изображения.

  MacBook-Pro: .ec2 john2 $ ec2- description -images ami-1aad5273
 IMAGE ami-1aad5273 099720109477 / ebs / ubuntu-images / ubuntu-natty-11.04-amd64-server-20110426 099720109477 доступный общедоступный компьютер x86_64 aki-427d952b ebs паравиртуальный xen
 BLOCKDEVICEMAPPING / dev / sda1 snap-7d8f0f12 8 

Теперь мы готовы запустить наш первый экземпляр! Мы будем использовать ключ, который мы создали ранее, указав параметр -k . Это важно, потому что этот же ключ будет использоваться для подключения к нашему экземпляру через ssh на последующих шагах. --instance-type конечном итоге сэкономит много денег; мы создаем изолированную программную среду разработки, и нам не нужно больше ресурсов, чем обеспечивает микроэкземпляр. Наконец, мы передаем ID выбранного AMI, и у нас есть работающий сервер Ubuntu в Amazon EC2 Cloud!

  MacBook-Pro: .ec2 john2 $ ec2-run-instances -k john2.kp - тип экземпляра t1.micro ami-1aad5273
 БРОНИРОВАНИЕ r-5be89134 582155754520 по умолчанию
 INSTANCE i-c795bfa6 ami-1aad5273 в ожидании john2.kp 0 t1.micro 2011-08-22T00: 21: 03 + 0000 us-east-1b aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 MacBook-Pro: .ec2 john2 $ ec2- description -instance
 БРОНИРОВАНИЕ r-03751f6c 582155754520 по умолчанию
 INSTANCE i-c97328a8 ami-1aad5273 прекращено john2.kp 0 t1.micro 2011-08-20T00: 48: 15 + 0000 us-east-1a aki-427d952b мониторинг-отключен ebs paravirtual xen sg-f5a0899c по умолчанию
 БРОНИРОВАНИЕ r-5be89134 582155754520 по умолчанию
 INSTANCE i-c795bfa6 ami-1aad5273 ec2-75-101-238-254.compute-1.amazonaws.com ip-10-245-202-88.ec2.internal работает john2.kp 0 t1.micro 2011-08-22T00 : 21: 03 + 0000 us-east-1b aki-427d952b мониторинг отключен 75.101.238.254 10.245.202.88 ebs паравиртуальный xen sg-f5a0899c по умолчанию
 BLOCKDEVICE / dev / sda1 vol-58923732 2011-08-22T00: 21: 26.000Z 

Перед тем, как подключиться через ssh, давайте остановим наш экземпляр, запустим его снова, и при этом взглянем на Консоль управления AWS.

Когда мы запустили наш экземпляр через ec2-run-instances , Amazon вернула уникальный идентификатор экземпляра. В случае выше, это вернуло i-c795bfa6 . Этот идентификатор экземпляра — это то, что мы используем для вызова действий, специфичных для будущего экземпляра, например, запуска, остановки, создания AMI и завершения (удаления) нашего экземпляра. Потратьте немного времени на остановку и запуск вашего экземпляра, а также на просмотр столбца «Состояние» в консоли управления AWS, чтобы перейти от запуска к остановке и от остановки к работе.

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

  MacBook-Pro: .ec2 john2 $ ec2-stop-instances i-c795bfa6
 INSTANCE i-c795bfa6 работает остановка 

В будущем вам не нужно будет останавливать и запускать экземпляр через командную строку, но полезно ознакомиться с процессом. Это также помогает понять разницу между двумя ключевыми семействами пар. Первый, X.509, предназначен для взаимодействия с EC2 из командной строки. Эти пары ключей дают нам доступ к 124 командам ec2 . Последние, ключи john2.kp дают нам доступ к самому экземпляру. Почему мы увидели только один ключ от семьи последнего? Мы увидели закрытый ключ, Amazon сохранил открытый ключ. Однако в будущем мы сможем выполнить многие действия, предоставляемые клиентом командной строки с Консолью управления AWS. Чтобы вызвать эти действия, установите флажок для экземпляра, с которым вы хотите выполнить действие, а затем найдите соответствующее действие в раскрывающемся списке «Действия с экземпляром» в верхней части раздела «Мои экземпляры».

Давайте запустим наш экземпляр и подключимся через ssh в первый раз. Помните ec2-create-keypair ключ, который Amazon дал нам, когда мы запускали ec2-create-keypair и который мы использовали для запуска нашего экземпляра через ec2-run-instances ? Нам это нужно для подключения к нашему экземпляру через ssh. Нам также понадобится публичная запись DNS для этого экземпляра. Это можно найти в разделе сведений об экземпляре EC2 выбранного экземпляра в консоли управления AWS. Скопируйте и вставьте это в вашу команду ssh. Нам нужно использовать флаг -i (файл идентификации), чтобы подключиться к нашему экземпляру в первый раз. Разные AMI имеют разные правила подключения в первый раз, но выбранный нами образ Ubuntu позволяет подключаться пользователю ubuntu .

Перед подключением через ssh нам нужно открыть необходимые порты с помощью ec2-authorize .

 MacBook-Pro: .ec2 john2 $ ec2-авторизация по умолчанию -p 22
 MacBook-Pro: .ec2 john2 $ ec2-авторизация по умолчанию -p 80
 MacBook-Pro: .ec2 john2 $ ssh -i john2.kp [email protected] 

На этом мы завершаем часть 2 из нашей серии из трех статей о настройке изолированной программной среды разработки на Amazon EC2. Мы перешли от новой учетной записи к работающему экземпляру Ubuntu. Оставайтесь с нами, чтобы насладиться отдачей от работы серверов в Amazon. Далее мы рассмотрим настройку стека LAMP и создание наших собственных изображений!

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