Uvod u Amazon Web Servise (AWS)

Amazon Web Servisi predstavljaju web servise, koji vam omogućavaju da koristite mrežne, računarske i resurse za pohranu podataka preko interneta. Historija AWS-a vuče korijenje od 2002. godine, kada je kompanija Amazon.com programerima ponudila beta verziju SOAP i XML interfejsa, preko kojeg bi mogli da pristupe Amazon katalogu i zarade kroz Amazon Associates program. Krajem 2004. godine, učinili su javno dostupnim Simple Queue Service (SQS), a zatim početkom i na ljeto 2006. godine objavili još dva servisa, Amazon S3 i Amazon EC2. Možemo reći da je tako sve počelo, te da je AWS, odnosno tada Amazon.com bio pionir u polju javnog cloud-a. Danas je AWS vodeći cloud provajder, gdje se gotovo polovina (47.8%) infrastrukture unutar javnog cloud-a nalazi upravo na AWS-u.
Više o historiji Amazon Web Servisa možete pročitati u blog postu Jeffa Barra, AWS Chief Evangeliste, My First 12 Years at Amazon.com.

AWS Infrastruktura

AWS posjeduje data centre raširene po cijelom svijetu. Data centri su grupisani po regijama - regions (Europe London, Europe Paris, Europe Frankfurt, US Northern Virginia itd), gdje svaka od regija mora da sadrži minimalno dva fizički odvojena i nezavisna data centra koja se nazivaju Availibliy Zone (AZ). Availibility Zone i AWS regije su međusobno povezane redudantnim brzim linkovima, koji omogućavaju brzu privatnu mrežu sa minimalnim kašnjenjima u prenosu podataka, kao i komunikaciju servisa koji se nalaze u različitim regijama. Na stranici cloudping.co možete vidjeti koliko je mrežno kašnjenje (latency) između različitih AWS regija u realnom vremenu.

Slika 1. Mrežna povezanost AWS regija i availiblity zona*

AWS trenutno broji 22 regije i 69. Availiblity Zona, gdje se taj broj stalno povećava. Regije se označavaju koristeći AWS Region Name - npr.  Europe (Frankfurt) i AWS Region Code - npr. eu-central-1.

Slika 2: Trenutno dostupne regije unutar AWS cloud-a

Availablity Zone se označavaju na način da se na ime regije doda slovo (a, b, c, d, e, itd.) kao sufix (npr. eu-central-1a).

Slika 3: Grafički prikaz raspoređenosti AWS regija po svijetu*

Pored AWS regija i availablity zona, dio AWS globalne infrastrukture raspoređen je po cijelom svijetu koji čini AWS Points of Presence. AWS Points of Presence predstavljaju dio AWS-ove Content Delivery Network (CDN) infrastrukture, te zahvaljujući njima AWS je u mogućnosti da smanji vrijeme isporuke sadržaja krajnjim korisnicima vaše aplikacije, na način da je sadržaj privremeno pohranjen, keširan, na tim lokacijama.

Slika 3. Grafički prikaz raspoređenosti AWS Point of Presents po svijetu*

AWS servisi

AWS nudi širok spektar različitih servisa za različitu namjenu. Servisi unutar AWS-a pripadaju različitim kategorijama, kao što su Infrastrucure as a Service (IaaS) i Platfrom as a Service (PaaS). U zavisnosti od toga kojoj od kategorija pripada servis koji koristite, zavisi i nivo vaše odgovornosti prilikom njegove upotrebe. Broj novih servisa kao i mogućnosti postojećih servisa je stalno u porastu. Nije potrebno znati sve o svakom od dostupnih servisa, važno je samo da poznajete osnovne servise i njihovu namjenu, te da imate predstavu postojećih servisa koje možete upotrijebiti u zavisnosti od vaših potreba i zahtjeva.

Slika 4. Pregled trenutno dostupnih AWS servisa unutar AWS konzole

U nastavku je dat pregled osnovnih AWS servisa i njihovi kratki opisi.

Amazon Identity Access Management Service (IAM) - IAM je servis preko kojeg vršite kontrolu pristupa vašem AWS računu, definišete sigurnosnu politiku računa, kreirate korisnike i njihove privilegije.

Elastic Compute Cloud (EC2) - EC2 pripada kategoriji IaaS servisa, i predstavlja virtualne mašine/servere, koje unutar AWS cloud-a nazivamo instancama. Ovaj servis omogućava računarske, odnosno compute resurse (vCPU, RAM).

Amazon Elastic Block Storage (EBS) - EBS je jedan od servisa unutar AWS cloud-a koji služi za pohranu podataka u formatu blokova (block-storage). Možete ga posmatrati kao hard disk EC2 instanci. Za razliku od standardnih hard-diskova na koje smo navikli, EBS nije fizički pridružen EC2 instancama, nego se komunikacija odvija preko mreže. Zahvaljujući tome, trajanje EBS diska i postojanost podataka koji se nalaze na njemu neovisni su od trajanja EC2 instance.

Amazon Simple Storage Service (S3) - S3 je još jedan servis za pohranu podataka, koji za razliku od EBS-a podatke pohranjuje kao objekte (object-storage), i kao takav pogodan je za pohranu velike količine podataka. S3 servisu možete pristupiti kroz web interfejs, te pohraniti “neograničenu” količinu podataka bilo kojeg tipa.

Amazon Relational Database Storage (RDS) - Amazon RDS je servis koji omgućava da podesite relacionu bazu podataka (Microsoft SQL Server, MySQL, PostgreSQL, MariaDB Oracle Dabase, Amazon Aurora) u nekoliko klikova mišem. Za razliku od tradicionalnih data centara gdje ste morali da samostalno instalirate bazu podataka, brinete o kopijama (backupa) itd. kod RDS servisa AWS to radi za vas, te vam omogućava da koristite relacijsku bazu podataka kao servis. Pored relacijskih baza podataka, AWS vam na sličan način omogućava da uz pomoć drugih servisa kao što su Amazon DynamoDB, Amazon Redshift, Amazon ElastiCache koristite i ostale tipove baza podataka.

Amazon Route 53 - Route 53 predstavlja Domain Name Servis (DNS) unutar AWS cloud-a.

Amazon Virtual Private Cloud (VPC) - VPC je servis koji vam omogućava da kreirate virtuelnu privatnu mrežu unutar AWS-a, definišete mrežni opseg i podmrežu te da vaše servise koje koristite pokrenete unutar te mreže.

Amazon CloudFront - Cloud Front je Content Delivery Network (CDN) servis koji privremeno pohranjuje podatke (kešira) unutar Edge Lokacija i na taj način smanjuje vrijeme isporuke podataka krajnjem korisniku.

Amazon CloudWatch - CloudWatch je servis koji omogućava monitoring servisa i resursa unutar AWS clouda.

Amazon CloudFormation - CloudFormation je servis koji vam omogućava da željene resurse unutar AWS cloud-a kreirate koristeći json ili yaml dokumente. Na taj način imate mogućnost da vašu infrastrukturu i resurse čuvate i kreirate uz pomoć koda (Infrastructure as a Code - IaaC) što ima brojne prednosti.

Kreiranje AWS računa

Najbolji način za savladavanje AWS cloud-a jeste primjenjivanje teoretskih osnova u praksi. Za korištenje AWS servisa, neophodno je da kreirate AWS račun. U videu ispod možete pronaći detaljno upustvo i objašnjenje kako to uraditi.

Plaćanje korištenih resursa se vrši u onom obimu u kojem ste ih koristili, i koliko ste ih koristili (on-demand). Bitno je napomenuti da AWS omogućava besplatno testiranje i rad sa svojim servisima u okviru Free Tier programa. Važno je da zapamtite da nisu svi servisi besplatni, niti da ih možete besplatno koristiti u neograničenim količinama.
Pa tako možete korisiti jednu EC2 instancu tipa t2.micro (1vCPU, 1GiB of RAM) ili t3.micro  (2vCPU, 1GiB of RAM) 750 sati, u toku jednog mjeseca, u trajanju od 12 mjeseci, od dana kreiranja Vašeg AWS računa. Isto vrijedi i za jednu Amazon RDS instancu tipa db.t2.micro.

Više infromacija i detalja o Free Tier programu možete pronaći na zvaničnoj stranici koja je dostupna na sljedećem linku, kao i na videu ispod. Svakako je preporuka da prije nego krenete koristiti neki od servisa, analizirate njegovu cijenu i na taj način  neželjene troškove.

Zaključak

Broj AWS servisa svakodnevno raste. Lično smatram da nije potrebno a ni moguće detaljno poznavati svaki od dostupnih AWS servisa. Važno je poznavati osnovne AWS servise, koncepte AWS cloud-a, te kad se javi potreba jednostavno pronađete odgovarajući servis ili više njih za dati scenarij.

Reference

*Slika 1 preuzeta sa AWS Global Network stranice
*Slika 2 preuzeta sa AWS Global Infrastrucutre stranice.
*Slika 3 preuzeta sa Amazon CloudFront Key Features stranice
*Amazon CloudFront launches in five new countries - Bulgaria, Greece, Hungary, Kenya, and Romania