Egy év az induláskor. Hogyan lehet optimalizálni az AWS-költségeket indítási futtatáskor?

A felhőalapú számítástechnika csak jobb módja az üzleti vállalkozásának

Mielőtt alapítottam egy társaságot, alábecsültem, mennyire létfontosságú a felhőalapú számítástechnikai szolgáltatások az induló ökoszisztéma számára. Az AWS, GCE, Azure, Digital Ocean kritikus szerepet játszottak az induló vállalkozások elterjedésében. A szinte korlátlan erőforrásokhoz való hozzáférés sok technikai problémát old meg, lehetővé téve, hogy a hardver karbantartása helyett a vállalkozás növekedéséhez elengedhetetlen szempontokra összpontosítson. De mint minden nagy hatalommal, nagy felelősséggel tartozik.

A Snap Inc., a népszerű Snapchat üzenetküldő és fotómegosztó alkalmazás mögött álló vállalkozás beleegyezett abba, hogy az elkövetkező öt évben egymilliárd dollár értékű Amazon felhőalapú szolgáltatásokat vásárol, az Egyesült Államok Értékpapír- és Tőzsdebizottsága által benyújtott új bejelentés szerint.

Miután megalapítottuk a Visely-t, az AWS-számla kifizetésének problémája nagyon valóra vált. Itt egy rövid összegzés arról, hogy miként vágjuk kétszer a számlát azáltal, hogy alaposan kidolgozzuk az infrastruktúrát az AWS által kínált legjobb lehetőségek közül.

AWS példánytípusok

Az AWS nagyon sokféle példányt kínál. Visely számára virtuális gépekre volt szükség, amelyek hatékonyan futtatják a web-kiszolgálókat az ügyféloldali kiszolgálások, az adatbázis-kiszolgálók (a MongoDB tárolása) és a gépi tanulási munkaterhelés (Cassandra + Spark) számára.

A rendelkezésre álló legjobb opciók kiválasztása könnyen összeegyezhet egy pár ezer dolláros havi számlával, amely egy indulási induláskor izmos ár, amelyet meg kell fizetni. A rendszeres számításra optimalizált példány 4 CPU-val és 8 GB RAM-mal havonta akár 125 dollárba is kerülhet.

Ezen okok miatt kényszerítettünk figyelmet a T2 típusú példányokra.

T2 mentésre

A T2 példányok biztosítják az alapteljesítményt azzal a képességgel, hogy magasabb szintre emelkedjenek egy olyan időszakra, amely a kiválasztott virtuális géphez rendelt kreditekből származik.

A hitelek és fogyasztásuk aránya eleinte kissé rejtélyes volt, de miután alaposan elolvastam az AWS dokumentumokat, az egész megbízhatóvá vált.

Hadd mutass egy példát. A T2 kicsi (egy vCPU-val, 2 GB-os) 288 kredittel kezdődik. Az alapteljesítmény 20% -os CPU, ami azt jelenti, hogy ha meghaladja a 20% -os küszöböt, akkor a hitelek gyorsabban kezdnek elégetni, mint amire vágyakozol. Milyen gyorsan égnek? Nagyon gyors, 100% -os CPU használat mellett kb. Négy órán belül 288 kredit fogyaszt.

T2 kis hitel felhasználás

Még ilyen körülmények között is alig igényel 100% CPU-t. Sok induló vállalkozás kiszámítható felhasználási mintázattal rendelkezik, egy vagy két csúccsal (azaz keleti és nyugati parti ügyfelekkel) a nap folyamán fordul elő. Ez egy ideális használati eset a T2 esetekhez, amelyek fedezhetik a felhasználási csúcsokat kredittel, és éjszaka visszatéríthetnek. Minden mikroszolgáltatásunk T2 virtuális gépeken fut, sikeresen helyreállítva csúcsidőn kívüli órákban.

A T2 példányok használata során elkerülendő hibák

Az összes hitel felhasználása után a példány az alapszinten fog működni, a T2 kicsi esetében ez a 20% -os CPU. A helyreállítási folyamat meglehetősen lassú (azaz 12 kredit óránként T2 kicsi esetén), ezért nagyon óvatosnak kell lennie a feladathoz szükséges példánytípus kiválasztásánál, hogy soha ne használja fel az összes kreditet a csúcsidőben.

Nincs jóváírás és az alapnál nagyobb terhelés, a példány instabil lesz.

Ops jelentése: Az öt alkalmazáskiszolgáló közül három viselkedése kissé furcsa (jóváírások a @devopsreactions számára)

Az utolsó dolog, amit szeretne, az, hogy egy csúcsidőben egy példány nélkül maradjon jóváírás. Ebben az esetben az egyetlen lehetőség egy új kiépítése és a rakomány felé irányítása. Nehéz módon megtanultuk. A hitelfelhasználását szorosan figyelje. Az AWS egy praktikus CloudWatch eszközt kínál, amelyet konfigurálhat úgy, hogy riasztásokat küldjön, ha egy beállított küszöbön túllép.

Hogyan válasszuk ki a T2 példányokat optimálisan?

Kezdje az olyan példányokkal, amelyek egyértelműen elegendő lóerőt biztosítanak a rakományhoz. Figyelemmel kísérje azt néhány napig, és ha lapos grafikonon látja a hitel felhasználását, akkor módosítsa a példány típusát, vagy tegyen rá további szolgáltatásokat.

A példány túl jól csinál

Ez volt a legfontosabb jel, hogy nagyobb teherrel tehetjük azokat az eseteket, amelyeknél ez a kredit felhasználási görbe volt. Stratégiánk egyszerű volt. Miután észleltük az alul kihasznált virtuális gépeket, elkezdtük az alacsonyabb CPU-fogyasztást igénybe vevő szolgáltatások telepítését.

Egy hónapos megfigyelés és finomhangolás után majdnem felére csökkentettük a futó virtuális gép példányait.

Spot példányok a nem kritikus erőforrások méretezéséhez és az offline munkaterheléshez

A T2 típusú példányok mellett az AWS Spot példányokat is biztosít, amelyek felhasználhatók a havi számlájának költségeinek csökkentésére. Az On-Demand virtuális gépek és a Spot példányok közötti egyetlen különbség az, hogy később az EC2 megszakíthatja két perc értesítéssel, amikor az AWS-nek szüksége van rájuk.

A kemény megszakítás (vagy hibernálás) kétperces értesítéssel durvanak hangzik, de offline kötegelt munkákhoz vagy igény szerinti méretezéshez ez ideális megoldás lehet.

Itt, a nemo.ai-nál, az Apache Spark-ot kétféle típusú feladathoz használjuk:

  • offline elemzés üzleti irányítópultokhoz
  • együttműködő szűrő algoritmus futtatása azon ügyfelek azonosításához, akik vásárolt / megtekintettek egyfajta kapcsolatot is

Mindkét feladat offline állapotban van és kötegekben is végrehajtható, tökéletes forgatókönyv az azonnali példányok kiosztására.

Hogyan működnek a Spot példányok?

Az AWS átfogó felhasználói útmutatót nyújt a spot példányok használatához. Egyszerűen fogalmazva megadja az árajánlatot arra az erőforrásra, amelyet használni kíván. Az erőforrás akkor kerül kiosztásra, ha az ára az ajánlat alá csökken.

Kérhetünk három M3 (memóriára optimalizált) Spark példányt a megadott maximális árral a CentOS-on. Miután a kérés teljesült, a következő lépés egyszerűen telepíteni a Docker tárolókat, ahol rajta vannak a konfigurált Spark Workers.

A kötegelt feladat mindegyik ügyfelünkre sorrendben kezd futni. Körülbelül egy órát vesz igénybe az összes szükséges feldolgozás futtatása az összes ügyfél számára. Ebben az időtartamban a Spot példányok egy kétperces értesítéssel visszanyerhetők, amely soha nem jelent problémát, mivel a munka offline állapotban van, és folytatható a megmaradt ügyfelek számára a kérelem újbóli teljesítése után.

Összefoglalva: ha olyan alkalmazást szeretne létrehozni, amely kihasználja a Spot példányokat, itt találhatjuk a legfontosabb szoftver-tervezőket:

  • biztosítson AWS példányokat TerraFormmal (vagy bármilyen más automatizálási eszközzel), hogy a lehető leggyorsabban elindítsa a helyszíni példányt a szükséges szolgáltatásokkal. Az előre beépített AMI kép használata szintén megoldás, bár úgy döntöttünk, hogy futtatjuk a Terra Form alkalmazást, mivel ez nekünk egyszerűbb.
  • a Spot példányon futtatott munka ne féljen a megszakítástól vagy a hibernációtól.
  • a szükséges alkalmazások Spot példányokban történő telepítését teljesen automatizálni kell, különben értékes időt fog költeni a telepítésre, mielőtt a virtuális gép használhatóvá válna. A Docker képek használata optimális megoldás lehet erre.

Ezt a praktikus erőforrást használhatja annak ellenőrzésére, hogy a régióban rendelkezésre áll-e a helyszíni példányok.

Egyéb költségek

A hálózat és az állandó tárolás a második legdrágább erőforrás, amelyet optimalizálnunk kellett. Itt kevesebb lehetősége van a játékhoz, és úgy döntöttünk, hogy SSD-t használunk olyan szolgáltatásokhoz, amelyek gyorsan állandó I / O-t igényelnek (pl. MongoDB, Apache Solr). A hontalan szolgáltatások csak jól működnek a mágneses ellátással.

Ami a hálózatot illeti, nagyon kevés beállítással rendelkezik, bár feltétlenül figyelni kell arra, ha a hálózat használata a várt határokon belül van.

Mivel egy indításkor több virtuális gépet kellett igénybe vennie a szolgáltatások futtatásáért, a költségoptimalizálás erőfeszítései szépen megtérültek, és így pénzt takarítottak meg, amit más dolgokra fordíthattunk.

Ha tetszett ez a történet, ellenőrizheti a másik sorozatot

Egy év az induláskor. Hogyan indítottuk el az indítást.