Hlavní navigace

Amazon AWS

23. 4. 2010
Doba čtení: 6 minut

Sdílet

 Autor: 29
Společnost Amazon není třeba ani v ČR nijak zvlášť představovat. Tento webový kolos není jen pravděpodobně největší internetový obchod, ale je také jedním z prvních poskytovatelů komerčních cloudových služeb, v tomto případě označovaných zkratkou PaaS - Platform as a Service.

Jděte se už s tím buzzwordem vycpat!

Slovo „cloud“ se v posledních letech skloňuje v IT všude možně a stalo se populárním termínem, kterým se ohání každý, kdo chce být „in“. Pravděpodobně ho postihne stejný osud jako třeba před patnácti lety populární slovo „multimediální“ – byly „multimediální sestavy“, „multimediální aplikace“, „multimediální systémy“, dokonce i „diskety vhodné pro ukládání multimédií“. Není divu, že je na toto slovo kdekdo alergický: od čtenářů odborných periodik po vývojáře. Ostatně není divu – cloud se stal povinnou součástí slovníku lidí, kteří o technologiích nevědí zhola nic („Naše stránky musí být komunitní, musí na nich být SEO a musí běžet v cloudu! A doufám, že je uděláte v HTML, o tom jsem teď četl, že to je hodně používané…“) Pod termín cloud je v poslední době zahrnováno leccos, často i věci a techniky, které s cloudem nemají nic společného. Asi nejpřesnější českou definici cloudu formuloval Jan Kodera: „Cloud computing označuje souhrnně technologie a postupy používané v datových centrech a firmách pro zajištění snadné škálovatelnosti aplikací dodávaných přes Internet.“

Na první pohled jsou služby podobné např. VPS – virtuálním serverům, minimálně z pohledu zákazníka: Někde má „vlastní“ server, má k němu přístup přes SSH, může si nainstalovat vlastní OS a software… Odlišnost je právě v tom, co je zdůrazněno ve výše uvedené definici: Cloud podporuje snadné škálování – a to nejen škálování výkonu, který lze za běhu zvyšovat či snižovat, ale i prostoru či dalších prostředků. U VPS vám poskytovatel vytvoří vlastní virtuální server s předem smluvenými parametry. Pokud je potřeba je za chodu změnit, nebývá to triviální. Můžete si relativně snadno zvýšit či snížit např. velikost operační paměti, ale pokud přijdete s tím, že potřebujete nárazově stonásobný prostor na disku, nebo že chcete na tři dny zvednout výkon na dvacetinásobek, bude s tím pravděpodobně problém. Stejně tak bude pravděpodobně nejmenším časovým obdobím pronájmu jeden měsíc – u cloudů je naproti tomu běžné platit za hodiny.

U cloudových služeb je důraz kladen právě na snadné přizpůsobení parametrů. Můžete se na cloud dívat jako na neomezeně výkonný server, z něhož si vezmete tolik, kolik právě potřebujete a tehdy, kdy potřebujete. Navíc platíte pouze za skutečně využitý výkon, čas, prostor, služby… Nemusíte si tak kvůli např. každoměsíčním nárazům pořizovat předimenzovaný tarif. Ano, není to nic nového pod sluncem – koncept pronájmu strojového času pochází už z dob úsvitu počítačů. Přesto však nelze říct, že cloud je jen jiné slovo pro pronájem strojového času.

Amazon Web Services

Za komerčním pronájmem strojů od Amazonu stojí údajně Vánoce. V Amazonu totiž zjistili, že nápor na jejich servery v období před Vánoci mnohokrát přesahuje průměr ve zbytku roku. Proto svou infrastrukturu naddimenzovali tak, aby zvládla nápor předvánočního šílenství, ovšem vyvstala otázka: Co s touto obrovskou kapacitou po zbytek roku? Představa, že se hardware za miliardy dolarů jen tak válí a zbůhdarma žere energii, Amazon oprávněně děsila. Proto padlo rozhodnutí pronajímat tuto kapacitu jiným subjektům, čímž byl položen základ k dnešním AWS, neboli Amazon Web Services.

AWS se skládají z několika částí, které si mohou zákazníci pronajmout nezávisle na sobě. Pronájem má tu příjemnou vlastnost, že se platí jen za zkonzumovanou službu. Tedy například za strojový čas, za přenesená data, za diskovou kapacitu,… Což má v porovnání s klasickými službami tu výhodu, že si zákazník může objednat jen to, co opravdu potřebuje. Například velký diskový prostor s relativně malou výpočetní kapacitou pro službu na ukládání souborů, nebo naopak silný výpočetní výkon a minimum diskové kapacity pro aplikace náročné na počítání. Dalším obrovským plusem je to, že není třeba předem přesně znát náročnost aplikace – kdykoli lze pružně přidat další virtuální server či zvětšit kapacitu. Vyhneme se tak situacím, kdy máme buď předimenzovaný server, který není využitý, protože návštěvnost webu je menší, než jsme počítali, nebo naopak výpadkům služby kvůli nedostatečnému výkonu; rovněž vykrytí sezónních výkyvů je mnohem snazší.

Amazon ve svých Web Services nabízí např. úložiště S3 (Simple Storage Service), které nabízí „neomezený“ úložný prostor a službu CDN – Content Delivery Network, při níž jsou data kopírována do uzlových serverů po celém světě a uživatelům jsou vždy poskytována z nejbližšího uzlu. Další klíčovou službou je EC2 (Elastic Computer Cloud), která nabízí virtuální servery. AWS dál nabízí dvě databázové služby, SimpleDB (jednoduchá key-value databáze) a nedávno spuštěná RDS (Relational Database Service). Náročnějším zákazníkům nabízí vlastní privátní cloud, load ballancer, fulfillment service (službu kompletace zásilek a distribuce k zákazníkům), platební brány a další služby, včetně např. „pronájmu pracovní síly“, kdy si můžete pomocí služby Mechanical Turk najmout lidi k tomu, aby dělali práci, kterou stroj nezvládne – například pro ohodnocení relevance výsledků vyhledávání nebo např. k výběru vhodných ilustračních fotografií k výrobkům.

Pro všechny tyto služby existuje dokumentované aplikační rozhraní (API), takže je možné jejich provoz řídit programově – např. podle potřeby spouštět další servery. Jen s malou mírou nadsázky lze napsat, že pokud aplikace potřebuje nějakou náročnou operaci, nemusí vytvářet nový proces, ale může si nechat vytvořit rovnou celý nový počítač, který spočítá potřebné, vrátí výsledky a zase se zruší – a pokud je třeba takových operací provést sto najednou, lze vytvořit sto virtuálních počítačů.

Použití AWS

Z výše napsaného by mohl někdo usoudit, že použití takových služeb je procházka růžovou zahradou, kde svítí stále slunce a vše je výborné, ale jestli chcete stěhovat svůj e-shop s pěti tisíci návštěvníky denně na cloud, zadržte! Nemá to totiž smysl.

Vše, co jsme si výše o AWS a cloudech řekli, je sice pravda, všechny ty výhody existují, ale na malém e-shopu se neprojeví. Ani na katalogu stránek, ani na blogu. Skutečnou výhodu takové služby oceníte až jako provozovatelé opravdu velké služby. Takové, pro kterou plánujete např. nákup pěti serverů a pronájem tří linek. Pak má smysl zabývat se vážně myšlenkou využití cloudu.

Když se mě někdo ptá na příklad, kdy má smysl u českého webu začít využívat nějaké cloudové služby, odpovídám: Pokud má vaše webová aplikace problémy s přenosovou kapacitou a vy zjistíte, že většinu přenosů tvoří statické soubory (videa, obrázky, neměnné CSS apod.).Typicky videoservery nebo fotobanky. U takových webů je na místě zvážit využití nějaké obdoby datového úložiště S3 (např. známý Twitter takto donedávna řešil zobrazování všech obrázků a avatarů).

MM AI t

K tomu, aby web využil všech výhod cloudů, tedy především snadného horizontálního škálování výkonu i kapacity, je navíc zapotřebí, aby byl už od počátku navržen pro paralelní zpracování úloh. Aby v aplikaci nebyla kritická místa – nějaké „centrální uzly“ či procesy, které nelze dělat najednou na více místech. Už při návrhu je potřeba počítat s tím, že vyšší výkon nebude získáván silnějším hardwarem, ale větším počtem samostatných serverů, a stavět aplikaci tak, aby například nekonzistence dat (tzn. v jednom okamžiku mohou dva různé servery dostat z databáze různé údaje) neohrozila chod či nepředstavovala principiálně havarijní stav.

Amazon Web Services má, stejně jako další velké cloudy (GoGrid, Rackspace, AppEngine), řadu výhod, které lze ale ocenit a využít pouze při určité změně pohledu na webovou aplikaci. Cloud neznamená „velký server“, ale „spousta malých“ – je potřeba změnit přístup, při němž se spoléhá na to, že lze koupit „silnější železo“. Od určité hranice je cena za dvojnásobně výkonnější stroj vyšší než cena dvou strojů. Tato hranice je ale poměrně vysoko, rozhodně výš, než kam dosáhne naprostá většina českých serverů, a české služby, které by opravdu využily pozitivní efekty cloudu, se dají počítat na desítky. Přesto i pro ty další mohou být některé služby, které cloudy poskytují, užitečné. Nejdůležitější pravidlo tu, stejně jako u dalších populárních technologií, zní: Nepřeceňovat možnosti, ani je nepodceňovat nebo iracionálně „nesnášet“ jen proto, že „o tom všichni mluví“. Cloud je jen technika, a za pár let, až vyvane étos žhavé novinky, nezmizí, ale stanou se běžnou součástí internetové infrastruktury, stejně jako hostingy nebo VPS.

Plánujete využít cloudových služeb?

Byl pro vás článek přínosný?

Autor článku

Sleduje, popularizuje a učí moderní webové technologie (HTML5 a podobné). Popularizuje nové nástroje a elektroniku, provozuje weby, sleduje dění na internetu, píše o něm a komentuje ho.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).