Documente Academic
Documente Profesional
Documente Cultură
Moișan Ionel-Felician
Lixandra Bogdan
Popescu Constantin Sergiu
Buzuleac Mihaela Florentina Georgiana
1. Descriere Amazon S3
Un număr din ce în ce mai mare de utilizatori și organizații depinde din ce în ce mai mult
de cloud, deoarece infrastructurile bazate pe cloud sunt folosite astăzi pentru a oferi un set tot
mai mare de servicii și aplicații. Progresele în tehnologiile de rețea și creșterea nevoii de resurse
de stocare au determinat multe companii să își externalizeze nevoile de stocare.
Această cerere vizibilă conduce la investiții uriașe din partea furnizorilor, pentru a
implementa în mod adecvat paradigma cloud public și pentru a pune la dispoziția clienților atât
avantaje tehnice cât și economice remarcabile. Stocarea în cloud (cunoscută și sub numele de
stocare ca serviciu) denotă o familie de servicii on-line din ce în ce mai populare pentru arhivare
și backup de date. Datorită serviciilor de stocare în cloud, clienții pot depune, accesa și distribui
diferite tipuri de date, fără a fi nevoie de niciun plan, furnizare sau investiție inițială și fiind
supuși unui model de plată pay-as-you-go.
În conformitate cu reticența clienților în externalizarea informațiilor și resurselor critice,
furnizorii de cloud oferă de obicei garanții ridicate în ceea ce privește disponibilitatea și
fiabilitatea serviciilor, care sunt adesea bine reglementate prin acorduri de nivel de serviciu
(SLA). Pe de altă parte, rareori fac promisiuni cu privire la performanța așteptată de la acest tip
de servicii În timp ce mai multe lucrări din literatură au abordat probleme legate de securitate
(cum ar fi confidențialitatea, integritatea, disponibilitatea etc.), câteva dintre ele au vizat
performanța în rețea a acestui tip de serviciu. Din această perspectivă, rețeaua este într-adevăr o
componentă cheie pentru serviciile cloud, așa cum s-a remarcat și în literatura recentă. Deoarece
cloud-ul este accesibil doar de la distanță, caracteristicile și cifrele de performanță ale colecției
de căi între centrele de date cloud și gazde de pe Internet pot avea impact asupra performanței
sistemului general și asupra calității serviciului (QoS) experimentat de clienți.
În această lucrare, ne propunem să testam performanța serviciilor de stocare în cloud,
avand in prim plan Amazon Simple Storage Service (S3). Amazon Simple Storage Service (S3)
este un serviciu care asigură stocarea și preluarea oricărei cantități de date, printr-o interfață
simplă de servicii web. Acesta folosește aceeași infrastructură de stocare scalabilă pe care o
utilizează și Amazon.com pentru a rula rețeaua sa de comerț electronic. Amazon S3 poate fi
utilizat pentru a stoca orice tip de obiecte, precum: aplicații web, fișiere pentru backup și
recuperare în caz de dezastru, arhive de date.
Serviciile Amazon S3 sunt folosite la scară largă deoarece permit stocarea datelor într-o
manieră ierarhică, fiind foarte rentabile ca preț (0.023$/GB), având latență scăzută și high
throughput access. Au redundanță extrem de crescută (99.999999999%), putând fi folosite ușor
pentru hostarea site-urile web statice. Permit integrarea cu SNS (Simple Notification Service -
serviciu de comunicare între aplicații, sau între aplicație și persoană), SQS (Simple Queue
Service - ajută la construirea aplicațiilor distribuite) și Lamda pentru creare unor aplicații
puternice, bazate pe evenimente.
Amazon S3 are diverse funcții pe care le puteți utiliza pentru a vă organiza și gestiona
datele în moduri care susțin cazuri de utilizare specifice, permit eficiența costurilor, asigură
securitatea și îndeplinesc cerințele de conformitate. Funcțiile S3 includ capacități de a atașa
etichete de metadate la obiecte, de a muta și stoca date în clasele de stocare S3, de a configura și
de a aplica controale de acces la date, de a proteja datele împotriva utilizatorilor neautorizați, de
a rula analize de date mari și de a monitoriza datele la obiect, si de a vizualiza utilizarea stocării
și tendințele de activitate din organizația dvs. Obiectele pot fi accesate prin punctele de acces S3
sau direct prin numele gazdei.
Folosind Amazon S3, putem:
● crea bucket-uri (containere fundamentale) care stochează date. Configurarea bucket-
urilor permite crearea acestora într-o anumită regiune AWS. De asemenea, puteți
configura un bucket astfel încât, de fiecare dată când i se adaugă un obiect, Amazon S3
generează un ID de versiune unic și îl atribuie obiectului. Un obiect este identificat în
mod unic într-o bucket printr-o cheie (nume) și un ID de versiune. Exista opțiunea de a
alege regiunea unde Amazon S3 va stoca bucket-urile, cu scopul de a optimiza latența, a
minimiza costurile sau pentru a aborda cerințele de reglementare. Obiectele stocate într-o
regiune nu părăsesc niciodată regiunea decât dacă le transferați în mod explicit într-o altă
regiune.
● stoca o cantitate enorma de date intr-un bucket (un bucket poate contine oricate obiecte,
iar un obiect poate contine pana la 5TB de date). Obiectele constau din date și metadate
ale obiectelor. Metadatele sunt un set de perechi nume-valoare care descriu obiectul.
Acestea includ unele metadate implicite, cum ar fi data ultimei modificări, și metadatele
HTTP standard, cum ar fi Content-Type. De asemenea, puteți specifica metadate
personalizate în momentul stocării obiectului. Amazon S3 are un serviciu de încărcare
multipart care permite încărcări mai rapide și mai flexibile în Amazon S3. Multipart
Upload ne permite să încărcăm un singur obiect ca mai multe diviziuni. După ce toate
părțile obiectului sunt încărcate, Amazon S3 prezintă datele ca un singur obiect. Cu
această caracteristică putem crea încărcări paralele, întrerupe și relua încărcarea unui
obiect și de asemenea, putem începe încărcările înainte de a cunoaște dimensiunea totală
a obiectului.
Pentru a urmări obiectele și etichetele acestora, bucket-urile și prefixele respective, puteți
utiliza un raport S3 Inventory care listează obiectele stocate într-un bucket S3 sau cu un prefix
specific, precum și starea lor respectivă de metadate și criptare. Inventarul S3 poate fi configurat
pentru a genera rapoarte zilnic sau săptămânal. Folosind modulul de Replicare, se pot replica
obiecte (și metadatele și etichetele obiectelor respective) pe unul sau mai multe bucket-uri de
destinație în aceleași sau diferite regiuni AWS pentru o latență redusă, conformitate, securitate,
recuperare în caz de dezastru și alte cazuri de utilizare.
● descărca datele stocate
● folosi interfețe bazate pe standardele REST si AWS SDKs;
Un utilizator al serviciilor S3 poate permite sau poate nega accesul altor utilizatori care
doresc să descarce, sau să încarce, fișiere în/din bucketul lor. De asemenea, fiecare obiect dintr-
un bucket este identificat printr-o cheie unică, atribuită utilizatorului.
Boto este SDK-ul Amazon Web Services (AWS) pentru Python. Permite dezvoltatorilor
Python să creeze, să configureze și să gestioneze servicii AWS, cum ar fi EC2 (Elastic Compute
CLoud) și S3.
În ceea ce privește performanța atunci când se încarcă sau extrage un anumit obiect de pe
platforma Amazon S3, aceasta se ridică automat la rate de solicitare ridicate. De exemplu, o
aplicație poate realiza cel puțin 3.500 de cereri PUT/COPY/POST/DELETE sau 5.500 de cereri
GET/HEAD pe secundă per prefix într-un bucket. Nu există limite la numărul de prefixe dintr-un
bucket. Prin prefix ne referim la o grupare logică a obiectelor dintr-un bucket, iar valoarea
prefixului este similară cu un nume de director care ne permite să stocăm datele într-o manieră
ierarhică. Atunci când se încearcă optimizarea performanței, trebuie să analizăm cerințele privind
capacitatea rețelei, CPU și DRAM. De asemenea, este util să observăm timpul de căutare DNS,
latență și viteza de transfer de date utilizând instrumentele de analiză HTTP atunci când
măsurăm performanța.
Distribuirea cererilor pe mai multe conexiuni este un model comun de proiectare pentru a
scala performanța pe orizontală. Atunci când ne dorim să realizăm o aplicație de înaltă
performanță, trebuie să ne gândim la Amazon S3 ca la un sistem distribuit foarte mare, nu ca la
un server de stocare tradițional. Cele mai bune performanțe le putem obține prin emiterea de
cereri multiple, simultane, către Amazon S3, iar pentru a maximiza lățimea de bandă trebuie să
răspândim aceste cereri pe conexiuni separate.
Deși numele bucket-urilor S3 sunt unice la nivel global, fiecare este stocat într-o regiune
pe care o selectăm atunci când creăm bucket-ul. Pentru a optimiza performanța, este recomandat
să accesăm bucket-ul din aceeași regiune AWS atunci când este posibil. Acest lucru ajută la
reducerea latenței rețelei și a costurilor de transfer de date.
Dacă o sarcină de lucru trimite cereri GET repetate pentru un set obișnuit de obiecte, se
poate utiliza o memorie cache precum Amazon CloudFront, Amazon ElastiCache sau AWS
Elemental MediaStore pentru a optimiza performanța. Adoptarea cu succes a memoriei cache
poate duce la o latență scăzută și rate de transfer de date ridicate. Aplicațiile care utilizează
stocarea în cache trimit, de asemenea, mai puține solicitări directe către Amazon S3, ceea ce
poate ajuta la reducerea costurilor solicitării.lunar
Amazon S3 Transfer Acceleration gestionează transferurile rapide, ușoare și sigure de
fișiere pe distanțe geografice mari între client și un bucket S3. Accelerarea transferului este
ideală pentru transferul de GB în TB de date în mod regulat pe continente. Este, de asemenea,
util pentru clienții care încarcă într-un bucket centralizat din întreaga lume. Instrumentul
Amazon S3 Transfer Acceleration Speed Comparison compară viteza de încărcare accelerată și
neaccelerată în toate regiunile Amazon S3. Instrumentul de comparare a vitezei utilizează
încărcări multipart pentru a transfera un fișier din browser în diferite regiuni Amazon S3 cu și
fără utilizarea Amazon S3 Transfer Acceleration.
Vom folosi Amazon S3 Transfer Acceleration pentru a micșora valorile latenței cauzată
de distanța.
3. Rezultate
Testarea se va realiza în condiții diferite: conexiune la internet prin cablu, conexiune la
internet prin Wi-fi, sisteme mai performante și mai puțin performante (scalare orizontală).
Testele le vom inițializa încărcând jumătate din setul de date în S3 bucket. Dorim să putem testa
performanța de a face cereri unice introducând date în bucket-ul S3. De asemenea, vom face un
test de performanță pentru paralelizarea mai multor cereri. Pentru a monitoriza performanța S3 și
a valorifica valorile disponibile, vom utiliza tablourile încorporate în consola de administrare S3
și AWS CloudWatch (ne propunem să folosim propriile noastre tablouri de bord).
Pentru al doilea test s-au utilizat mai multe fisiere de tipuri diferite: mp4, zip și docx.
4. Concluzii
După cum se poate observa mai sus viteza de upload este mai mare decât cea de
download indiferent de sistemul de operare pe care programul rulează, dar se mai poate observa
o diferență între sistemul de operare Windows și MacOs și anume atât pentru upload cât și pentru
download performanță a fost mai bună pe sistemul de operare windows, se mai poate observa și
că latență diferă și anume de exemplu 2 se observa ca pe windows la download latența e mai
mare față de Mac Os, dar nu și la upload, dar aceasta valoarea este dependentă de rețeaua wifi la
care este conectat dispozitivul.
5. Bibliografie
[1] https://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html
[2] https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-configure-bucket.html
[3] https://docs.aws.amazon.com/AmazonS3/latest/dev/optimizing-performance-guidelines.html
[4] https://www.cloudways.com/blog/aws-benchmarking-test/
[5]https://www.linkedin.com/pulse/better-performance-measurement-s3-compatible-object-
stores-martin
[6] https://www.instana.com/supported-technologies/aws-s3-monitoring/