Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Managed Instance for Apache Cassandra es un servicio completamente administrado para clústeres de Apache Cassandra de código abierto puros. El servicio también permite invalidar las configuraciones, en función de las necesidades específicas de cada carga de trabajo, lo que permite la máxima flexibilidad y control cuando sea necesario.
En este inicio rápido se muestra cómo usar los comandos de la interfaz de la línea de comandos (CLI) de Azure para crear un clúster con Azure Managed Instance para Apache Cassandra. También muestra cómo crear un centro de datos y escalar o reducir verticalmente los nodos dentro del centro de datos.
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Introducción a Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Autenticación en Azure mediante la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
Azure Virtual Network con conectividad a su entorno autohospedado o local. Para más información sobre cómo conectar entornos locales a Azure, consulte Conexión de una red local a Azure.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Importante
Este artículo requiere la CLI de Azure 2.30.0 o una versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Creación de un clúster de instancia administrada
Inicie sesión en Azure Portal.
Establezca el identificador de la suscripción en la CLI de Azure:
az account set --subscription <Subscription_ID>
A continuación, cree una red virtual con una subred dedicada en el grupo de recursos:
az network vnet create --name <VNet_Name> --location eastus2 \ --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>
Nota
La implementación de una instancia administrada de Azure para Apache Cassandra requiere acceso a Internet. En entornos con acceso limitado a Internet se produce un error de implementación. Asegúrese de que no está bloqueando el acceso en la red virtual a los siguientes servicios de Azure necesarios para que Cassandra administrado funcione correctamente:
- Azure Storage
- Azure KeyVault
- Conjuntos de escalado de máquinas virtuales de Azure (VMSS)
- Supervisión de Azure
- Microsoft Entra ID
- Seguridad de Azure
Aplique estos permisos específicos a la red virtual. La instancia administrada las requiere. Utilice el comando
az role assignment create
y reemplace<subscriptionID>
,<resourceGroupName>
y<vnetName>
con los valores adecuados:az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>
Nota
Los
assignee
valores yrole
son valores fijos. Escriba estos valores exactamente como se mencionó en el comando . Si no lo hace, se producen errores al crear el clúster. Si se producen errores al ejecutar este comando, es posible que no tenga permisos para ejecutarlo. Póngase en contacto con el administrador de Azure para obtener permisos.A continuación, cree el clúster en la red virtual recién creada mediante el comando az managed-cassandra cluster create . Ejecute el siguiente comando en el valor de la variable
delegatedManagementSubnetId
:Nota
El valor de
delegatedManagementSubnetId
es el mismo nombre de la red virtual al que se aplicaron los permisos.resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster_Name>' location='eastus2' delegatedManagementSubnetId='/subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.Network/virtualNetworks/<VNet name>/subnets/<subnet name>' initialCassandraAdminPassword='myPassword' cassandraVersion='3.11' # set to 4.0 for a Cassandra 4.0 cluster az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --cassandra-version $cassandraVersion \ --debug
Cree un centro de datos para el clúster, con tres máquinas virtuales con la siguiente configuración:
Tamaño de máquina virtual: Estándar E8s v5
Discos de datos: 4 discos P30 conectados a cada una de las máquinas virtuales implementadas
Con todo listo, use el comando az managed-cassandra datacenter create:
dataCenterName='dc1' dataCenterLocation='eastus2' virtualMachineSKU='Standard_D8s_v4' noOfDisksPerNode=4 az managed-cassandra datacenter create \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --data-center-location $dataCenterLocation \ --delegated-subnet-id $delegatedManagementSubnetId \ --node-count 3 \ --sku $virtualMachineSKU \ --disk-capacity $noOfDisksPerNode \ --availability-zone false
Nota
El valor de
--sku
se puede elegir entre los siguientes tamaños de máquina virtual disponibles:- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E20s_v5
- Standard_E32s_v5
De forma predeterminada,
--availability-zone
se establece enfalse
. Para habilitar zonas de disponibilidad, establézcala entrue
. Las zonas de disponibilidad ayudan a aumentar la disponibilidad del servicio. Para obtener más información, consulte Acuerdo de Nivel de Servicio para Online Services.Advertencia
Las zonas de disponibilidad no se admiten en todas las regiones de Azure. Se produce un error en las implementaciones si selecciona una región en la que no se admiten las zonas de disponibilidad. Para ver las regiones admitidas, consulte lista de regiones de Azure.
La implementación correcta de zonas de disponibilidad está sujeta a la disponibilidad de los recursos de proceso en todas las zonas de la región seleccionada. Se produce un error en las implementaciones si el tamaño de máquina virtual que elija no está disponible en la región seleccionada.
Una vez creado el centro de datos, puede ejecutar el comando az managed-cassandra datacenter update para escalar hacia abajo o hacia arriba su clúster. Cambie el valor del parámetro
node-count
al valor deseado:resourceGroupName='<Resource_Group_Name>' clusterName='<Cluster Name>' dataCenterName='dc1' dataCenterLocation='eastus2' az managed-cassandra datacenter update \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --data-center-name $dataCenterName \ --node-count 9
Conexión al clúster
Azure Managed Instance para Apache Cassandra no crea nodos con direcciones IP públicas. Para conectarse al nuevo clúster de Cassandra, debe crear otro recurso dentro de la misma red virtual. Este recurso puede ser una aplicación o una máquina virtual que tenga instalada la herramienta de consulta de código abierto de Apache CQLSH.
Puede usar una plantilla de Resource Manager para implementar una máquina virtual de Ubuntu.
Nota
Debido a algunos problemas conocidos con versiones de Python, se recomienda usar una imagen de Ubuntu 22.04 que viene con Python3.10.12 o usar un entorno virtual de Python para ejecutar CQLSH.
Conexión desde CQLSH
Tras la implementación de la máquina virtual, use SSH para conectarse a la máquina e instalar CQLSH, tal y como se muestra en los siguientes comandos:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
Compruebe qué versiones de Cassandra siguen siendo compatibles y elija la versión que necesita. Se recomienda usar una versión estable.
Instale las bibliotecas de Cassandra para obtener CQLSH siguiendo los pasos oficiales de la documentación de Cassandra.
Conéctese mediante cqlsh, como se describe en la documentación.
Conexión desde una aplicación
Al igual que con CQLSH, la conexión desde una aplicación mediante uno de los controladores de cliente de Apache Cassandra admitidos requiere que el cifrado de SSL esté habilitado y la verificación de certificación esté deshabilitada. Para obtener ejemplos, consulte Java, .NET, Node.jsy Python.
Se recomienda deshabilitar la comprobación de certificados porque la comprobación de certificados no funciona a menos que asigne direcciones IP de los nodos del clúster al dominio adecuado. Si tiene una directiva interna que exige que realice la comprobación de certificados SSL para cualquier aplicación, puede facilitar agregando entradas como 10.0.1.5 host1.managedcassandra.cosmos.azure.com
en el archivo de hosts para cada nodo. Si adopta este enfoque, también tendría que agregar nuevas entradas cada vez que escale verticalmente los nodos.
Para Java, se recomienda encarecidamente habilitar la directiva de ejecución especulativa en la que las aplicaciones son sensibles a la latencia final. Para obtener una demostración que muestre cómo funciona y cómo habilitar la directiva, consulte Implementación de una directiva de ejecución especulativa.
Nota
Normalmente no es necesario configurar certificados, rootCA, nodos, clientes o almacenes de confianza para conectarse a Azure Managed Instance para Apache Cassandra. El cifrado SSL usa el almacén de confianza predeterminado y la contraseña de tiempo de ejecución elegida por el cliente. Para obtener código de ejemplo, consulte Java, .NET, Node.jsy Python). Los certificados son de confianza de forma predeterminada. Si no es así, agréguelos al almacén de confianza.
Configuración de certificados de cliente (opcional)
La configuración de certificados de cliente es opcional. Una aplicación cliente puede conectarse a Azure Managed Instance para Apache Cassandra siempre que se sigan los pasos anteriores. Si lo prefiere, también puede crear y configurar certificados de cliente para la autenticación. En general, hay dos maneras de crear certificados:
Certificados autofirmados: certificados privados y públicos (sin CA) para cada nodo. En este caso, se requieren todos los certificados públicos.
Certificados firmados por una ENTIDAD de certificación: emitidos por una ENTIDAD de certificación autofirmada o una CA pública. Para esta configuración, necesita el certificado de entidad de certificación raíz y todos los certificados intermedios, si procede. Para obtener más información, consulte Preparación de certificados SSL para producción.
Para implementar la autenticación de certificados de cliente a nodo o la seguridad mutua de la capa de transporte (mTLS), proporcione los certificados mediante la CLI de Azure. El comando siguiente carga y aplica los certificados de cliente al almacén de confianza para el clúster de instancia administrada de Cassandra. No es necesario modificar la configuración de cassandra.yaml
. Una vez aplicado, el clúster requiere Que Cassandra compruebe los certificados durante las conexiones de cliente. Consulte require_client_auth: true
en Cassandra client_encryption_options.
resourceGroupName='<Resource_Group_Name>'
clusterName='<Cluster Name>'
az managed-cassandra cluster update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--client-certificates /usr/csuser/clouddrive/rootCert.pem /usr/csuser/clouddrive/intermediateCert.pem
Solución de problemas
Si se produce un error al aplicar permisos a la red virtual mediante la CLI de Azure, puede aplicar el mismo permiso manualmente desde Azure Portal. Un ejemplo de este error es No se encuentra el usuario o la entidad de servicio en la base de datos de grafos para 'e5007d2c-4b13-4a74-9b6a-605d99f03501'. Para obtener más información, consulte Uso de Azure Portal para agregar una entidad de servicio de Azure Cosmos DB.
Nota
La asignación de roles de Azure Cosmos DB se usa solo con fines de implementación. Azure Managed Instance for Apache Cassandra no tiene dependencias de back-end en Azure Cosmos DB.
Limpieza de recursos
Puede usar el comando az group delete
para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados cuando ya no se necesiten:
az group delete --name <Resource_Group_Name>
Pasos siguientes
En este inicio rápido, ha aprendido a crear un clúster de Azure Managed Instance for Apache Cassandra mediante la CLI de Azure. Ahora puede empezar a trabajar con el clúster: