virtuales servidores services precios gratis aws amazon-web-services amazon-redshift

amazon-web-services - servidores - sign in amazon aws



Desarrollo local y puesta en escena con Amazon Redshift (3)

Además de John Rotenstiens, que establece cómo reducir los costos si ha decidido ejecutar un segundo clúster para la puesta en escena, existen otras opciones, cuando su caso de uso no es crítico para la misión.

Como Redshift es una bifurcación de postgres 8, puede utilizar los controladores postgresql 8.4 JDBC o ODBC proporcionados por Amazon y señalarlos a una instancia de postgres 8 que se ejecute localmente. Esto funciona bien durante el desarrollo, ya que lo que funciona aquí generalmente funcionará en su sistema de producción (hay algunas excepciones).

La otra opción es tener una tabla separada en su clúster Redshift para ejecutar actividades que no sean de producción. Esto podría ser bueno para usted, suite de pruebas y desarrollo de "pruebas finales".

Luego puede organizar su implementación en producción y supervisar el entorno de transición para detectar problemas antes de la implementación completa.

Me gusta configurar herramientas y servicios con producción, montaje y desarrollo local. Me gustaría utilizar Amazon Redshift, y comenzar con $ 180 al mes parece bastante razonable para una base de datos de tiendas en columna, pero ¿realmente tengo que pensar en ello como $ 180 x # de entornos / mes? ¿Hay alguna forma de tener un escenario y un entorno local gratuitos para Redshift?

También es bueno poder hacer desarrollo contra una instancia local en lugar de depender de la red. Supongo que eso no es posible con Redshift.

¿Qué haces para que el desarrollo local sea más fácil, rápido y económico cuando trabajas con Redshift?


Amazon Redshift fue creado específicamente para ejecutarse en la infraestructura de AWS. No está disponible como una descarga. (Curiosamente, Amazon DynamoDB tiene una versión descargable para fines de desarrollo).

La opción más económica podría ser cerrar las instancias de Dev & Test todas las noches y los fines de semana. Tome una instantánea antes de eliminar el clúster, luego cree un clúster a la mañana siguiente según la instantánea. Esto se puede automatizar a través de la interfaz de línea de comandos (CLI) de AWS, lo que facilita la programación con cron o tareas programadas.

También podría tener una instantánea de los datos de prueba y restaurar esa instantánea cada mañana, lo que significa que la base de datos de prueba no se llena con casos de prueba.

Otro ahorro de costos podría ser reducir el número de nodos para los sistemas que no son de producción . Las consultas se ejecutarán más lentamente y se reducirá la cantidad total de almacenamiento, pero podría ser más rentable. O incluso use un nodo de 2TB de "almacenamiento denso" en lugar de varias instancias de SSD "de cálculo denso": proporcionarán más almacenamiento en menos nodos.


Otra solución de reducción de costes es tratar cada entorno como una base de datos en un único clúster. Las bases de datos no cuestan nada, y se le permiten 60 de ellas en un clúster

Hemos probado la solución Postgres-as-emulator, y ha estado bien, pero

  • Las características de rendimiento son radicalmente diferentes
  • Es fácil usar las funciones de Postgres que no están en Redshift (o viceversa)
  • Es difícil mantener un esquema que tenga partes opcionales (índices para uno, claves de clasificación para el otro, por ejemplo).

Por el momento, nos hemos alejado de eso, aunque a medida que vayamos creciendo tendremos que usar una solución híbrida donde las pruebas de aceptación y la puesta en escena sean bases de datos en Redshift, mientras que los desarrolladores vuelven a utilizar Postgres.