Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure Instância Gerenciada do Apache Cassandra é um serviço totalmente gerenciado para clusters apache Cassandra de software livre puros. O serviço também permite que as configurações sejam substituídas, dependendo das necessidades específicas de cada carga de trabalho, para máxima flexibilidade e controle.
Este início rápido demonstra como usar os comandos CLI do Azure para criar um cluster com Azure Instância Gerenciada para Apache Cassandra. Ele também mostra como criar um datacenter e dimensionar nós para cima ou para baixo dentro do datacenter.
Pré-requisitos
Use o ambiente bash em Azure Cloud Shell. Para obter mais informações, consulte Get iniciado com Azure Cloud Shell.
Se você preferir executar comandos de referência da CLI localmente, instalar o CLI do Azure. Se você estiver executando em Windows ou macOS, considere executar CLI do Azure em um contêiner do Docker. Para obter mais informações, consulte Como executar o CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre no CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para obter outras opções de entrada, consulte Authenticate para Azure usando CLI do Azure.
Quando for solicitado, instale a extensão CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, consulte Use e gerencie extensões com o CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Use uma rede virtual do Azure com conectividade com seu ambiente auto-hospedado ou local. Para obter mais informações sobre como conectar ambientes locais a Azure, consulte Conectar uma rede local para Azure.
- Se você não tiver uma assinatura Azure, crie uma conta gratuita antes de começar.
Importante
Este artigo requer o CLI do Azure versão 2.30.0 ou posterior. Se você estiver usando Azure Cloud Shell, a versão mais recente já está instalada.
Criar um cluster de instância gerenciada
Entre no portal Azure.
Defina a ID da assinatura no CLI do Azure:
az account set --subscription <Subscription_ID>Crie uma rede virtual com uma sub-rede dedicada em seu grupo de recursos:
az network vnet create --name <VNet_Name> --location eastus2 \ --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>A implantação de uma instância de Azure Instância Gerenciada para Apache Cassandra requer acesso à Internet. A implantação falha em ambientes em que o acesso à Internet é restrito. Verifique se você não está bloqueando o acesso em sua rede virtual aos seguintes serviços de Azure necessários para Azure Instância Gerenciada para que o Apache Cassandra funcione corretamente:
- Armazenamento do Azure
- Azure Key Vault
- Conjuntos de Dimensionamento de Máquinas Virtuais do Azure
- Azure Monitor
- Microsoft Entra ID
- Microsoft Defender para Nuvem
Aplique essas permissões específicas à rede virtual. A instância gerenciada requer a presença deles. Use o
az role assignment createcomando e substitua<subscriptionID>,<resourceGroupName>e<vnetName>com os valores apropriados: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>assigneeerolesão valores fixos. Insira esses valores exatamente como mencionado no comando. Não fazer isso leva a erros ao criar o cluster. Se você encontrar erros ao executar esse comando, talvez não tenha permissões para executá-lo. Entre em contato com o administrador do Azure para obter permissões.Crie o cluster em sua rede virtual recém-criada usando o comando az managed-cassandra cluster create . Execute o comando a seguir com o valor da
delegatedManagementSubnetIdvariável. (O valor dedelegatedManagementSubnetIdé o mesmo nome da rede virtual para o qual as permissões foram aplicadas.)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='5.0' # 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 \ --debugCrie um datacenter para o cluster com três VMs (máquinas virtuais). Use a seguinte configuração:
- Tamanho da VM: Standard E8s v5
- Discos de dados: 4 discos P30 anexados a cada uma das VMs implantadas, ao calcular a capacidade de armazenamento, pressupõem um uso máximo sustentado de 50%. Este buffer contabiliza os registros de exclusão (tombstones) e também o consumo de disco pelos serviços do sistema. Além disso, os backups consomem temporariamente espaço em disco antes que os dados sejam persistidos no Armazenamento de Blobs.
Depois que todas as informações estiverem organizadas, use o 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 falseEscolha o valor para
--skua partir dos seguintes tamanhos de VM disponíveis:- Standard_E8s_v5
- Standard_E16s_v5
- Standard_E20s_v5
- Standard_E32s_v5
Por padrão,
--availability-zoneé definido comofalse. Para habilitar zonas de disponibilidade, defina-as comotrue. As zonas de disponibilidade ajudam a aumentar a disponibilidade do serviço. Para obter mais informações, consulte Acordos de Nível de Serviço para serviços online.Não há suporte para zonas de disponibilidade em todas as regiões Azure. As implantações falharão se você selecionar uma região em que não há suporte para zonas de disponibilidade. Para regiões com suporte, consulte a lista de regiões do Azure.
A implantação bem-sucedida de zonas de disponibilidade está sujeita à disponibilidade de recursos de computação em todas as zonas na região selecionada. As implantações falharão se o tamanho da VM que você escolheu não estiver disponível na região selecionada.
Depois que o datacenter for criado, você poderá executar o comando az managed-cassandra datacenter update para reduzir ou ampliar o cluster. Altere o valor do
node-countparâmetro para o valor desejado: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
Conectar-se ao seu cluster
Azure Instância Gerenciada do Apache Cassandra não cria nós com endereços IP públicos. Para se conectar ao novo cluster do Cassandra, você deve criar outro recurso dentro da mesma rede virtual. Esse recurso pode ser um aplicativo ou uma VM com o Cassandra Query Language Shell (CQLSH) instalado. O CQLSH é uma ferramenta de consulta de software livre do Apache.
Você pode usar um modelo Azure Resource Manager para implantar uma VM do Ubuntu.
Devido a alguns problemas conhecidos com versões do Python, recomendamos que você use uma imagem do Ubuntu 22.04 que vem com o Python 3.10.12 ou um ambiente virtual do Python para executar o CQLSH.
Conectar a partir do CQLSH
Depois que a VM for implantada, use o Secure Shell para se conectar ao computador e instalar o CQLSH. Use os seguintes comandos:
# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre
Verifique quais versões do Cassandra ainda têm suporte e selecione a versão necessária. Recomendamos que você use uma versão estável.
Instale as bibliotecas do Cassandra para obter O CQLSH. Siga as etapas oficiais da documentação do Cassandra.
Conectar-se a partir de um aplicativo
Assim como acontece com o CQLSH, quando você usa um dos drivers de cliente do Apache Cassandra com suporte para se conectar a partir de um aplicativo, a criptografia TLS/SSL (Transport Layer Security/Secure Sockets Layer) deve ser habilitada e a verificação de certificado deve ser desabilitada. Para obter exemplos, consulte Java, .NET, Node.js e Python.
Recomendamos desabilitar a verificação de certificado porque ela não funciona, a menos que você mapeie endereços IP de seus nós de cluster para o domínio apropriado. Se uma política interna exigir que você execute a verificação de certificado TLS/SSL para qualquer aplicativo, adicione entradas como 10.0.1.5 host1.managedcassandra.cosmos.azure.com no arquivo de hosts para cada nó para facilitar essa configuração. Se você adotar essa abordagem, também precisará adicionar entradas sempre que escalar verticalmente os nós.
Para Java, recomendamos habilitar a política de execução speculativa em que os aplicativos são sensíveis à latência final. Para obter uma demonstração que ilustra como essa abordagem funciona e para ver como habilitar a política, consulte Implementar a política de execução especulativa.
Normalmente, você não precisa configurar certificados (como rootCA, node, client ou truststore) para se conectar ao Azure Instância Gerenciada do Apache Cassandra. A criptografia TLS/SSL usa o repositório de confiança padrão e a senha de runtime escolhida pelo cliente. Para obter o código de exemplo, consulte Java, .NET, Node.js e Python). Os certificados são confiáveis por padrão. Caso contrário, adicione-os ao repositório de confiança.
Configurar certificados de cliente (opcional)
A configuração de certificados do cliente é opcional. Um aplicativo cliente pode se conectar ao Azure Instância Gerenciada do Apache Cassandra depois de seguir as etapas anteriores. Se preferir, você também pode criar e configurar certificados de cliente para autenticação. Em geral, há duas maneiras de criar certificados:
- Certificados autoassinados: Certificados privados e públicos sem uma Autoridade de Certificação (AC) para cada nó. Nesse caso, todos os certificados públicos são necessários.
- Certificados assinados por uma AC: Certificados emitidos por uma AC autoassinada ou uma AC pública. Para essa configuração, você precisa do certificado de autoridade raiz e de todos os certificados intermediários, caso aplicável. Para obter mais informações, consulte Preparar certificados SSL para produção.
Para habilitar a autenticação de certificado do cliente no nó ou a Segurança da Camada de Transporte (TLS) mútua, forneça os certificados por meio da CLI do Azure. O comando a seguir carrega e aplica seus certificados de cliente ao repositório de confiança do seu Azure Instância Gerenciada para o cluster do Apache Cassandra. Você não precisa modificar cassandra.yaml as configurações. Depois que os certificados são aplicados, o cluster requer que o Cassandra verifique os certificados durante as conexões do cliente. Para obter mais informações, consulte require_client_auth: true 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
Solução de problemas
Se você encontrar um erro ao aplicar permissões à sua rede virtual usando a CLI do Azure, poderá aplicar a mesma permissão manualmente no portal do Azure. Um exemplo de erro é: "Não foi possível encontrar o usuário ou a entidade de serviço no banco de dados de grafo para e5007d2c-4b13-4a74-9b6a-605d99f03501." Para obter mais informações, consulte Usar o portal do Azure para adicionar a entidade de serviço do Azure Cosmos DB.
A atribuição de função no Azure Cosmos DB é usada exclusivamente para implantações. A Instância Gerenciada do Azure para Apache Cassandra não depende do Azure Cosmos DB no back-end.
Limpar os recursos
Quando o recurso não for mais necessário, use o az group delete comando para remover o grupo de recursos, a instância gerenciada e todos os recursos relacionados:
az group delete --name <Resource_Group_Name>
Próxima etapa
Neste início rápido, você aprendeu a criar um Azure Instância Gerenciada para o cluster do Apache Cassandra usando o CLI do Azure. Você já pode começar a trabalhar com o cluster: