Cервис для клиентов от амазон. Уроки по Amazon AWS на русском языке

Amazon Web Services (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow. Millions of customers currently leverage AWS cloud products and solutions to build sophisticated applications with increased flexibility, scalability and reliability. Tens of thousands of customers use a broad range of AWS services. This has accelerated AWS’ pace in machine learning, artificial intelligence, internet of things, and serverless computing.

Today, Amazon Web Services provides a highly reliable, scalable, low-cost infrastructure platform in the cloud that powers hundreds of thousands of businesses in 190 countries around the world. Check out some of our customer use cases to see how our customers use AWS and imagine how you can impact the future of cloud computing as an AWS teammate. Here at AWS, you’ll experience unparalleled ownership and impact on our products, and be empowered to innovate and deliver. Come build the future with AWS.

Здравствуйте, уважаемые облачные друзья!

Я думаю, что людей, которые бы не слышали о передовых технологиях и сервисах от компании Amazon с каждым днем становиться все меньше. Для тех кто не знаком с сервисами компании Amazon или знаком, но еще не начал использовать, я в данной статье расскажу о начале работы с Amazon Web Services. В статье будет описан процесс создания, работы и управления виртуальной машиной в инфраструктуре AWS.

Поехали

Амазон предоставляет, новым пользователям, ряд сервисов на бесплатной основе. Безусловно, бесплатное использование сервисов Амазон возможно с некоторыми ограничениями. Однако, предоставляемых лимитов вполне достаточно для того, что бы попробовать и оценить функциональные возможности Amazon Web Services. Вот набор бесплатных сервисов и их ограничений:
  • Виртуальные машины только на базе Amazon EC2 Linux Micro Instance. Бесплатно предоставляется 750 часов использования, которых, в течении первого года с момента регистрации учетной записи, будет достаточно для использования одного EC2 экземпляра в режиме 24/7;
  • 750 часов использования сервиса Elastic Load Balancer + 15 гигабайт обработанных данных;
  • 10 гигабайт в сервисе Amazon Elastic Block Storage (EBS). В бесплатный лимит EBS включены 1 миллион операций ввода/ввывода, 1 гигабайт для хранения мгновенных снимков, 10000 get запросов и 1000 put запросов к этим мгновенным снимкам;
  • 5 гигабайт в системе хранения Amazon Simple Storage Service (S3). В бесплатный лимит S3 включены 20000 Get запросов и 2000 Put запросов;
  • 30 гигабайт входящего и исходящего трафика в равных пропорциях;
  • 25 часов работы с Amazon SimpleDB и 1 гигабайт для данных;
  • 100000 запросов впри использовании сервиса Amazon Simple Queue ;
  • 100000 запросов, 100000 HTTP уведомлений и 1000 уведомлений по электронной почте при использовании сервиса Amazon Simple Notification ;
  • 10 метрик, 10 предупреждений и 1000000 запросов к API в сервисе Amazon Cloudwatch .
Если у вас еще нет аккаунта в Амазоне, вы легко можете его создать. Я опущу описание процесса регистрации аккаунта, т.к. он вполне логичный и понятный. Просто перейдите на страницу регистрации и следуйте инструкциям.
К сожалению, использование любых сервисов Amazon Web Services требует наличия у пользователя банковской карты (Visa, MasterCard и пр.). Без карты использование сервисов будет невозможно. Однако, в тестовый период, если вы не превысили указанные выше лимиты, никаких списаний денежных средств, за исключением проверочного списания в размере $1, быть не должно. Однако вам необходимо помнить, что по окончании тестового периода, если вы продолжите пользоваться сервисами, деньги начнут списываться автоматически.

Итак, аккаунт создан и верифицирован. Продолжим?

Давайте попробуем создать нашу первую виртуальную машину (EC2 экземпляр). Все просто - открываем консоль управления и переходим на вкладку Amazon EC2.

Тут, для начала, нам необходимо выбрать регион в котором будет работать наш EC2 экземпляр и нажать на кнопку Launch Instance .

В терминологии Амазон, регион (Region) - это региональное местоположение дата-центров в которых будут работать ваши виртуальные машины. Регионы, в свою очередь, делятся на зоны доступности (Availability Zone). Для обеспечения максимального уровня отказоустойчивости вашего приложения располагайте его в разных регионах, а внутри региона распределяйте ваши EC2 экземпляры по разным зонам доступности. Безусловно, приложение должно поддерживать такого рода распределения.

Сервисы AWS доступны в дата-центрах расположенных в США, Ирландии, Сингапуре и Японии. Для пользователей из России, логичным будет использование региона в Ирландии (EU West Ireland).


Далее необходимо выбрать тип экземпляра EC2. Можно создать свой или использовать уже готовые образы (AMI). Для простоты давайте возьмем готовый образ типа Basic 32-bit Amazon Linux AMI .

На следующем шаге выбираем тип экземпляра с Micro . Остальные параметры оставляем без изменений.

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

На шаге Create Key Pair , введите любое понравившееся имя для вашего RSA ключа и после перехода по ссылке Create & Download your Key Pair , ключ будет создан и вам будет предложено сохранить его на локальном компьютере. Сохраните его в надежном месте.

Следующее, что вам необходимо будет сделать - это создать группу безопасности (Security Group) для вашего EC2 экземпляра. Для этого, на шаге Configure Firewall , выбираем Create a new Security Group , и даем этой группе любое понравившееся название.

Фактически, группа безопасности (Security Group) - это средство обеспечивающее фильтрацию сетевых соединений для EC2 экземпляра. Другими словами - это файервол. Соответственно для обеспечения доступа к сервисам, которые будут работать в вашем EC2 экземпляре необходимо разрешить доступ к определенным TCP портам. Давайте сделаем наш экземпляр доступным для входящих соединений по протоколам HTTP, HTTPS и SSH. По желанию, можно добавить дополнительные правила.

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

Список ресурсов используемых созданным EC2 экземпляром можно посмотреть в панели управления EC2.

Для просмотра списка созданных вами экземпляров используйте ссылку 1 Running Instance . Выберите ранее созданный экземпляр и получите информацию о его состоянии и параметрах. Зафиксируйте где-нибудь значение параметра Public DNS , оно нам позже понадобится.

Подключение к EC2 экземпляру

Итак, мы создали наш первый EC2 экземпляр, запустили готовый образ с ОС Linux, настроили файервол. Далее нам нужно как-то к нему подключиться, посмотреть на него изнутри и что-нибудь с ним сделать.

Сделаем это через SSH используя созданные ранее приватный RSA ключ. Для пользователей Linux и прочих *nix систем, кто не знаком с механизмом безпарольного ssh-подключения, рекомендую почитать мануал для ssh. Пользователи Windows, думаю, сами разберуться как им действовать. Можно использовать функциональные возможности популярного ssh-клиента Putty или эмулятор Cygwin.

Ок, с ключами разобрались. А куда подключаться-то? А помните, мы где-то запомнили значение параметра Public DNS ? Вот его то и нужно использовать для подключения к вашему экземпляру посредством протокола SSH.

Для тех кому лень читать мануалы и разбираться как использовать RSA ключ в ssh используйте следующую команду:

# ssh -i path_to_key [email protected]_dns_hostname path_to_key - это путь к вашему секретному ключу
public_dns_hostname - это значение параметра Public DNS

Что дальше?

Ну что ж, EC2 экземпляр создали, запустили и даже смогли подключиться к нему. Ура! Давайте запустим в нем какой-нибудь сервис. Например, веб-сервер apache, тем более у нас уже готовы правила фильтра разрешающие доступ к экземпляру по протоколам HTTP и HTTPS.
  • Устанавливаем веб-сервер Apache

    $ sudo yum install httpd

  • И запускаем его

    $ sudo /etc/init.d/httpd start

  • Вводим в нашем любимом браузере URL http://public_dns_hostname и радуемся стартовой страничке Apache:)
Напоминаю, что public_dns_hostname - это значение параметра Public DNS для вашего экземпляра.

Заключение

Ну что, все оказалось не так страшно как возможно вы себе представляли. Все действия по запуску нашей первой виртуальной машины в экосистеме Amazon AWS, заняли всего 10-15 минут, а штатное средство для создания и управления экземплярами под названием Amazon AWS Management Console, сделало этот процесс весьма простым и удобным.

В следующих статьях я попробую рассказать, более детально, про другие сервисы Amazon AWS, про их настройку и управление. Если у вас есть какие-либо пожелания по темам обзоров, оставляйте их в комментариях.

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

Допустим, у вас есть один инстанс (экземпляр запущенной операционной системы) в облаке, и наплыв посетителей происходит всплесками. Вы можете добавить еще несколько инстансов, которые будут включаться и распределять между собой нагрузку только при пиковых нагрузках. Еще одним плюсом облачного хостинга является оплата только за то, чем вы пользуетесь по факту. Правда это будет несколько дороже обычного виртуального хостинга, но за более высокую цену вы получите те сервис, удобство и надежность, которых никогда не будет при использовании виртуального хостинга.

В этом обзоре посмотрим на западных крупных учатсников рынка: таких как Amazon Web Services (AWS) и Rackspace, так как они предоставляют максимально гибкие, полные и качественные услуги. Отдельно скажем о Linode, провайдере, предоставляющем в аренду VPS в облаке. Сразу стоит упомянуть, что эти компании не предоставляют технической поддержки на русском языке.

Amazon Web Services (AWS)

AWS представляет собой конструктор, из которого можно собрать сколь угодно сложную, распределенную сетевую инфраструктуру. Помимо этого Amazon предоставляет первый год пользования сервисом бесплатно в течение года, при условии, что вы не превысите лимитов сервиса (при превышении придется оплачивать по обычному тарифному плану). Вполне достаточно, чтобы попробовать облачный хостинг бесплатно. AWS очень удобен при необходимости разворачивать много одинаковых инстансов. Бесплатный пакет AWS Free Usage Tier включает в себя:

EC2 (инстансы - виртуальные машины ОС)

  • 750 часов использования виртуальной машины с Linux или Windows Server (613 Мб ОЗУ, 32- битная или 64-битная платформа) - достаточное количество часов для работы инстанса каждый месяц
  • 750 часов Elastic Load Balancer плюс 15 Гб обработки трафика
  • 30 Гб Amazon Elastic Block Storage, плюс 2 миллиона операций ввода/вывода и 1 Гб для хранения снэпшотов.
  • 15 Гб трафика

S3 (файловое хранилище)

  • 5 Гб Amazon S3 стандартного хранилища, 20000 Get запросов и 2000 Put запросов

Relational Database Service (служба реляционных баз данных, RDS)

  • 750 часов сервиса для запуска MySQL, Oracle BYOL или SQL Server
  • 20 Гб хранилище базы данных
  • 10 миллионов операций ввода/вывода
  • 20 Гб хранилище для бекапов для автоматического резервного копирования вашей базы данных и возможностью создать снэпшот базы данных

На Amazon есть калькулятор для расчета потребления оказываемых услуг. Есть три типа тарифов: on-demand, spot, reserved. On-demand - это обычный VPS на виртуализации . Spot - это то же самое, что on-demand, только не гарантируется такой же высокий uptime. Spot работает, пока цена, которую вы предложили, выше средней цены за этот же инстанс. А reserved это скидка при долгом пользовании инстанса on-demand, которую можно приобрести. Условно говоря, если вы долгое время используете on-demand инстанс за 23 доллара, то чтобы перейти на тариф reserved и платить по 12 долларов в месяц нужно заплатить 50 единоразово. Ссылки на цены у Амазон:

Помимо этого стоит упомянуть о глобальной инфраструктуре Амазона, а именно о дата-центрах. В Северной Америке у Амазона 12 дата-центров, в Европе – 8, в Южной Америке – 1, в Азии -5. То есть на Амазоне можно получить приличные скорость и пинг практически из любой точки мира.

Amazon Web Services (AWS) представляет собой безопасную платформу облачных сервисов, которая предоставляет вычислительные мощности, доступ к хранилищам, базам данных, услугам доставки контента и другим функциональным возможностям, помогающим в масштабировании и развитии бизнеса.

Клево звучит =) А на практике очень страшно. Сервисов там уйма. Что, зачем, для чего и как??? вот вам небольшая шпаргалка по сервисам Amazon.

Сервисы "Run an App:

EC2

Должен называться
Amazon Virtual Servers
Сфера применения
Хостуйте вещи, которые вы считаете компьютерами.
Похож на
VPS, предоставляемые Linode, DigitalOcean и Rackspace

IAM

Должен называться
Users, Keys and Certs
Сфера применения
Настраивайте пользователей, добавляйте новые ключи AWS Keys и сертификаты.

S3

Должен называться
Amazon Unlimited FTP Server
Сфера применения
Храните фотографии и прочие материалы для сайтов. Храните бекапы и файлы в общем доступе. Храните статические сайты. Кстати, многие сервисы также хранят свои данные в S3.

VPC

Должен называться
Amazon Virtual Colocated Rack
Сфера применения
Добавьте дополнительный уровень защиты всему, что вы храните в Интернете. Пусть всё выглядит так, будто все ваши AWS-сервисы находятся в одной маленькой сети, а не разбросаны в огромной.
Похож на
VLAN, если вы разбираетесь в сетях

Lambda

Должен называться
AWS App Scripts
Сфера применения
Запускайте маленькие сниппеты на JS, Java или Python для выполнения отдельных задач.

Сервисы для веб-разработчика

API Gateway

Должен называться
API Proxy
Сфера применения
Проксируйте API ваших приложений через этот сервис для обработки трафика, тестирования новых версий и т.д.
Похож на
3Scale

RDS

Должен называться
Amazon SQL
Сфера применения
Одновременно MySQL-, Postgres-, и Oracle-БД для вашего приложения.
Похож на
Heroku Postgres

Route53

Должен называться
Amazon DNS + Domains
Сфера применения
Купите новый домен и настройте DNS-записи.
Похож на
DNSimple, GoDaddy, Gandi

SES

Должен называться
Amazon Transactional Email
Сфера применения
Отправляйте одиночные письма (для смены паролей, доставки уведомлений и т.п.). Можно использовать и как газету, если реализуете, но лучше не стоит.
Похож на
SendGrid, Mandrill, Postmark

Cloudfront

Должен называться
Amazon CDN
Сфера применения
Ускорьте загрузку сайтов, оптимально распределяя доставку статических файлов пользователям.
Похож на
MaxCDN, Akamai

CloudSearch

Должен называться
Amazon Fulltext Search
Сфера применения
Достаньте все данные из S3 или RDS и ищите в них то, что нужно.
Похож на
Sphinx, Solr, ElasticSearch

DynamoDB

Должен называться
Amazon NoSQL
Сфера применения
Масштабируемое хранилище ключей для вашего приложения.
Похож на
MongoLab

Elasticache

Должен называться
Amazon Memcached
Сфера применения
Memcached или Redis вашего приложения.
Похож на
Redis to Go, Memcachier

Elastic Transcoder

Должен называться
Amazon Beginning Cut Pro
Сфера применения
Обработка различных странностей видео (форматы, сжатие и т.д.).

SQS

Должен называться
Amazon Queue
Сфера применения
Храните данные для дальнейшей обработки в очереди.
Похож на
RabbitMQ, Sidekiq

WAF

Должен называться
AWS Firewall
Сфера применения
Блокируйте опасные запросы к сайтам, защищённым Cloudfront (не давайте людям попробовать подобрать 10 000 паролей к /wp-admin).
Похож на
Sophos, Kapersky

Сервисы для мобильных разработчиков

Cognito

Должен называться
Amazon OAuth as a Service
Сфера применения
Предоставьте пользователям возможность залогиниться через Google, Facebook и т.д.
Похож на
OAuth.io

Device Farm

Должен называться
Amazon Drawer of Old Android Devices
Сфера применения
Протестируйте ваше приложение на нескольких iOS и Android-устройствах одновременно.
Похож на
MobileTest, iOS emulator

Mobile Analytics

Должен называться
Spot on Name, Amazon Product Managers take note
Сфера применения
Следите, что пользователи делают в ваших приложениях.
Похож на
Flurry

SNS

Должен называться
Amazon Messenger
Сфера применения
Отправляйте мобильные уведомление, письма и / или SMS.
Похож на
UrbanAirship, Twilio

Сервисы для внедрения кода

CodeCommit

Должен называться
Amazon GitHub
Сфера применения
Контроль версий вашего кода.
Похож на
Github, BitBucket

Code Deploy

Должен называться
И так неплохо
Сфера применения
Загрузите ваш код из репозитория CodeCommit (или Github) на несколько сущностей EC2.
Похож на
Heroku, Capistrano

CodePipeline

Должен называться
Amazon Continuous Integration
Сфера применения
Запускайте автоматизированные тесты вашего кода и вносите необходимые изменения.
Похож на
CircleCI, Travis

EC2 Container Service

Должен называться
Amazon Docker as a Service
Сфера применения
Поместите Dockerfile в сущность EC2 для запуска сайта.

Elastic Beanstalk

Должен называться
Amazon Platform as a Service
Сфера применения
Переместите ваше приложение с Heroku на AWS, когда первый вам станет не по карману.
Похож на
Heroku, BlueMix, Modulus

Корпоративные сервисы

AppStream

Должен называться
Amazon Citrix
Сфера применения
Поместите копию Windows-приложения на Windows-систему, к которой вы предоставляете удалённый доступ.
Похож на
Citrix, RDP

Direct Connect

Должен называться
Сфера применения
Заплатите за доступ к выделенной линии от вашего дата-центра или сети до AWS.
Похож на
Туннель, позволяющий объехать пробку

Directory Service

Должен называться
На самом деле, весьма точное название
Сфера применения
Объединяйте приложения, которым для управления нужна Microsoft Active Directory.

WorkDocs

Должен называться
Amazon Unstructured Files
Сфера применения
Делитесь Word-документами с коллегами.
Похож на
Dropbox, DataAnywhere

WorkMail

Должен называться
Amazon Company Email
Сфера применения
Настройте всем в компании одинаковые почтовую систему и календарь.
Похож на
Google Apps for Domains

Workspaces

Должен называться
Amazon Remote Computer
Сфера применения
Интерфейс для удалённого управления компьютером.

Service Catalog

Должен называться
Amazon Setup Already
Сфера применения
Предоставьте всем пользователям AWS в вашей группе доступ к написанным вами приложениям, чтобы им не приходилось читать гайды вроде этого.

Storage Gateway

Должен называться
S3, считающий себя частью вашей корпоративной сети
Сфера применения
Хватит покупать место для хранения документов Word. Упростите передачу файлов из сети в S3.

Big Data-сервисы

Data Pipeline

Должен называться
Amazon ETL
Сфера применения
Извлекайте, Обрабатывайте и Сохраняйте все данные из AWS, а также настраивайте расписания и получайте сообщения об ошибках.

Elastic Map Reduce

Должен называться
Amazon Hadooper
Сфера применения
Обрабатывайте большие объёмы текстовых или сырых данных, хранящихся в S3.
Похож на
Treasure Data

Glacier

Должен называться
Очень медленный Amazon S3
Сфера применения
Делайте бекапы бекапов, хранящихся в S3. Запасы на чёрный день.

Kinesis

Должен называться
Amazon High Throughput
Сфера применения
Быстро сохраняйте большие объёмы данных (например, аналитику или список людей, ретвитящих Канье Уэста), чтобы проанализировать их позже.
Похож на
Kafka

RedShift

Должен называться
Amazon Data Warehouse
Сфера применения
Храните аналитические данные, обрабатывайте их и выгружайте.

Machine Learning

Должен называться
Skynet
Сфера применения
Предсказывайте поведение, исходя из текущих данных, для решения различных задач.

SWF

Должен называться
Amazon EC2 Queue
Сфера применения
Создайте сервис из «мыслителей» и «рабочих» поверх EC2 для выполнения задачи. В отличие от SQS, обладает встроенной логикой.
Похож на
IronWorker

Snowball

Должен называться
AWS Big Old Portable Storage
Сфера применения
AWS Snowmobile в миниатюре.
Похож на
Shipping a Network Attached Storage device to AWS

Сервисы для управления AWS

CloudFormation

Должен называться
Amazon Services Setup
Сфера применения
Настройте несколько связанных сервисов за один подход.

CloudTrail

Должен называться
Amazon Logging
Сфера применения
Ведите логи активностей AWS-стека.

CloudWatch

Должен называться
Amazon Status Pager
Сфера применения
Получайте уведомления, когда ваши сервисы AWS ведут себя некорректно.
Похож на
PagerDuty, Statuspage

Config

Должен называться
Amazon Configuration Management
Сфера применения
Не сходите с ума, когда вам нужно следить за большой AWS-системой.

OpsWorks

Должен называться
Amazon Chef
Сфера применения
Управляйте запуском вашего приложения при помощи вещей наподобие автоматического масштабирования.

Trusted Advisor

Должен называться
Amazon Pennypincher
Сфера применения
Выясните, за что вы переплачиваете.

Inspector

Должен называться
Amazon Auditor
Сфера применения
Проверьте вашу AWS-систему на наличие проблем безопасности.
Похож на
Alert Logic

Год бесплатного использования облачными сервисами - такое предложение делает Amazon для всех новых пользователей. Предоставляемые ресурсы, конечно, ограничены, но их вполне достаточно, чтобы познакомиться с платформой и, к примеру, поднять свой собственный VPN-сервер.

Проблема всех облачных технологий (т.н. cloud computing) в том, что многие до сих пор не осознают, что это такое и как с ними иметь дело. Модное словечко "облако" у всех на слуху, но и только. В материале "Amazon S3 для обычных смертных" мы уже рассказывали об облачном хранилище данных, которое предоставляет любой необходимый объем для размещения файлов и выдерживает любую нагрузку (даже от огромного наплыва пользователей). S3 – это лишь одна из целого ряда прогрессивных технологий Amazon Web Services (сокращенно AWS). Начиная с ноября, провайдер предлагает познакомиться со своими сервисами поближе, не взимая за это плату (при соблюдении некоторых условий). Это лишь подкрепило наше желание рассказать о них подробнее.

Amazon Web Services

Арсенал облачных сервисов Amazon двольно большой, но наиболее распространены три: Amazon Elastic Compute Cloud (сокращенно EC2), Amazon Elastic Block Store (или EBS), Amazon Simple Storage Service (или S3). Нас сегодня в первую очередь интересует первая технология. По сути, это воплощение понятия cloud computing на практике. С помощью EC2 ты можешь запустить в "облаке" любое количество компьютеров с нужным тебе конфигом и операционной системой. И все это за несколько минут. Каждый такой виртуальный компьютер называется Instance. После запуска (обычно это занимает пару минут) ты сразу получаешь root-доступ по SSH или доступ к рабочему столу через RDP, в зависимости от операционной системы. Забавно, что оплата за такой инстанс осуществляется по часам. Т.е. ты можешь в любой момент остановить виртуальный сервер, и деньги не будет сниматься. Или вообще, включать его только в случае необходимости: стоимость использования в этом случае будет измеряться в центах. Однако, помимо "компьютерного времени", оплачивается еще и трафик, как входящий, так и исходящий.

В зависимости от типа виртуального сервера он будет снабжен соответствующим процессором и количеством оперативной памяти. Однако "дисковый накопитель" в эту конфигурацию не входит. Для виртуализации жесткого диска используется другая технология Amazon - EBS. Ты можешь сказать: "хочу накопитель на 25 Гб" - и она сделает. И сделает сколько угодно еще, если ты попросишь. Такой накопитель называется Volume и подключается к инстансу. Таким образом, в системе появляется жесткий диск. Все, что на него записано, сохраняется независимо от жизни самого инстанса. Последняя технология - S3 - также предназначена для хранения файлов, но совсем в другой плоскости. По сути, это бесконечный контейнер для файлов, которые при желании становятся доступными через веб. Тебе предоставляется ровно столько пространства в хранилище, сколько нужно. Хоть 10 Мб, 1 Гб или даже 5000 Гб - никаких ограничений. Кроме максимального размера на файл, равного 5 Гб.

Как я уже сказал, в рамках акции "AWS Free Usage Tier" каждый новый пользователь получает возможность попробовать эти сервисы бесплатно. Слово "попробовать" означает, что без платы предоставляемые ресурсы будут ограничены. Захочешь больше - изволь заплатить. Если кратко, то ежемесячно нам предоставляется 750 часов использования инстанса EC2 (этого времени достаточно, чтобы использовать виртуальный сервер круглосуточно), 10 Гб для EBS (этого достаточно, чтобы установить на сервер, скажем, Ubuntu) и 5 Гб для S3. Ты можешь также попробовать другие технологии Amazon, но в рамках этой статьи мы их касаться не будем. Главное сейчас, что мы, фактически, за даром получаем сервер для экспериментов, который к тому же работает на основе облачных технологий. То, что ты хочешь из него сделать, ограничивается только фантазией. Но один из самых интересных вариантов - поднять свой собственный VPN, который будет находиться в Штатах!

Регистрация в сервисе

Перед началом использования любого из сервисов Amazon"а необходимо завести аккаунт. Для этого переходим на главную страницу AWS (aws.amazon.com) и кликаем "Sing up Now". На станице регистрации выбираем вариант «I am a new user» и приступаем к процедуре создания аккаунта Amazon. Для этого обязательно понадобится пластиковая карта, это единственное условие. Не волнуйся: если не заходить за лимиты специального предложения для новичков, то никакая плата взиматься не будет. Amazon спишет 1 или 2 доллара, чтобы проверить валидность "пластика" и потом вернет их обратно. Подойдет карта системы Visa или MasterCard: ее даже необязательно заводить в банке, виртуальную кредитную карту можно приобрести в автоматах Qiwi. Этот аккаунт в Amazon носит скорее экономический характер и предназначен для биллинга.

Для доступа к облачным сервисам необходимо дополнительно подписаться на нужные сервисы (EC2, EBS, S3 и т.д.). Система безопасности обязывает проверить номер телефона. На одном из этапов регистрации сервис осуществит автоматический звонок, запросив 4-значный PIN-код, который в этот момент будет отображен на экране. Важным шагом является получение пары ключей для доступа. Для работы с EC2 и S3 понадобится два типа ключей: Access Key ID и Secret Access Key, а также X.509 Certificate. Для того чтобы воспользоваться бесплатным тест-драйвом, дополнительно ничего нигде указывать не надо: Amazon сам подпишет тебя на все необходимые сервисы. После регистрации у тебя будет доступ к консоли управления AWS. У нас задача - поднять виртуальный сервер, поэтому смело переходи в раздел управления EC2.

Начало работы c EC2

Технология устроена так, что ты можешь запустить и остановить любое количество инстансов (Amazon EC2 instance) в течение пары минут. При этом в соглашении об уровне обслуживания гарантируется 99.95% их доступность - это очень впечатляющая цифра. Для этого из консоли управления EC2 нажимаем на кнопку "Launch Instance". На выбор пользователя предоставляется несколько типов виртуальных серверов с разными конфигурациями.

Стандартный инстанс имеет следующие характеристики: "Small Instance (Default) 1.7 GB of memory, 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit), 160 GB of instance storage, 32-bit platform" и стоит $0.10 (Unix-система) и $0.125 (Windows в качестве ОС). Помимо этого, необходимо оплачивать $0.10 за гигабайт входящего трафика и $0.17 за гигабайт исходящего трафика. Это к сведению (ведь через некоторое время халява закончится). Нас же на самом деле интересует тип инстанса, который Amazon создали специально для тестового периода - Micro Instance. Его использование бесплатно.

Облачная платформа предлагает на выбор различные варианты ОС для установки. Образ с операционной системой называется AMI (Amazon Machine Image), причем, помимо файлов самой системы, в него может быть включен нужный софт (к примеру, Apache, MySQL, Memcached и т.д.), а также все необходимые файлы. В будущем ты сможешь создавать такие сборки сам. Есть большое количество готовых AMI-образов от самого Amazon"а и энтузиастов: на базе Linux и Windows. Всего в базе "Community AMIs" более 6067 вариантов. Для нас важно выбрать удобный дистрибутив - пусть это будет Ubuntu. По ключевому слову находится немало AMI с убунтой, но почти все подразумевают использование 15 Гб EBS, что не укладывается в бесплатный 10 Гб лимит. К счастью, энтузиастами собрана сборка Ubuntu 10.04 с номером ami-c2a255ab, которая "занимает" как раз 10 Гб. Находим его по IE и нажимаем "Install". Специальный мастер будет запрашивать различные параметры: можно все оставить по умолчанию. Но очень важно здесь, как я ранее сказал, установить тип инстанса - Micro Instance. В противном случае за каждый час использования сервера Amazon будет взимать с тебя деньги.

Запускаем инстанс

Пройдя все шаги мастера, ты получишь готовый инстанс. На вкладке Instances можно наблюдать процесс запуска. Нужно подождать, пока в столбце State не появится флаг "Running" - это значит, что наш сервер готов к работе. Здесь же можно посмотреть параметры запущенного сервера. Public DNS определяет внешнее имя сервера. Тут есть нюанс: и доменное имя, и IP-адрес виртуального сервера при каждом запуске инстанса будут меняться. Но! На вкладке "Elastics IPs" можно получить так называемый статический IP-шник и привязать его к инстансу. Важно сразу же сделать такую привязку: пока ты этого не сделаешь, сервис будет снимать с тебя деньги. Это сделано специально, чтобы пользователи не хватали себе статические IP-адреса, которые им на самом деле не нужны. Если попытаться сейчас пропинговать хост или подключиться по SSH, тебя будет ждать большой облом. Причина проста: по умолчанию файрвол режет все подключения. Это легко исправить, отредактировав политику безопасности в разделе Security Group. Сделай так, как показано на скриншоте.

С этого момента у нас есть рабочий инстанс EС2, и мы можем приступить к конфигурированию установленной на нем Ubuntu. Для этого подключимся к серверу по SSH. Идеально для этого подходит старый добрый PuTTY. Правда, сервер дал нам ключи в формате pem, а для PuTTY нужны ppk. Не беда, утилита PuTTYgen быстро преобразует ключи в подходящий формат: сначала загружаем ключ ("Load private key file"), а потом сохраняем его в нужное место через меню "File". Если ранее ты не настраивал SSH-подключение с использованием ключей, то это делается так:

  • в разделе "Sessions" вводим IP нашего инстанса (Elastic IP) в поле Host Name;
  • в разделе "Connection -> Data" в поле "Auto-Login" указываем имя пользователя "ubunta", которое будет использоваться для авторизации в системе;
  • в разделе "Connection -> SSH -> Auth" указываем путь до нашего private-ключа;
  • в разделе "Session" вводим название сессии и сохраняем ее с помощью кнопки "Save".

С этого момента все, что нужно для подключения, это выбрать нужную сессию и нажать кнопку "Open". С тебя потребуют ввести парольную фразу для твоего ключа.

Настраиваем PPTP

Если ты все сделал правильно, в окне PuTTY появится консоль твоего виртуального сервера, а именно приветственное сообщение Ubuntu. Т.е. у нас уже есть рабочий виртуальный сервер в облаке и SSH-доступ к нему. Можно было бы сейчас поднять на нем хостинг. Или, к примеру, настроить у себя SSH-форвардинг и безопасно туннелировать трафик приложений. Возможно все что угодно: это "дедик", только в облаке. Мы же, как и планировали, поднимем на инстансе полноценный VPN-сервер. Тут есть варианты: можно настроить OpenVPN, а можно - обычный PPTP-демон. У обоих подходов есть недостатки. Для подключения к OpenVPN требуется отдельный клиент. В случае с PPTP клиент не нужен, но можно обломаться с подключением, если провайдер режет GRE-пакеты. Для меня удобнее второй вариант.

С учетом того что в нашем распоряжении удобная Ubunta, поднять PPTP-демон - это пара пустяков. Начать стоит с установки сервиса:

sudo aptitude install pptpd

Далее необходимо немного отконфигурировать демон. Для начала нужно добавить диапазоны IP-адресов, которые будут выдаваться подключившимся клиентам. Для этого нужно раскомментировать и исправить последние 2 строчки в файле /etc/pptpd.conf:

localip 192.168.242.1
remoteip 192.168.242.2-5

С такими настройками сам PPTP демон получит адрес 192.168.242.1, а для клиентов будет 4 возможных адреса: от 192.168.242.2 до 192.168.240.5. Не лишним также будет указать адреса DNS-сервера. Это может быть сервер как самого Amazon (172.16.0.23), так и, к примеру, серверы Google Publuc DNS. Они прописываются в файле /etc/ppp/pptpd-options:

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Последний шаг - добавление пользователей для подключения к PPTP-демону:

sudo echo "<имя_пользователя> pptpd <пароль> *" >> /etc/ppp/chap-secrets

Вместо <имя_пользователя> и <пароль> необходимо подставить нужные авторизационные данные. При необходимости таких пользователей может быть несколько. Как только в файл /etc/ppp/chap-secrets будут занесены новые записи, потребуется перезапустить PPTP-демон:

sudo /etc/init.d/pptpd restart

В принципе, уже сейчас можно попробовать подключиться к серверу. Соединение установится, однако доступа в Интернет через такое VPN-подключение не будет. Это связано с тем, что мы еще не включили переадресацию пакетов и NAT. Исправляем эту ситуацию, раскомментировав в файле /etc/sysctl.conf следующую строчку:

net.ipv4.ip_forward=1

Перезагружаем конфиг:

И включаем NAT, добавив новое правило файрвола:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Правда, после перезагрузки это правило пропадет. 🙂 Поэтому лучше сразу добавить эту команду в конфиг /etc/rc.local, прописав после строки "exit 0" следующее:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Все, теперь VPN полностью работоспособен. Можно установить подключение и зайти на какой-нибудь сервер для определения IP, чтобы убедиться, что адрес у нас из США. Ресурс вроде speedtest.net сделает контрольный замер ширины канала. У меня VPN работает довольно шустро. Amazon дает 15 гигабайт трафика входящего и столько же исходящего трафика. Выход из лимита стоит астрономических денег: 10 центов за гигабайт. 🙂

Вместо заключения

Понятно, что халява Amazon нацелена прежде всего на привлечение новых клиентов и разработчиков и через некоторое время закончится. Но подумай. Даже если за использование инстанса EC2 придется платить, его можно включать строго по необходимости. При периодическом использовании сервера можно легко укладываться в несколько баксов в месяц. А это уже в любом случае дешевле любого VPN-сервера. Такой гибкий подход позволяет творить еще более интересные вещи: например, создавать кластер из десятка серверов, включаемых строго по необходимости и выполняющих какую-то ресурсоемкую задачу. Эта идея стала еще интересней после того как Amazon представила типы Instance с мощными GPU, поддерживающими технологию CUDA. Да и разве ж не здорово пощупать своим руками прогрессивные облачные технологии, которые используются крупнейшими проектами в Инете?

Удобное управление EC2

Веб-консоль для управления AWS, хотя и предоставляет все необходимое, не всегда удобна. Для более комфортной работы лучше установить специальный плагин Elasticfox для Firefox. Настройка аддона сводится к указанию в настройках полученных во время регистрации AWS Access Key и AWS Secret Access Key. Помимо этого, сам Amazon предоставляет набор консольных утилит (s3.amazonaws.com/ec2-downloads/ec2-api-tools.zip) для взаимодействия с EC2. Для их работы требуется установленный Java Runtime Environment.

DVD

На диске выложены необходимые файлы для работы с AWS.