Un any en marxa. Com optimitzar els vostres costos AWS quan realitzeu una arrencada.

La computació en núvol és només una millor manera de dirigir el vostre negoci

Abans de fundar una empresa, vaig menystenir la importància dels serveis de computació en núvol per a l'ecosistema inicial. AWS, GCE, Azure i Digital Ocean han tingut un paper fonamental en la difusió de les startups. L’accés a recursos gairebé il·limitats soluciona molts problemes tècnics, de manera que us podeu centrar en l’essencial per al vostre creixement empresarial, en lloc de preocupar-vos pel manteniment del maquinari. Però, com en qualsevol gran poder, hi ha una gran responsabilitat.

Snap Inc., la companyia que va desenvolupar la popular aplicació de missatgeria i intercanvi de fotos de Snapchat, ha acceptat comprar mil milions de dòlars en serveis al núvol d'Amazon durant els propers cinc anys.

Tan aviat com vam crear Visely, el problema de pagar la factura AWS es va fer molt real. A continuació, es mostra un breu resum de com dividim la factura en dues parts construint acuradament una infraestructura entre les millors opcions disponibles que ofereix AWS.

Tipus d'instància AWS

AWS ofereix una àmplia gamma de casos diferents. Per a Visely, necessitàvem vehicles virtuals que executessin servidors web de manera eficient per a sol·licituds del client, servidors de bases de dades (allotjament de MongoDB) i aprenentatge automàtic (Cassandra + Spark).

L'elecció de les millors opcions disponibles es suma fàcilment fins a uns quants milers de dòlars al mes, que és un preu elevat per pagar per una arrencada congestionada. Una instància regular optimitzada per ordinador amb 4 CPU i 8 GB de RAM pot costar fins a 125 dòlars al mes.

Aquests són els motius que ens han obligat a estudiar les instàncies del tipus T2.

T2 fins al rescat

Les instàncies T2 ofereixen un servei bàsic amb la possibilitat de rebentar a un nivell superior durant un període derivat dels crèdits assignats a la màquina virtual seleccionada.

Al principi, els crèdits i la taxa de consum eren una mica críptics, però després de llegir atentament els documents AWS, tot va anar bé.

Permeteu-vos donar un exemple. T2 petit (amb vCPU, 2 GB) comença amb 288 crèdits assignats. El rendiment bàsic és de 20% de CPU. De manera que, si supereu el 20% del llindar, els vostres crèdits es gravaran més ràpidament del que voleu. Que ràpid es cremen Molt ràpidament, amb un ús del 100% de CPU, consumireu 288 crèdits en unes quatre hores.

Ús de crèdit baix T2

Fins i tot en aquestes condicions, gairebé no necessiteu CPU 100%. Moltes startups tenen un patró d’ús previsible amb un o dos pics (és a dir, clients a la costa est i oest) que es produeixen durant tot el dia. Aquest és un cas d’ús ideal per a instàncies de T2 que cobreixen l’ús màxim amb crèdits i es poden recuperar durant la nit. Tots els nostres serveis micro funcionen amb màquines virtuals T2 i es poden restaurar amb èxit fins i tot en hores punta.

Errors que cal evitar quan s’utilitzen instàncies de T2

Quan heu utilitzat tots els crèdits, la vostra instància funciona al nivell bàsic. Per a T2 petit, això és un 20% de CPU. El procés de recuperació és bastant lent (és a dir, 12 crèdits per hora per a T2 petita), de manera que heu de tenir molta precaució a l’hora d’escollir el tipus d’instància requerida per a la tasca de manera que tots els crèdits no s’utilitzin mai en hores punta.

Sense crèdits i amb una càrrega superior a la línia de base, la vostra instància es torna inestable.

Informe Ops: el comportament de tres dels cinc servidors d'aplicacions és una mica estrany (gràcies a @devopsreactions)

L’últim que voleu és una instància sense crèdits durant les hores punta. En aquest cas, només en podeu proporcionar un de nou i redirigir-lo. Ho vam aprendre de la manera més difícil. Superviseu l'ús del vostre crèdit de prop. AWS proporciona una eina convenient de CloudWatch que podeu configurar per rebre notificacions quan superi el llindar establert.

Com triar les instàncies T2 de manera òptima

Comenceu amb casos que tinguin clarament suficient energia per a la vostra càrrega. Superviseu-lo uns quants dies i, quan veieu un gràfic pla d’ús del préstec, canvieu el tipus d’instància o afegiu més serveis.

La instància va massa bé

Aquest va ser el senyal clau que podem pressionar més les entitats amb aquesta corba de pagaments de préstecs. La nostra estratègia era senzilla. Després de descobrir VM que estaven infrautilitzats, vam desplegar serveis que consumeixen menys CPU.

Després d’un mes de monitoratge i ajustament final, gairebé hem reduït a la meitat el nombre d’instàncies de màquina virtual que s’executen.

Instancies puntuals per escalar recursos no crítics i càrregues de treball fora de línia

A més de les instàncies T2, AWS també ofereix casos puntuals que podeu utilitzar per reduir el cost de la factura mensual. L'única diferència entre les instàncies virtuals de comanda i les instàncies de Spot és que EC2 després les pot interrompre amb una notificació de dos minuts quan AWS les necessiti de nou.

Una interrupció dura (o hibernació) amb dos minuts de notificació sona dur, però pot ser una solució ideal per a treballs fora de lots fora de línia o per escalar sota demanda.

Aquí a nemo.ai, fem servir Apache Spark per a dos tipus de tasques:

  • Anàlisi fora de línia per a taulers de negoci
  • Executeu un algorisme de filtratge col·laboratiu per identificar clients que també han comprat / vist una relació

Els dos treballs estan fora de línia i es poden executar per lots. Aquest és un escenari perfecte per assignar instàncies puntuals.

Com funcionen les instàncies puntuals?

AWS proporciona una guia completa per a l'ús de les instàncies Spot. En termes senzills, oferiu una oferta de preu per al recurs que voleu utilitzar. El recurs s’assignarà tan bon punt el preu baixi de la vostra oferta.

Podríem sol·licitar tres instàncies de bugia M3 (optimitzades amb memòria) amb el preu màxim especificat, que es publicarà sota CentOS. Un cop complert el requisit, només heu de desplegar contenidors Docker amb treballadors configurats de Spark.

El treball per lots s’executa de manera seqüencial per a cadascun dels nostres clients. Es triga aproximadament una hora a fer tot el processament necessari per a tots els clients. Durant aquest període, es poden tornar a reclamar les instàncies de Spot amb una notificació de dos minuts. Això no és un problema perquè la feina està fora de línia i pot continuar per als clients que queden després de tornar a complir la sol·licitud.

En resum, es pot dir si voleu crear una aplicació que aprofiti les instàncies de Spot.

  • Desplegui instàncies AWS mitjançant TerraForm (o una altra eina d'automatització) per arrencar la instància de Spot amb els serveis requerits el més ràpidament possible. L'ús d'una imatge AMI prèviament també és una solució, tot i que hem triat Terra Form perquè és més fàcil per a nosaltres.
  • La feina que feu a Spot Instance no ha de tenir por d’interrupcions o hibernació.
  • El desplegament de les aplicacions necessàries a les instàncies puntuals hauria d’estar totalment automatitzat, en cas contrari, haureu de dedicar molt de temps a instal·lar-vos abans que es pugui utilitzar la màquina virtual. L’ús d’imatges Docker pot ser una solució òptima per a això.

Podeu utilitzar aquest recurs útil per comprovar la disponibilitat d’instàncies puntuals a la vostra regió.

Altres despeses

La xarxa i l’emmagatzematge permanent són els segons recursos més cars que havíem d’optimitzar. Aquí teniu menys opcions per jugar amb SSD. Hem escollit utilitzar SSD per a serveis que requereixen E / S ràpides i persistents (és a dir, MongoDB, Apache Solr). Els serveis sense estat funcionen bé per a l'emmagatzematge proporcionat magnèticament.

Pel que fa a la xarxa, n’hi ha poca cosa que s’ajusta, tot i que definitivament heu d’assegurar-vos que l’ús de la vostra xarxa es troba dins dels límits previstos.

Com a startup que va requerir múltiples vehicles virtuals, l’esforç d’optimització de costos va pagar i ens va estalviar diners que podríem gastar en altres coses.

Si us ha agradat aquesta història, podeu consultar les altres d'aquesta sèrie

Un any en marxa. Com vam iniciar una arrencada.