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.
A Instância Gerenciada do Azure para Apache Cassandra é um serviço totalmente gerenciado para clusters puros de código aberto do Apache Cassandra. 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 guia de início rápido demonstra como usar os comandos da CLI do Azure para configurar um cluster de várias regiões no Azure.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Introdução ao Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para saber mais, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a 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 Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar e gerenciar extensões com a 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.
- Este artigo requer a CLI do Azure versão 2.30.0 ou posterior. Se você está usando o Azure Cloud Shell, a última versão já está instalada.
- 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 ao Azure, consulte Conectar uma rede local ao Azure.
Configurar o ambiente de rede
Como todos os datacenters provisionados com esse serviço devem ser implantados em sub-redes dedicadas usando a injeção de rede virtual, configure o emparelhamento de rede apropriado antes da implantação. Para este início rápido, crie um cluster com dois datacenters em regiões separadas: Leste dos EUA e Leste dos EUA 2. Primeiro, crie as redes virtuais para cada região.
Entre no portal do Azure.
Crie um grupo de recursos chamado
cassandra-mi-multi-region:az group create --location eastus2 --name cassandra-mi-multi-regionCrie a primeira rede virtual no Leste dos EUA 2 com uma sub-rede dedicada:
az network vnet create \ --name vnetEastUs2 \ --location eastus2 \ --resource-group cassandra-mi-multi-region \ --address-prefix 10.0.0.0/16 \ --subnet-name dedicated-subnetCrie a segunda rede virtual no Leste dos EUA, também com uma sub-rede dedicada:
az network vnet create \ --name vnetEastUs \ --location eastus \ --resource-group cassandra-mi-multi-region \ --address-prefix 192.168.0.0/16 \ --subnet-name dedicated-subnetAdicionamos explicitamente diferentes intervalos de endereços IP para garantir que não haja erros com o emparelhamento.
Emparelhe a primeira rede virtual à segunda:
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet1ToMyVnet2 \ --vnet-name vnetEastUs2 \ --remote-vnet vnetEastUs \ --allow-vnet-access \ --allow-forwarded-trafficPara conectar as duas redes virtuais, crie outro emparelhamento entre a segunda rede virtual e a primeira:
az network vnet peering create \ --resource-group cassandra-mi-multi-region \ --name MyVnet2ToMyVnet1 \ --vnet-name vnetEastUs \ --remote-vnet vnetEastUs2 \ --allow-vnet-access \ --allow-forwarded-trafficAo adicionar mais regiões, cada rede virtual exigirá o emparelhamento dela com todas as outras e de todas as outras com ela.
Verifique a saída do comando anterior. Verifique se o valor de
peeringStateé agoraConnected. Você também pode verificar esse resultado executando o seguinte comando:az network vnet peering show \ --name MyVnet1ToMyVnet2 \ --resource-group cassandra-mi-multi-region \ --vnet-name vnetEastUs2 \ --query peeringStateAplique algumas permissões especiais a ambas as redes virtuais. A Instância Gerenciada do Azure para Apache Cassandra requer essas permissões. Execute o comando a seguir. Substitua
<SubscriptionID>pela ID da assinatura:az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2 az role assignment create \ --assignee a232010e-820c-4083-83bb-3ace5fc29d0b \ --role 4d97b98b-1d4f-4787-a291-c67834d212e7 \ --scope /subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUsOs valores
assigneeeroleno comando anterior são valores fixos. Insira esses valores exatamente como mostrado no comando.
Se você encontrar erros ao executar az role assignment create, talvez não tenha permissões para executá-lo. Verifique com o administrador se há permissões.
Criar um cluster de diversas regiões
Implante o recurso do cluster. Substitua
<Subscription ID>por sua ID da assinatura. A implantação pode levar de 5 a 10 minutos.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' location='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' initialCassandraAdminPassword='myPassword' az managed-cassandra cluster create \ --cluster-name $clusterName \ --resource-group $resourceGroupName \ --location $location \ --delegated-management-subnet-id $delegatedManagementSubnetId \ --initial-cassandra-admin-password $initialCassandraAdminPassword \ --debugDepois que o recurso de cluster for criado, você estará pronto para criar um datacenter. Primeiro, crie um datacenter no Leste dos EUA 2. Substitua
<SubscriptionID>por sua ID da assinatura. Essa ação pode levar até 10 minutos.resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus2' dataCenterLocation='eastus2' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs2/subnets/dedicated-subnet' 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 3Crie um datacenter no Leste dos EUA. Substitua
<SubscriptionID>pela ID da assinatura:resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' dataCenterName='dc-eastus' dataCenterLocation='eastus' delegatedManagementSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/cassandra-mi-multi-region/providers/Microsoft.Network/virtualNetworks/vnetEastUs/subnets/dedicated-subnet' 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 falseVocê pode escolher o valor para
--skuentre as seguintes opções de produto disponíveis.- Standard_E8s_v4
- Standard_E16s_v4
- Standard_E20s_v4
- Standard_E32s_v4
- Standard_DS13_v2
- Standard_DS14_v2
- Standard_D8s_v4
- Standard_D16s_v4
- Standard_D32s_v4
Observe também que
--availability-zoneé definido comofalse. Para habilitar zonas de disponibilidade, defina-as comotrue. As zonas de disponibilidade aumentam o SLA (contrato de nível de serviço) de disponibilidade do serviço. Para obter mais informações, consulte contratos de nível de serviço para a Instância Gerenciada do Azure para Apache Cassandra.Não há suporte para zonas de disponibilidade em todas as regiões. As implantações falharão se você selecionar uma região em que não há suporte para zonas de disponibilidade. Para obter uma lista de regiões com suporte, confira Regiões do Azure com zonas de disponibilidade.
A implantação bem-sucedida de zonas de disponibilidade também está sujeita à disponibilidade de recursos de computação em todas as zonas da região específica. As implantações poderão falhar se a camada de produto selecionada ou a capacidade não estiver disponível em todas as zonas.
Depois da criação do segundo datacenter, acesse o status do nó para verificar se todos os nós do Cassandra foram exibidos:
resourceGroupName='cassandra-mi-multi-region' clusterName='test-multi-region' az managed-cassandra cluster status\ --cluster-name $clusterName \ --resource-group $resourceGroupNameEm seguida, use CQLSH para se conectar ao cluster. Use a consulta CQL a seguir para atualizar a estratégia de replicação em cada keyspace para incluir todos os datacenters no cluster (as tabelas do sistema são atualizadas automaticamente):
ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};Por fim, se você adicionar um datacenter a um cluster que já contém dados, será necessário executar
rebuildpara replicar os dados históricos. Nesse caso, suponha que odc-eastus2datacenter já tenha dados. Na CLI do Azure, execute o comando a seguir para executarnodetool rebuildem cada nó no novo datacenterdc-eastus. Substitua<ip address>pelo endereço IP do nó:az managed-cassandra cluster invoke-command \ --resource-group $resourceGroupName \ --cluster-name $clusterName \ --host <ip address> \ --command-name nodetool --arguments rebuild="" "dc-eastus2"=""Não permita que os clientes do aplicativo façam gravações no novo datacenter antes que você aplique as alterações de replicação de keyspace. Caso contrário, o rebuild não funcionará. Em seguida, você precisa criar uma solicitação de suporte para que nossa equipe possa executar
repairpara você.
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 erro de exemplo pode ser "Não é possível localizar o usuário ou a entidade de serviço no banco de dados gráfico para e5007d2c-4b13-4a74-9b6a-605d99f03501." Para mais informações, consulte Use o portal do Azure para adicionar uma entidade de serviço do Azure Cosmos DB.
A atribuição de função Azure Cosmos DB é usada somente para fins de implantação. A Instância Gerenciada do Azure para Apache Cassandra não tem dependências de back-end no Azure Cosmos DB.
Limpar os recursos
Se você não quiser continuar a usar esse cluster de instância gerenciada, siga estas etapas para excluí-lo:
- No menu esquerdo do portal do Azure, selecione Grupos de recursos.
- Na lista, selecione o grupo de recursos que você criou para este início rápido.
- Na página Visão geral do grupo de recursos, selecione Excluir grupo de recursos.
- No próximo painel, insira o nome do grupo de recursos a ser excluído e selecione Excluir.
Próxima etapa
Neste início rápido, você aprendeu a criar um cluster de várias regiões usando a CLI do Azure e a Instância Gerenciada do Azure para Apache Cassandra. Você já pode começar a trabalhar com o cluster.