Představení Amazon Web Services
Úvod
Amazon Web Services (AWS) je cloudová platforma společnosti Amazon. Na počátku tisíciletí byl pojem AWS chápán jako souhrn API a nástrojů pro práci s katalogem obchodu amazon.com. Podle všeho měl Amazon naddimenzovanou kapacitu, kvůli sezóním výkyvům v prodejích v jeho internetovém obchodu, a tak začal experimentovat s jejím pronájmem. To se ukázalo jako dobrý business plán sám o sobě. V roce 2006 byly představeny klíčové produkty EC2 a S3 (viz dále). Amazon se tehdy stal jedním z prvních poskytovatelů komerčních cloudových služeb.
V roce 2020 měla divize AWS příjmy 43 mld USD a vygenerovala provozní zisk (před zdaněním) 13.5 mld USD, což tvoří 63 % z provozního zisku celé společnosti. Amazon je v současnosti považován za cloudového poskytovatele s největším podílem na trhu.
Klíčové služby
Pod pojem AWS spadá celá škála cloudových produktů různého charakteru, rozsahem od FaaS až po IaaS. V této kapitole budou uvedeny ty nejdůležitější z nich.
Obecně jsou produkty AWS naceněny způsobem pay-as-you-go, s možností rychlého šklálování a de-škálování. Část produktů je také možné s jistými omezeními užívat zdarma – omezení samozřejmě brání plnohodnotnému produkčnímu nasazení.
Služby je možné obsluhovat prostřednictvím AWS console (administrace na webu AWS), AWS SDK nebo AWS CLI.
Služby orientované na výpočetní výkon
- Amazon EC2 (Elastic Compute Cloud) – jedna z nejstarších služeb AWS. Poskytuje prostředí typu virtuální stroj (IaaS) s operační systémy Linux, Windows Server nebo macOS. Možnost jednoduché instalace software z AWS Marketplace.
- Amazon ECS (Elastic Container Service) – poskytuje prostředí pro běh kontejnerů (CaaS).
- Amazon Elastic Beanstalk – poskytuje prostředí pro běh aplikací (PaaS). Podporovány jsou například Go, JavaSE, Apache Tomcat, Node.js, PHP, Python, Ruby a další.
- Amazon Lambda – poskytuje prostředí pro běh tzv. funkcí (FaaS). Podporovány jsou například Node.js, Python, Go, Java.
- Amazon SageMaker – prostředí pro přípravu, trénování a nasazení machine learning modelů, které je možné údajně použít i bez předchozích znalostí v oblasti srojového učení.
Služby orientované na data
- Amazon S3 (Simple Storage Service) – jedna z nejstarších služeb AWS. Jedná se o takzvanou object storage. Je určena k ukládání rozsáhlejších statických souborů/dat. Objekty se sdružují do takzvaných buckets, na které se můžeme dívat jako na adresáře. Nad těmi je možné nastavovat přístupová práva a další. K datům v S3 lze přistoupit také přes HTTP(S) endpoint, a tak může sloužit i jako hosting statické webové stránky.
- Amazon RDS (Relational Database Service) – managed relační databáze. Lze si vybrat z databází jako PostgreSQL, MySQL, MariaDB, Oracle Database, SQL Server a dalších.
- Amazon DynamoDB – managed NoSQL key-value a dokumentová databáze.
- Amazon DocumentDB – managed NoSQL dokumentová databáze. Její API je kompatibilní s MongoDB.
- Amazon ElastiCache – managed in-memory cache, lze zvolit Redis nebo Memcached.
- Amazon CloudFront – je content delivery network (CDN), tedy slouží k zajištění dostupnosti obsahu po celém světě pomocí lokálního cachování. Obsahem se myslí především data na S3 nebo na jiných službách AWS, případně i jiný HTTP(S) zdroj mimo AWS.
Pozn.: Amazon provozuje nejpoužívanější open-source databázový software a prodává ho jako managed službu včetně podpory. Pokud nemohl přímo, tak produkt přejmenoval (např. DocumentDB). Tím odstřihává jednotlivce či společnosti, které za vývojem těchto open-source řešení stojí, od jejich hlavního zdroje příjmu. To vyvolalo velkou kontroverzi, dochází ke změnám licencí (nedávno např. ElasticSearch), což vyvolává další kontroverze.
Meta služby
- Application Load Balancer – služba pro rozdělení zátěže mezi EC2, ECS instance.
- Amazon API Gateway – služba pro správu především RESTful API. Hlavním úkolem je routing na příslušné endpoints.
- Amazon Route 53 – služba pro DNS management, včetně registrace domén.
- Amazon VPC (Virtual Private Cloud) – umožňuje vytvořit virtuální firewall kolem našeho cloudového ekosystému uvnitř AWS. Mezi možnosti VPC patří například povolení portů pouze vybraným strojům, omezování odchozího provozu nebo tvorba subsítí. Jedná se tedy o důležitý prvek bezpečnosti.
- Amazon IAM (Identity and Access Management) – umožňuje spravovat oprávnění pro prvky (uživatelé, prvky architektury) vzhledem k různým zdrojům v AWS (databáze, databázové tabulky, objekty...). Další důležitý prvek bezpečnosti.
- Amazon CloudWatch – monitoring prvků AWS (přehledy, logy…).
Sestavení architektury
AWS nabízí mnoho možností, jak sestavit výslednou cloudovou architekturu. Nabízí se několik základních možností:
- Application Load Balancer + EC2 – pokud chceme snadno škálovatelný standard,
- API Gateway + ECS – pokud chceme serverless,
- API Gateway + Lambda – pokud chceme pokročilejší serverless.
Následně doplnit dalšími službami podle konkrétních požadavků na systém.
Je také možné inspirovat se množstvím referenčních architektur které Amazon poskytuje, viz obrázky 1 a 2 (zdroj).
Amazon Lightsail
Amazon Lightsail je samostatný ucelený produkt stojící poněkud vedle. Jedná se o standardní VPS s měsíčním plánem. Je určený pro zákazníky, kteří nevyužijí možnosti plnohodnotných AWS a spíše ocení jednoduchost.
Trh s VPS je velmi saturovaný a nabídky VPS se svými parametry ani cenou příliš neodlišují. Ani Lightsail nijak nevybočuje. Jako na mírnou odlišnost lze poukázat na způsob jakým Amazon přistupuje k nadměrnému využívání procesoru. Každý poskytovatel nějakým způsobem reaguje na dlouhodobé využívání procesoru, a to minimálně dočasným omezením výkonu, ale Amazon to dělá poměrně transparentně. Uživatel má na očích graf takzvané burst capacity, která určuje, jak dlouho může ještě VPS běžet nad vyšší než stanovenou kapacitu pro daný plán (viz obrázek 3). Poté dojde k jeho omezení.
Závěr
Amazon nabízí komplexní cloudové služby. Podle našich potřeb si můžeme zvolit jednoduché řešení, jako Lightsail, využít několik vybraných služeb, nebo využít potenciál AWS naplno a postavit si v cloudu kompletní architekturu.
Zdroje
- http://jeff-barr.com/2014/08/19/my-first-12-years-at-amazon-dot-com/
- https://mediatemple.net/blog/cloud-hosting/brief-history-aws/
- https://www.geekwire.com/2021/amazon-web-services-posts-record-13-5b-profits-2020-andy-jassys-aws-swan-song/
- https://www.zdnet.com/article/cloud-computing-aws-is-still-the-biggest-player-but-microsoft-azure-and-google-cloud-are-growing-fast/
- https://www.youtube.com/watch?v=B08iQQhXG1Y&ab_channel=BeABetterDev – dobré video komunitního původu, které poskytne základní přehled o službách AWS
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html
- https://docs.aws.amazon.com/AmazonS3/latest/userguide/WebsiteHosting.html
- https://aws.amazon.com/cloudfront/
- https://aws.amazon.com/documentdb/
- https://techgenix.com/elasticsearchs-licensing-change/
- https://soundcloud.com/czpodcast-1/cz-podcast-246-karel-minarik
- https://soundcloud.com/czpodcast-1/cz-podcast-248-apache-kafka
- https://techcrunch.com/2018/11/29/the-crusade-against-open-source-abuse/
Discussion
There are no comments yet. You can be the first.