Статья будет полезна тем, кто ещё не пользовался облачными серверами.

Бесплатный облачный сервер можно использовать для разных целей:
- тестирование (можно установить любой софт перед тем как его внедрять на работающий проект)
- домашний проект (можно поднять вебсервер, базу данных и всё что нужно)
- мониторинг (внешний мониторинг сайта или домашнего компьютера, например стекgrafana+Influxdb+telegraf)
- proxy/vpn (для обхода блокировок и подмены страны на нужных сайтах)
Рассмотрим самых популярных представителей облачных сервисов, которые предоставляют так называемый «Free Tier».
- $200 на 1 месяц (до 14 виртуальных машин)
- дополнительные бесплатные услуги после окончания бесплатного периода
Подходит для разового нагрузочного тестирования крупного проекта перед запуском в продакшен.
- EBS: 30 ГБ SSD или HDD на выбор (это место может использовать ваша виртуальная машина)
- EC2: инстанс t2.micro 750 часов в месяц на год
- CloudFront: CDN на 50 ГБ
- 15 ГБ трафика в месяц
- другие бесплатные услуги на год и после окончания бесплатного периода
Т.е. можно создать виртуальную машину с 1 vCPU, 1Gb оперативной памяти и до 30 ГБ диска на год совершенно бесплатно. Такая же конфигурация (только трафика 2ТБ) в месяц в Digitalocean стоит 10 долларов, в Hetzner — 4.6 евро, похожие конфигурации в OVH и Scaleway — 3 евро, в Simplecloud и Ihor — 250 рублей. Т.е. за год вы экономите от 36 евро или 3000 рублей.
Подходит для тестового сервера, организации внешнего мониторинга, своего домашнего проекта или редкого использования в качестве proxy/vpn.
- инстанс f1-micro бесплатно навсегда (0.2 vCPU, 0.6 GB RAM, 30 GB HDD, 1 GB трафика в месяц)
- $300 на год (совсем недавно было только на 3 месяца), хватит на g1-small (0.5 vCPU, 1.7 GB RAM, 30 GB SSD,
15 GB трафика в месяц)
Бесплатный виртуальный сервер подойдёт для внешнего мониторинга, домашней странички или своего домашнего демо-проекта (только не вздумайте давать на него ссылки на хабре).
Этой суммы хватит, чтобы протестировать какой именно тариф подходит для вашего проекта лучше всего, а также познакомиться с консолью управления DO.
- сервер на 15 минут, зато регистрация не требуется
Этого времени с трудом хватит, чтобы протестировать скорость сети, дисков и производительность процессора.
Для всех платформ необходимо привязать номер телефона и номер банковской карты. Если первое для меня не критично, то в качестве номера карты я предпочитаю указывать электронную виртуальной карту ядекс-денег или qiwi (чтобы случайно по неопытности не попасть на огромные суммы). Эти карты выпускаются и перевыпускаются бесплатно. Для Amazon деньги на баланс класть не надо, проверяется только то что карта настоящая путём попытки снять деньги с карты и получения от банка информации, что карта существует. Один мой знакомый каждый год получает новый бесплатный облачный сервер на такие карты и тестовые рабочие симки. Это нехорошо и ему должно быть очень стыдно.
Итак, давайте получим наш первый облачный тестовый сервер. Я рекомендую Amazon, потому что с ним нет проблем. А ведь меньше всего хочется вечером после работы из последних сил биться с огромной неповоротливой системой регистрации.
AWS
- Переходим по ссылке.
- Регистрируемся, указываем номер телефона и карты.
- Ждём пока Amazon попытается снять около $1. В qiwi будет видно эту попытку снятия.
- Наш аккаунт активирован.
- Заходим в консоль управления EC2.
На самом деле контрольная панель достаточно простая. Но на случай если у вас не получилось сразу разобраться перечислю пункты, которые я делал, чтобы вы могли убедиться, что идёте правильным путём. Шагов много, но все они в стиле «далее, далее, далее, …» Во время написания статьи я прошёл их более десяти раз.
все мои шаги в панели- Прежде чем создать виртуальную машину захожу в левом меню «NETWORK & SECURITY -> Key Pairs».
- Жму на «Import Key Pair». Выбираю файл с публичным ключём. В линукс системах он лежит в ~/.ssh/id_rsa.pub. Если у вас его нет.
- Перехожу в левом меню «INSTANCES -> Instances». Жму на «launch instance».
- Вижу список дистрибутивов. Мне подходят только те, у кого есть надпись «Free tier eligible».
- В этом списке я не нашёл нужного для себя дистрибутива.
- Жму в левом меню на «AWS Marketplace».
- Указываю в поиске «ubuntu».
- Выбираю в списке «Ubuntu 16.04 LTS — Xenial (HVM)»
/ «Free tier eligible». Жму на «select». - Распахивается огромное страшное окно с ценами. Проматываю вниз. Жму на «continue».
- Ставлю галочку в строке с t2.micro / «Free tier eligible».
- Жму на «Review and Launch».
- Амазон предупреждает, что порт 22 открыт на весь мир, но я не обращаю внимания.
- В разделе «AMI Details» проверяю, что «Hourly Software Fees: $0.00 per hour on t2.micro instance».
- В разделе «Storage» проверяю, что укладываюсь в 30 GB, обычно виртуалка занимает около 8GB.
- Жму «Launch».
- Распахивается окно с выбором способа авторизации на создаваемом сервере.
- Выбираю в качестве авторизации загруженный ранее публичный ключ.
- Жму галочку, что я со всем согласен. Жму кнопку «Launch Instances».
- Перехожу к списку инстансов (Левое меню «INSTANCES -> Instances»).
- Смотрю IP запущенной виртуалки (a.b.c.d).
- Захожу на сервер по ssh: «ssh root@a.b.c.d».
- Выдаётся ошибка: Please login as the user «ubuntu» rather than the user «root».
- Захожу на сервер по ssh: «ssh ubuntu@a.b.c.d».
- Миссия выполнена.
Если на работе вы не сильно устаёте, любите сложности, и есть пара лишних вечеров, то добро пожаловать в Google.
GCP
- Переходим по ссылке.
- Регистрируемся, указываем номер телефона и карты.
- Google жалуется, что карта не подходит. Кладу на неё 100 рублей и всё ок.
- На почту пришло письмо «Welcome to the Google Cloud Platform free trial».
- Заходим в консоль управления.
Дальше должно быть всё просто…
… но не с гуглом.
В консоли ничего не работает, даже бесплатный вечный сервер не создать. На почту пришло письмо «Наша система зафиксировала подозрительные действия в Вашем платежном аккаунте. В качестве меры предосторожности мы временно заблокировали этот аккаунт.»
Собственно просят две вещи:
- Upload an image of your government-issued photo ID
- Upload an image of your credit card, debit card, or bank statement
Это мой первый аккаунт в GCP и никаких подозрительных действий с ним я не совершал. Скорее всего таким образом гугл предохраняется от повторных регистраций недобросовестными пользователями.
Отправил фотографию паспорта и bank statement (в qiwi есть возможность сделать выписку). Получил от гугла благодарность за присланные документы, но они всё таки хотят видеть фотографию моей карточки. Отсылаю фотографию виртуальной карты с экрана монитора (в письме была информация, что подходят фотографии электронных документов).
Получил от гугла благодарность за присланные документы, но предоплаченные и виртуальные банковские карты не принимаются.
Было бы не плохо, чтобы они это писали сразу при регистрации или хотя бы в первом письме — сэкономили бы мне кучу времени.
Попробовал карту vtb24 (правда у неё срок действия заканчивался через месяц) — не подошла. Заказал карту Яндекс Денег, подождал пока она дойдёт до меня, но всё равно выдаётся ошибка «Произошла непредвиденная ошибка. Повторите попытку позже..«, при этом деньги снимаются, а потом возвращаются через некоторое время. Сейчас я закал дополнительную банковскую карт
у Банка Кипра, подождал, опять ошибка. Также выяснилось, что у моего коллеги были проблемы с картой Тинькофф. Никогда не думал, что напишу такое, но я не рекомендую использовать сервис облачного хостинга от компании Google.
Кстати недавно на работе понадобился CDN, как выдумаете что мы выбрали Amazon или Google?
На борьбу с гуглом у меня потребовалось несколько месяцев, несколько банковских карт и несколько миллионов нейронов. Как вы могли понять я не могу порекомендовать облачный сервис «компании добра», более того я неоднократно писал жалобы в ФАС на рекламу компании Гугл, которая мягко говоря вводит пользователя в заблуждение. Делал скриншоты, цитировал условия использования сервиса… но слава богу не отправил. Оставлял это решение на следующий день, а там уже и отпускало. Пока я собирал документы для жалобы до меня дошло, что это было.
После введения «налога на Гугл» (согласно которому его и другие иностранные компании обязывают платить ндс за частных пользователей) Гугл поменял тип аккаунтов с физических лиц на юридические, чтобы перевесить обязанности с себя на самих пользователей. Но видимо забыл, что его предложением «300 долларов на 12 месяцев» может воспользоваться только физическое лицо.
В итоге, с одной стороны мы получаем рекламу, где физически заблокирована возможность выбора физического лица:

а с другой стороны соглашение, в котором написано, что нам ничего не светит:

Ну а с третьей стороны вместо нормального ответа, что это невозможно мы получаем нечитаемые ошибки «Произошла непредвиденная ошибка. Повторите попытку позже… Код ошибки: OR-IEH-01.» во время привязки карты. Если честно, не ожидал такой подставы от гугла. Пропало всякое желание попробовать их сервис.
После всей этой истории я поставил статью на паузу и вернулся к ней через пару месяцев. Более того, я всё таки смог разобраться как мне познакомиться с их платформой не используя бесплатный период. К слову говоря, пока вы делаете попытки разблокировать аккаунт, чтобы наконец-то им воспользоваться в это самое время обратный отчёт во всю сокращает количество дней.

Достаточно отказаться от бесплатного периода, подтвердить согласие на оплату и после этого открывается возможность бесплатно пользоваться консолью и создать пожизненны-бесплатный сервер.
все мои шаги в панели- Перехожу в левом меню Compute Engine
- Экземпляры ВМ -> Создать
- В списке «Тип машины» выбираю «микромашина f1-micro»
- В списке «Зона» нужно выбрать ту, для которой разрешён бесплатный сервер иначе вы будете платить за него деньги. Например, при выборе «us-east1-c» появляется надпись «В этом месяце вы можете использовать экземпляр f1-micro бесплатно первые 720 ч.», а при выборе «us-east4-c» она пропадает. Будьте внимательны! Хотелось бы создать бесплатные сервер, в Европе, но к сожалению доступные зоны только такие: us-central1, us-east1, us-west1.
- В поле «Загрузочный диск» выбираю «Ubuntu 17.04»
- В поле «SSH-ключи» вставляю свой публичный ключ
- Жму на кнопку «создать»
- Смотрю внешний IP запущенной виртуалки (a.b.c.d).
- Захожу на сервер по ssh: «ssh root@a.b.c.d».
- Выдаётся ошибка:
Please login as the user «ubuntu» rather than the user «root». - Захожу на сервер по ssh: «ssh ubuntu@a.b.c.d».
- Миссия выполнена.
Устанавливая различные пакеты помните, что у вас бесплотно только 1 гигабайт трафик в месяц.
Надеюсь, что статья будет полезна и потраченные на неё полгода были не зря. Теперь я могу спокойно перейти к написанию новой статьи, посвящённой недавнему мероприятию highloadcup.