Náš (ne)náročný přechod do AWS

Jiří Svěcený
Jul 23, 2019 · 3 min read
Photo by Jason Blackeye on Unsplash

Na podzim minulého roku jsem narazil na srazu v Brně na partu kluků, kteří se bavili o AWS (Amazon Web Services). Celé mi to přišlo takové nijaké. Proč bych sakra měl používat nějaké klikátko na správu serverů a ještě za něj platit tolik peněz. Do této doby jsem jako správný geek vlastnil pár virtuálních serverů a svépomocí je bastlil dohromady, abych na nich rozjel vše potřebné pro běh našich aplikací. Jmenovitě šlo o databáze, elastic, Nginx, Node.js, PHP-FPM a pár dalších hraček.


Měsíc první — Kam s daty

Zálohovat, zálohovat a zase zálohovat. Po měsíci od té osudné konverzace v Brně se stalo něco hrozného. Náš (dokonalý) cluster se rozpadl jako domeček z karet. Všechna data uživatelů jsou pryč a zálohy jsou několik dní staré. Po celodenním skládání serverů jako kostiček Lego se nám podařilo dát vše dohromady, ale bylo naprosto nepřípustné, aby se někdy v budoucnu něco podobného opakovalo a tak jsme začali hledat místo, kam můžeme ukládat naše zálohy.

Podmínkou bylo stabilní a bezpečné úložiště. Vzpomněl jsem si tedy na AWS a jeho službu S3 storage. Po chvilce hledání jsem našel vše potřebné a ještě ten den se nám podařilo na starý server napasovat zálohování do S3 bucketu pomocí AWS-CLI.

Řekl jsem si, že zálohy máme a ještě k tomu využijeme velice levného úložného prostoru a začali jsme tam tedy nahrávat naprosto všechna data od uživatelů a bylo vystaráno.

Měsíc druhý — Kontrola aplikací

Aplikace generují velké množství informací o svém správném i nesprávném fungování a my je chceme mít centrálně uložené na nějakém hezky dostupném místě. Shodou náhod narazím na službu AWS CloudWatch Logs a skrze PHP-SDK ji implementuji místo stávajícího file logu. Jsem opět o krok blíže běhu našich aplikací v oblacích.

Měsíc třetí — Síť CDN

Řešení přímého načítání dat z S3 storage nám postupem času začalo dělat potíže, protože je načítali uživatelé a otravní roboti a tato služba nemá (pokud vím) žádnou důmyslnější ochranu proti spamu (v AWS platíte za to co využijete a pokud vám roboti či uživatelé stále dokola načítají tisíce obrázků, tak vás to logicky něco stojí). Přešli jsme na CloudFront. Jde v základu o velice jednoduché CDN, které se dokážete napojit na váš S3 bucket a čerpat z něj data. Můžete si nastavit expiraci dat, protokol, ale nás nejvíce zajímalo načítání z určitých IP adres a ještě lépe omezení traffiku v určitých zemí.

Měsíc čtvrtý — Máme tam všechno

Už nám zbývalo přesunout do cloudu jen servery jako takové, ale cena nám přišla stále veliká a instalace složitá. Nakonec jsem se jednoho dne rozhoupal a rezervoval nám instanci na jeden testovací server u kterého si zkusíme zda to půjde. Měl jsem sepsaný postup co vše budu muset instalovat, ale už u prvního kroku jsem se zarazil. Jsme v cloudu a nepotřebujeme na serveru provozovat databáze ani Elasticsearch, protože tyto služby poskytuje sám Amazon.

Rozjet server s PHP, Node.js a Nginxem byla otázka pár minut. Díky této úspoře jsme se tak zbavili serveru s databází a dalšího serveru, na kterém by nám běžel Elasticsearch. Všechna data máme v S3 a můžeme tak mít server jen s 8 GB diskového prostoru. Rozchodit server tak bylo velice snadné a stačilo použít malé a tím pádem levnější serverové instance.

Jen jako třešničku k tomuto měsíci dodám, že se nám podařilo přejít na úžasně jednoduchou službu na odesílání mailů SES (Simple Email Service).

Měsíc pátý — Kontejnery?

Ještě to nějaký ten pátek potrvá, ale chceme aplikace rozdělit do kontejnerů a zbavit se tak EC2 instancí, což jsou v podstatě jen obyčejné virtuální servery a nahradit je službou ECS, která dokáže z kontejneru udělat celý server naprosto bez práce.

K závěru bych chtěl dodat, že jsme stále hodně ve vývoji a učíme se trošku metodou pokus omyl, takže prostor pro zlepšení je obrovský a občas mě deprimuje kolik služeb vlastně Amazon má a my je ještě nevyužíváme.

Rozhodně považuji přechod z klasického serveru jako cestu správným směrem. Náklady máme díky rezervovaným instancím poloviční a dokážeme neskutečně rychle růst. Na AWS je super jejich free tier, který vám umožní zdarma otestovat základní komponenty systémů a zhodnotit zda je pro vás další postup výhodný či nikoliv.

Jiří Svěcený

Written by

Softwarový vývojář, architekt a konzultant cloud řešení.

More From Medium

Top on Medium

Top on Medium

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade