Вступний посібник з AWS Fargate

AWS Fargate — це технологія, яку можна використовувати з Amazon ECS і Amazon EKS. Це дозволяє запускати контейнери без керування серверами чи кластерами примірників Amazon EC2.

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

Ми можемо використовувати тип запуску Fargate або постачальника потужностей Fargate для виконання ваших завдань і служб Amazon ECS. Щоб використовувати Fargate, ви можете упакувати свою програму в контейнери, вказати вимоги до операційної системи, процесора та пам’яті, налаштувати мережеві й політики IAM і запустити її.

Немає необхідності підтримувати базовий процесор і ємність оперативної пам’яті для розміщення контейнерів. Ми можемо повідомити AWS, скільки ресурсів потребує завдання, а решту завдання залишити AWS. Кожне завдання Fargate має свій бар’єр ізоляції, тому воно не використовує базове ядро, ЦП, пам’ять або еластичний мережевий інтерфейс з іншими завданнями.

Як працює Fargate?

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

Fargate — це безсерверний обчислювальний механізм, оскільки він позбавляє кінцевих користувачів необхідності керувати серверами, на яких розміщені контейнери. Щоб було зрозуміло, сервери все ще там; AWS просто керує ними. Fargate не слід плутати з AWS Lambda, іншим безсерверним обчислювальним сервісом, який не створювався з урахуванням контейнерів (хоча Lamba тепер підтримує розгортання образів контейнерів).

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

Як допомагає Fargate?

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

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

Завдання Fargate (піди) виконуються у власних ядрах, створюючи безпечне та ізольоване обчислювальне середовище з ізольованими робочими навантаженнями та підвищеною безпекою.

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

Завдяки вбудованим підключенням до інших сервісів AWS, таких як Amazon CloudWatch Container Insights, AWS Fargate забезпечує високий рівень спостережуваності. Ви також можете використовувати кілька сторонніх технологій для збору журналів і показників.

Ми також можемо ефективно використовувати широкий спектр сервісів AWS, використовуючи контейнери з Fargate.

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

Компоненти Fargate

Кластери

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

Визначення завдань

Визначення завдання — це текстовий файл, який описує принаймні один із контейнерів вашої програми. Це файл JSON. Його можна використовувати для опису до десяти контейнерів одночасно. Визначення завдання вашої програми служить планом. Він визначає численні параметри вашої програми.

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

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

завдання

Завдання — це екземпляр визначення завдання на рівні кластера. Створивши визначення завдання для своєї програми в Amazon ECS, ви можете вибрати кількість завдань, які виконуватимуться у вашому кластері. Ми можемо запустити завдання як частину служби або окремий процес.

Послуги

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

Операційна система та архітектура ЦП

Fargate підтримує такі операційні системи, як Amazon Linux 2, Windows server 2019 Full і Windows server 2019 Core.

ARM і X86_64 — це дві архітектури, доступні для визначення завдань Amazon ECS. Якщо ви використовуєте контейнери Windows, ви повинні мати архітектуру ЦП X86_64. Навпаки, якщо ви використовуєте контейнери Linux, ви можете використовувати архітектуру ARM64 для програм на базі ARM і архітектуру ЦП X86_64.

ECS з примірниками EC2 Vs. ECS з AWS Fargate

У моделі екземпляра EC2 контейнери розгортаються в екземплярах EC2 (VM) кластера. ECS керує ними в поєднанні із завданнями, які є частиною визначення завдання.

Плюси 👍

  • Тип екземпляра EC2, який тут використовується, повністю залежить від вас.
  • Ви можете використовувати точкові екземпляри, що знижує витрати до 90%.

Мінуси 👎

  • Ви повинні подбати про патчі безпеки та мережеву безпеку екземплярів; також ви відповідаєте за їх масштабованість у кластері.

У моделі Fargate вам більше не потрібно турбуватися про екземпляри або сервери EC2. Виберіть необхідну конфігурацію процесора та пам’яті, і Fargate розгорне ваші контейнери.

Плюси 👍

  • Вам не потрібно керувати жодними серверами.
  • AWS відповідає за доступність і масштабованість, але доцільно вибрати правильну пам’ять і ЦП; інакше наш додаток може бути недоступним.
  • Якщо ви вирішите скористатися Fargate Spot, ви можете отримати знижку до 70% від ціни Fargate.
  Використовуйте спеціальні шаблони для будь-якого додатка iWork для підвищення продуктивності в iCloud

Мінуси 👎

  • ECS з AWS Fargate підтримує лише один мережевий режим -awsvpc-. У результаті це обмежує ваш контроль над мережевим рівнем.

EKS без Fargate Vs. EKS з Fargate

У EKS без моделі Fargate ви повинні заздалегідь вирішити, наскільки великим має бути кластер. Ви завжди можете змінити вузли вручну пізніше, але це складно порівняно з визначенням ідеального розміру з самого початку.

Плюси 👍

  • Ця модель дає вам більше можливостей контролю різними способами, наприклад, ви можете вказати змінні конфігурації, такі як HostNetwork і HostPort.
  • Fargate підтримується не в усіх регіонах, тому ви віддаєте перевагу використанню EKS без Fargate, якщо хочете, щоб ваш контейнер був доступний у більшій кількості регіонів.

Мінуси 👎

  • EKS без Fargate трохи важко використовувати.

У EKS з моделлю Fargate вам не потрібно вказувати розмір кластерів заздалегідь.

Плюси 👍

  • EKS із Fargate більш безпечні, оскільки вони працюють у виділених віртуальних машинах. Той факт, що він не підтримує привілейований режим, є свого роду функцією безпеки.
  • У перспективі це дешевше.

Мінуси 👎

  • Це дає вам менше контролю різними способами

Висновок

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