Un ghid introductiv pentru AWS Fargate

AWS Fargate este o tehnologie care poate fi utilizată cu Amazon ECS și Amazon EKS. Vă permite să rulați containere fără a gestiona servere sau clustere de instanțe Amazon EC2.

Fargate elimină necesitatea de a configura, scala sau furniza clustere de mașini virtuale pentru a executa containere. Nu va fi nevoie să selectați tipurile de servere, să programați scalarea clusterului sau să optimizați împachetarea clusterului.

Putem folosi tipul de lansare Fargate sau un furnizor de capacitate Fargate pentru a vă rula sarcinile și serviciile Amazon ECS. Pentru a utiliza Fargate, puteți să vă ambalați aplicația în containere, să specificați cerințele privind sistemul de operare, CPU și memorie, să configurați politicile de rețea și IAM și să o lansați.

Nu este nevoie să mențineți un procesor de bază și o capacitate RAM pentru a găzdui containere. Putem spune AWS de câte resurse are nevoie o sarcină și lăsăm restul sarcinii în seama AWS. Fiecare sarcină Fargate are bariera sa de izolare, astfel încât nu împărtășește interfața de bază a nucleului, procesorului, memoriei sau rețelei elastice cu alte sarcini.

Cum funcționează Fargate?

Fargate funcționează permițându-vă să implementați containere fără a configura sau a gestiona infrastructura care le va găzdui. Îi spuneți lui Fargate ce imagini container doriți să rulați și câte resurse CPU și memorie doriți să alocați. Serverele gazdă sunt apoi furnizate automat de Fargate. Când containerele tale funcționează, plătești doar pentru resursele utilizate.

Fargate este un motor de calcul fără server, deoarece elimină nevoia utilizatorilor finali de a gestiona serverele care găzduiesc containere. Ca să fie clar, serverele sunt încă acolo; AWS le gestionează pur și simplu. Fargate nu trebuie confundat cu AWS Lambda, un alt serviciu de calcul fără server care nu a fost creat având în vedere containere (deși Lamba acceptă acum implementarea imaginilor containerelor).

  Cum se utilizează metoda split() în Python

Cum ajută Fargate?

AWS Fargate calculează cantitatea exactă de calcul, memorie și alte resurse necesare pentru sarcinile dvs., astfel încât să nu vă faceți griji cu privire la alegerea tipurilor de instanțe sau la scalarea capacității clusterului.

Vă permite să plătiți pentru resursele de care aveți nevoie pentru a vă opera containerele pe măsură ce sunt utilizate, evitând supraprovizionarea și plătind pentru serverele de care nu aveți nevoie.

Sarcinile Fargate (pod-uri) se execută în propriile nuclee, rezultând un mediu de calcul sigur și izolat, cu sarcini de lucru izolate și securitate sporită.

Acesta permite echipelor să proiecteze și să ruleze aplicații folosind containere ECS sau EKS fără a fi nevoite să se ocupe de activități de gestionare a infrastructurii care necesită mult timp, cum ar fi scalarea și securizarea serverelor sau corecția sistemelor de operare.

Cu conexiuni încorporate cu alte servicii AWS, cum ar fi Amazon CloudWatch Container Insights, AWS Fargate oferă un nivel ridicat de observabilitate. De asemenea, puteți utiliza mai multe tehnologii terțe pentru a colecta jurnalele și valorile.

De asemenea, putem utiliza eficient gama largă de servicii AWS atunci când folosim containere cu Fargate.

Fargate va lansa și va scala în mod constant resursele de calcul pentru a se potrivi cerințelor containerului, prevenind supraprovizionarea și asigurându-se că nu plătiți pentru resursele pe care nu le utilizați. De asemenea, puteți calcula o strategie de economii, opțiunea Fargate Spot vă poate economisi până la 70% din costurile obișnuite, dar este optimă doar pentru aplicațiile întreruptibile.

Componentele lui Fargate

Clustere

O grupare logică de sarcini sau servicii este un cluster Amazon ECS. Clusterele pot fi folosite pentru a vă izola aplicațiile. Când utilizați Fargate pentru a vă desfășura sarcinile, acesta vă gestionează resursele clusterului.

  Cum să adăugați, să personalizați și să utilizați widget-uri pe Mac

Definițiile sarcinilor

O definiție de activitate este un fișier text care descrie cel puțin unul dintre containerele aplicației dvs. Este un fișier JSON. Poate fi folosit pentru a descrie până la zece containere simultan. Definiția sarcinii aplicației dvs. servește ca model. Specifică numeroșii parametri ai aplicației dvs.

De exemplu, îl puteți folosi pentru a defini parametrii sistemului de operare, containerele de utilizat, porturile de deschis pentru aplicația dvs. și volumele de date de utilizat cu containerele din sarcină. Cerințele aplicației dumneavoastră determină parametrii speciali disponibili pentru definirea sarcinii.

Sarcini

O sarcină este o instanțiere la nivel de cluster a unei definiții de sarcină. După ce ați creat o definiție de activitate pentru aplicația dvs. în Amazon ECS, puteți alege numărul de activități care vor rula pe clusterul dvs. Putem rula o sarcină ca parte a unui serviciu sau a unui proces separat.

Servicii

Într-un cluster Amazon ECS, puteți utiliza un serviciu Amazon ECS pentru a rula și a menține numărul dorit de sarcini simultan. Programatorul de servicii Amazon ECS rulează o altă instanță pe baza definiției sarcinii dvs. dacă oricare dintre activitățile dvs. eșuează sau se oprește din orice motiv. Face acest lucru pentru a-l înlocui și pentru a menține numărul de sarcini din serviciu la nivelul corect.

Sistem de operare și arhitectură CPU

Sistemele de operare acceptate de Fargate sunt Amazon Linux 2, Windows Server 2019 Full și Windows Server 2019 de bază.

ARM și X86_64 sunt cele două arhitecturi disponibile pentru definirea sarcinilor Amazon ECS. Dacă utilizați containere Windows, trebuie să aveți o arhitectură CPU X86_64. În schimb, dacă utilizați containere Linux, puteți utiliza arhitectura ARM64 pentru aplicațiile dvs. bazate pe ARM și arhitectura CPU X86_64.

ECS cu instanțe EC2 Vs. ECS cu AWS Fargate

În modelul de instanță EC2, containerele sunt implementate în instanțele EC2 (VM-uri) ale clusterului. ECS le gestionează împreună cu sarcinile care fac parte din definiția sarcinii.

Pro 👍

  • Tipul de instanță EC2 folosit aici este în întregime sub controlul dvs.
  • Puteți utiliza instanțe spot care reduc costurile cu până la 90%.
  Ce este debitul? 6 cele mai bune instrumente pentru a măsura debitul

Contra 👎

  • Trebuie să aveți grijă de corecțiile de securitate și de securitatea rețelei a instanțelor; de asemenea, sunteți responsabil pentru scalabilitatea lor în cluster.

În modelul Fargate, nu mai trebuie să vă preocupați de instanțe sau servere EC2. Selectați CPU și configurația memoriei necesare, iar Fargate vă va implementa containerele.

Pro 👍

  • Nu trebuie să gestionați niciun server.
  • AWS este responsabil pentru disponibilitate și scalabilitate, dar este totuși o practică bună să selectați memoria și procesorul corecte; în caz contrar, aplicația noastră ar putea fi în pericol de a deveni indisponibilă.
  • Dacă decideți să utilizați Fargate Spot, puteți obține o reducere de până la 70% la prețul Fargate.

Contra 👎

  • ECS cu AWS Fargate acceptă un singur mod de rețea -awsvpc-. Ca rezultat, acest lucru vă limitează controlul asupra stratului de rețea.

EKS fără Fargate Vs. EKS cu Fargate

În EKS fără modelul Fargate, trebuie să decideți cât de mare ar trebui să fie clusterul din timp. Puteți oricând să schimbați manual nodurile mai târziu, dar este supărător în comparație cu specificarea dimensiunii ideale de la început.

Pro 👍

  • Acest model vă oferă mai mult control în diverse moduri, cum ar fi să specificați variabile de configurare precum HostNetwork și HostPort.
  • Fargate nu este acceptat în toate regiunile, așa că preferați să utilizați EKS fără Fargate dacă doriți ca containerul să fie disponibil în mai multe regiuni.

Contra 👎

  • EKS fără Fargate este puțin greu de folosit.

În EKS cu modelul Fargate, nu trebuie să specificați în prealabil dimensiunea clusterelor.

Pro 👍

  • EKS cu Fargate este mai sigur deoarece rulează în interiorul mașinilor virtuale dedicate. Faptul că nu acceptă modul privilegiat este un fel de caracteristică de securitate.
  • Este mai ieftin pe termen lung.

Contra 👎

  • Vă oferă mai puțin control în diferite moduri

Concluzie

Fargate este un instrument extrem de puternic și matur. Vă economisește costuri, timp și mult efort, făcând toată gestionarea infrastructurii pentru dvs. Fargate este deosebit de benefic dacă sunteți nou în domeniul containerelor și doriți pur și simplu să vă concentrați pe construirea aplicației dvs., mai degrabă decât pe întreținerea acesteia.