V minulosti byl výpočetní výkon závislý na lokální hardwarové infrastruktuře. Dnes, pokud je vaše softwarové řešení umístěno v cloudu, tuto roli přebírá webová služba Elastic Compute Cloud (EC2).
EC2 přináší do cloudového prostředí flexibilní výpočetní kapacitu. Uživatelé si mohou pronajmout virtuální servery, takzvané instance, na kterých provozují své aplikace. Tyto instance mohou mít různé konfigurace, operační systémy, výpočetní sílu a kapacitu úložiště.
EC2 je klíčovou součástí Amazon Web Services (AWS). Proto je široce využíván pro téměř jakoukoli implementaci projektu v cloudu. Výjimkou jsou situace, kdy hledáte architekturu bez serveru, kde EC2 naopak není vhodnou volbou.
Základní komponenty EC2
Zdroj: docs.aws.amazon.com
Každá EC2 instance, kterou si pro svůj projekt zvolíte, se skládá z několika dalších komponent AWS, které definují přesné parametry vaší konfigurace.
#1. Instance
EC2 instance představuje cloudovou obdobu virtuálního serveru. Můžete si ji vytvořit a spustit v různých konfiguracích. Je nutné definovat operační systém a také výkonnostní parametry instance, jako je počet CPU a velikost RAM.
Dále je možné určit velikost úložné kapacity, která bude trvale připojena k EC2 instanci.
#2. Amazon Machine Images (AMI)
AMI je předkonfigurovaná šablona, která obsahuje všechny potřebné informace pro úspěšné spuštění instance. Zde specifikujete, na jakém operačním systému chcete spouštět aplikace, jak bude vypadat aplikační server a jaké konkrétní aplikace se mají instalovat.
#3. Elastic Block Store (EBS)
Tato služba poskytuje trvalé úložiště, které lze využít s EC2 instancí. Zde se ukládají všechna aplikační data i zákaznická data, jakmile jsou aplikace na EC2 instancích používány.
#4. Bezpečnostní skupiny
Pro každou EC2 instanci je nutné nastavit řízený bezpečnostní přístup. To platí pro komunikaci z vnějšího prostředí do EC2 instance (odchozí provoz), i mezi službami AWS uvnitř vaší cloudové infrastruktury (příchozí provoz).
#5. Klíčové páry
Pro zvýšení bezpečnosti se generují páry veřejného a soukromého klíče, které se používají pro bezpečné připojení k EC2 instancím.
#6. Elastické IP adresy
Pro přístup k nové EC2 instanci z internetu nebo pro její referencování v rámci cloudové infrastruktury je nutné instanci přiřadit statickou IP adresu. Tímto krokem se virtuální server s EC2 instancí stává dostupným.
#7. Skupiny umístění
S jejich pomocí lze vytvářet logická seskupení instancí, která jsou navržena tak, aby poskytovala vysokorychlostní síťová připojení s nízkou latencí. To slouží organizačním i výkonnostním účelům.
#8. Automatické škálování
Jedná se o službu, která je unikátní mezi různými poskytovateli cloudu. Automaticky upravuje počet EC2 instancí ve skupině na základě aktuálních potřeb. To znamená, že po aktivaci automatického škálování lze vaše EC2 instance násobit nebo hardwarově posilovat, aby zvládly zvýšenou poptávku.
Naopak, lze je snížit, pokud je poptávka nižší než obvykle. Hlavním důvodem je zajištění plynulého chodu během špiček a také úspora nákladů, když není potřeba velký výpočetní výkon.
#9. Load Balancery
Jednoduše řečeno, jde o službu, která rozděluje příchozí provoz mezi více EC2 instancí, čímž zvyšuje dostupnost a škálovatelnost.
#10. Virtuální privátní cloud (VPC)
VPC je logicky oddělená virtuální síť, která poskytuje bezpečné a izolované prostředí pro EC2 instance. Můžete seskupovat různé EC2 instance do stejné nebo různých VPC a následně definovat pravidla pro příchozí a odchozí provoz mezi VPC, a tedy i mezi různými EC2 instancemi ve vaší cloudové infrastruktuře.
Často je potřeba, aby některé EC2 instance byly soukromé a dostupné pouze pomocí kódu vaší aplikace. Zároveň jiné instance potřebujete zpřístupnit internetu. VPC je pro to ideální řešení.
Hlavní charakteristiky EC2
Zdroj: aws.amazon.com
EC2 instance poskytují škálovatelnou výpočetní kapacitu v cloudu AWS. Firmy mohou rychle spustit virtuální stroje s potřebným výpočetním výkonem a úložnou kapacitou bez nutnosti investovat do fyzického hardwaru. To je klíčový přínos cloudové infrastruktury a EC2 v tomto procesu hraje významnou roli.
EC2 instance se obvykle používají k hostování různých aplikací nebo webových stránek v cloudu. Můžete je využít k uspokojení jakékoliv pracovní zátěže, ať už se jedná o dávkové zpracování, požadavky na zpracování v reálném čase nebo webové a mobilní aplikace.
Spektrum úloh, pro které můžete EC2 využít, je prakticky neomezené. Možná budete potřebovat velký výkon pro zpracování dat, strojové učení nebo hry. Nebo budete potřebovat další vývojová a testovací prostředí pro vaši infrastrukturu. V takových případech můžete naplno využít výhod EC2 instancí.
Nejlepší na tom je, že instance můžete zničit a znovu vytvořit, kdykoli je potřebujete. Tím ušetříte náklady na vývojovou a testovací infrastrukturu v době, kdy ji nepotřebujete. Zrušení a opětovné vytvoření instancí na vyžádání má samozřejmě i mnoho dalších využití pro podnikání.
Základy cloud computingu
Vzhledem k tomu, že jsme již mluvili o EC2, může být užitečné se podívat na základy cloud computingu.
Cloud computing je model pro poskytování výpočetních zdrojů přes internet na vyžádání. Umožňuje přístup k výpočetnímu výkonu, infrastruktuře a aplikacím bez nutnosti investovat do fyzického hardwaru. Cloud computing se opírá o několik základních principů:
- Uživatelé mají samoobslužný přístup na vyžádání. Servery a úložiště jsou k dispozici bez zdlouhavého procesu nákupu.
- Ke cloudovým zdrojům lze přistupovat odkudkoli a z jakéhokoli zařízení (notebooky, stolní počítače, tablety, mobilní telefony).
- Výpočetní zdroje nebo celá infrastruktura jsou sdílené a dynamicky přidělované podle aktuálních požadavků.
- Libovolné zdroje lze rychle zvětšit nebo zmenšit podle aktuální poptávky.
- Cloud computing funguje na principu průběžného cenového modelu, kdy uživatelé platí pouze za reálně využívané zdroje. Využití lze sledovat v reálném čase.
Servisní modely cloud computingu
Cloud computing má tři základní servisní modely:
Modely nasazení cloud computingu
Cloud computing se také liší podle způsobu nasazení a přístupu ke zdrojům:
Elasticita EC2
Zdroj: aws.amazon.com
Elasticita je klíčovou vlastností cloud computingu. Znamená schopnost cloudové infrastruktury dynamicky přidělovat a odebírat výpočetní zdroje v reakci na měnící se potřeby. S elasticitou můžete škálovat infrastrukturu nahoru nebo dolů, bez nutnosti investovat do fyzického hardwaru.
S elasticitou úzce souvisí škálovatelnost, což je schopnost systému zvládat rostoucí objem zátěže nebo provozu bez poklesu výkonu.
Příkladem je situace, kdy vaše webová stránka zaznamená neobvykle vysokou návštěvnost kvůli uvedení nového produktu. V takovém případě se aktivuje škálovatelnost a zvýší se všechny zdroje i výkon, aby byl vysoký provoz zvládnut.
Škálovatelnost se dosahuje využitím elastických prostředků, jako jsou virtuální stroje, úložiště a sítě, které lze snadno škálovat nahoru nebo dolů.
Automatické škálování je pak pokročilá funkce, která automatizuje proces škálování na základě předem definovaných očekávání zátěže. Automaticky upraví počet využívaných výpočetních zdrojů podle aktuální poptávky. Nemusíte tak zdroje sledovat a upravovat ručně. Škálování zdrojů nahoru nebo dolů může být založeno na různých metrikách, jako je využití CPU, síťový provoz nebo doba odezvy aplikace.
Zdroje se alokují dynamicky a v reálném čase, což umožňuje optimalizovat využití infrastruktury. Zdroje přidělujete pouze tehdy, když je potřebujete, a uvolňujete je, když už je nepotřebujete.
Dynamická alokace zdrojů je klíčovou vlastností cloud computingu, protože umožňuje dosáhnout vysoké úrovně využití a efektivity při současné minimalizaci nákladů.
Výhody EC2
Některé z hlavních výhod EC2 jsou již nyní zřejmé. Pro ucelený přehled je však důležité zmínit následující:
Flexibilita
S EC2 můžete snadno škálovat výpočetní zdroje nahoru nebo dolů podle aktuální úrovně zátěže. Spouštějte nebo rušte instance dle potřeby. Pozastavujte a restartujte instance, kdykoli se vám to hodí. Mějte jistotu, že máte vždy zálohu pro případ, že by se něco pokazilo.
Efektivita nákladů
Díky flexibilitě můžete ušetřit náklady na infrastrukturu. Pokud je správně nastaveno, vaše EC2 instance se spustí a ukončí ve správný čas. Vyhnete se tak nákladům spojeným s nevyužitými zdroji.
Vysoká dostupnost
S EC2 získáte vysoce dostupnou infrastrukturu, která minimalizuje prostoje a zajišťuje, že aplikace a služby jsou vždy k dispozici.
Spolehlivost
EC2 poskytuje spolehlivou infrastrukturu, která je navržena tak, aby fungovala bez přerušení a zajistila, že vaše aplikace a služby jsou vždy dostupné a efektivní.
Přístupnost
Můžete mít přístup odkudkoli pomocí stolních počítačů, notebooků, tabletů nebo chytrých telefonů. Máte také plnou kontrolu nad omezeními přístupu.
Celosvětový dosah
EC2 je k dispozici v mnoha regionech po celém světě, takže můžete nasazovat aplikace a služby blíže vašim zákazníkům a dodržovat místní předpisy o ochraně osobních údajů.
Agilita
Získáte agilní infrastrukturu, která vám umožňuje rychle reagovat na změny na trhu a inovovat.
Zabezpečení dat
EC2 vám poskytuje bezpečnou infrastrukturu, která je navržena tak, aby chránila data a aplikace před neoprávněným přístupem a kybernetickými hrozbami.
Dodržování předpisů
EC2 splňuje celou řadu průmyslových standardů a předpisů, včetně HIPAA, PCI DSS a GDPR.
Spolupráce
EC2 poskytuje prostředí pro spolupráci, které týmům umožňuje pracovat na projektech a sdílet zdroje i data.
Výzvy spojené s EC2
Při používání EC2 byste si měli být vědomi i určitých problémů.
#1. Řízení nákladů
Nákladový model AWS je složitý a ceny EC2 nejsou výjimkou. Musíte pečlivě spravovat své využití, abyste se vyhnuli neočekávaným nákladům, a mít připravené spolehlivé nástroje pro nepřetržité sledování. Můžete využít nástroje pro optimalizaci nákladů, jako je AWS Cost Explorer nebo AWS Trusted Advisor.
#2. Bezpečnost
I když EC2 poskytuje bezpečnou infrastrukturu, stále nesete odpovědnost za zabezpečení vašich aplikací a dat. Měli byste implementovat osvědčené postupy pro zabezpečení, jako je používání silných hesel, šifrování dat a implementace řízení přístupu.
#3. Dodržování předpisů
Při používání EC2 musíte zajistit soulad s průmyslovými standardy a předpisy. Je proto důležité pravidelně kontrolovat dokumentaci shody AWS a spolupracovat s odborníky na dodržování předpisů, abyste zajistili, že splníte požadavky vašich klientů.
#4. Výkon
Výkon EC2 může být ovlivněn různými faktory, jako je latence sítě, diskové I/O nebo využití CPU. Systematicky sledujte výkon vaší infrastruktury a využívejte nástroje pro optimalizaci výkonu, jako jsou AWS CloudWatch a AWS X-Ray, k identifikaci a řešení problémů.
#5. Dostupnost
Je sice pravda, že EC2 poskytuje vysoce dostupnou infrastrukturu, ale přesto musíte zajistit, aby i vaše aplikace a služby byly navrženy pro vysokou dostupnost. K tomu můžete využít služby AWS, jako je elastické vyvažování zátěže nebo automatické škálování.
#6. Přenosy dat
Při používání EC2 mějte na paměti náklady na přenos dat, protože přenos dat mezi instancemi EC2 a dalšími službami AWS může být zpoplatněn. Nejedná se přitom pouze o výměnu dat mezi vaší infrastrukturou a internetem. Pro minimalizaci nákladů na přenos dat můžete využít Amazon S3 a Amazon CloudFront.
#7. Uzamčení dodavatelem
Uvědomění si možnosti uzamčení dodavatelem při používání EC2 by mělo být na vašem seznamu priorit. Navrhujte aplikace a služby tak, aby byly přenositelné mezi poskytovateli cloudu, a používejte otevřené standardy a API pro zajištění interoperability. Tímto způsobem se vaše řešení stane cloudově agnostickým a získáte další vrstvu flexibility, která je stále významnou tržní výhodou.
EC2 a budoucí trendy
Zdroj: aws.amazon.com
Zajímá vás, jaké budoucí trendy a inovace budou utvářet budoucnost EC2? Zde jsou některé z nich.
Bez serveru
Bezserverový computing je stále relativně novým paradigmatem, i když je již několik let implementován některými z nejprogresivnějších vývojářských týmů. Vývojáři spouštějí kód bez nutnosti spravovat servery nebo infrastrukturu. AWS Lambda nebo AWS Step Functions jsou příklady bezserverových výpočetních služeb, které lze postavit na EC2.
Strojové učení
EC2 je ideální infrastruktura pro spouštění modelů strojového učení, predikcí a výpočetních úloh. Během několika minut můžete generovat působivě velká datová jezera predikčních modelových dat. AWS navíc poskytuje řadu služeb strojového učení, jako jsou Amazon SageMaker a Amazon Rekognition, které jsou postaveny na EC2.
Edge Computing
Edge computing je nové paradigma v cloud computingu, které se zaměřuje na zpracování dat blíže ke zdroji, spíše než v centralizovaném datovém centru. To znamená, že rozsáhlá data načítáte v místě, kde jsou generována. Následně, pomocí různých cachovacích služeb, přenesete data do centrálního úložiště, aniž by to mělo vliv na operace uživatele. AWS nabízí řadu služeb edge computingu, jako je AWS Greengrass a AWS IoT, které lze nasadit nad EC2.
Kontejnerizace
Kontejnerizace je strategie balení aplikací a služeb do kontejnerů, které lze snadno nasazovat a spravovat. Získáte jistotu kompatibility, když je potřeba přenášet služby mezi instancemi nebo infrastrukturami. AWS nabízí řadu služeb kontejnerizace, jako jsou Amazon ECS a Amazon EKS, které jsou postaveny na EC2.
Kvantové počítání
Kvantové počítání je další zcela nové paradigma, které využívá kvantově mechanické jevy, jako je superpozice a zapletení, k provádění výpočtů. AWS nabízí řadu služeb kvantového počítání, jako je Amazon Braket, které můžete využít v kombinaci s EC2.
Závěrečná slova
EC2 je základní součástí každé seriózní cloudové infrastruktury a v dohledné době se to nezmění. Pravděpodobně ji budete pravidelně vídat v top 3 službách s nejvyššími náklady, ale to vše má svůj důvod.
EC2 je páteří cloudové infrastruktury, která drží pohromadě všechny ostatní služby. Porozumění EC2 je tedy klíčové, pokud chcete být úspěšní ve světě cloud computingu.
Doporučujeme vám se dále podívat na osvědčené postupy pro zabezpečení AWS EC2.