Hosting i Amazon Web Services — u čemu je razlika i kada je dobro odabrati AWS?

Miloš Savić nas kroz svoj prvi tekst vodi kroz razloge za upotrebu AWSa naspram drugih hosting rešenja, a za one koje ubedi u narednim sledi dalje razrađivanje teme i praktični vodič.

Miloš Savić - 9. Septembar, 2015.

Dobili ste sjajnu ideju, seli ste za svoju vernu mašineriju, proveli grdan broj noći zakrvavljenih očiju, naučili napamet sve skraćenice u svom razvojnom okruženju, devojke/momci digli ruke od vas već odavno, porodica vas se odrekla, ali ste završili. Vaše novo čedo uredno svetluca na vašem monitoru, svi pikseli su na mestu, sve što treba je tu, poslednja greška je samo maglovito nerviranje pre nekoliko sati. Vreme je da još neko vidi vaše remek-delo. Palite omiljeni chat klijent, klikćete omiljenog techie sagovornika. Alt-tab-alt-d-ctrl-a-ctrl-c-alt-tab-ctrl-v-enter. *Facepalm*.

http://localhost/topsecret/

Da bi vaš servis ostavio planiran utisak na još ponekog, potrebno je da bude vidljiv i ostatku sveta. Dakle, potreban vam je hosting. Nekada davno, bili ste ograničeni izborom lokalnih (ili možda stranih) hosting rešenja, ali, moderne cloud tehnologije vam omogućavaju mnogo širi izbor – i mnogo veću kontrolu.

AWS i startapi? Bolje, zašto AWS za vas?

Amazon Web Services (skraćeno, AWS) je set servisa orijentisanih (ali nipošto ne i ograničenih) ka korisnicima koji imaju neka posla sa Internetom. Termin koji se često koristi je “technology stack” – što oslikava činjenicu da se servisi u funkcionisanju oslanjaju jedan na drugi, i predstavljaju jednu zaokruženu celinu.

Iako AWS upošljava širok spektar tehnologija iz najrazličitijih oblasti informatike, u osnovi se nalazi virtuelizacija – mogućnost pokretanja tzv. virtuelnih mašina na proizvoljnoj hardverskoj platformi. Hardver u ovom slučaju predstavljaju nebrojeni računari rasuti širom planete, čije resurse Amazon pruža na korišćenje svojim klijentima, u bilo kom trenutku, za (maltene) bilo koju namenu.

U našem slučaju, namena je – naravno, obezbeđivanje platforme za funkcionisanje našeg voljenog blistavo-novog servisa. Prijavite se za korišćenje AWS-a, zauzmete potrebne resurse, uploadujete vaš kod, izvršite manje modifikacije da odgovaraju novom okruženju, i vaš servis je vidljiv.

O hardveru brine neko drugi, vaše je samo da pošaljete kod, platite neku sumu – i čekate vaše korisnike. Zvuči kao klasičan hosting? Skoro.

Po čemu se razlikuju?

Postoji fundamentalna razlika između klasičnog hostinga koji zakupljujete kod vašeg provajdera (ISP – Internet Service Provider) i zauzimanja resursa na AWS-u.

Prva i očigledna je, naravno, u ceni. Korišćenje AWS-a će skoro sigurno prevazići cenu klasičnog hostinga na godišnjem nivou – i to mesečno.

Druga je, vi ste odgovorni za vaše okruženje. Možda ste želeli da o dostupnosti vašeg servisa brine neka visoko stručna osoba kojoj je to primarni posao, koju možete usred noći da pozovete i zatražite da proveri zašto učitavanje vašeg sajta traje bezobrazno dugo – ali ovde toga nema. Pogledajte  ovde – najniži (i najčešći, podrazumevani) plan podrške ne nudi gotovo nikakvo ohrabrenje.

Treće, moraćete da (na)učite i stvari kojima možda i niste želeli da se bavite. Zašto bi se iko ko samo želi da podigne servis uopšte i baktao sa ovim?

Četvrto, plaćate “resurse” – odnosno hardver? To, pobogu, niko ne naplaćuje – osim ako ne želite server-housing.

Ipak, situacija je malo drugačija:

Prvo, cena koju ćete platiti AWS-u će vam obezbediti mogućnost da, kada vaš servis poraste (držimo palčeve), osigurate sebi platformu koja će rasti zajedno sa njim. Nećete biti ograničeni resursima vašeg hostinga, niti ćete morati da slušate ne-baš-ohrabrujuće odgovore administratora na pitanja o opterećenju sistema, mogućnosti za bržu bazu, dobijanje više resursa u trenutku kada vam je to potrebno, niti rast van vašeg postojećeg hosting plana. Ukoliko vaš servis uspe, cenu AWS resursa će isplatiti sam, a cena koju ćete platiti će biti cena vašeg mirnog sna – bar po ovom pitanju.

Drugo, prepušteni ste sami sebi. Ovo vam daje odrešene ruke da prilagodite sistem svojim potrebama, tako da sistem radi za vas, a ne obratno. Ukoliko vaš servis koristi neku egzotičnu biblioteku, prosto ćete je instalirati i rešiti svoj posao. Ako vam je potreban cron job, ili specifična skripta, ili privilegije, ili pristup izvršnim fajlovima, ili više memorije, ili ste razvijali na posebnoj platformi koju vaš ISP ne nudi – nemate glavobolju, sve je pod vašom kontrolom.

Treće, morate da učite. Da bi vaš servis radio najbolje što može, bio pouzdan, stabilan, odzivan i pružao zadovoljavajuće korisničko iskustvo – vi morate poznavati osnove platforme na kojoj će raditi. Da biste iskoristili sistem u potpunosti, izbegli česte greške, i održavali vaš kod, morate znati ponešto o vašoj bazi, web serveru, logovima, fajlovima i opštim konvencijama. Zar je to loše?

Četvrto – AWS naplaćuje resurse koje koristite, i samo resurse koje koristite. Ukoliko se ispostavi da vaše potrebe nisu onolike koliko ste u trenutku pesimisizma predvideli, možete spustiti nivo zauzetih resursa na minimum, i time smanjiti račun. Kod klasičnog provajdera ne biste imali ovakvu opciju. Nasuprot tome, ukoliko vaše potrebe naglo porastu, možete ih u izuzetno kratkom vremenu zadovoljiti zauzimanjem potrebne količine dodatnih resursa, i posle, možda, opet spustiti na minimalan nivo. Ovakva promena sa AWS-om traje nekoliko minuta, i predstavlja standardnu uslugu koja se ne naplaćuje dodatno. Pitanje je da li bi vaš ISP bio u mogućnosti da vam izađe u susret na ovakav način u razumnom vremenskom roku.

Peto – nenabrojano. Pretpostavimo da ste zaključili da vam za vaš servis, kakav god on bio – makar i za interne potrebe (obradu podataka, lokalni storage ili centralizovani portal) treba sopstveni server. Vreme i novac koje ćete utrošiti za nabavku, instalaciju, administriranje, održavanje, delove, i najzad cenu kada vaš hardver neizbežno zastari – će glatko premašiti cenu AWS-a.

AWS je sistem kao stvoren za startape. Sloboda i servisi koju pruža, mogućnost brze i jednostavne skalabilnosti prema vašim potrebama, uz nekoliko značajnih mogućnosti za dovođenje troškova na razuman nivo jednostavno ne može da se poredi sa klasičnim hostingom.

Ukoliko smatrate da troškovi koje AWS nosi sa sobom, overhead oko učenja i administracije nije vredan toga, ili vas plaši mogućnost da nešto zabrljate – onda AWS nije za vas.

Ako ste, pak, odlučili da koristite AWS za svoj proizvod, u narednim tekstovima ću pričati o tehničkim osobinama AWSa, sadržaju, mogućnostima upotrebe i na kraju i praktičnom vodiču.