Platforma de servicii cloud Amazon Web Services a fost lansata in 2006 si includea trei produse pentru solutii de storage (S3 – Simple Storage Service), compute (EC2 – Elastic Compute Cloud) si messaging (SQS – Simple Queue Service). In prezent, AWS ofera dezvoltatorilor si organizatiilor peste 200 de servicii din care sa aleaga pentru a-si dezvolta aplicatiile si infrastructura in cloud-ul AWS.
Catalogul AWS include produse si servicii pentru computing, storage, retelistica, baze de date, management, machine learning si inteligenta artificiala, aplicatii virtuale si pentru realitate augmentata, aplicatii mobile, Internet of Things si multe altele. Practic, pentru orice lucru de care ar avea nevoie un developer, AWS are un produs si o solutie.
Unele dintre cele mai folosite servicii AWS folosite de developeri la dezvoltarea aplicatiilor sunt:
– EC2 (Elastic Compute Cloud). EC2 este unul dintre elementele fundamentale ale platformei AWS si permite crearea unei masini virtuale. Utilizatorul va putea alege sistemul de operare (Windows, Linux, macOS), tipul si numarul de procesoare (Intel, AMD, Nvidia, ARM), cantitatea de memorie RAM, precum si tipul si cantitatea de storage (HDD, SSD) si conectivitatea la retea (pana la 400 Gbps). Cel mai intalnit use case este acela in care masina virtuala este folosita ca un server pentru a gazdui o aplicatie web.
– ELB (Elastic Load Balancing). Pe masura ce traficul catre aplicatia hostata in AWS creste, o singura instanta EC2 nu va suficienta pentru a raspunde nevoilor de procesare. Astfel se vor crea mai multe instante ale aceluiasi server, iar traficul va fi distribuit catre aceste instante folosind ELB intr-un mod complet automatizat.
– CloudWatch. Acest serviciu de management care poate fi folosit de catre inginerii DevOps, developer sau inginerii SRE (site reliability engineer) pentru a monitoriza activitatea instantelor EC2 si a aplicatiilor web. CloudWatch colecteaza loguri si metrici, care pot fi folosite la detectarea comportamentului anormal, la setarea de alarme, in procesul de troubleshooting sau la monitorizarea gradului de incarcare si a consumului de resurse din mediul AWS.
– EC2 Auto Scaling. Auto Scaling este un serviciu care ajuta dezvoltatorii sa mentina un nivel ridicat de disponibilitate pentru aplicatie prin adaugarea sau inlaturarea de instante EC2 in functie de conditiile definite. Metricile colectate de CloudWatch pot fi folosite ca input pentru a defini la ce grad de incarcare al procesorului, sau la ce numar de request-uri HTTP sa mai fie creata o copie identica a server-ului care gazduieste aplicatia. Daca metricile scad sub pragul setat, atunci instanta suplimentara va fi inlaturata, lucru care ajuta pe partea de costuri. Auto Scaling este un concept fundamental care subliniaza paradigma de elasiticitate a mediului cloud si de “pay as you go” si “pay what you use”.
– AWS Lambda. Multe functii de computing sunt efemere, ceea se inseamna ca nu se bazeaza pe nicio stare persistenta in relatie server-ul pe care ruleaza. AWS Lambda ofera conceptul de Functions as a Service sau Serverless Computing. Mai exact, folosind Lambda, developerul uploadeaza codul care vrea sa fie executat si sa aleaga ce tip de eveniment sa declanseze executia (integrarea se poate face cu servicii precum CloudWatch, SNS, S3 sau DynamoDB), neexistand niciun server care sa necesite management. Use case-urile pot fi in zona de procesare de date, procesarea in timp real a fisierelor, machine learning sau in partea de backend a aplicatiilor web, a celor mobile sau IoT.
– S3 (Simple Storage Service). Pe langa nevoie de a prelucra date, exista si o nevoie de a stoca date. S3 este un alt element fundamental al platformei AWS care ofera un mediu de storage. S3 poate stoca orice tip de fisier sau obiect cu o durabilitate incredibila de 99,999999999& (11 de 9 😊 ). Organizatiile de toate dimensiunile pot folosi S3 pentru a stoca si proteja orice cantitate de date pentru o varietate de scenarii: backup si restore de date, aplicatii mobile, aplicatii enterprise, aplicatii IoT, big data, site-uri de Disaster Recovery (DR) sau pentru arhivarea datelor.
– RDS (Relational Database Service). RDS este un serviciu care ofera dezvoltatorilor de aplicatii o varietate de optiuni de baze de date de tip SQL precum PostreSQL, MySQL, MariaDB, Oracle sau Microsoft SQL care pot fi folosite in aplicatiile web sau in cele mobile, in platforme de e-commerce sau in dezvoltarea jocurilor. RDS este un serviciu usor de administrat, scalabil, sigur si foarte performant. RDS ofera si redundanta si disponibilitate datelor, intrucat platforma in sine face automat backup-uri si snapshot-uri ale bazelor de date, ca si inlocuirea automata a unui host, in cazul in care apar probleme.
Inginerii Dendrio va pot ajuta sa configurati serviciile AWS de care aveti nevoie. Dendrio este Advanced Consulting Partner AWS.
Mihai Dumitrascu, Sr Systems Engineer