Hızlı Başlangıç: Azure CLI kullanarak Apache Cassandra kümesi için Azure Managed Instance oluşturma

Apache Cassandra için Azure Managed Instance, saf açık kaynak Apache Cassandra kümeleri için tam olarak yönetilen bir hizmettir. Hizmet ayrıca maksimum esneklik ve denetim için her iş yükünün belirli gereksinimlerine bağlı olarak yapılandırmaların geçersiz kılınmasını sağlar.

Bu hızlı başlangıçta apache Cassandra için Azure Managed Instance ile bir küme oluşturmak üzere Azure CLI komutlarının nasıl kullanılacağı gösterilmektedir. Ayrıca veri merkezi oluşturma ve veri merkezi içinde düğümleri yukarı veya aşağı ölçeklendirmeyi de gösterir.

Önkoşullar

  • bash ortamını Azure Cloud Shell kullanın. Daha fazla bilgi için bkz. Azure Cloud Shell ile çalışmaya başlama.

  • CLI'yi yerel olarak çalıştırmayı tercih ediyorsanız Azure CLI'yi yükleyin. Windows veya macOS üzerinde çalıştırıyorsanız Azure CLI Docker kapsayıcısında çalıştırmayı göz önünde bulundurun. Daha fazla bilgi için bkz. Docker kapsayıcısında Azure CLI çalıştırma.

    • Yerel yükleme kullanıyorsanız az login komutunu kullanarak Azure CLI oturum açın. Kimlik doğrulama işlemini tamamlamak için terminalinizde görüntülenen adımları izleyin. Diğer oturum açma seçenekleri için bkz. Azure CLI kullanarak Azure'a Kimlik Doğrulama.

    • İstendiğinde, ilk kullanımda Azure CLI uzantısını yükleyin. Uzantılar hakkında daha fazla bilgi için bkz. Azure CLI ile uzantıları kullanma ve yönetme.

    • Yüklü sürümü ve bağımlı kitaplıkları bulmak için az version komutunu çalıştırın. En son sürüme yükseltmek için az upgrade komutunu çalıştırın.

  • Şirket içinde barındırılan veya şirket içi ortamınıza bağlantıyla Azure sanal ağ kullanın. Şirket içi ortamları Azure bağlama hakkında daha fazla bilgi için bkz. Şirket içi ağı Azure bağlama.
  • Azure aboneliğiniz yoksa başlamadan önce free hesabı oluşturun.

Önemli

Bu makale, Azure CLI 2.30.0 veya sonraki bir sürümü gerektirir. Azure Cloud Shell kullanıyorsanız en son sürüm zaten yüklüdür.

Yönetilen örnek kümesi oluşturma

  1. Azure portalında oturum açın.

  2. Azure CLI abonelik kimliğinizi ayarlayın:

    az account set --subscription <Subscription_ID>
    
  3. Kaynak grubunuzda ayrılmış bir alt ağ ile bir sanal ağ oluşturun:

    az network vnet create --name <VNet_Name> --location eastus2 \
      --resource-group <Resource_Group_Name> --subnet-name <Subnet Name>
    

    Apache Cassandra için bir Azure Managed Instance örneğinin dağıtımı için İnternet erişimi gerekir. İnternet erişiminin kısıtlandığı ortamlarda dağıtım başarısız olur. Apache Cassandra'nın düzgün çalışması için Azure Managed Instance gereken aşağıdaki Azure hizmetlerine sanal ağınızdaki erişimi engellemediğinizden emin olun:

    • Azure Depolama
    • Azure Key Vault
    • Azure Sanal Makine Ölçek Kümeleri
    • Azure İzleyici
    • Microsoft Entra ID
    • Bulut için Microsoft Defender
  4. Bu belirli izinleri sanal ağa uygulayın. Yönetilen örnek bunları gerektirir. az role assignment create komutunu kullanın ve <subscriptionID>, <resourceGroupName> ve <vnetName> öğelerini uygun değerlerle değiştirin.

    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>
    

    assignee ve role değerleri sabit değerlerdir. Bu değerleri tam olarak komutta belirtildiği gibi girin. Bunun yapılmaması, kümeyi oluştururken hatalara yol açar. Bu komutu çalıştırdığınızda hatalarla karşılaşırsanız, çalıştırma izniniz olmayabilir. İzinler için Azure yöneticinize başvurun.

  5. az managed-cassandra cluster create komutunu kullanarak yeni oluşturduğunuz sanal ağda kümeyi oluşturun. Aşağıdaki komutu delegatedManagementSubnetId değişkeninin değeriyle çalıştırın. (değeri delegatedManagementSubnetId , izinlerin uygulandığı sanal ağ adıyla aynıdır.)

    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 \
      --debug
    
  6. Üç sanal makine (VM) ile küme için bir veri merkezi oluşturun. Aşağıdaki yapılandırmayı kullanın:

    • VM boyutu: Standart E8s v5
    • Veri diskleri: Dağıtılan her VM'ye dört P30 diski eklenir. Depolama boyutlandırması yaparken, sistem hizmetleri tarafından mezar taşları ve disk kullanımına yeterli boşluk sağlamak için sürekli kullanımın en fazla %50 olmasını planlayın. Ayrıca, yedeklemeler Blob depolamada kalıcı hale gelmeden önce geçici olarak yerel disk alanı kullanır.

    Tüm bilgiler gerçekleştikten sonra az managed-cassandra datacenter create komutunu kullanın:

    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
    

    Aşağıdaki kullanılabilir VM boyutlarından değerini --sku seçin:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    varsayılan olarak, --availability-zonefalseolarak ayarlanır. Kullanılabilirlik alanlarını etkinleştirmek için onu true olarak ayarlayın. Kullanılabilirlik alanları, hizmetin kullanılabilirliğini artırmaya yardımcı olur. Daha fazla bilgi için çevrimiçi hizmetler için hizmet düzeyi sözleşmeleri bölümüne bakın.

    Kullanılabilirlik alanları tüm Azure bölgelerde desteklenmez. Kullanılabilirlik alanlarının desteklenmediği bir bölge seçerseniz dağıtımlar başarısız olur. Desteklenen bölgeler için bkz. Azure bölgeleri listesi.

    Kullanılabilirlik alanlarının başarılı dağıtımı, seçtiğiniz bölgedeki tüm bölgelerdeki işlem kaynaklarının kullanılabilirliğine tabidir. Seçtiğiniz VM boyutu seçtiğiniz bölgede kullanılamıyorsa dağıtımlar başarısız olur.

  7. Veri merkezi oluşturulduktan sonra kümenizin ölçeğini küçültmek veya ölçeğini genişletmek için az managed-cassandra datacenter update komutunu çalıştırabilirsiniz. parametresinin node-count değerini istediğiniz değerle değiştirin:

    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
    

Kümenize bağlanma

Apache Cassandra için Azure Managed Instance genel IP adreslerine sahip düğümler oluşturmaz. Yeni Cassandra kümenize bağlanmak için aynı sanal ağın içinde başka bir kaynak oluşturmanız gerekir. Bu kaynak, Cassandra Sorgu Dili Kabuğu (CQLSH) yüklü bir uygulama veya VM olabilir. CQLSH bir Apache açık kaynak sorgu aracıdır.

Ubuntu VM dağıtmak için Azure Resource Manager şablonu kullanabilirsiniz.

Python sürümleriyle ilgili bazı known sorunları nedeniyle, CQLSH'yi çalıştırmak için Python3.10.12 ile birlikte gelen bir Ubuntu 22.04 görüntüsü veya Python sanal ortamı kullanmanızı öneririz.

CQLSH'den bağlanma

VM dağıtıldıktan sonra Makineye bağlanmak ve CQLSH'yi yüklemek için Secure Shell'i kullanın. Aşağıdaki komutları kullanın:

# Install default-jre and default-jdk
sudo apt update
sudo apt install openjdk-8-jdk openjdk-8-jre

Cassandra'nın hangi sürümlerinin hala desteklendiğine bakın ve ihtiyacınız olan sürümü seçin. Kararlı bir sürüm kullanmanızı öneririz.

CQLSH almak için Cassandra kitaplıklarını yükleyin. Cassandra belgelerindeki resmi adımları izleyin.

Bir uygulamadan bağlanma

CQLSH'de olduğu gibi, bir uygulamadan bağlanmak için desteklenen Apache Cassandra istemci sürücülerinden birini kullandığınızda Aktarım Katmanı Güvenliği/Güvenli Yuva Katmanı (TLS/SSL) şifrelemesi etkinleştirilmelidir ve sertifika doğrulaması devre dışı bırakılmalıdır. Örnekler için bkz. Java, .NET, Node.js ve Python.

Küme düğümlerinizin IP adreslerini uygun etki alanıyla eşlemediğiniz sürece çalışmadığından sertifika doğrulamasını devre dışı bırakmanızı öneririz. İç ilke herhangi bir uygulama için TLS/SSL sertifika doğrulaması gerçekleştirmenizi zorunluyorsa, bu kurulumu kolaylaştırmak için her düğüm için konak dosyanızda gibi 10.0.1.5 host1.managedcassandra.cosmos.azure.com girdiler ekleyin. Bu yaklaşımı benimserseniz, düğümlerin ölçeğini artırdığınızda yeni girdiler de eklemeniz gerekir.

Java için, uygulamaların kuyruk gecikmesine duyarlı olduğu speculative execution policy etkinleştirmenizi öneririz. Bu yaklaşımın nasıl çalıştığını gösteren bir tanıtım ve ilkenin nasıl etkinleştirildiğini görmek için bkz. Implement tahmini yürütme ilkesi.

Apache Cassandra için Azure Managed Instance bağlanmak için sertifikaları (rootCA, node, client veya truststore gibi) yapılandırmanız gerekmez. TLS/SSL şifrelemesi varsayılan güven depoyu ve istemcinin seçtiği çalışma zamanı parolasını kullanır. Örnek kod için bkz. Java, .NET, Node.js ve Python). Sertifikalar varsayılan olarak güvenilir olarak kabul edilir. Aksi takdirde, bunları güvenilirlik deposuna ekleyin.

İstemci sertifikalarını yapılandırma (isteğe bağlı)

İstemci sertifikalarının yapılandırılması isteğe bağlıdır. Bir istemci uygulaması, önceki adımları izledikten sonra Apache Cassandra için Azure Managed Instance bağlanabilir. İsterseniz, kimlik doğrulaması için istemci sertifikaları da oluşturabilir ve yapılandırabilirsiniz. Genel olarak, sertifika oluşturmanın iki yolu vardır:

  • Otomatik olarak imzalanan sertifikalar: Her düğüm için Sertifika Yetkilisi (CA) olmayan özel ve genel sertifikalar. Bu durumda, tüm genel sertifikalar gereklidir.
  • CA tarafından imzalanan sertifikalar: Kendinden imzalı CA veya kamu CA tarafından verilen sertifikalar. Bu kurulum için kök CA sertifikasına ve varsa tüm aracı sertifikalara ihtiyacınız vardır. Daha fazla bilgi için bkz . SSL sertifikalarını üretim için hazırlama.

İstemciden düğüme sertifika kimlik doğrulaması veya karşılıklı Aktarım Katmanı Güvenliği uygulamak için Azure CLI kullanarak sertifikaları sağlayın. Aşağıdaki komut istemci sertifikalarınızı karşıya yükler ve Apache Cassandra kümesi için Azure Managed Instance güven deposuna uygular. cassandra.yaml ayarlarını değiştirmeniz gerekmez. Sertifikalar uygulandıktan sonra küme, istemci bağlantıları sırasında sertifikaları doğrulamak için Cassandra gerektirir. Daha fazla bilgi için bkz 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

Sorun giderme

Azure CLI kullanarak sanal ağınıza izinler uyguladığınızda bir hatayla karşılaşırsanız, aynı izni Azure portalından el ile uygulayabilirsiniz. Bu tür bir hataya örnek olarak "e5007d2c-4b13-4a74-9b6a-605d99f03501 için graph veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor" hatası verilmiştir. Daha fazla bilgi için bkz. Azure portalını kullanarak Azure Cosmos DB hizmet sorumlusu ekleme.

Azure Cosmos DB rol ataması yalnızca dağıtım amacıyla kullanılır. Apache Cassandra için yönetilen Azure Azure Cosmos DB arka uç bağımlılığı yoktur.

Kaynakları temizleme

Kaynağınız artık gerekli olmadığında komutunu kullanarak az group delete kaynak grubunu, yönetilen örneği ve tüm ilgili kaynakları kaldırın:

az group delete --name <Resource_Group_Name>

Sonraki adım

Bu hızlı başlangıçta, Azure CLI kullanarak Apache Cassandra kümesi için bir Azure Managed Instance oluşturmayı öğrendiniz. Artık kümeyle çalışmaya başlayabilirsiniz: