AWS EC2
AWS EC2 je skraćenica za engleski naziv Elastic Cloud Computing, web servis koji omogućava hostovanje aplikacija na virtuelnim serverima, takozvanim instancama, služeći se jednostavnim interfejsom.
Glavne prednosti AWS EC2 su manji troškovi, virtuelni serveri su jeftiniji u odnosu na fizičke servere, brzo i jednostavno održavanje i nemogućnost pada servera, aplikacija je stalno dostupna…
AWS EC2 obezbeđuje jednostavno skaliranje web resursa što vam omogućava da povećate ili smanjite kapacitete servera u nekoliko minuta. Nad vašim virutelnim instancama imate potpunu kontrolu kao što biste je imali nad fizičkim instancama. Ovaj fleksibilan cloud hosting servis vam daje mogućnoct izbora tipa instance, vrste operativnog sistema i softverskih paketa.
AWS EC2 ima visok stepen bezbednosti i u saradnji za Amazon VPC (Virtual PrivateCloud) obezbeđuje sigurnu i robusnu mrežnu funkcionalnost.
Veoma je jednostavno započeti rad sa AWS EC2. Postoji besplatna probna verzija.
Za rad sa AWS EC2 stoji vam na raspolaganju više opcija:
• AWS Managment Console – intuitivni web upravljački interfejs (njega koristim)
• AWS Command Line Tools (CLI)
• AWS SDK
Upoznaću vas sa nekoliko glavnih EC2 servisa i sa njihovim načinom korišćenja kroz jednostavan primer procesa postavljanja aplikacije na server.
Amazon EC2 je hostovan širom sveta. Podeljen je na hosting lokacije koje su zatim podeljene na regione – geografske lokacije. Svaki region je opet podeljen na više lokacija koje se nazivaju zone dostupnosti – Availability zones. Za odabir regiona i availibilty zone rukovodite se lokacijima na kojima poslujete kao i zakonskim regulativama koje važe na datim lokacijama. Da biste obezbedili istu brzinu mrežnog protoka na svim lokacijama na kojima poslujete možete odabrati više regiona.
Potrebno je da odaberete tip instance na kojoj ćete hostovati aplikaciju. Tip odaberite u zavisnosti od zahteva aplikaciji. Postoji širok izbor tipova instanci koje su optimizovane za različite načine upotrebe, sa različitim kombinacijama CPU, memorije, skladišnog prostora i mrežnog kapaciteta.
Instance su podeljene u grupe prema tipovima.
• T2 tip instanci su Burstable Performance instance, što znaci da one u startu obezbeđuju osnovni nivo CPU performansi sa mogućnošću povećanja iznad osnovnog nivoa
• M5 tip instanci su instance poslednje generacije namenjenih za opštu upotrebu (General Purpose Instances). One obezbeđuju balansiran odnos operativnih mogućnosti, memorije i mrežnih resursa i dobar su izbor za većinu aplikacija.
• M4 tip instanci su takođe instance namenjene za opštu upotrebu, samo što su nešto starije generacije od M5 instanci.
Evo primera liste dostupnih instanci T2 tipa:
Kada ste odlučili koji tip instanci ćete koristiti treba da napravite AMI (Amazon Machine Image), tj. da odaberete operativni sistem i softver koji će biti instaliran na svakoj instanci. Nakon kreiranja AMI, potrebno je još da dodelite prava odabranim AWS nalozima da mogu da instanciraju nove instance, kao i da odredite block device mapping (skladišni prostor) koji će se priključiti svakoj pokrenutnoj instanci. Možete koristi Amazon AMI sa Linuxom ili Windowsom ili čak nekim trećim operativnim sistemom. Različite instance mogu imati različit AMI.
Svi vaši podaci potrebni za rad aplikacije mogu biti hostovani u oblaku jer je EC2 je povezan sa drugim Amazon servisima poput S3; S3 je neograničen prostor za skladištenje podataka u oblaku i RDS relacionom bazom podataka.
Sa programerske tačke gledišta, najkorisniji mi je Autoscaling group servis. Autoscaling group je kolekcija sličnih EC2 instanci koja se koristi za automatsko skaliranje aplikacija na više resursa u više servisa u kratkom vremenskom periodu.
Kada je build paket aplikacije gotov i spreman za postavljanje na server, treba da kreirate grupu koja će postavljati aplikaciju na server (deployment group), da je povežete sa prethodno podešenom Autoscaling grupom i da odaberete S3 lokaciju gde ćete čuvati build paket nakon uploada sa lokalnog računara. Deployment grupa će pokupiti build paket sa S3 lokacijie, a Autoscaling grupa će kopirati te fajlove na instance.
U slučaju da je build paket oštećen i da je proces postavljanja aplikacije na server bio neušpesan, Autoscaling će pokrenuti proces postavljanja poslednjeg uspešnog build paketa.
U okviru Autoscaling group servisa možete podesiti skaling polise koje će automatski povećavati i smanjivati broj instanci u zavisnosti od saobraćaja na aplikaciji.
Ako je sabraćaj gust i ima mnogo zahteva Autoscaling će povećati broj instanci, a ako je saobraćaj slab i nema mnogo zahteva autoscaling će smanjiti broj instanci. Tako se obezbeđuje efikasnost, a ujedno i kontrola troškova jer plaćate samo za resurse koje zaista i koristite.
Health checks su zaduženi za proveru stanja aplikacije na instanci ili stanja same instance u zavisnosti kako ih konfigurišete. Obezbeđuju neometan rad aplikacije, jer u slučaju da otkriju problem na instanci Autoscaling grupa je gasi, a istovremeno pokreće novu. Na taj način nema mogućnosti da aplikacija ikada bude nedostupna. Health checks se mogu konfigurisati koliko često da proveravaju instancu kao i koliko puta treba da dobiju negativan odgovor pre nego što odluče da instancu treba ugasiti.
Postoji mogućnost kreiranja alarma koji će se oglasiti u kritičnim situacijama, tako da odmah možete biti obavešteni ako se neki problem dogodi na instanci.
Cloud watch obezbeđuje grafički prikaz događaja na instanci, mrežnog saobraćaja, CPU
potrošnje i tako dalje.
Ovo je bio kratak pregled nekih od AWS EC2 servisa koje koristim na dnevnoj osnovi. Veoma su mi korisni. Svakako da postoji šira lista dostupnih AWS EC2 servisa, tako da ukoliko neko želi da sazna više, neka poseti AWS online dokumentaciju.