Всем привет! Каждому разработчику рано или поздно приходиться деплоить свои приложения в облако. В моем случае, после разработки Телеграм-бота @rabotaUkraineBot стало просто необходимо найти ему приличный хостинг. Сама идея разработки бота и использованные инструменты для реализации описаны в отдельной статье. Кандидатами в выборе облачной платформы были сервисы четырех всем известных гигантов — Amazon Web Services(AWS), Google, Azure и Heroku. При выборе хостинга для себя я поставил следующие приоритеты: минимальная цена, удобство деплоя, наличие дополнительных сервисов, гибкость. Не буду Вас погружать в аналитику и сравнения, сообщу сразу победителя — AWS. Деплой Java-приложения в облачную платформу Amazon Web Services (AWS) - 1Почему AWS, спросите вы? Потому что:
  • год бесплатного использования AWS Free Tier, бесплатных ресурсов в рамках этого предложения для моей задачи хватает с лихвой;
  • в AWS все Elastic, т.е. все гибкое и эластичное. Благодаря этому при деплое вашего приложения абсолютно не нужны навыки DevOps;
  • AWS последние два года вкладывает колосальные средства в развитие, новые сервисы появляются каждый месяц.
А теперь перейдем к подготовке приложения и собственно самого деплоя в облака AWS. Для удобства использования был выбран сервис Elastic Beanstalk для деплоя приложения. С его помощью вы через браузер загрузите свое приложение и все! Да-да, AWS cам настроит инфраструктуру и выделит требуемый пул ресурсов. Так как мой бот написан на SpringBoot, все что нужно — это собрать war с помощью spring-boot-maven-plugin и проверить корректную работу приложения на локально развернутом Tomcat. Очень важное замечание, перед сборкой нужно в application.properties поставить номер порта 5000:
server.port=5000
Если этого не сделать, то придется конфигурить настройки порта в консоли AWS за что может быть взята дополнительная плата со стороны AWS т.к. это выходит за рамки предоставления бесплатного сервиса AWS Free Tier. Сам процесс деплоя абсолютно не сложен и делается согласно официальному гайду Getting Started Using Elastic Beanstalk. Из особенностей, на которые следует обратить внимание:
  • при сборке приложения не забыть настроить порт как указано выше;
  • при регистрации в AWS вам понадобится платежная карта с минимум 1$ на счету (при валидации карты Amazon блокирует 1$);
  • внимательно изучите ограничения бесплатного сервиса AWS Free Tier дабы не попасть на деньги;
  • если после деплоя приложение не работает, как ожидалось, логи Tomcat вы найдете в меню Logs в Environment вашего приложения.
А что делать через год после использования бесплатного периода, спросите вы? Есть несколько вариантов решения вопроса:
  1. начать платить деньги согласно использованных ресурсов;
  2. перейти на сервис Amazon Lightsail (там дешевле);
  3. переписать приложение с использованием AWS Lambda и получить бесплатных хостинг;
  4. открыть новый аккаунт с сервисами AWS Free Tier и задеплоить туда ваше приложение, т.е. оттянуть решение вопроса еще на один год.
Сейчас AWS при регистрации нового аккаунта проверяет только уникальность е-mail. Подытожим: в облака AWS вы можете с легкостью задеплоить свое приложение — очень быстро и абсолютно бесплатно на первый год. Благодаря сервисам AWS, мы можем сконцентрироваться на разработке, все остальное за нас сделает AWS, потому что там все Elastic.