Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo

1

Тупицын Дмитрий [email_address] Amazon Elastic Computing Clouds  в действии

2

Ⅰ Что такое и зачем нужен EC2? Ⅱ Первые шаги Ⅲ Масштабируемый  веб-сервер Ⅳ Создание о бразов Ⅴ Проблемы адресации Ⅵ Безопасность Ⅶ Вопросы Структура

3

Что такое и зачем нужен EC2? Часть Ⅰ

4

Сервера по требованию Аренда через программные API или веб-браузер 1-3 минуты и сервер готов Предустановленные ОС Linux, OpenSolaris, Windows  Возможность кастомизации Оплата после использования Метафора “pay by the drink” Что такое EC2?

5

Т ипы серверов: (На другой слайд???)‏ Small — 1.7 Gb, 1 виртуальное ядро, 160 Gb HDD Large — 7.5 Gb, 2 виртуальных ядра, 160 Gb HDD Extra — 15 Gb, 4 виртуальных ядра, 160 Gb HDD ??????? Типы серверов ????

6

П ериодические задачи Подсчет “сложной” статистики по БД, компиляция большого проекта Срочно нужен сервер Масштабируемые приложения Непредсказуемая загрузка: запуск нового сервиса, наплыв пользователей во время PR-акций Сезонные или суточные изменения Зачем нужен EC2?

7

Первые шаги Часть Ⅱ

8

http://aws.amazon.com Потребуется Email Кредитная карта Получим Access Key (строка)‏ Secret Access Key (строка)‏ Account Number (или User ID – тоже строка)‏ Certificate X.509 (файл в 1 Кб)‏ Privat Key (файл в 1 Кб)‏ Регистрация

9

Будем использовать unix подобную систему В windows все аналогично КАРИНКА: Пользователь под linux лезет в облако AWS!!!!!! Пользовательская ОС

10

Загружаем ec2-api-tools http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip Распаковываем В д иректорию ~/.ec2/ec2-api-tools Копируем сертификат и ключ Сертификат в ~/.ec2/cert-ec2.pem Ключ в ~/.ec2/pk-ec2.pem Установка ec2-api-tools

11

Настройка окружения export EC2_HOME=~/.ec2/ec2-api-tools export EC2_PRIVATE_KEY=~/.ec2/pk-ec2.pem export EC2_CERT=~/.ec2/cert-ec2.pem export EC2_ACCESS_KEY=XXXXXXXXXXXXXXX export EC2_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXX export PATH=$PATH:~/.ec2/ec2-api-tools/bin export USER_ID=XXXXXXX  # не обязательно Настройка java  (JAVA_HOME и т.п.)‏ Устанавливаем

12

КАРТИНКА!! Выбор образа $  ec2-describe-images  -a  # все доступные образы $  ec2-describe-images  -a | grep debian-5 | grep i386 IMAGE ami-67fe190e alestic/ debian-5 .0-lenny-base-20090215.manifest.xml 063491364108 available public i386 machine aki-a71cf9ceari-a51cf9cc

13

???? Описание атрибутов и прав Образ в разрезе

14

КАРТИНКА про админа с ключем!!!! Генерация SSH ключа $  ec2-add-keypair keypair  > ~/.ec2/keypair # убрать первую строку из ~/.ec2/keypair $  chmod 700  ~/.ec2/keypair

15

КАРТИНКА: образ(пробирка) + ключь = запущеный сервер НО! ключь (какой) приходит из AWS Запуск образа $  ec2-run-instances   ami-67fe190e  -k keypair $  ec2-describe-instances   #посмотреть что запущенно

16

Комманды запуска образа $  ec2-run-instances   ami-67fe190e  -k  keypair $  ec2-describe-instances # ж дем 1-3 минуты до появления статуса running # видим dns имя и ip $  ec2-describe-instances   INSTANCE i-55274a3c ami-67fe190e  ec2-174-129-118-242.compute-1.amazonaws.com  ip-10-250-6-8.ec2.internal  running  keypair   0 m1.small 2009-04-08T14:52:23+0000 us-east-1b  aki-a71cf9ce ari-a51cf9cc

17

Сервер запущен! КАРТИНКА С ВОСТОРЖЕННЫМ АДМИНОМ!! $  ssh  -i ~/.ec2/keypair root@ ec2-174-129-118-242.compute-1.amazonaws.com

18

Что на сервере? $  df  -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.9G 506M 8.9G 6% / tmpfs 854M 0  854M 0% /lib/init/rw udev 854M  24K 854M 1% /dev tmpfs 854M 0 854M 0% /dev/shm /dev/sda2 147G 188M 140G 1% /mnt В  /  монтируется образ /mnt  – исчезнет после остановки сервера!!!

19

Масштабируемый веб-сервер Часть Ⅲ

20

Структура веб-сервера Сколько пользователей?  Сколько потребуется front-end серверов?

21

Условие: быстрое масштабирование front-end серверов от 1 до 5 Добавление или останов front-end серверов за 5 минут Допущение: Один back-end сервер БД без репликаций Один back-end справится с 5-ю front-end серверами Можно разрывать сессии на front-end Условия и допущения

22

Создание образов Часть Ⅳ

23

Создание front-end образа КАРТИНКА: сервер + apache + python = веб-сервер (с глобусом)‏

24

Команды создания образа $  apt-get  install apache2 libapache2-mod-python python-mysqldb # и т.д. $  ec2-bundle-vol  -d /mnt/ -k pk-ec2.pem -c cert-ec2.pem -u "$EC2_USER" -r i386 -p  front-end $  ec2-upload-bundle   -b mybucket   -m /mnt/front-end.manifest.xml   -a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" Выполняем на ec2 сервере:

25

Регистрируем front-end образ $  ec2-register  mybucket/front-end.manifest.xml IMAGE ami-5a779e1f $ export FRONT_END_AIM=ami-5a779e1f КАРТИНКА: сохранение глобуса в S3 и получение образа (AMI)‏

26

Создание back-end образа КАРТИНКА: сервер + mysql = сервер БД (с дисками)‏ $ # команды аналогично front-end

27

Проблемы адресации Часть Ⅴ

28

Внешние и внутренние ip

29

Трафик по внешнему ip платный Даже между инстанциям в облаке!!  0.01$ / Gb Внешние и внутренние ip $  ec2-describe-instances   INSTANCE i-55274a3c ami-67fe190e  ec2-174-129-118-242.compute-1.amazonaws.com ip-10-250-6-8.ec2.internal   running   keypair   0 m1.small  ......

30

Аренда внешних IP адресов Изменение дианмических IP на заранее известные Elastic IP Addresses (СДЕЛАТЬ КАРТИНКУ)‏ $  ec2-allocate-address   # получить ip ADDRESS 114.129.212.37 $ export EC2_IP=114.129.212.37 $  ec2-associate-address  -i  i-cd5c34a4  $EC2_IP  #установить ADDRESS 114.129.212.37  i-cd5c34a4

31

IP адрес БД может измениться Сбой сервера или необходимость перегрузки Переход на более мощный сервер Как веб серверам искать БД? Прописывать адрес при формировании образа Сохранить адрес back-end-а в известном месте (S3, SimpleDB)‏ Зарезервировать постоянный внешний IP (Elastic IP Addresses)‏ Свой DNS Проблемы с БД

32

Текст Что-то-там

33

Безопасность Часть Ⅵ

34

КАРТИНКА ПРО СЕРВИС С firewall-ами Безопасность сервиса

35

КАРТИНКА С ГРУППАМИ (на основе предыдущей)‏ Группы серверов

36

Права: front-end — 80 порт доступен для всех back-end — полный доступ с front-end серверов Команды создания групп $  ec2-add-group   front-end  --description 'web servers' $  ec2-authorize  front-end  -p 80 $  ec2-add-group   back-end  --description 'db servers' $  ec2-authorize  back-end --source-group front-end  -u $EC2_USER

37

Временный доступ С определенного ip Открытие ssh доступа # открываем доступ для 89.12.9.94 $  ec2-authorize  front-end -p 22  --source-subnet 89.12.9.94/32 # закрываем $  ec2-revoke  front-end -p 22  --source-subnet 89.12.9.94/32

38

Запуск сервера в группе $  ec2-run-instance   $BACK_END_AIM  -k keypair  -g back-end $ ec2-run-instance   $FRONT_END_AIM  -k keypair  -g front-end вывыыввы

39

Презент! Часть Ⅵ с половиной

40

Все вышеперечисленное можно сделать через веб интерфейс http://console.aws.amazon.com/ Автоматизировать — только через программные API AWS Management Console

41

Вопросы Часть Ⅶ

More Related Content

Ec2 Rootconf2009

  • 1. Тупицын Дмитрий [email_address] Amazon Elastic Computing Clouds в действии
  • 2. Ⅰ Что такое и зачем нужен EC2? Ⅱ Первые шаги Ⅲ Масштабируемый веб-сервер Ⅳ Создание о бразов Ⅴ Проблемы адресации Ⅵ Безопасность Ⅶ Вопросы Структура
  • 3. Что такое и зачем нужен EC2? Часть Ⅰ
  • 4. Сервера по требованию Аренда через программные API или веб-браузер 1-3 минуты и сервер готов Предустановленные ОС Linux, OpenSolaris, Windows Возможность кастомизации Оплата после использования Метафора “pay by the drink” Что такое EC2?
  • 5. Т ипы серверов: (На другой слайд???)‏ Small — 1.7 Gb, 1 виртуальное ядро, 160 Gb HDD Large — 7.5 Gb, 2 виртуальных ядра, 160 Gb HDD Extra — 15 Gb, 4 виртуальных ядра, 160 Gb HDD ??????? Типы серверов ????
  • 6. П ериодические задачи Подсчет “сложной” статистики по БД, компиляция большого проекта Срочно нужен сервер Масштабируемые приложения Непредсказуемая загрузка: запуск нового сервиса, наплыв пользователей во время PR-акций Сезонные или суточные изменения Зачем нужен EC2?
  • 8. http://aws.amazon.com Потребуется Email Кредитная карта Получим Access Key (строка)‏ Secret Access Key (строка)‏ Account Number (или User ID – тоже строка)‏ Certificate X.509 (файл в 1 Кб)‏ Privat Key (файл в 1 Кб)‏ Регистрация
  • 9. Будем использовать unix подобную систему В windows все аналогично КАРИНКА: Пользователь под linux лезет в облако AWS!!!!!! Пользовательская ОС
  • 10. Загружаем ec2-api-tools http://s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip Распаковываем В д иректорию ~/.ec2/ec2-api-tools Копируем сертификат и ключ Сертификат в ~/.ec2/cert-ec2.pem Ключ в ~/.ec2/pk-ec2.pem Установка ec2-api-tools
  • 11. Настройка окружения export EC2_HOME=~/.ec2/ec2-api-tools export EC2_PRIVATE_KEY=~/.ec2/pk-ec2.pem export EC2_CERT=~/.ec2/cert-ec2.pem export EC2_ACCESS_KEY=XXXXXXXXXXXXXXX export EC2_SECRET_KEY=XXXXXXXXXXXXXXXXXXXXXXXXX export PATH=$PATH:~/.ec2/ec2-api-tools/bin export USER_ID=XXXXXXX # не обязательно Настройка java (JAVA_HOME и т.п.)‏ Устанавливаем
  • 12. КАРТИНКА!! Выбор образа $ ec2-describe-images -a # все доступные образы $ ec2-describe-images -a | grep debian-5 | grep i386 IMAGE ami-67fe190e alestic/ debian-5 .0-lenny-base-20090215.manifest.xml 063491364108 available public i386 machine aki-a71cf9ceari-a51cf9cc
  • 13. ???? Описание атрибутов и прав Образ в разрезе
  • 14. КАРТИНКА про админа с ключем!!!! Генерация SSH ключа $ ec2-add-keypair keypair > ~/.ec2/keypair # убрать первую строку из ~/.ec2/keypair $ chmod 700 ~/.ec2/keypair
  • 15. КАРТИНКА: образ(пробирка) + ключь = запущеный сервер НО! ключь (какой) приходит из AWS Запуск образа $ ec2-run-instances ami-67fe190e -k keypair $ ec2-describe-instances #посмотреть что запущенно
  • 16. Комманды запуска образа $ ec2-run-instances ami-67fe190e -k keypair $ ec2-describe-instances # ж дем 1-3 минуты до появления статуса running # видим dns имя и ip $ ec2-describe-instances INSTANCE i-55274a3c ami-67fe190e ec2-174-129-118-242.compute-1.amazonaws.com ip-10-250-6-8.ec2.internal running keypair 0 m1.small 2009-04-08T14:52:23+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc
  • 17. Сервер запущен! КАРТИНКА С ВОСТОРЖЕННЫМ АДМИНОМ!! $ ssh -i ~/.ec2/keypair root@ ec2-174-129-118-242.compute-1.amazonaws.com
  • 18. Что на сервере? $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 9.9G 506M 8.9G 6% / tmpfs 854M 0 854M 0% /lib/init/rw udev 854M 24K 854M 1% /dev tmpfs 854M 0 854M 0% /dev/shm /dev/sda2 147G 188M 140G 1% /mnt В / монтируется образ /mnt – исчезнет после остановки сервера!!!
  • 20. Структура веб-сервера Сколько пользователей? Сколько потребуется front-end серверов?
  • 21. Условие: быстрое масштабирование front-end серверов от 1 до 5 Добавление или останов front-end серверов за 5 минут Допущение: Один back-end сервер БД без репликаций Один back-end справится с 5-ю front-end серверами Можно разрывать сессии на front-end Условия и допущения
  • 23. Создание front-end образа КАРТИНКА: сервер + apache + python = веб-сервер (с глобусом)‏
  • 24. Команды создания образа $ apt-get install apache2 libapache2-mod-python python-mysqldb # и т.д. $ ec2-bundle-vol -d /mnt/ -k pk-ec2.pem -c cert-ec2.pem -u "$EC2_USER" -r i386 -p front-end $ ec2-upload-bundle -b mybucket -m /mnt/front-end.manifest.xml -a "$EC2_ACCESS_KEY" -s "$EC2_SECRET_KEY" Выполняем на ec2 сервере:
  • 25. Регистрируем front-end образ $ ec2-register mybucket/front-end.manifest.xml IMAGE ami-5a779e1f $ export FRONT_END_AIM=ami-5a779e1f КАРТИНКА: сохранение глобуса в S3 и получение образа (AMI)‏
  • 26. Создание back-end образа КАРТИНКА: сервер + mysql = сервер БД (с дисками)‏ $ # команды аналогично front-end
  • 29. Трафик по внешнему ip платный Даже между инстанциям в облаке!! 0.01$ / Gb Внешние и внутренние ip $ ec2-describe-instances INSTANCE i-55274a3c ami-67fe190e ec2-174-129-118-242.compute-1.amazonaws.com ip-10-250-6-8.ec2.internal running keypair 0 m1.small ......
  • 30. Аренда внешних IP адресов Изменение дианмических IP на заранее известные Elastic IP Addresses (СДЕЛАТЬ КАРТИНКУ)‏ $ ec2-allocate-address # получить ip ADDRESS 114.129.212.37 $ export EC2_IP=114.129.212.37 $ ec2-associate-address -i i-cd5c34a4 $EC2_IP #установить ADDRESS 114.129.212.37 i-cd5c34a4
  • 31. IP адрес БД может измениться Сбой сервера или необходимость перегрузки Переход на более мощный сервер Как веб серверам искать БД? Прописывать адрес при формировании образа Сохранить адрес back-end-а в известном месте (S3, SimpleDB)‏ Зарезервировать постоянный внешний IP (Elastic IP Addresses)‏ Свой DNS Проблемы с БД
  • 34. КАРТИНКА ПРО СЕРВИС С firewall-ами Безопасность сервиса
  • 35. КАРТИНКА С ГРУППАМИ (на основе предыдущей)‏ Группы серверов
  • 36. Права: front-end — 80 порт доступен для всех back-end — полный доступ с front-end серверов Команды создания групп $ ec2-add-group front-end --description 'web servers' $ ec2-authorize front-end -p 80 $ ec2-add-group back-end --description 'db servers' $ ec2-authorize back-end --source-group front-end -u $EC2_USER
  • 37. Временный доступ С определенного ip Открытие ssh доступа # открываем доступ для 89.12.9.94 $ ec2-authorize front-end -p 22 --source-subnet 89.12.9.94/32 # закрываем $ ec2-revoke front-end -p 22 --source-subnet 89.12.9.94/32
  • 38. Запуск сервера в группе $ ec2-run-instance $BACK_END_AIM -k keypair -g back-end $ ec2-run-instance $FRONT_END_AIM -k keypair -g front-end вывыыввы
  • 39. Презент! Часть Ⅵ с половиной
  • 40. Все вышеперечисленное можно сделать через веб интерфейс http://console.aws.amazon.com/ Автоматизировать — только через программные API AWS Management Console