¿Qué ofrece y cómo se configura Elasticache en AWS?
Tags: database, redis, aws, elasticache
Published: 2020-10-31 16:10:41

## ¿Qué ofrece Elasticache?

Amazon ElastiCache ofrece como motor de base de datos de caché a Redis o Memcached de una forma completamente administrada.

Principalmente, este servicio de AWS proporciona:

* Soporte para dos motores: Memcached y Redis.
* Facilidad de administración a través de la consola de administración de AWS.
* Compatibilidad con el protocolo específico del motor. 
* Estadísticas detalladas de monitoreo a través de Amazon CloudWatch.
* Pagar solo por los recursos que consume en función de las horas de nodo utilizadas.
* Está disponible en todas las regiones de AWS.

## Configuración

### Preconfiguración: Grupo de Parámetros

Antes de crear el servicio de ElastiCache en AWS, se recomienda pre-configurar el grupo de parámetros que va a tomar el servicio.


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603683959027/-Y8gvhrnz.png)

Para crear un grupo de parámetros se da click en _Crear Grupo Parámetros_:


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603683987470/rA5rgLTA0.png)

Luego de crear el grupo, se Editan los parámetros según la necesidad (Los grupos de parámetros por «_defecto_» no se pueden modificar):


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684162097/X9MG0ppwx.png)

Al dar click en Editar parámetros se despliega una tabla donde se pueden modificar 48 parámetros de configuración de Redis:


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684182085/O4-QdUFj5.png)


El grupo de parámetros contiene 189 valores, de los cuales solo 48 son configurables por el usuario, el resto es administrado por AWS según el tipo de nodo que se escoge.


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684205161/OcxlSA_Fk.png)

### Parámetros de configuración

Para crear un clúster de Amazon ElastiCache, Amazon solicita:



#### 1. Seleccionar motor de clúster:


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684286660/M1c12G85j.png)

#### 2. Parámetros básicos


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684350731/lDHPYpxDN.png)

> *Nota*: Los _grupos de parámetros_ son un conjunto de valores que se pueden aplicar a uno o varios contenedores, y contiene los valores personalizado que se definieron en el primer paso de _preconfiguración_. Se pueden crear varios grupos de parámetros y aquí permite seleccionar el grupo que se haya creado previamente. Este grupo de parámetros son los valores que va a tomar como configuración el motor [Redis](https://juanc4milo.dev/redis-instalacion-y-configuracion).

#### 3. Parámetros avanzados

Permite seleccionar el grupo de subredes a la que va a pertenecer el clúster de AWS ElastiCache. Permite seleccionar zonas de disponibilidad preferidas.


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684505545/qx5KOQdwy.png)

> *Nota*: El parámetro «_Multi-AZ con conmutación por error automática_» permite indicar que el servicio tenga disponibilidad mejorada a través de la conmutación por errores automática, lo que hace que cambie a una réplica de solo lectura en caso que exista falla en el nodo principal.

#### 4. Parámetros de seguridad


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684675589/zrZOE6qU6.png)

> * El parámetro «_Cifrado en reposo_» habilita el cifrado de los datos almacenados en el disco. Actualmente, solo se puede habilitar el cifrado en reposo cuando se crea un clúster de Redis en la versión 3.2.6.
> * El parámetro «_Cifrado en tránsito_» habilita el cifrado de los datos durante su transmisión. Actualmente, solo se puede habilitar el cifrado en tránsito cuando se crea un clúster de Redis en la versión 3.2.6.
> * El parámetro «_Ubicación en S3 del archivo RDB_» es una ruta de un bucket S3 que contiene una copia de seguridad de un archivo tipo RDB de Redis que tengamos externo para propagar datos en la nueva base de datos que se va a crear.

### Luego de configurar, ¿Qué acciones puedo hacer con el servicio?

Las acciones permitidas sobre el servicio ElastiCache tipo Redis en AWS son:

* Crear.
* Copia Seguridad.
* Reiniciar.
* Eliminar.
* Modificar.
* Aplicar actualización servicio.
* Ver/Detener actualización.


## Costos

### Tipos de nodos

Los principales tipos de nodos para crear nuestra base de datos de Elasticache son:


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603684989945/u0agaN_Oj.png)


![image.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1603685028175/1cxMeBh1O.png)

En un modelo de nodos por demanda, dependiendo del tipo de nodo que se seleccione y la región de AWS, los precios fluctúan entre $0,017 USD y $7,00 USD por hora.

Bajo un modelo de nodos reservados, ya sea entre 1 y 3 años, los precios varían entre $0,009 USD y $6,604 USD por hora.

Ver [tabla de precios](https://aws.amazon.com/es/elasticache/pricing/?nc=sn&loc=5)

### Almacenamiento backup

El almacenamiento adicional de copias de seguridad tiene un valor de $0,085 USD/GB al mes y es el mismo valor para todas las regiones.

### Transferencia de datos

* No cobran por transferencia de datos entre una instancia de Amazon EC2 y el nodo de Elasticache si se encuentran dentro de la misma zona de disponibilidad.
* Se cobra $0,01 USD por cada GB de entrada/salida entre una instancia de Amazon EC2 y el nodo de Elasticache si se encuentra entre una zona de disponibilidad diferente o en regiones diferentes.

### Otros artículos que te podrían interesar...

* [Redis - Instalación y Configuración](https://juanc4milo.dev/redis-instalacion-y-configuracion)
* [AWS S3 Batch Operations](https://juanc4milo.dev/aws-s3-batch-operations)
* [AWS S3 Inventory](https://juanc4milo.dev/inventario-aws-s3)
* [Qué ofrece y cómo se configura AWS Elasticache?](https://juanc4milo.dev/aws-elasticache)
*  [How to use Redis with Spring in Java](https://juanc4milo.dev/redis-with-spring-in-java)

**Do you like it?** [Buy me a beer](https://buymeacoffee.com/juanc4milo) if you want.

> _Originally published at [juanc4milo.dev](https://juanc4milo.dev)_