5 власних служб AWS, які можуть створити наскрізну безсерверну платформу

Створення автоматизованої системи програмного забезпечення означало налаштування кількох серверів із виділеною конфігурацією ЦП, пам’яттю, сховищем та іншими ресурсами на багато років. Далі була сформована команда адміністраторів для управління цими системами. Тоді команда розробників взялася за інфраструктуру та почала створювати процеси, які з’єднують сервери.

Цей процес може бути складним, оскільки в ньому беруть участь багато різних груп, які працюють разом для досягнення спільної мети. Тоді ці конфлікти інтересів можуть стати проблемою.

Це також може бути досить дорогим. Для цього вам потрібно мати адміністраторів у своєму платіжному списку. Сервери, які працюють безперервно, споживають ресурси, незважаючи на те, що вони не використовуються.

Щоб підтримувати найкращу продуктивність з часом, вам потрібне рішення для автоматичного масштабування, яке автоматично масштабує ресурси сервера.

Хмарна платформа має одну перевагу: вона дозволяє створювати наскрізну архітектуру без необхідності налаштування кластера серверів. З точки зору адміністрації, нема чого підтримувати.

Це економічно ефективний варіант для стартапів і фаз проектів з мінімальним життєздатним продуктом (MVP). Це гарна відправна точка, якщо важко передбачити майбутні виробничі навантаження та діяльність користувачів. Саме тут може бути складно визначити конфігурацію серверів кластера.

Автоматизація процесів за допомогою безсерверних хмарних служб — це те, що виділяє безсерверну архітектуру. Він об’єднує служби та дає результати, подібні до традиційних кластерних серверів.

Це приклад побудови такої архітектури з використанням лише рідних сервісів AWS.

Вибір безсерверного потоку служб

Уявіть, що ви хочете створити платформу для збору різноманітних даних і зображень (або фотографій) інфраструктури певних активів (це може бути будь-який виробничий або комунальний актив).

  • Для того, щоб зробити майбутню аналітику можливою, необхідно, щоб вхідні дані спочатку були прийняті.
  • Після застосування бізнес-правил серверна процедура зберігає обчислені результати як нормалізовану інформацію в реляційній базі даних.
  • Інтерфейс програми, який відображає нормалізовані чисті дані, дозволяє користувачам переглядати результати.

Давайте розглянемо, які компоненти може включати архітектура.

Відра AWS S3

Джерело: aws.amazon.com

Відра Amazon S3 — чудовий спосіб зберігати файли чи зображення в хмарі AWS. Ціна зберігання на відрі S3 надзвичайно низька. Більше того, запровадження політики життєвого циклу відра S3 ще більше знижує цю ціну.

  7 безкоштовних ресурсів для вивчення хмарних обчислень

Така політика автоматично переміщуватиме старіші файли в різні класи сегментів S3, як-от архів або глибокий доступ до архіву. Класи також відрізняються за швидкістю доступу, але для старих даних це буде меншою проблемою. Це в основному служить для доступу до архівних даних у разі термінової події, а не для стандартних операційних потреб.

  • Ви можете впорядковувати свої дані у вкладених папках.
  • Ви повинні встановити відповідні обмеження дозволів.
  • Додайте теги до сегментів, щоб їх було легко ідентифікувати та використовувати в динамічних політиках пакетів S3.
  • Відро безсерверне за дизайном. Це просто місце для зберігання ваших даних.

Відро S3 за дизайном є безсерверним. Це просто місце для зберігання ваших даних.

База даних AWS Athena

Джерело: aws.amazon.com

Athena дозволяє легко створити базове озеро даних AWS. Це база даних без серверів, яка використовує відро S3 для зберігання своїх даних. Організація даних підтримується структурованими форматами файлів, такими як файли зі значеннями, розділеними комами (CSV). Відро S3 містить файли, і Athena звертається до них щоразу, коли процеси вибирають дані з бази даних.

Майте лише на увазі, що Athena не підтримує різні функції, які інакше вважаються стандартними, наприклад, оператори оновлення. Ось чому вам потрібно дивитися на Athena як на дуже простий варіант.

Однак він підтримує індексування та розділення. Він також може дуже легко масштабуватися горизонтально, оскільки це так само складно, як додавання нових сегментів до інфраструктури. Для простого, але функціонального створення озера даних цього може бути достатньо в більшості випадків.

Для високої продуктивності важливо вибрати найкращий дизайн даних з акцентом на майбутнє використання. Важливо чітко визначити спосіб вибору даних. Повторне створення таблиць пізніше, коли вони вже існують і заповнені великою кількістю даних, важко.

Athena DB є чудовим вибором і добре підходить для вашої мети, якщо ви хочете створити простий і незмінний пул даних, який легко масштабувати горизонтально з часом.

База даних AWS Aurora

Джерело: aws.amazon.com

Athena DB відмінно справляється зі збереженням непідготовлених даних. Зрештою, саме так ви хочете зберігати свій оригінальний вміст, щоб максимізувати його подальше повторне використання. Однак надавати вибрані результати у зовнішню програму повільно.

Одним із найкращих варіантів, головним чином з точки зору легкої установки, є база даних Aurora, яка працює в безсерверному режимі.

  Які вимоги до ПК для Civilization V?

Aurora далека від базової бази даних. Це одне з найдосконаліших власних рішень реляційної бази даних в AWS. Це також дуже складне рідне рішення реляційної бази даних, яке вдосконалюється з кожним випуском.

Aurora є унікальною, оскільки вона може працювати в безсерверному режимі, що виділяє її серед інших реляційних служб. Ось як працює режим:

  • Щоб налаштувати кластер Aurora, використовуйте консоль AWS. Вам потрібно буде вказати стандартні рівні процесора та оперативної пам’яті, а також максимальний інтервал функціональності автоматичного масштабування. Це вплине на продуктивність, яку кластер Aurora може динамічно додавати або видаляти. На основі поточного використання бази даних AWS вирішує збільшити або зменшити масштаб.
  • Кластер Aurora не запуститься, якщо користувач або процес не ініціює справжній запит. Наприклад, коли починається запланована пакетна обробка. Або якщо програма виконує внутрішній виклик API для отримання даних із бази даних. База даних автоматично відкриється та залишатиметься активною протягом заздалегідь визначеного часу після завершення процесів запиту.
  • Кластер Aurora автоматично вимкнеться, якщо в базі даних більше не буде роботи.

Щоб підкреслити це ще раз, безсерверна Aurora DB працює лише тоді, коли їй потрібно виконувати реальну роботу. Автоматично запущений кластер знову вимкнеться, якщо він не обробляє жодної роботи. Справжня робота – це те, за що ви платите, а не ваш простій.

Безсерверна Aurora повністю керується AWS і не потребує адміністратора.

AWS Amplify

Amplify пропонує безсерверну платформу для швидкого розгортання інтерфейсних програм, створених за допомогою бібліотек JavaScript і React. Немає необхідності налаштовувати сервери кластера. Використовуйте консоль AWS для безпосереднього розгортання коду або використовуйте автоматизований конвеєр DevOps.

Ви можете викликати серверні API, щоб отримати доступ до даних, що зберігаються в базах даних. Ці виклики дозволяють отримати доступ до фактичних даних у зовнішній програмі. Основну оптимізацію продуктивності на сервері має виконувати команда. Ви можете ще більше зменшити ймовірність повільної відповіді в інтерфейсі користувача, якщо розробите ефективні оператори select безпосередньо всередині викликів API.

Покрокові функції AWS

Джерело: aws.amazon.com

Незважаючи на те, що всі основні компоненти системи є безсерверними, це не гарантує повну безсерверну архітектуру. Це можливо, лише якщо всі пакетні процеси між компонентами є безсерверними.

  Як зберегти конференц-дзвінок (і код доступу) як контакт

Функції AWS Step забезпечують найкраще рішення в хмарі AWS. Зв’язаний список функцій AWS Lambda складає функцію кроку. Ці функції створюють блок-схему, яка має чіткі початковий і кінцевий стани. Лямбда-функція, зазвичай написана мовами Python або Node JS, є виконуваним фрагментом коду, який обробляє все, що потрібно.

Нижче наведено приклад того, як можна виконати функцію кроку:

  • AWS запускає автоматичну функцію лямбда щоразу, коли в папку S3 надходить новий файл. Після аналізу файлу лямбда завантажує його в Athena. Лямбда зберігає результати у форматі CSV у сегменті S3 (або в таблиці відстеження бази даних) перед закриттям.
  • Потім цей результат використовується наступним лямбда-виразом для виконання наступних кроків. Це може включати виклик моделі машинного навчання та перетворення підмножини з нових даних у нормалізовані таблиці. Останнім кроком може бути завантаження даних до бази даних Aurora.
  • Функція кроку пов’язує ці лямбда-вирази разом, щоб сформувати пакетний потік. Можливо навіть виконати іншу крокову функцію замість кроку іншої кореневої крокової функції. Таким чином можна охопити багато сценаріїв.
  • Цей безсерверний потік має один серйозний недолік: кожна лямбда-функція може працювати лише протягом 15 хвилин як максимум. Тому розбиття потоку на менші лямбда-функції може зробити це менш проблематичним.

    Можна викликати кілька лямбда-функцій одночасно за один крок, що в основному означає розпаралелювання кроку з кількома лямбда-функціями, що виконуються одночасно. Просто зачекайте, поки завершиться вся паралельна лямбда-обробка, перш ніж продовжувати. Потім перейдіть до наступної лямбда-обробки.

    Заключні слова

    Безсерверна архітектура пропонує унікальну можливість створити хмарну платформу, яка охоплює всю систему. Ця платформа є горизонтально масштабованою та має при цьому низькі експлуатаційні витрати.

    Це ідеальне рішення для проектів з обмеженим бюджетом. Це чудовий варіант для розвідки, як правило, коли ніхто не знає реального обсягу виробництва. Це особливо важливо після успішної реєстрації всіх користувачів. Команди проекту все одно можуть отримати загальне уявлення про те, як працює система. Ви можете мати всі ці переваги і все одно не потрібно йти на компроміси.

    Це покриття не буде достатнім для всіх випадків, особливо тих, які пов’язані з високим використанням ЦП. Однак хмара AWS постійно розвивається з точки зору випадків використання без сервера. Зазвичай доцільно провести ретельне дослідження, перш ніж прийняти рішення про безсерверний варіант для вашого наступного хмарного проекту AWS.

    Далі перегляньте найкращі безсерверні бази даних для сучасних програм.