Aracılığıyla paylaş


Çabuk Başlangıç: Azure CLI kullanarak Apache Cassandra kümesi için Azure Yönetilen Örnek oluşturma

Apache Cassandra için Azure Yönetilen Örneği, 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 Yönetilen Örneği ile 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

Önemli

Bu makale, Azure CLI sürüm 2.30.0 veya üzerini 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ınaoturum açın.

  2. Azure CLI'da 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 Azure Yönetilen Örneği ö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 için Azure Yönetilen Örneği'nin düzgün çalışması için 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 Monitör
    • Microsoft Entra Kimlik
    • 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 vm'lerin her birine bağlı 4 P30 disk

    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 bkz. Çevirmiçi hizmetler için servis düzeyi sözleşmeleri.

    Kullanılabilirlik alanları tüm Azure bölgelerinde 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 Yönetilen Örneği, 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'sini dağıtmak için Azure Resource Manager şablonu kullanabilirsiniz.

Python sürümleriyle ilgili bilinen bazı sorunlar nedeniyle, CQLSH çalıştırmak için Python3.10.12 veya Python sanal ortamıyla birlikte gelen bir Ubuntu 22.04 görüntüsü 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.jsve 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 kurgusal yürütme ilkesini etkinleştirmenizi öneririz. Bu yaklaşımın nasıl çalıştığını gösteren bir tanıtım için ve ilkenin nasıl etkinleştirildiğini görmek için bkz. Kurgusal yürütme ilkesi uygulama.

Apache Cassandra için Azure Yönetilen Örneği'ne bağlanmak için genellikle sertifikaları (, rootCAnode, clientveya truststoregibi) 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.jsve 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 Yönetilen Örneği'ne 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ını veya karşılıklı Aktarım Katmanı Güvenliği'ni uygulamak için Azure CLI kullanarak sertifikaları sağlayın. Aşağıdaki komut, istemci sertifikalarınızı Azure Yönetilen Apache Cassandra Örneğinizin güven deposuna yükler ve 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, Azure portalından aynı izni el ile uygulayabilirsiniz. Bu tür bir hataya örnek olarak "için e5007d2c-4b13-4a74-9b6a-605d99f03501graf veritabanında kullanıcı veya hizmet sorumlusu bulunamıyor" hatası verilmiştir. Daha fazla bilgi için bkz. Azure portalı 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 Azure Yönetilen Örneği'nin Azure Cosmos DB'de 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 Yönetilen Örneği oluşturmayı öğrendiniz. Artık kümeyle çalışmaya başlayabilirsiniz: