¿Cómo ahorrar hasta medio millón de dólares en AWS?

Hola Habr! Le presento la traducción del artículo “¿Cómo reducir sus costos de AWS? ¡Ahorre hasta $ 500k con estas pautas! ” autor George Batschinski.

imagen

En este artículo, detallaremos cómo Back4App redujo sus gastos de AWS de $ 55,492 por mes a $ 20,074 por mes y ahorró $ 500,000 por año. Describiremos pasos prácticos basados ​​en nuestra propia experiencia de reducción de costos en AWS y compartiremos consejos que también nos fueron útiles.

AWS continúa innovando y dominando el mercado de la nube. Ha crecido tanto que se ha convertido en una parte clave de la estrategia de Amazon. Estoy entusiasmado con AWS, pero las dudas sobre la complejidad y el costo de la nube me han llevado a optimizar el uso de la nube. A pesar de que AWS ofrece una lista cada vez mayor de servicios especializados para diversos tipos de desarrollo, esta no siempre es la forma más directa, rápida o asequible. Idealmente, tan pronto como vaya a la nube, debe pensar de inmediato en la arquitectura para reducir los costos. Este material ayudará a acelerar la optimización de costos y contiene casos de la vida real que encontramos durante nuestra aventura de reducción de costos.

Una breve descripción de lo que encontrará en este artículo:

  • Solicite préstamos de AWS y obtenga hasta $ 100,000;
  • Transfiera la transferencia de datos a Cloud Front y ahorre hasta un 75%;
  • Use IP privada (no IP elástica) y deje de pagar por la transferencia de datos entre zonas de acceso;
  • Ahorre hasta un 90% con instancias puntuales;
  • Ahorre hasta un 75% comprando instancias reservadas en AWS Marketplace;
  • Obtenga nodos reservados de Elastic Cache y ahorre hasta 77%;
  • Reserve sus datos en S3, pero no en EBS y ahorre hasta un 75%;
  • Configurar el autoescalado para recursos inactivos;
  • Elija la región de Virginia del Norte y aléjese de Sao Paulo;
  • Actualice a nuevas generaciones de instancias y ahorre hasta un 20%;
  • Localice el punto final S3 en su VPC y habilite la red mejorada en EC2.

Así es como se veía nuestra cuenta de AWS en enero de 2019. El costo total de la nube es de $ 55,492.

imagen

Así es como se veía nuestra cuenta de AWS en mayo de 2019. El costo total fue de $ 20,074.

imagen

imagen

1. Préstamos de AWS


Primero de todo! Antes de comenzar a hacer cualquier cosa, asegúrese de que su empresa sea elegible para préstamos de AWS. Así es como puede obtener estos préstamos:

Solicite préstamos a AWS


¡Así fue en nuestro caso! En 2016, nuestra empresa creció bastante rápido. Nuestra factura de AWS comenzó a aumentar y no teníamos ni idea ni tiempo para optimizar el uso de AWS. Como no teníamos fondos, nos dimos cuenta de que recibiríamos préstamos de AWS o desapareceríamos. Preparamos nuestro caso para nuestra cuenta de gerentes en AWS, demostrando cuán rápido estamos creciendo y las ventajas para AWS en apoyarnos en nuestro sitio. Le mostramos que no teníamos fondos y que nos veríamos obligados a ir a Google Cloud (nos ofrecieron $ 100,000 en préstamos para la migración a AWS) si no recibíamos préstamos de AWS. La respuesta tardó aproximadamente una semana y AWS nos proporcionó $ 100,000 para su uso durante 12 meses. ¡También fue un buen negocio para AWS! Desde que vencieron los préstamos, hemos gastado más de $ 750,000 con AWS.

Créditos para probar y lanzar Prueba de concepto


Si tiene la intención de probar un nuevo servicio de AWS o el tipo de instancia, solicite préstamos a su gerente de cuenta. La cantidad de préstamos dependerá de sus costos mensuales y del esfuerzo general para lanzar POC. Estos préstamos generalmente solo son válidos por tres meses y debe asegurarse de la velocidad del POC. En nuestro caso, pudimos obtener $ 3,000 en préstamos para probar la familia de instancias i3.

Créditos de inicio


Si fundó su empresa o lanzó una startup, esta es una excelente manera de avanzar. La cantidad de préstamos varía de $ 1,000 a $ 100,000, dependiendo de cómo presente su caso de AWS. Hay varias formas de obtener estos préstamos.

Aceleradores


Una de las principales ventajas de Startup Accelerators en los bonos que proporcionan. Uno de estos bonos son los préstamos de proveedores de la nube. La cantidad que puede recibir dependerá del acelerador en el que esté representado. Algunos de los mejores, por ejemplo, YC, Alchemist, Wayra y 500 Startups le ofrecerán $ 100,000 en préstamos de AWS. En nuestro caso, fuimos aceptados por Alchemist Accelerator y emitimos $ 100,000 en préstamos. Desafortunadamente, no pudimos usar estos préstamos, ya que antes de eso ya habíamos aprovechado otros préstamos. Por ejemplo, si acepta dos aceleradores por $ 100,000 cada uno, no podrá usar $ 200,000, solo $ 100,000.

Fondos de riesgo y grupos de ángeles


Algunos grupos WF / Angel proporcionan préstamos como parte del programa de bonificación. En nuestro caso, logramos obtener $ 10,000 de préstamos de marketing, válidos por dos años de uno de nuestros inversores. Desafortunadamente, no pudimos usarlos. Las compañías no pueden usar Créditos Promocionales de AWS si previamente han recibido una cantidad igual o mayor de préstamos.

Todos los proveedores líderes de la nube otorgan préstamos para nuevas empresas


Todos los actores líderes en el mercado de la nube ofrecen préstamos a nuevas empresas. Con AWS / Google, los préstamos pueden ascender a $ 100,000. En Azure, puede obtener $ 360,000 por tres años.

2. Implemente ahorros de costos en AWS


La parte fácil ha terminado, ¡y ahora vamos a los desafíos! No hay una píldora mágica para reducir costos en AWS, ¡debe trabajar duro y seguir un procedimiento regular para controlar los costos! ¡Reducir los costos en la nube debería ser su rutina diaria! ¡Imagina cuánto ahorras en 365 días! La cantidad de tiempo que invierte depende del tamaño de su organización y sus costos de AWS. Paso unos 30 minutos al día monitoreando mi cuenta y priorizando acciones de reducción de costos. Además, los ingenieros de Back4App pasan al menos 1 hora por día en iniciativas de reducción de costos.

La primera iniciativa que completamos: crear una hoja de trabajo simple en Excel para priorizar las iniciativas de reducción de costos.

Los criterios principales por los cuales determinamos los ahorros:

  • Potencial de ahorro: mayores ganancias de ahorro
  • Dificultad: ¿Qué tan difícil es aplicar el esfuerzo y el trabajo requerido?
  • Propietario: quién realizará la acción

En nuestro caso, los mayores ahorros son el uso de Elastic Compute Cloud (EC2), y este fue el primer tema que comenzamos a entender.

3. EC2 - Elastic Compute Cloud


Desactivar instancias no utilizadas


El primer punto que se debe tomar para reducir los costos en EC2 es desactivar las instancias no utilizadas. No hay nada complicado, y la mayor parte del trabajo es bastante sencillo. Todo lo que necesita hacer es hacer una lista de todas las instancias, cargar el archivo de Excel del ejemplo y definir cada una. En nuestro caso, dividimos nuestras instancias en 3 categorías principales:

  • Instancias que deben funcionar continuamente
  • Instancias que se pueden detener
  • Instancias que se pueden eliminar

No pare, pero elimine instancias

¡Elimine instancias no utilizadas cuando sea posible! ¡Si solo los detiene, continuará pagando por usar EBS!

Reduce el exceso de recursos


Esta acción es un poco más complicada, y es absolutamente necesario seleccionar correctamente el tamaño de la instancia. Asegúrese de evaluar al menos una semana de datos para aumentar la probabilidad de un cambio de instancia correcto. El enfoque mediante el cual controlamos este proceso fue dividir las instancias en 3 categorías principales:

  • Tamaño correcto
  • Reducir tamaño de instancia
  • Aumentar tamaño de instancia

La forma de verificar los datos históricos de una instancia es extremadamente simple. En el panel de control de AWS, vaya a Servicios> EC2> Instancias> Instancias en ejecución, seleccione Instancia> Monitoreo. Por ejemplo, puede verificar la métrica de utilización de la CPU.

Reduzca el tamaño de la instancia secuencialmente

Reduzca el tamaño de su instancia paso a paso. Por ejemplo, no reduzca el tamaño de t2.xlarge a t2.medium. En primer lugar, reduzca de t2.2xlarge a t2.xlarge. Mire una semana, verifique cuántos recursos se utilizan y repita los pasos en una nueva. Al realizar estos pasos, minimizará las posibilidades de errores o tiempo de inactividad.

Usar instancias reservadas


Reservar instancias puede aumentar sus ahorros hasta en un 70%. Tenga en cuenta que cuando reserva una instancia, paga 24/7 por la duración de la reserva. Pagará independientemente de si usa la instancia o no.

Hay dos tipos de capacidades redundantes:

Estándar: que puede vender en AWS Marketplace, no puede convertir a otro tipo de instancia, más barato que las instancias convertibles.

Convertible: no podrá venderlo en AWS Marketplace, pero puede convertirlo en una instancia de un tipo diferente, más costoso que las instancias estándar.

Las instancias convertibles pueden ser confusas

¡Las instancias convertibles son muy difíciles! Cada vez que convierte instancias, solo puede aumentar el tamaño de la instancia. Considere la siguiente situación:

Adquiere t3.medium, una instancia convertible reservada.
Decide convertir t3.medium a la instancia m5.large.

¡Ciertamente tendrás éxito! Después de usar la instancia m5.large durante algún tiempo, querrá volver a t3.medium.

¡Y esto ya es imposible!

No podrá reducir el consumo de la instancia convertible, sino solo aumentar la cantidad que paga por ella. Por lo tanto, asegúrese de comenzar con una pequeña instancia reservada y aumentarla con el tiempo. No comience con una instancia grande, porque no puede reducir su consumo o venderlo en AWS Marketplace'e. Si comete un error con una instancia reservada convertible, está suscrito a un pago mensual de 12 o 36 meses. En Back4App, siempre obtenemos primero t2.nano y lo aumentamos según sea necesario.

Prefiero instancias reservadas estándar sobre convertibles por las siguientes razones:

  • Son mas baratos
  • Tienen mayor liquidez: se pueden vender en AWS Marketplace en cualquier momento.
  • Se pueden comprar en AWS Marketplace con un descuento.

Use AWS Marketplace para instancias reservadas


Las instancias reservadas son geniales, ¡pero comprar instancias reservadas en AWS Marketplace es aún mejor!

AWS Marketplace puede ser mucho más barato


¡AWS Marketplace parece un mercado de valores! A veces puede comprar una instancia reservada estándar con un precio mucho más asequible que comprar directamente de AWS. El motivo es simple; Las empresas a veces poseen instancias redundantes que ya no están en uso, pero continúan pagando por ellas. Bajar el precio del alojamiento acelera el proceso de compra.

Aquí daré un ejemplo de lo que sucedió con Back4App. Estaba buscando 4 r4.grandes instancias reservadas. Logré encontrar instancias en AWS Marketplace con una tasa efectiva de 75% más barata en comparación con los precios a pedido. AWS vendió el mismo tipo de instancias reservadas, pero con un 62% de descuento.

AWS Marketplace tiene condiciones de compra flexibles


Otra ventaja de AWS Marketplace es que puede comprar instancias con un período de uso flexible. AWS proporciona solo opciones durante 12 y 36 meses para la compra de instancias reservadas. ¡AWS Marketplace es mucho más flexible! Puede comprar, por ejemplo, instancias reservadas durante 15 meses por el mismo precio que durante 36 meses. Algunas compañías prefieren obligaciones a largo plazo (36 meses) y, antes de que expire la obligación, las venden en AWS Marketplace. El nuevo cliente solo usará la instancia durante el período restante, por ejemplo:

  • Tiempo total de adquisición: 36 meses.
  • Comprador inicial: utiliza la instancia durante 21 meses
  • Segundo comprador: lo compra en el mercado y lo utiliza durante los 15 meses restantes.

La principal dificultad es encontrar las instancias correctas en AWS Marketplace. Una excelente manera de simplificar la búsqueda de instancias es buscarlas en varias zonas de acceso, y no solo en la que se encuentra. Una vez que adquiere una instancia, puede modificarla y asignarla a otra zona de accesibilidad, o convertirla en una instancia regional. Esto no es nada difícil de hacer, pero siga las instrucciones a continuación:

  • Paso 1: vaya al panel de instancias reservadas
  • Paso 2: haga clic en Comprar instancias reservadas
  • Paso 3: en la clase de oferta, seleccione Estándar
  • Paso 4: en la esquina superior derecha de la ventana emergente, seleccione "Mostrar solo las ofertas que reservan capacidad"
  • Paso 5 - Haz clic en Buscar
  • Paso 6: obtenga una instancia de la zona de disponibilidad 1b
  • Paso 7: espere a que la instancia se active
  • Paso 8: seleccione la instancia que se compró
  • Paso 9 - Haz clic en el botón Acciones
  • Paso 10: haga clic en Modificar instancias reservadas
  • Paso 11 - Alcance - Cambiar zona o región de disponibilidad
  • Paso 12 - Haz clic en Continuar
  • Paso 13 - Haz clic en Enviar modificaciones

Seguir estos pasos le permitirá comprar instancias reservadas estándar en cualquier zona de disponibilidad y modificarla para su zona de disponibilidad.

AWS Marketplace para empresas fuera de los EE. UU.


Aclaraciones importantes para usuarios fuera de la jurisdicción de los EE. UU. No puede vender instancias reservadas estándar en el mercado a menos que tenga una entidad legal estatal. Si su empresa encuentra fuera de los Estados Unidos, podrá comprar instancias en Marketplace, pero no podrá venderlas.

Usar instancias puntuales


¡Me encantan las instancias de spot! Puede ahorrar hasta un 90% al usarlos, ¡y no requerirá grandes inversiones! El único inconveniente de las instancias Spot es que AWS puede eliminar estas instancias en muy poco tiempo o después de una advertencia de dos minutos. A este respecto, este tipo de instancias solo se puede usar para cargas tolerantes a fallas o cargas flexibles.

Use SpotInst para ejecutar instancias de spot

Una forma segura de ejecutar instancias de Spot y minimizar el riesgo de tiempo de inactividad es utilizar la plataforma SpotInst. Este servicio se conecta a su cuenta de AWS y administra la distribución de instancias de Spot. Si la instancia está desactivada, el servicio la reemplazará con On Demand y evitará el tiempo de inactividad. Las tarifas también son bastante interesantes, cobran el 20% de lo que se ahorró (entre la diferencia en el precio de On-demand y Spot).

Un gran escenario para las instancias de Spot es usar una copia de servidores para bases de datos o para extensiones de aplicaciones flexibles. Use SpotInst para controlar la asignación de instancias de Spot, y lo más probable es que nunca encuentre el tiempo de inactividad asociado con el uso de esta clase de instancias.

imagen

Escalado automático (recursos inactivos, automatización de iniciar / detener instancias EC2)


AWS Auto Scaling supervisa sus aplicaciones y ajusta automáticamente la potencia para mantener una potencia estable y predecible al menor costo. Puede configurar el escalado automático para iniciar y detener automáticamente las instancias de EC2. El escalado automático tiene en cuenta las métricas de recursos, como CPU, solicitudes de API y tiempos de activación / desactivación.

Para minimizar los costos, debe usar el escalado automático + instancias puntuales + instancias reservadas. Veamos la situación real que encontramos en Back4App. Las cargas de trabajo cambian a lo largo del día. La cantidad de solicitudes que recibimos no es uniforme y tiene cargas de uso pico en ciertas horas. Para resolver este problema, asignamos instancias reservadas para el límite de consumo mínimo y escalamos con instancias puntuales. La siguiente figura lo ayuda a comprender la configuración. Esto es cuánto puede ahorrar:

imagen

  • Instancias reservadas: en Back4App, utilizamos una combinación de 12/36 instancias reservadas estándar mensuales. Nuestros ahorros medios son del 50% en comparación con los precios a pedido.
  • Escalado automático: iniciamos / detenemos instancias en función del número total de solicitudes de API que recibe cada instancia. Tenemos tres períodos pico durante el día, y el ahorro en comparación con los recursos inactivos que funcionarían las 24 horas con la carga máxima es aproximadamente del 75%.
  • Instancias puntuales: tenemos una combinación de dos familias de instancias que funcionan en Spotinst para obtener el máximo tiempo de actividad. Nuestros ahorros son del 55% en comparación con los precios a pedido. Este es nuestro ahorro, teniendo en cuenta el monto total que pagamos a SpotInst. El uso de instancias puntuales directamente desde AWS podría ahorrarnos aproximadamente un 70%, pero aumentaría los riesgos. Nos gusta jugar con moderación y decidimos devolver algunos de nuestros ahorros a SpotInst.

Ajustar escala

Personaliza tu escala vertical y horizontal (Cloudformation)

Elija la región de AWS correcta para guardar


  • Los precios varían entre regiones! Elija el equivocado y pagará de más.
  • Las regiones más baratas son Virginia del Norte, Ohio y Oregón.

Los más caros: Sao Paulo, Sydney y Hong Kong.
Considere el siguiente ejemplo:

  • 4 x instancias t3.medium
  • EBS de 30 Gb dedicados a cada instancia
  • 1 Tb de tráfico total

La misma configuración será un 102% más cara en Sao Paulo en comparación con Virginia del Norte.

  • $ 221.65 / mes en Virginia del Norte
  • $ 449.05 / mes en Sao Paulo

La centralización de las operaciones en una región también tiene sus ventajas.

  • Es mucho más fácil controlar la asignación de instancias reservadas.
  • No se aplicarán cargos de tráfico entre regiones.

En Back4App, no pudimos centralizar todas las operaciones en North Virginia debido a nuestra cobertura comercial y los requisitos del cliente. Decidimos crear un clúster en EE. UU., Europa y Asia. Centralizamos nuestras operaciones en estos grupos y expandimos cada región lo más posible.

Actualizar generaciones anteriores de recursos


AWS ocasionalmente lanza nuevos tipos de instancias. Las nuevas generaciones son más poderosas y más baratas.

La vieja generación de instancias

C4.grande

2 núcleos

3.75 GB de memoria

$ 0.100 / hora

La nueva generación de instancias.

C5.grande

2 núcleos

Memoria de 4 gb

$ 0.085 / hora

¡La nueva generación es un 15% más barata y un 6% más potente!

Permitir red mejorada

¡Habilite la red mejorada para un mejor rendimiento de instancia!

4. EBS - Elastic Block Store


EBS proporciona volúmenes de almacenamiento seguros para usar con instancias EC2 en la nube de AWS. EBS , , . , . General Purpose SSD Magnetic.

General Purpose SSD

$ 0.10/-

Magnetic

$ 0.05/-

EBS – SSD x Magnetic


, . , Magnetic SSD.

  • Magnetic SSD , .
  • SSD , .

EBS –


, EBS – . .

– EBS


EBS! ! , ! EC2 EBS.

AWS EBS, . , , , EBS .

, . , 10 t3.small 50GB SSD EBS .

:

  • EC2 = 10 x $ 15.23 = 152.30
  • EBS : 10 x 50 = 500
  • : $ 0.10-
  • EBS : $ 50.00
  • : $ 182.30

, EBS 32% EC2 . , .



(ephemeral storage). , EBS, Reserved . , , ( ), Spot .


, – .

S3,

EBS , S3! , S3, EBS. , , , .

5. Elastic Cache – Reserved Nodes


, reserved Elastic Cache. :

  • 1 – 65%
  • 3 – 77%

EC2 . reserved node, :

  • Elastic Cache ( EC2 Reserved instances)
  • Reserved Nodes
  • «Purchase Reserved Node»
  • Redis Memcached
  • Offering Type (1 3 )
  • Next

Elastic Cache , EC2. .

Elastic Cache AWS Marketplace'

, Marketplace Reserved Nodes! , .

6.


- ! , , . , . , , , , S3 , ..

, Back4App , .

AWS?


, .

S3 endpoint Cloudflare CDN .


CDN (Content Delivery Network ) , , .

IP – IP


! AWS , EC2 , «Public IP/ Elastic IP Data Transfer». Public Elastic IP , Elastic Load Balancer , . , ( ), IP , .

– Availability Zone


, . .

GraphQL API


GraphQL , , . REST , , ; , . – GraphQL .


, . .

CloudFront!


, ! – . .

?




  • Cost Explorer

- , , , .

Cost Explorer, My Billing Dashboard Cost Explorer. Spend by Service View . 6 , . , Service ! , .

imagen

:

  • More Filters,
  • Usage Type Group
  • Data Transfer – Inter AZ
  • Data Transfer – Internet Out
  • Data Transfer – Region to Region Out
  • S3 Data Transfer Out
  • Apply Filters

:

imagen

, S3 EC2. , .

billing report. My Billing Dashboard Bills .

:

imagen

, , EC2. Data Transfer .

imagen

, ( , , ).

imagen

7. CloudFront


On-demand Cloudfront . 100 Tb . $ 0.060 / Gb, 15% ELB.

Cloud Front &


! AWS CloudFront , CloudFront $0.02/Gb. , AWS , . , CloudFront Private Contract.

Amazon CloudFront SSL-Cert-Custom


, . $20 , Cloudflare $25 . Private & Volume Pricing, CDN (Cloud Delivery Network) , .

8. S3 – Simple Storage Service


S3 .

S3 VPC endpoint


, – S3 VPC endpoint. S3 endpoint VPC (Virtual Private Cloud) S3 , AWS , . , .


:
S3 Standard

$ 0.023 /

:

  • ,

S3 Infrequent Access

$ 0.0125 /

:

  • ,
  • ,

S3 One-Zone Infrequent Access

$ 0.010 /

:


S3 Glacier

$ 0.004 /

:

  • , ,

S3 Glacier Deep Archive

$ 0.00099 /

:

  • , .
  • 12

S3 API

, , , . ! , Back4App. , . S3 Standard S3 Glacier . ! , AWS $ 0.05 1000 Glacier! , , ! , S3 .

S3


S3 . S3 . .

9. AWS


4 :

  • Basic –
  • Developer — $ 29 / 3%
  • Business — $ 100 / 10-3% ,
  • Enterprise — $ 15.000

Business . , . Enterprise, . ( Enterprise , , .)

AWS

! . AWS ! , GDPR ! . , .

10.


. , . 365 !

. :

  • , :
  • Billing & Cost Management
  • Cost Explorer –
  • Cost Explorer – RI
  • Cost Explorer – RI
  • tag'
  • , ,
  • AWS
  • CloudWatch Trusted Advisor

11.


. , .
Back4App , . , . .

12.


, AWS! , , , .

, AWS.

  • EC2
  • CloudFront
  • enhanced network
  • S3
  • AWS Marketplace & Elastic Cache Nodes
  • Spot, Reserved On-Demand
  • autoscaling
  • S3 Standard, Glacier

Source: https://habr.com/ru/post/467843/


All Articles