Aasta käivitamisel. Kuidas optimeerida oma AWS-i kulusid käivitamisel?

Pilvandmetöötlus on lihtsalt parem viis oma ettevõtte juhtimiseks

Enne ettevõtte asutamist alahindasin, kui olulised on pilvandmetöötluse teenused käivitamisel kasutatava ökosüsteemi jaoks. Start-upide levikus on kriitilist rolli mänginud AWS, GCE, Azure, Digital Ocean. Juurdepääs peaaegu piiramatutele ressurssidele lahendab palju tehnilisi raskusi, võimaldades teil keskenduda riistvara hooldusega mitte vaevamisele sellele, mis on teie ettevõtte kasvu jaoks hädavajalik. Kuid nagu iga suure võimu puhul, on ka suur vastutus.

Populaarse Snapchati sõnumite ja fotode jagamise rakenduse taga olev ettevõte Snap Inc. on nõustunud ostma järgmise viie aasta jooksul miljard dollarit väärtuses Amazoni pilveteenuseid, vastavalt uuele avaldusele USA väärtpaberi- ja börsikomisjonile.

Kui Visely asutasime, on AWS-i arve tasumise probleem muutunud väga reaalseks. Siin on lühike kokkuvõte sellest, kuidas me arve kahekordseks lõikame, rajades hoolikalt infrastruktuuri parimatest saadaolevatest võimalustest, mida AWS pakub.

AWS-i eksemplaride tüübid

AWS pakub üsna erinevaid valikuvõimalusi. Visely jaoks vajasime VM-e, mis töötavad tõhusalt veebiserverite teenindamiseks kliendipoolsete päringute jaoks, andmebaasiserveriteks (MongoDB hostimiseks) ja masinõppe töökoormuseks (Cassandra + Spark).

Parimate saadaolevate võimaluste valimisel saab hõlpsalt kokku paarituhandese dollari suuruse igakuise arve, mis alglaadimise korral on kopsakas hind. Tavaline arvutis optimeeritud eksemplar 4 protsessori ja 8 GB muutmäluga võib maksta kuni 125 dollarit kuus.

Need on põhjused, mis sundisid meid T2-tüüpi juhtumeid lähemalt uurima.

T2 appi

T2 eksemplarid pakuvad algtasemel jõudlust võimega kõrgemale tasemele puhkeda perioodil, mis tuleneb valitud VM-ile määratud krediididest.

Krediidid ja nende tarbimise määr olid alguses pisut krüptid, kuid kui lugesime AWS-i dokumente hoolikalt läbi, muutus see kõik mõistlikuks.

Lubage mul tuua näide. T2 väike (ühe vCPU-ga, 2 GB) algab 288 ainepunktiga. Baasjõudlus on 20% CPU-st, mis tähendab, et kui ületad 20% läve, hakkavad su krediidid kiiremini kuluma, kui sa neid igatsed. Kui kiiresti need põlevad? Üsna kiire, 100% -lise protsessori kasutamise korral tarbite umbes nelja tunniga 288 krediiti.

T2 väikelaenukasutus

Isegi nendes tingimustes pole teil vaja kogu aeg 100% protsessorit. Paljudel alustavatel ettevõtetel on etteaimatav kasutusharjumus, ühe või kahe tipuga (s.t ida- ja lääneranniku kliendid) toimub kogu päeva jooksul. See on ideaalne kasutusjuhtum T2-juhtumite jaoks, mis võivad katta kasutamise tipud krediitidega ja taastada öösel. Kõik meie mikroteenused töötavad T2 VM-ide abil, taastades edukalt tipptundidel.

T2 eksemplaride kasutamisel välditavad vead

Kui olete kõik oma krediidid ära kulutanud, töötab teie eksemplar algtasemel, väikese T2 korral on see 20% CPU. Taastamisprotsess on üsna aeglane (st T2 väikese krediidi korral 12 krediiti tunnis), seega peate ülesande jaoks vajaliku eksemplari tüübi valimisel olema väga ettevaatlik, et see ei kulutaks tipptundidel kunagi kõiki krediite.

Kui krediiti pole ja koormus on suurem kui algtasemel, muutub teie esinemisjuhtum ebastabiilseks.

Ops: aruanne kolmest viiest rakendusserverist on pisut kummaline (krediit @devopsreactions)

Viimane asi, mida soovite, on, et tipptunnil oleks eksemplari ilma krediiti jäämata. Ainus võimalus sel juhul on uue varustamine ja koorma suunamine selle poole. Oleme seda kõvasti õppinud. Jälgige oma krediidi kasutamist tähelepanelikult. AWS pakub käepärast CloudWatchi tööriista, mille saate konfigureerida saatma teile märguandeid, kui ületate seatud läve.

Kuidas valida T2 eksemplare optimaalselt

Alustage juhtumitega, mis pakuvad teie koorma jaoks selgelt piisavalt hobujõudu. Jälgige seda paar päeva ja kui näete ühtlast krediidikasutuse graafikut, muutke eksemplari tüüpi või lisage sellele rohkem teenuseid.

Juhtumil läheb liiga hästi

See oli peamine signaal, et saame koormata rohkem juhtumeid, kus krediidi kasutamise kõver oli selline. Meie strateegia oli lihtne. Kui märkasime alakasutatud VM-e, hakkasime sellel kasutama rohkem vähem protsessorit tarbivaid teenuseid.

Pärast kuu pikkust jälgimist ja täpsustamist lõikasime töötavate VM-i esinemiste arvu peaaegu pooleks.

Kohapeal olevad juhtumid mittekriitiliste ressursside ja võrguühenduseta töökoormuse suurendamiseks

Lisaks T2 tüüpi eksemplaridele pakub AWS ka kohapealseid juhtumeid, mida saab kasutada kulude vähendamiseks teie igakuiselt arvelt. Ainus erinevus tellitavate VM-ide ja kohapealsete juhtumite vahel on see, et EC2 võib selle hiljem katkestada kaheminutilise teatisega, kui AWS vajab neid.

Kaheminutilise teatisega kõva katkestus (või talveunerežiim) kõlab karmilt, kuid võrguühenduseta pakkimistööde või tellitava skaleerimise korral võib see olla ideaalne lahendus.

Siin aadressil nemo.ai kasutame Apache Sparki kahte tüüpi toimingute jaoks:

  • Võrguühenduseta analüüs ettevõtte armatuurlaudade jaoks
  • koostööfiltrialgoritmi käitamine klientide tuvastamiseks, kes ostsid / vaatasid ka suhteid

Mõlemad töökohad on võrguühenduseta ja neid saab teostada partiidena, täiuslik stsenaarium kohapealsete eksemplaride jaotamiseks.

Kuidas Spot Instances toimivad?

AWS pakub ulatuslikku kasutusjuhendit, kuidas spot-esinemisjuhte kasutada. Lihtsamalt öeldes annate hinnapakkumise ressursile, mida soovite kasutada. Ressurss eraldatakse siis, kui selle hind langeb alla teie pakkumise.

Võiksime taotleda kolme M3 (mälu optimeeritud) Spark-esinemisjuhtu, mille maksimaalne hind töötab CentOS-is. Kui taotlus on täidetud, on järgmine samm lihtsalt Dockeri konteinerite juurutamine, millel on konfigureeritud Spark Workers.

Paketttöö hakkab täitma järjestikku iga meie kliendi jaoks. Kõigi klientide jaoks vajaliku töötlemise käivitamiseks kulub umbes tund. Selle aja jooksul saab kohapealseid juhtumeid tagasi võtta kaheminutilise teatisega, mis pole kunagi probleem, kuna töö pole võrguühenduseta ja seda saab jätkata nende klientide jaoks, kes on jäänud pärast taotluse uuesti täitmist.

Kokkuvõtteks võib öelda, et kui soovite luua rakenduse, mis kasutab ära kohapealseid juhtumeid, siis siin on peamised tarkvara kujundamise võtmed:

  • varustage AWS-i eksemplarid TerraFormiga (või mõne muu automatiseerimistööriistaga), et käivitada teie kohapealne eksemplar vajalike teenustega nii kiiresti kui võimalik. Eelnevalt ehitatud AMI-pildi kasutamine on samuti lahendus, kuigi otsustasime käivitada Terra vormi, kuna see on meile lihtsalt lihtsam.
  • töö, mida käitate Spot instance'is, ei peaks kartma katkestusi või talveunerežiimi.
  • vajalike rakenduste juurutamine Spot Instentsides peaks olema täielikult automatiseeritud, vastasel juhul kulutate installimiseks väärtuslikku aega, enne kui VM muutub kasutatavaks. Dockeri piltide kasutamine võib olla selleks optimaalne lahendus.

Oma käepärase ressursi olemasolu kontrollimiseks oma piirkonnas saate seda käepärast ressurssi kasutada.

Mitmesugused kulud

Võrk ja püsiv salvestusruum on teine ​​kõige kallim ressurss, mida me optimeerida pidime. Siin on teil vähem võimalusi mängimiseks. Otsustasime kasutada SSD-d teenuste jaoks, mis nõuavad kiiret püsivat sisend / väljundit (st MongoDB, Apache Solr). Kodakondsuseta teenustel on magnetilise eraldatud salvestuse puhul just hästi.

Võrgu osas saab kohandada väga vähe, kuigi peate kindlasti tähelepanu pöörama, kui teie võrgukasutus on eeldatavates piirides.

Kuna startup nõudis oma teenuste käitamiseks mitut VM-i, tasus kulude optimeerimine pingutused kenasti ära, hoides kokku raha, mida saaksime kulutada muudele asjadele.

Kui teile see lugu meeldis, võite vaadata teist selle sarja seast

Aasta käivitamisel. Kuidas käivitasime alglaadimise.