JavaRush /Java блог /Random UA /Деплой Java-програм у хмарну платформу Amazon Web Service...
Евгений
41 рівень

Деплой Java-програм у хмарну платформу Amazon Web Services (AWS)

Стаття з групи Random UA
Всім привіт! Кожному розробнику рано чи пізно доводиться деплоїти свої програми у хмару. У моєму випадку, після розробки телеграм-бота @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 сам налаштує інфраструктуру і виділить потрібний пул ресурсів. Так як мій бот написаний на 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 при реєстрації нового облікового запису перевіряє лише унікальність e-mail. Підсумуємо: у хмари AWS ви можете легко задеплоїти свою програму — дуже швидко і абсолютно безкоштовно на перший рік. Завдяки сервісам AWS ми можемо сконцентруватися на розробці, все інше за нас зробить AWS, тому що там все Elastic.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ