Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Azure Managed Instance for Apache Cassandra é um serviço totalmente gerido para clusters Apache Cassandra puramente open-source. 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 quickstart demonstra como usar os comandos CLI do Azure para criar um cluster com Azure Managed Instance para o Apache Cassandra. Ele também mostra como criar um datacenter e dimensionar nós para cima ou para baixo dentro do datacenter.
Pré-requisitos
Usa o ambiente Bash em Azure Cloud Shell. Para mais informações, consulte Comece com Azure Cloud Shell.
Se preferires executar comandos de referência de CLI localmente, instala o CLI do Azure. Se estiveres a correr no Windows ou macOS, considera executar CLI do Azure num contentor Docker. Para mais informações, veja Como executar o CLI do Azure num contentor Docker.
Se estiveres a usar uma instalação local, inicia sessão na CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de iniciação de sessão, veja Autenticar para Azure usando CLI do Azure.
Quando for solicitado, instale a extensão CLI do Azure na primeira utilização. Para mais informações sobre extensões, veja Usar e gerir extensões com a CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Use uma rede virtual Azure com conectividade ao seu ambiente auto-hospedado ou local. Para mais informações sobre como ligar ambientes on-premises a Azure, consulte Ligar uma rede on-premises a Azure.
- Se não tiver uma subscrição Azure, crie uma conta gratuita antes de começar.
Importante
Este artigo requer a CLI do Azure versão 2.30.0 ou posterior. Se estiveres a usar o Azure Cloud Shell, a versão mais recente já está instalada.
Criar um cluster de instância gerenciado
Inicie sessão no portal Azure.
Defina o seu ID de subscrição na CLI do Azure:
az account set --subscription <Subscription_ID>Crie uma rede virtual com uma sub-rede dedicada no seu grupo de recursos:
az network vnet create --name <VNet_Name> --location eastus2 \ --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>A implementação de uma instância de Azure Managed Instance para o Apache Cassandra requer acesso à internet. A implantação falha em ambientes onde o acesso à Internet é restrito. Certifique-se de que não está a bloquear o acesso na sua rede virtual aos seguintes Azure serviços necessários para Azure Managed Instance para que o Apache Cassandra funcione corretamente:
- Armazenamento do Azure
- Azure Key Vault
- Conjuntos de Dimensionamento de Máquinas Virtuais do Azure (Dimensionamento de Conjuntos de Máquinas Virtuais do Azure)
- Azure Monitor
- Microsoft Entra ID
- Microsoft Defender para a Cloud
Aplique essas permissões específicas à rede virtual. A instância gerenciada os exige. Use o comando e substitua
az role assignment create<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>Os
assigneevalores erolesão valores fixos. Insira esses valores exatamente como mencionado no comando. Não fazer isso leva a erros quando você cria o cluster. Se você encontrar algum erro ao executar esse comando, talvez não tenha permissões para executá-lo. Contacte 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 seguinte comando com o valor da
delegatedManagementSubnetIdvariável. (O valor dedelegatedManagementSubnetIdé o mesmo nome da rede virtual para a 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 máquinas virtuais (VMs). Utilize a seguinte configuração:
- Tamanho da VM: Standard E8s v5
- Discos de dados: 4 discos P30 ligados a cada uma das VMs implementadas, Ao calcular a capacidade de armazenamento, assuma um uso máximo sustentado de 50%. Este buffer tem em conta as lápides e o consumo de disco pelos serviços do sistema. Além disso, os backups consomem temporariamente espaço em disco antes de os dados serem mantidos para armazenamento Blob.
Depois que todas as informações estiverem disponíveis, 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
--skuentre os 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-o comotrue. As zonas de disponibilidade ajudam a aumentar a disponibilidade do serviço. Para mais informações, consulte Acordos de nível de serviço para serviços online.As zonas de disponibilidade não são suportadas em todas as regiões do Azure. As implantações falham se você selecionar uma região onde as zonas de disponibilidade não são suportadas. Para regiões suportadas, veja a lista de regiões Azure.
A implantação bem-sucedida de zonas de disponibilidade está sujeita à disponibilidade de recursos de computação em todas as zonas da região selecionada. As implantações falham 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 aumentar a escala do cluster. Altere o
node-countvalor do parâ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 cluster
Azure Managed Instance para Apache Cassandra não cria nós com endereços IP públicos. Para se conectar ao seu novo cluster Cassandra, você deve criar outro recurso dentro da mesma rede virtual. Este recurso pode ser um aplicativo ou uma VM com Cassandra Query Language Shell (CQLSH) instalado. CQLSH é uma ferramenta de consulta de código aberto Apache.
Pode usar um modelo Azure Resource Manager para implementar uma VM Ubuntu.
Devido a alguns problemas conhecidos com versões do Python, recomendamos que utilize uma imagem Ubuntu 22.04 que venha com Python3.10.12 ou um ambiente virtual Python para correr CQLSH.
Conecte-se a partir do CQLSH
Depois que a VM for implantada, use o Secure Shell para se conectar à máquina 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 são suportadas e selecione a versão que você precisa. Recomendamos que você use uma versão estável.
Instale as bibliotecas Cassandra para obter CQLSH. Siga os passos oficiais da documentação da Cassandra.
Conectar a partir de uma aplicação
Assim como no CQLSH, quando você usa um dos drivers de cliente Apache Cassandra suportados para se conectar a partir de um aplicativo, a criptografia Transport Layer Security/Secure Sockets Layer (TLS/SSL) deve ser habilitada e a verificação de certificado deve ser desabilitada. Para exemplos, veja Java, .NET, Node.js e Python.
Recomendamos que você desabilite a verificação de certificado porque ela não funciona, a menos que você mapeie os endereços IP dos nós do cluster para o domínio apropriado. Se uma política interna exigir que você execute a verificação do certificado TLS/SSL para qualquer aplicativo, adicione entradas como 10.0.1.5 host1.managedcassandra.cosmos.azure.com no arquivo hosts para cada nó para facilitar essa configuração. Se assumir esta abordagem, também precisará adicionar novas entradas sempre que expandir capacidade dos nós.
Para Java, recomendamos que ative a política de execução especulativa onde as aplicações são sensíveis à latência de cauda. Para uma demonstração que ilustre como esta abordagem funciona e para ver como ativar a política, veja Implementar política de execução especulativa.
Normalmente não precisas de configurar certificados (como rootCA, node, client ou truststore) para ligares a Azure Managed Instance para o Apache Cassandra. A criptografia TLS/SSL usa o armazenamento confiável padrão e a senha de tempo de execução escolhida pelo cliente. Para código de exemplo, veja Java, .NET, Node.js e Python). Os certificados são confiáveis por padrão. Caso contrário, adicione-os ao repositório confiável.
Configurar certificados de cliente (opcional)
A configuração de certificados de cliente é opcional. Uma aplicação cliente pode ligar-se a Azure Managed Instance para o Apache Cassandra depois de seguir os passos 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 Autoridade de Certificação (CA) em cada nó. Neste caso, todos os certificados públicos são necessários.
- Certificados assinados por uma autoridade de certificação: Certificados emitidos por uma autoridade de certificação autoassinada ou pública. Para essa configuração, você precisa do certificado de autoridade de certificação raiz e de todos os certificados intermediários, se aplicável. Para obter mais informações, consulte Preparar certificados SSL para produção.
Para implementar autenticação de certificados cliente-nó ou segurança mútua da Camada de Transporte, forneça os certificados utilizando a CLI do Azure. O comando seguinte carrega e aplica os seus certificados de cliente à loja de confiança do seu Azure Managed Instance para o cluster Apache Cassandra. Não é necessário modificar as cassandra.yaml configurações. Depois que os certificados são aplicados, o cluster exige que Cassandra verifique os certificados durante as conexões de cliente. Para obter mais informações, consulte require_client_auth: true em 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
Resolução de Problemas
Se encontrar um erro ao aplicar permissões à sua rede virtual usando a CLI do Azure, pode aplicar a mesma permissão manualmente a partir do portal do Azure. Um exemplo deste tipo de erro é "Não é possível encontrar o utilizador ou entidade de serviço na base de dados de grafos para e5007d2c-4b13-4a74-9b6a-605d99f03501." Para mais informações, consulte Use o portal Azure para adicionar a entidade de serviço do Azure Cosmos DB.
A atribuição de funções do Azure Cosmos DB é usada apenas para fins de implementação. Azure Managed Instance para Apache Cassandra não tem dependências no plano de fundo do Azure Cosmos DB.
Limpar 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óximo passo
Neste quickstart, aprendeste a criar um Azure Managed Instance para o cluster Apache Cassandra usando o CLI do Azure. Agora você pode começar a trabalhar com o cluster: