Tijekom posljednjih nekoliko godina, svima je bila najzgodnija riječ 'produktivnost'. U brzo razvijajućem se svijetu Interneta brzo postizanje nečega uvijek dobije pozitivan glas. Unatoč tome što je stvarnu poslovnu logiku potrebno implementirati brzo i točno, kao iskusni PHP programer Još uvijek sam stotine sati proveo na drugim zadacima, poput postavljanja baze podataka ili predmemorija, postavljanja projekata, praćenja mrežne statistike i tako dalje. Mnogi su se programeri godinama borili s tim tzv. Raznim zadacima, gubeći vrijeme umjesto da se koncentriraju na projektnu logiku.
Život mi se promijenio kad je prije četiri godine prijatelj spomenuo Amazon Web Services (AWS). Otvorila je nova vrata i dovela do strahovitog povećanja produktivnosti i kvalitete projekata. Za sve koji nisu koristili AWS, pročitajte ovaj članak za koji sam siguran da će vam se isplatiti.
Amazon Web Services službeno je pokrenut 2006. Mnogi će ljudi čuti za to, ali vjerojatno ne znaju što može ponuditi. Dakle, prvo pitanje je: Što je AWS?
Amazon Web Services (AWS) zbirka je usluga računalstva u oblaku, također nazvanih web uslugama, koje čine platformu za računanje u oblaku koju nudi Amazon.com.
Wikipedija
Iz ove definicije znamo dvije stvari: AWS se temelji na oblaku, a AWS je zbirka usluga, umjesto jedne usluge. Budući da vam ovo ne govori puno, po mom mišljenju, bolje je da početnik razumije AWS kao:
Ima, naravno, mnogo više prednosti korištenja AWS-a, pa, hajde da napravimo brzi pregled kako vam može povećati produktivnost.
Da biste počeli koristiti bilo koju uslugu, morate imati račun. Stvaranje računa za AWS trebalo bi vam oduzeti najviše pet minuta. Obavezno imate sljedeće podatke:
To je to. Nakon što pripremite gore navedene podatke, posjetite AWS web stranica i stvorite račun slijedeći upute koje se lako slijede.
Imajte na umu sljedeće:
Jedna od prednosti usluge u oblaku je mogućnost dobivanja zajedničkih resursa na zahtjev. Amazon je korisnicima pružio četiri razine usluga za pristup njihovim uslugama, poredane redoslijedom lakoće:
U ovom ćemo članku koristiti Upravljačku konzolu. Dakle, nakon tebe prijavite se na konzolu , vidjet ćete zaslon kao dolje:
Treba napomenuti dva područja:
Najosnovnija potreba resursa u oblaku je virtualni poslužitelj. EC2 ili Elastic Compute Cloud ime je koje je Amazon odabrao za svoju uslugu virtualnog poslužitelja. Pogledajmo kako je lako uspostaviti Linux poslužitelj na mreži.
yum
za upravljanje paketima:
ec2-user
sa svojim ključem privatnosti. ec2-user
je zadani AWS koji također ima sudo sposobnost. Iako nije moguće promijeniti zadano korisničko ime, možete stvoriti bilo kojeg korisnika i dodijeliti mu odgovarajuće privilegije u skladu s vašim željama. Adresu vašeg poslužitelja možete pronaći ovdje:
Gornji postupak trebao bi trajati manje od pet minuta, a to je način na koji lako pokrećemo i pokrećemo virtualni poslužitelj. U sljedećem odjeljku saznat ćemo kako nam AWS pomaže u upravljanju instancom koju smo upravo stvorili.
Većina resursa AWS-a naplaćuje se u satima, što pruža dobru fleksibilnost. Na primjer, uzimajući EC2 instancu koju smo upravo stvorili, dva su načina da se ona isključi iz upotrebe: zaustaviti i prekinuti. Obje radnje zaustavit će naplatu. Razlika je u tome što zaustavljanjem instance možemo je ponovno pokrenuti kasnije uz sav ušteđeni rad. Suprotno tome, ukidanjem instance vraćamo instancu AWS-u na recikliranje i ne postoji način da povratimo informacije. Potreba za prekidom instance proizlazi iz AWS-a koji prema zadanim postavkama postavlja ograničenje od 20 primjeraka po regiji po računu, a zaustavljena instanca i dalje se računa dok se ne prekine.
Instancu možemo brzo zaustaviti:
Kad zaustavite instancu EC2, prestaje rasti i vaš račun. Posebno je korisno u sljedećim scenarijima:
Informacije o cijenama za AWS dostupne su na mreži. Nakon izračunavanja možete postaviti pitanje: Je li AWS zapravo jeftiniji? Množenjem satnice za mjesec dana, čini se da uopće nije konkurentna. Odgovor je da i ne.
AWS nije jeftiniji ako jednostavno izračunate satnicu za resurs na zahtjev tijekom mjesec dana. Međutim, i dalje imamo rezervirane instance za naplatu, kao što je prikazano u nastavku:
Za minimalne potrebe za resursima možemo postići popust od 30 do 70 posto koristeći rezerviranu instancu, zajedno s ostalim različitim resursima koji se naplaćuju kao instanca na zahtjev. U praksi će to biti jeftinije za 30 do 40 posto s jednogodišnjim angažmanom, a još više s trogodišnjim angažmanom pomoću rezerviranih primjeraka. Zbog toga ću glasati za 'Da' na gornje pitanje. A AWS je još jeftiniji ako uključite prednosti sigurnosti i nadzora.
Jedan je cilj AWS-a eliminirati što veći dio operativnih troškova. Tradicionalno nam je potreban veliki tim sistemskih inženjera kako bi održali sigurnost i zdravlje naše infrastrukture, bilo na mreži na licu mjesta. Iskusni timovi napisat će i primijeniti svoje automatizirane alate kako bi pojednostavili postupak. Međutim, upravljanje uslugama također postaje složen projekt u praksi. AWS nam pomaže u upravljanju resursima. U nastavku sam naveo neke od usluga koje pruža AWS i koje se najčešće koriste:
Način na koji AWS postupa s kontrolom pristupa uslugama vrši se u dva odvojena sloja. Na mrežnoj se razini to postiže uporabom ideje poznate kao 'sigurnosne skupine'. Sve su usluge AWS u sigurnosnim skupinama. A sigurnosna skupina određuje kroz koga smije proći. Uzimajući našu instancu EC2, AWS je za nas automatski stvorio sigurnosnu grupu:
Konfiguriranjem pravila za ulaz / izlaz možemo odlučiti što može, a što može izaći. Pravila TCP, UDP i ICMP podržana je uslugom EC2. Sigurnosna grupa djeluje poput vanjskog vatrozida na razini hardvera i nikad ne trebamo razmišljati o krpanju.
Još jedna prednost korištenja sigurnosne grupe je što se ona može ponovno upotrijebiti. Jedna sigurnosna grupa može se podijeliti između mnogih resursa. U praksi to uvelike poboljšava učinkovitost održavanja uklanjanjem gnjavaže postavljanja sigurnosne politike jedno po jedno za svaki resurs. Također, priroda sigurnosne grupe koju dijelimo omogućuje nam da je konfiguriramo na jednom mjestu i primijenimo tu sigurnosnu politiku na bilo koje druge resurse, bez muke oko ručnog postavljanja, jedan po jedan za svaki resurs.
AWS pruža drugu metodu za rukovanje kontrolom pristupa pomoću VEĆ . Ovo je sigurnosna kontrola na razini aplikacije kada trebate pristupiti sučeljima RESTful. Svaki REST zahtjev mora biti potpisan kako bi AWS znao tko pristupa usluzi. Također, provjerom prema unaprijed konfiguriranom popisu pravila, AWS će utvrditi treba li radnju odbiti ili dopustiti.
U ovom članku nećemo detaljno obrađivati IAM. Međutim, imajte na umu da AWS puno razmišlja o sigurnosti, tako da možete biti sigurni da neovlašteni posjetitelji ne mogu pristupiti vašim povjerljivim podacima.
CloudWatch usluga je koju pruža AWS za prikupljanje i praćenje svih vrsta mjernih podataka iz vaših AWS resursa. Moćniji je zbog svoje sposobnosti da reagira na određene događaje (ili alarme). Uz pomoć CloudWatch-a možemo nadgledati stanje naše novostvorene instance EC2.
BILJEŠKA : SNS je usluga temeljena na temama koju pruža AWS za slanje obavijesti. Obavijesti se mogu slati e-poštom, SMS-om, iOS / Android push obavijestima i mnogim drugim formatima.
Od praćenja do obavještavanja, CloudWatch pokušava automatizirati potrebe praćenja u nekoliko klikova. Postoji mnoštvo mjernih podataka unaprijed definiranih za razne AWS usluge. Za napredne korisnike možete čak stvoriti prilagođene mjerne podatke za svoju aplikaciju.
Što se tiče troškova, besplatna usluga usluge CloudWatch obično je dovoljna za početne projekte. Međutim, čak i kada vaše poslovanje raste, dodani troškovi obično su manji od 1 posto troškova usluge. Ček detaljne cijene za daljnje informacije. S obzirom na to kako je jednostavno postaviti sustav nadzora pomoću CloudWatch-a, postao je najčešće korišten alat za nadzor.
Kao programeri, vjerojatno smo iskusili sljedeće scenarije:
I, kao što ste već mogli pretpostaviti, ovo je još jedno značajno područje u kojem AWS pomaže. Dostupno je puno usluga na razini aplikacije, tako da nećete morati razmotriti ništa drugo.
Pokrijmo neke od njih kako bismo vam pružili brzu sliku.
Relacijske baze podataka (RDBMS) široko su prihvaćene u velikom broju aplikacija. U proizvodnom okruženju uvijek je potrebna posebna pažnja prilikom postavljanja aplikacija pomoću RDBMS-a, počevši od toga kako postaviti i konfigurirati bazu podataka, nakon čega slijede kada i kako se izrađuju i obnavljaju sigurnosne kopije.
U našem je timu naš Administrator baze podataka (DBA) provodio najmanje 30 posto svog vremena pišući skripte za postavljanje i održavanje. Uvođenjem AWS RDS , naš DBA dobio je više vremena za podešavanje SQL performansi, što je preferirano područje u koje možete uložiti svoj DBA.
Pa, što vam nudi RDS? Ukratko:
Da zaključimo, RDS štedi znatnu količinu vremena što se tiče postavljanja i održavanja usluga baze podataka. U zamjenu ćete platiti oko 40 posto više od odgovarajućeg EC2 poslužitelja. Dakle, poslovna je odluka hoćete li se odlučiti za RDS ili sami implementirati odgovarajući poslužitelj. Međutim, omogućuje vam da uložite više vremena u posao koji je povezan sa stvarnim poslovanjem, a ne stabilnošću infrastrukture i skalabilnošću. Osim toga, uskoro ćete primijetiti da je to način poslovanja koji zagovaraju AWS.
NoSQL je omiljena tema posljednjih godina. Budući da mnogim projektima iz stvarnog života nije potrebna podrška različitih relacijskih DBMS-a, na tržište je uveden popis NoSQL baza podataka. Amazon u tome ne zaostaje. DynamoDB (https://aws.amazon.com/dynamodb) trgovina je ključnim vrijednostima koju je Amazon najavio 2012. godine, a glavni doprinos ovoj usluzi je Werner Vogels, tehnički direktor Amazona, jedan od najboljih svjetskih stručnjaka za ultra- skalabilni sustavi.
Nije tajna da se Amazon bavi masovnim prometom. DynamoDB je izveden iz Dynama, koji je bio interni mehanizam za pohranu mnogih Amazonovih tvrtki, uključujući i uslugu košarice koja svakog Božića služi milijardama zahtjeva. DynamoDB nema ograničenja u povećanju.
Nadalje, u usporedbi s drugim NoSQL rješenjima, poput Cassandre ili MongoDB-a, postoji ogromna ekonomska prednost za DynamoDB; naplaćuje se u jedinici rezerviranog protoka (koliko je dopušteno pisanja / čitanja u sekundi), koje se može povećati ili smanjiti u stvarnom vremenu. Ispod je tablica usporedbe troškova između DynamoDB-a i drugog samostalnog NoSQL rješenja:
Poslovna potreba | Usluga DynamoDB | DynamoDB trošak | Korištenje druge usluge | Cijena prilikom korištenja druge usluge |
Mali posao (manje od 1000 DAU, 16 GB podataka) | 10 jedinica za pisanje 10 jedinica za očitavanje | 9,07 USD mjesečno • | t1.micro •• EBS od 16 GB ••• | 14,64 USD / mjesečno |
Srednje poslovanje (manje od 100.000 DAU, podaci od 160 GB) | 100 jedinica za pisanje 100 jedinica za očitavanje | 101,62 USD / mjesečno | m4.xlarge EBS od 160 GB | 190,95 USD / mjesečno |
Veliko poduzeće (do 1m DAU, 1TB podataka) | 1000 jedinica za pisanje 1000 jedinica za očitavanje | 852,58 USD / mjesečno | Skupljeno c4,4xlarge • 512 GB EBS • | 1329,24 USD / mjesečno |
• radi poštenosti, cijena se izračunava primjenom cijena na zahtjev u regiji US-EAST
•• instance AWS EC2 odabrane su za hostiranje drugih NoSQL usluga
••• EBS je trajna usluga pohrane koju pruža AWS
Kao što možemo vidjeti iz tablice, DynamoDB pruža svoju uslugu odmah, i obično po nižoj cijeni u usporedbi s izgradnjom vlastite pohrane ključ-vrijednost. To je zato što, ako ne dosegnete maksimalni kapacitet klastera MongoDB / Cassandra, plaćate više za nešto što nikada ne koristite.
Amazon nudi svoju uslugu na potpuno upravljan način. To znači da ne morate brinuti kako postaviti, prilagoditi ili nadzirati svoj DynamoDB; sve ih radi AWS. U stvari, čitanje i pisanje DynamoDB stavki uvijek se mjeri u stalnoj vremenskoj složenosti, bez obzira na veličinu podataka kojima se manipulira. Stoga su neke aplikacije odlučile odbaciti slojeve predmemorije nakon što su prešle na DynamoDB. Nevjerojatno, zaista.
Kada radimo s velikim količinama podataka, često distribuiramo izračune na mnoge računalne čvorove. Kada poslujemo globalno, često nam je potreban cjevovod za obradu podataka prikupljenih od čvorova distribuiranih u geografski širokom rasponu. Kako bi ispunio zahtjeve za takve događaje, AWS uvodi SQS, jednostavnu uslugu čekanja. Kao i mnoge priznate usluge u redu čekanja, SQS nudi način za uporno prosljeđivanje poruka / poslova između različitih logičkih komponenata.
Kao što mu samo ime govori, SQS je osnovna usluga koja je dostupna na početku AWS-a. Međutim, Amazon kontinuirano razvija SQS, a ovisno o potrebi, SQS je možda jednostavan ili moćan koliko vam treba s mnogim prilagodljivim parametrima. Neke od naprednih značajki SQS-a su:
Usluge čekanja ne bi trebale biti previše komplicirane. Možda se pitate zašto vrijedi koristiti cijeli odjeljak samo za uvođenje SQS-a. Možda ste već pogodili razlog; kao i ostale AWS usluge, SQS je potpuno upravljana usluga, što znači:
S3 je skraćenica od Simple Storage Service i poput Dropboxa kao usluge za krajnjeg korisnika, ali ovo je za aplikacije. Po definiciji, S3 je objektno pohranjena pohrana s jednostavnim web sučeljem.
S3 je jednostavan za korisnika, ali ima i puno naprednih značajki. I S3 postao je industrijski standard, posebno za aplikacije koje koriste druge AWS usluge. To je uglavnom zbog toga što je S3 tako lako integrirati da je postao popularno vanjsko odredište za pohranu većine AWS usluga. Također, mnoge usluge, poput DynamoDB, SQS i tako dalje, interno intenzivno koriste S3.
Razumijevanje S3 treba pojačati prednosti korištenja drugih usluga kojima upravlja AWS. To je zato što većina usluga svoje sigurnosne kopije pohranjuje na S3. Također, S3 je uobičajeno odredište za izvoz / uvoz usluga, uključujući, ali ne ograničavajući se na, DynamoDB, RDS i Redshift.
Napokon, S3 je poput ostalih AWS usluga; njime se u potpunosti upravlja, tako da možemo jednostavno početi koristiti uslugu bez postavljanja bilo kakvih poslužitelja ili mehanizama za preusmjeravanje. Ekonomično, S3 je također plaća dok koristite uslugu, tako da ga uvijek možete isprobati bez puno troškova.
Postoje i mnoge druge AWS usluge koje također vrijedi napomenuti. Zbog ograničenog prostora ovdje navodimo samo neke zanimljive:
Mislim da je dobra navika provjeravati AWS kad god uvodite neku novu komponentu u svoju aplikaciju. AWS će vam najčešće pružiti slatko iznenađenje jer će imati spremnu SaaS alternativu.
Nadalje, kako bi olakšao pristup RESTful sučeljima, Amazon je pružio SDK-ove na gotovo svim popularnim programskim jezicima. Ne biste trebali imati problema s pronalaženjem svog favorita SDK .
U ovom smo članku pokrili neke od najčešće korištenih usluga AWS-a. Sigurno postoje neka područja koja će AWS pomoći vašem poslu. Možete odabrati migraciju postojeće komponente usluge na njezin ekvivalent AWS-a, kao što je MySQL baza podataka na RDS, na primjer. Možda se pitate postoji li AWS usluga za ovu komponentu mog softvera? Dakle, nabavite AWS račun već danas i povećajte produktivnost za nekoliko minuta.
Povezano: