En esta sección, se resumen nuestras prácticas recomendadas y se proporcionan nuestras recomendaciones para usar OPDK con la nube de AWS.
Cassandra se usa como backend y almacén de datos para casi todas las políticas y es una parte fundamental del entorno de ejecución de Apigee Edge. Este documento se centra en la optimización de Casssandra para el entorno de AWS.
Requisitos de almacenamiento y E/S
La mayoría de las E/S de Cassandra son secuenciales, pero hay casos en los que se requieren E/S aleatorias. Un ejemplo es la lectura de tablas de strings ordenadas durante las operaciones de lectura. SSD es el mecanismo de almacenamiento recomendado para Cassandra, ya que proporciona tiempos de respuesta de latencia extremadamente bajos para operaciones de lectura aleatorias y, al mismo tiempo, proporciona suficiente rendimiento de escritura secuencial para operaciones de compactación. La replicación también se tiene en cuenta aquí.
Muchas instancias de AWS EC2 incluyen almacenamiento local en el que el disco duro está conectado físicamente al hardware en el que se aloja la instancia EC2. Apigee recomienda aprovechar el SSD y el almacenamiento de instancias cuando ejecutes Cassandra en producción. Cuando usas un tipo de instancia con más de 1 SSD, puedes usar RAID0 para obtener más capacidad de procesamiento y de almacenamiento.
Requisitos de red
Cassandra usa el protocolo Gossip para intercambiar información sobre la topología de red con otros nodos. El uso de Gossip más la naturaleza distribuida de Cassandra, que implica hablar con varios nodos para las operaciones de lectura y escritura, genera una gran cantidad de transferencia de datos a través de la red. Apigee recomienda usar un tipo de instancia con al menos 1 Gbps de ancho de banda de red y más de 1 Gbps para los sistemas de producción.
Usa una VPC con CIDR de /16. Dado que las subredes en AWS no pueden abarcar más de 1 AZ, Apigee recomienda lo siguiente:
- Crea 1 subred por zona de disponibilidad (AZ)
- Usar 3 subredes privadas para la instalación de Apigee, con un nodo de Cassandra en cada Arizona Las 3 subredes deben tener suficientes bloques CIDR para la expansión horizontal del clúster de Cassandra.
- Configura 3 subredes públicas con NAT dedicada para que Cassandra pueda comunicarse con Internet a fin de descargar software y actualizaciones de seguridad.
A diferencia de las arquitecturas principales/secundarias heredadas, Cassandra tiene una arquitectura sin instancia principal en la que todos los nodos desempeñan una función idéntica, por lo que no hay un único punto de falla. Considera distribuir los nodos de Cassandra en varias Arizona para habilitar la alta disponibilidad. Si distribuyes los nodos en las distintas Arizona, puedes mantener la disponibilidad y el tiempo de actividad en caso de desastre.
Elige una familia de instancias
Cuando se observan los requisitos de CPU de Cassandra, es útil tener en cuenta que las cargas de trabajo con mucho inserción están vinculadas a la CPU en Cassandra antes de convertirse en IO. En otras palabras, todas las operaciones de escritura van al registro de confirmación, pero Cassandra es tan eficiente cuando escribe que la CPU se convierte en el factor limitante. Cassandra es altamente simultáneo y usa tantos núcleos de CPU como estén disponibles.
Apigee recomienda usar una familia de instancias, que tiene un equilibrio entre la CPU y la memoria. Específicamente, recomendamos usar instancias de la familia C5 si están disponibles en tu región de AWS y C3 como opción de resguardo. En algunos casos, 4xlarge es la instancia óptima de ambas familias que proporciona el mejor precio y rendimiento.
Apigee también recomienda usar un usuario predeterminado para las instancias de Cassandra. Cuando escalas a más de 1 instancia por AZ, lo más probable es que todas tus instancias de Cassandra se coloquen en el mismo hardware subyacente si configuras el usuario como dedicado. Por lo tanto, cuando el hardware falle, es probable que pierdas todas tus instancias en ese AZ.
Resumen de recomendaciones
En la siguiente tabla, se resumen las recomendaciones de Apigee para usar AWS con Apigee Edge para la nube privada:
Familia de instancias | C5d (preferido ) o C3 |
Tipo de instancia | C(x).4xlarge |
Almacén de instancias | SSD (almacenamiento local) con RAID0 |
Tipo de usuario | predeterminado |
Posición de nodos | 1 nodo Cassandra por AZ |
VPC y subred | 1 subred por AZ y una VPC por región |
Para obtener más información, consulta Tipos de instancias de Amazon.