Reprezentace síťové infrastruktury v Amazon Elastic Cloud - EC2 API a možnosti jeho využití
Úvod Amazon se rozhodl v roce 2006 z důvodu nadbytečné technologie, kterou nakoupil, aby vykryl špičky na svých serverech, tuto technologii pronajímat svým zákazníkům. Tuto pronajímá jako cloud. Amazon Cloud je postaven kompletně na virtualizaci Vmware. VMware nabízí ke své virtualizaci i administrační rozhraní vCloud. Amazon si však po čase vytvořil vlastní administrační rozhraní.
Amazon AWS Amazon Web Services (AWS) je sada vzdálených služeb, které dohromady tvoří platformu pro Cloud computing nabízenou přes internet společností Amazon.com od roku 2006. Mezi nejdůležitější a nejznámější z těchto služeb jsou Amazon EC2. Amazon Elastic Compute Clud (EC2) je centrální část této platformy a umožňuje si pronajmout virtuální počítače, na kterých můžete provozovat své aplikace. EC2 umožňuje škálovatelné nasazení aplikací například i tím, že je možné spustit instanci virtuálního počítače prostřednictvím webové služby. Uživatel může vytvořit, spustit a ukončit instance serveru podle potřeby, přičemž se spotřebovaná výkonová kapacita aktivního serveru účtuje na hodinové bázi.
IaaS IaaS – Infrastructure as a service – infrastruktura jako služba je, jak již název napovídá, poskytování hardwarové infrastruktury, jako výpočetních stanic, diskové kapacity, aniž by konzument věděl, kde přesně se fyzická zařízení nacházejí a přistupoval k nim pouze srze Internet. Například místo, aby si nakoupil server s diskovým polem o určité kapacitě a ten pak někde zapojil, nastavil a spravoval, pronajme si takovou kapacitu u některého poskytovatel IaaS a data na toto úložiště ukládá prostřednictvím Internetu. Podobné je to u počítačů, namísto jejich fyzického pořízení a spravování, vytvoříme virtuální stroj, který budou reprezentovat jeho kvalitativní charakteristiky jako instrukční sada, počet výpočetních jader, jejich výkonnost či paměť, a na ten pak nahrajeme systém a aplikace, jako na fyzický disk, ovšem k interakci využijeme pouze Internet.
Výhody • •
Přenesení správy a konfigurace fyzických zařízení na poskytovatele Možnost rychle reagovat a efektivně na aktuální potřeby, například pořídit si několik desítek tisíc virtuálních výpočetních jednotek pouze na několik týdnů. Toto by se dalo použít například pro renderování animace reklamních spotů či filmů. Nižší ekologická zátěž na jednotku výkonu. Ve velkém globálním měřítku a díky využívání virtuálních strojů je možné pro poskytovatele infrastruktury udržovat optimální vytížení celého systému. Možnost využití technologií, které vyžadují expertní znalosti nebo jsou neekonomické pro nasazení v malém. Například diskové kapacity s velmi vysokou spolehlivostí. Přesun nákladů z fixních na variabilní.
Nevýhody • Omezení kontroly nad hardwarem. Poskytovatel většinou nabízí unifikovaná řešení a využití konkrétního typu hardwaru není možné. • Přenesení důvěry na poskytovatele v otázce zabezpečení dat. • Významná závislost spolehlivosti poskytovatele služeb. • Závislost přímého využívání hardware na internetovém připojení. • Různá technická omezení. Například nemožnost provozovat několik virtuálních serverů v jedné lokální podsíti a nefungující multicast.
Amazon Elastic Compute Cloud – EC2, je služba typu IaaS, která poskytuje flexibilní přístup k využívání výpočetních jednotek s instrukční sadou Intel x86 (případně s jejím 64 bitovým rozšířením),
které se označují pojmem instance. Flexibilním přístupem se myslí možnost zarezervovat a spustit či zrušit libovolnou instanci v rámci EC2 v řádu jednotek až desítek minut. Faktické použití takovýchto instancí spočívá spuštění obrazu virtuálního stroje, což je datový soubor obsahující nakonfigurovaný operační systém spolu s požadovanými aplikacemi, na virtuálním hardwaru, který určují pouze základní výkonnostní parametry, které jsou poskytovatelem garantovaným minimem prostředků, které budou k dispozici pro zvolený operační systém a aplikace. Vlastní realizace takovéhoto systémů využívá vizualizace hardware, kde na faktickém fyzickém stoji – serveru je umožněno provozování jednoho anebo více virtuálních strojů, které sdílí faktické fyzické prostředky. O přístup k fyzickým zdrojům, jako je výpočetní čas, operační paměť či síťová konektivita, a řízení těchto virtuálních počítačů se stará softwarová vrstva nad fyzickým hardware označovaná jako hypervisor, kde označení hypervisor plyne z faktu, že tato softwarová vrstva dohlíží a řídí (supervise) software operačních systému, který je už sám supervizorem vlastních programů a aplikací. Je dobré zmínit fakt, že ačkoliv jsou instance nezávislé z hlediska užívání služby na níže položeném hardware a veškerá charakteristiky instance jsou ryze virtuální, není zatím možné o těchto virtuálních strojích uvažovat jako o virtuálním mediu, které je kdesi v éteru a netrpí vadami fyzických zařízení. V případě EC2 totiž, pakliže dojde k selhání fyzického zařízení, kde je instance spuštěna, nebo k většímu výpadku v rámci infrastruktury datového centra poskytovatele, dojde také k selhání všech zasažených instancí a takové situace nejenže mohou nastat, ale také dříve nebo později nastanou a je nutné s nimi dopředu počítat a přizpůsobit tomu celkové nasazení systému.
Typy instancí V rámci EC2 je k dispozici několik druhu instancí, které je možné dělit podle následujících kritérií:
• Kategorie instancí: o Standardní o Mikro o S vysokým množstvím RAM o S vysokým výpočetním výkonem o Instance vhodné pro clustery CPU o Instance pro clustery GPGPU
• Škálování v dané kategorii o Záleží na kategorii, obvykle násobky 2 nebo 4 (EC2 Compute units a/nebo paměti, diskové kapacity instance)
• Způsob rezervace instance o Na požádání o Rezervované o Aukce s cenovým stropem
Normální instance (ty všechny kategorie kromě instancí pro clustery) jsou charakterizovány následujícími parametry. V případě instancí určených pro výkonné clustery pak platí, že je možné je rezervovat po skupinách, ve kterých je zaručena nízká latence a vysoká propustnost sítí. V případě GPGPU clusterů pak mají instance k dispozici grafické karty NVIDIA Tesla pro vysoce paralelizovatelné výpočty pomocí CUDA nebo OpenCl. • Normovaný výpočetní výkon udávaný v EC2 Compute units • Množství dostupné operační paměti • Lokální disková kapacita instance • Platforma (x86-32/x64) • Rezervovaná kapacita I/O EC2 Compute unit je jednotka výpočetní kapacity, která odpovídá přibližně výkonu jednoho jádra procesoru Intel Xeon z roku 2007 na taktu 1.2 GHz.
Rezervovaná kapacita instance pak určuje, jakou část sdílených prostředků síťové konektivity vázané na fyzické servery a další infrastrukturu budou mít jednotlivé instance k dispozici. Jedná se o pouze o parametr uveden relativně vůči ostatním typům.
Následující tabulka shrnuje rozdíly mezi jednotlivými typy instancí.
Kromě vlastního výkonu jsou pak instance odlišovány i způsobem jejich pořízení, případně platby. Kromě pro IaaS typického přístupu zde označovaného Na požádání – On demand, kde se náklady na provoz počítají pouze za vlastní čas běhu instance, který se akumuluje s granularitou každé započaté hodiny, jsou k dispozici ještě dvě další možnosti rezervace a platby za instance. Rezervovaná instance je kombinace „klasického“ předplacení instance na určitou dobu (1 nebo 3 roky) se zachováním platby za aktivní spuštění instance, která je pak podstatně nižší než u výše zmiňovaného přístupu Na požádání. Tato možnost je ekonomicky výhodnější pro instance, které jsou spouštěny pravidelně, případně běží stále, v rámci delší doby (rok a více).
Poslední možností je Spot instance – tedy rezervace instance podle ceny ve virtuální dražbě. Pro využití této instance je potřeba zvolit cenový strop, který jsme ochotni zaplatit za instanci za hodinu a v případě, že se v „aukčním systému“ objeví nabídka s požadovanou nebo nižší cenou za zvolenou instanci, proběhne její spuštění. Taková instance bude spuštěna do té doby, dokud bude nastavený strop vyšší nebo roven naší nabídce. V opačném případě se instance ukončí. Výhoda této možnosti je výrazně ušetření nákladů na provoz instance, průměrná úspora při využití spot instance oproti On demand byla 50%-66% v roce 2011 (v závislosti na typu instance).
Umístění kořenového disku instance Každá instance v rámci Amazon EC2 má svůj kořenový diskový oddíl ze kterého startuje umístěn buďto přímo na fyzickém serveru, kde běží, anebo v odděleném datovém úložišti Amazon Elastic Block Store – EBS. EBS je virtuální blokově orientovaná disková jednotka, která umožňuje připojit část své kapacity jako virtuální oddíl právě jedné instanci EC2. EBS je k jednotce připojeno pomocí síťové infrastruktury a proto může vykazovat využití takto připojených oddílu výkonnostní propady, zvláště pokud je na případném fyzickém serveru mnoho menších instancí nebo je k instanci připojeno více EBS oddílů. Podstatný rozdíl mezi diskovým oddílem přímo v hostitelském serveru instance a EBS je ten, že pokud dojde k selhání fyzického serveru, na kterém běží instance, dojde taky ke ztrátě veškerých dat dané instance. Podobně s „interním“ kořenovým oddílem nelze instanci zastavit a znovu spustit, jediná možnost pro zachování aktuálních dat je vytvoření obrazu (snapshot) aktuálního disku, ukončení instance a načtení nové instance z prve vytvořeného obrazu. Tímto druhem obtíží instance využívající jako kořenový oddíl EBS netrpí a je možné je zastavit a opět spustit aniž by došlo ke ztrátě dat. Amazon EBS má přibližně 10x menší poruchovost, než klasické pevné disky (AFR 0,1 – 0,5%). Tato vyšší spolehlivost však často nemusí dostačovat a je možné oddíly z EBS zapojit do RAID, což zároveň může částečně kompenzovat výkonnostní propady. Přes výše uvedené postupy však může být stále nezbytné důležité data zálohovat, ať už se jedná o databázové úložiště nebo aktuální funkční obraz instance. Tyto data lze následně buďto uložit jako další oddíly EBS nebo jako datové bloky do Amazon Simple Storage Service.
Síťová infrastruktura Amazon EC 2
Amazon Elastic MapReduce
– webová služba, která umožňuje firmám, výzkumným
pracovníkům, analytikům a vývojářům snadno a efektivně zpracovávat obrovské množství dat.
Auto Scaling – umožňuje automaticky kapacity u Amazon EC2 zvyšovat či snižovat v závislosti na definovaných podmínkách.
Elastic Load Balancing
– automaticky rozděluje aplikace připravené ke zpracování do více
Amazon EC2 instancí pro zvýšení efektivity.
Amazon CloudFront
– webová služba, která snadno a s nízkou latencí doručuje obsah
prostřednictvím světových sítí až do nejzazších míst na světě v EC2.
Amazon Relational Database Service (RDS) – webová služba, která umožňuje snadno nastavit, provozovat a škálovat relační databáze v EC2.
Amazon DynamoDB – NoSQL databáze, plně řízená s vysokým výkonem, kterou lze snadno přenastavit a provozovat.
Amazon SimpleDB – služba řízené NoSQL databáze, určená pro menší objemy dat v EC2.
Amazon ElastiCache – webová služba, která umožňuje snadno nasadit, provozovat a škálovat uložené cache soubory v EC2.
AWS Identity and Access Management (IAM) – umožňuje bezpečně řídit přístup ke službám AWS a zdrojům určených pro uživatele. Umožňuje dále vytvářet a spravovat uživatele přistupující do AWS a umožňuje přistupovat ke zdrojům pro uživatele uložených mimo AWS v podnikovém adresáři.
Amazon CloudWatch – webová služba, která poskytuje monitoring zdrojů v AWS cloudu počínaje Amazon EC2
AWS Elastic Beanstalk – velmi jednoduchý způsob, jak rychle nasadit a spravovat aplikace v AWS cloudu. Stačí pouze nahrát aplikaci a o zbytek se postará AWS Elastic.
Amazon CloudSearch – vyhledávací služba, která je plně řízená a umožňuje zákazníkům snadno integrovat rychlé a vysoce nastavitelné vyhledávací funkce přímo do aplikací.
Amazon Simple Workflow Service (SWF) – pomáhá koordinovat jednotlivé procesní kroky v aplikacích a spravovat vykonávání úloh.
Amazon Simple Queue Service (SQS) – spravuje příchozí informace a správně je řadí do front, když se posílají mezi počítači. Pomáhá tak vytvořit efektivní pracovní postupy mezi jednotlivými službami.
Amazon Simple Notification Service (SNS) – služba, jejímž účelem je snadné nastavení, manipulování a posílání upozornění z EC2 uživatelům.
Amazon Simple Email Service (SES) – služba pro vysoce nastavitelné, nákladově efektivní a transakční zasílání e-mailů skrze EC2.
AWS CloudFormation – služba, která umožňuje vývojářům a podnikům jednoduchý způsob, jak vytvořit soubor relativních zdrojů AWS a poskytovat je přehledným a intuitivním způsobem.
Amazon Route 53 – webová služba pro snadné nastavení a zpřístupnění DNS. Amazon Virtual Private Cloud (VPC) – poskytuje privátní a zcela izolovanou část služeb AWS, která je plně virtualizovaná. Takto virtuálně zprovozněná síť služeb připomíná tradiční síť, která by poté mohla být nasazena v klientském datovém centru.
AWS Direct Connect – umožňuje snadno vytvořit speciální síťové připojení v souladu s AWS, které v mnoha případech sníží náklady na samotnou síť, zvýší datovou propustnost a zlepší připojení k síti lépe než klasické internetové připojení.
Amazon ELB
Amazon ELB je virtuální prvek pro vyvažování zátěže mezi jednotlivé prvky clusteru. Výhoda použití Amazon ELB, například oproti jedné vyhrazené instanci se softwarovým řešením (například Apache.
Amazon Elastic IP server
Amazon Elastic IP server s modulem mod_proxy_balancer je kromě jednodušší konfigurace v tom, že samotný ELB není tvořen jednou fyzickou jednotkou, ale dynamicky škálovanou množinou jednotek, mezi které jsou požadavky rozdělovány na úrovni DNS v infrastruktuře Amazonu. Ačkoliv ELB podporuje techniku „sticky sessions“, v rámci využití pro systém ESB a přístupu k jeho webovým službám, které jsou bezstavové, však není konfigurace „sticky sessions“ potřebná. V Amazon EC2 je při každém spuštění jednotlivé instance přiřazeny nové privátní síťové IP adresy v rámci poskytovatelovi infrastruktury a tyto adresy jsou po dobu běhu instance neměnné. Totéž ale neplatí pro veřejné IP adresy a návazná doménová jména (která jsou pro každou instanci vytvořena), které mohou být i během provozu instance změněna. Z důvodu nutnosti mít spolehlivé a stálé připojení, ať už zvenčí (internetu) nebo v rámci providera, je k dispozici služba – Amazon Elastic IP, která jednotlivým instancím přiřadí fixní IP adresu která je vázaná na unikátní identifikátor dané instance a nemění se tedy, i když je daná instance zastavena. V případě použití Amazon ELB, však není nezbytně nutné tento postup využívat, protože skupina instancí, které jsou vyvažovány, se identifikuje nikoli privátní či veřejnou IP adresou, ale vnitřním identifikátorem instance v Amazon EC2 infrastruktuře a pro propojení instancí v rámci clusteru lze s omezením (změny při každém spuštění) využívat pouze privátní adresy instancí. Omezení při vlastní realizaci nasazení integrační platformy na instance EC2 a jejich následném clusterování bylo potřeba počítat s omezeními, které se při realizaci obdobné konfigurace v rámci serverů v lokální síti vyhneme. Protože v základní konfiguraci EC2 to ani při začlenění instancí do Amazon Virtual Private Cloud – VPC, není možné využívat broadcast nebo multicast, který je často výchozím a preferovaným prostředkem v komunikaci v clustrovaném nebo distribuovaném prostředí, které je historicky spjato s nasazováním v rámci jedné lokální sítě. Pro doplnění, VPC nabízí možnost v rámci EC2 infrastruktury vytvořit privátní síť s vlastní virtuální infrastrukturou a EC2 instancemi, což může být mimo jiné užitečné pro posílení síťové bezpečnosti instancí, protože v rámci VPC na rozdíl od běžného EC2 nejsou instance implicitně veřejně nebo v rámci celé EC2 infrastruktury dostupné a lze tak docílit toho, že je k nim přístup pouze prostřednictvím veřejné brány (zvolené EC2 instance) anebo v rámci virtuální sítě či připojením do zařízení mimo EC2 pomocí Amazon VPN Gateway.
Využití Amazon EC2 a Závěr
Příkladem užitečného využití Amazon EC2 je například v oblasti webů, kde je možnost pronajmout si na určitý čas určité množství serverů, což je užitečné ve chvíli, kdy očekáváte návštěvnickou špičku. O běžný provoz se pak může starat běžně placený server. Nemusíte nakupovat hardwarovou výbavu, která špičku zvládne kvůli dvěma dnům v roce. Pro domácí použití je Amazon EC2 je technologické řešení, které jednak pohodlné, bezpečné a často podstatně levnější než klasické instalované řešení. Nejde přitom jen o samotné licence (zde by nebyla úspora taková), ale i o cenu elektrické energie (zvláště u větších firem je provoz serveru drahou záležitostí), cenu hardware - nejen serveru, ale i výkonnějších stanic - a cenu obsluhy. Další výhodou je zálohování dat - šance, že přijdete o data u Amazon jsou naprosto minimální. Pokud ale máte záložní server ve stejném městě či budově, jako máte firmu, bude povodeň či požár problém. U Amazon EC2 a obecně u cloud computingu nemusíte často nijak složitě budovat vnitřní síť, sdílené disky a další obtížné věci, stačí mít k dispozici dobře zabezpečenou síť s přístupem na internet. K tomu se připojují i další výhody, jako je možnost práce z cest či z domu, snazší sdílení dat a kooperace a mnohé další. Důkazem toho, že se těmto technologiím daří, může být to, že se očekává dvojnásobný nárůst těchto technologií během letošního roku ve firmách. A to nejen malých, ale i těch středních a větších. Největší benefity ale Amazon EC2 cloud computing přináší zřejmě především menším firmám, které ušetří v poměru k počtu zaměstnanců nejvíce. S rozmachem netbooků přicházejí tyto aplikace v cloud computingu stále více do módy.
Použité zdroje: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html?r=6341 http://aws.amazon.com/ec2/ http://aws.amazon.com/ec2/spot-instances/ http://aws.amazon.com/ebs/.