Prácticas recomendadas de AWS

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 enfoca en optimizar Cassandra para el entorno de AWS.

Requisitos de almacenamiento y de E/S

La mayor parte de la E/S de Cassandra es secuencial, pero hay casos en los que se requiere una E/S aleatoria. Un ejemplo es cuando se leen tablas de cadenas ordenadas durante las operaciones de lectura. SSD es el mecanismo de almacenamiento recomendado para Cassandra, ya que proporciona tiempos de respuesta de latencia extremadamente baja para las operaciones de lectura aleatorias y, al mismo tiempo, proporciona suficiente rendimiento de escritura secuencial para las operaciones de compactación. Aquí también se tiene en cuenta la replicación.

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 de EC2. Apigee recomienda aprovechar los almacenes de SSD y de instancias cuando se ejecuta 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 almacenamiento.

Requisitos de red

Cassandra usa el protocolo Gossip para intercambiar información con otros nodos sobre la topología de red. El uso de Gossip y la naturaleza distribuida de Cassandra, que implica comunicarse con varios nodos para operaciones de lectura y escritura, da como resultado una gran transferencia de datos a través de la red. Apigee recomienda usar un tipo de instancia con un ancho de banda de red de, al menos, 1 Gbps y más de 1 Gbps para los sistemas de producción.

Usa una VPC con un 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)
  • Usa 3 subredes privadas para tu instalación de Apigee, con un nodo de Cassandra en cada AZ. Las 3 subredes deben tener suficientes bloques CIDR para dar cabida a la expansión horizontal del clúster de Cassandra.
  • Configura 3 subredes públicas con NAT dedicada para que Cassandra pueda comunicarse con Internet y descargar software y actualizaciones de seguridad.

A diferencia de las arquitecturas heredadas de principal y subordinado, Cassandra tiene una arquitectura sin principal en la que todos los nodos desempeñan un rol idéntico, por lo que no hay un punto único de fallo. Considera distribuir tus nodos de Cassandra en varias AZ para habilitar la alta disponibilidad. Si distribuyes los nodos entre las AZ, puedes mantener la disponibilidad y el tiempo de actividad en caso de un desastre.

Elige una familia de instancias

Cuando se analizan los requisitos de CPU de Cassandra, es útil tener en cuenta que las cargas de trabajo con muchas inserciones están vinculadas a la CPU en Cassandra antes de vincularse a la E/S. En otras palabras, todas las operaciones de escritura van al registro de confirmación, pero Cassandra es tan eficiente en la escritura que la CPU se convierte en el factor limitante. Cassandra es altamente simultánea y usa tantos núcleos de CPU como estén disponibles.

Apigee recomienda usar una familia de instancias, que tiene un equilibrio de CPU y memoria. En particular, recomendamos usar instancias de la familia C5 si están disponibles en tu región de AWS y C3 como una opción de resguardo. En algunos casos, 4xlarge es la instancia óptima en ambas familias que proporciona la mejor relación precio-rendimiento.

Apigee también recomienda usar un arrendamiento predeterminado para las instancias de Cassandra. Cuando escales a más de 1 instancia por AZ, es muy probable que todas tus instancias de Cassandra se ubiquen en el mismo hardware subyacente si configuras la instancia como dedicada. Por lo tanto, cuando el hardware falla, es probable que pierdas todas tus instancias en esa 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
Ubicación de los nodos 1 nodo de 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.