Bagikan melalui


Panduan Cepat: Mengelola Instance Terkelola Azure untuk Kluster Apache Cassandra dengan menggunakan Azure CLI

Azure Managed Instance for Apache Cassandra adalah layanan terkelola penuh untuk kluster Apache Cassandra sumber terbuka murni. Layanan tersebut juga memungkinkan konfigurasi untuk ditentukan ulang, tergantung pada kebutuhan spesifik setiap beban kerja, untuk fleksibilitas dan kontrol maksimum.

Panduan cepat ini menunjukkan cara menggunakan perintah Azure CLI untuk membuat kluster dengan Instance Terkelola Azure untuk Apache Cassandra. Ini juga menunjukkan cara membuat pusat data dan menskalakan simpul ke atas atau ke bawah dalam pusat data.

Prasyarat

Penting

Artikel ini memerlukan Azure CLI versi 2.30.0 atau yang lebih baru. Jika Anda menggunakan Azure Cloud Shell, versi terbaru sudah diinstal.

Membuat kluster instans terkelola

  1. Masuk ke portal Azure.

  2. Atur ID langganan Anda di Azure CLI:

    az account set --subscription <Subscription_ID>
    
  3. Buat jaringan virtual dengan subnet khusus di grup sumber daya Anda:

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

    Penyebaran instans Azure Managed Instance for Apache Cassandra memerlukan akses internet. Penyebaran akan gagal di lingkungan ketika akses internet terbatas. Pastikan Anda tidak memblokir akses di jaringan virtual Anda ke layanan Azure berikut yang diperlukan agar Azure Managed Instance for Apache Cassandra berfungsi dengan baik:

    • Azure Storage
    • Azure Key Vault
    • Set Skala Mesin Virtual Azure
    • Azure Monitor
    • Microsoft Entra ID
    • Microsoft Defender untuk Cloud
  4. Terapkan izin khusus ini ke jaringan virtual. Instans terkelola memerlukannya. az role assignment create Gunakan perintah , dan ganti <subscriptionID>, <resourceGroupName>, dan <vnetName> dengan nilai yang sesuai:

    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>
    

    Nilai assignee dan role adalah nilai tetap. Masukkan nilai-nilai ini persis seperti yang disebutkan dalam perintah. Tidak melakukannya menyebabkan kesalahan saat Anda membuat kluster. Jika Anda mengalami kesalahan saat menjalankan perintah ini, Anda mungkin tidak memiliki izin untuk menjalankannya. Hubungi admin Azure Anda untuk izin.

  5. Buat kluster di jaringan virtual anda yang baru dibuat dengan menggunakan perintah az managed-cassandra cluster create . Jalankan perintah berikut dengan nilai delegatedManagementSubnetId variabel . (Nilai delegatedManagementSubnetId adalah nama jaringan virtual yang sama dengan yang izinnya diterapkan.)

    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. Buat pusat data untuk kluster dengan tiga komputer virtual (VM). Gunakan pengaturan konfigurasi berikut:

    • Ukuran VM: Standar E8s v5
    • Disk data: 4 disk P30 terpasang pada setiap VM yang disebarkan

    Setelah semua informasi di tempat, gunakan perintah 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 false
    

    Pilih nilai untuk --sku dari ukuran VM yang tersedia berikut ini:

    • Standard_E8s_v5
    • Standard_E16s_v5
    • Standard_E20s_v5
    • Standard_E32s_v5

    Secara default, --availability-zone diatur ke false. Untuk mengaktifkan zona ketersediaan, atur ke true. Zona ketersediaan membantu meningkatkan ketersediaan layanan. Untuk informasi selengkapnya, lihat Perjanjian tingkat layanan untuk layanan online.

    Zona ketersediaan tidak didukung di semua wilayah Azure. Penyebaran gagal jika Anda memilih wilayah tempat zona ketersediaan tidak didukung. Untuk wilayah yang didukung, lihat daftar wilayah Azure.

    Penyebaran zona ketersediaan yang berhasil tunduk pada ketersediaan sumber daya komputasi di semua zona di wilayah yang Anda pilih. Penyebaran gagal jika ukuran VM yang Anda pilih tidak tersedia di wilayah yang Anda pilih.

  7. Setelah pusat data dibuat, Anda dapat menjalankan perintah az managed-cassandra datacenter update untuk menurunkan skala atau meningkatkan kluster Anda. Ubah nilai node-count parameter menjadi nilai yang Anda inginkan:

    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
    

Menyambungkan ke kluster Anda

Azure Managed Instance for Apache Cassandra tidak membuat simpul dengan alamat IP publik. Untuk terhubung ke kluster Cassandra baru, Anda harus membuat sumber daya lain di dalam jaringan virtual yang sama. Sumber daya ini dapat berupa aplikasi atau VM dengan Cassandra Query Language Shell (CQLSH) yang diinstal. CQLSH adalah alat kueri sumber terbuka Apache.

Anda dapat menggunakan templat Azure Resource Manager untuk menyebarkan VM Ubuntu.

Karena beberapa masalah yang diketahui dengan versi Python, kami sarankan Anda menggunakan gambar Ubuntu 22.04 yang dilengkapi dengan Python3.10.12 atau lingkungan virtual Python untuk menjalankan CQLSH.

Terhubung dari CQLSH

Setelah VM disebarkan, gunakan Secure Shell untuk menyambungkan ke komputer dan menginstal CQLSH. Gunakan perintah berikut:

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

Periksa versi Cassandra mana yang masih didukung dan pilih versi yang Anda butuhkan. Kami menyarankan agar Anda menggunakan versi stabil.

Instal pustaka Cassandra untuk mendapatkan CQLSH. Ikuti langkah-langkah resmi dari dokumentasi Cassandra.

Menghubungkan dari aplikasi

Seperti halnya CQLSH, ketika Anda menggunakan salah satu driver klien Apache Cassandra yang didukung untuk terhubung dari aplikasi, enkripsi Transport Layer Security/Secure Sockets Layer (TLS/SSL) harus diaktifkan dan verifikasi sertifikat harus dinonaktifkan. Untuk sampel, lihat Java, .NET, Node.js, dan Python.

Sebaiknya nonaktifkan verifikasi sertifikat karena tidak berfungsi kecuali Anda memetakan alamat IP node kluster Anda ke domain yang sesuai. Jika kebijakan internal mengamanatkan bahwa Anda melakukan verifikasi sertifikat TLS/SSL untuk aplikasi apa pun, tambahkan entri seperti 10.0.1.5 host1.managedcassandra.cosmos.azure.com dalam file host Anda untuk setiap simpul untuk memfasilitasi penyiapan ini. Jika Anda mengambil pendekatan ini, Anda juga perlu menambahkan entri baru setiap kali Anda meningkatkan simpul.

Untuk Java, kami sarankan Anda mengaktifkan kebijakan eksekusi spekulatif di mana aplikasi sensitif terhadap latensi ekor. Untuk demo yang menggambarkan cara kerja pendekatan ini dan untuk melihat cara mengaktifkan kebijakan, lihat Menerapkan kebijakan eksekusi spekulatif.

Anda biasanya tidak perlu mengonfigurasi sertifikat (seperti rootCA, , node, clientatau truststore) untuk menyambungkan ke Azure Managed Instance for Apache Cassandra. Enkripsi TLS/SSL menggunakan penyimpanan kepercayaan default dan kata sandi runtime yang dipilih klien. Untuk kode sampel, lihat Java, .NET, Node.js, dan Python). Sertifikat dipercaya secara default. Jika tidak, tambahkan ke trust store.

Mengonfigurasi sertifikat klien (opsional)

Mengonfigurasi sertifikat klien bersifat opsional. Aplikasi klien dapat terhubung ke Azure Managed Instance for Apache Cassandra setelah Anda mengikuti langkah-langkah sebelumnya. Jika mau, Anda juga dapat membuat dan mengonfigurasi sertifikat klien untuk autentikasi. Secara umum, ada dua cara untuk membuat sertifikat:

  • Sertifikat yang ditandatangani sendiri: Sertifikat privat dan publik tanpa Otoritas Sertifikat (CA) untuk setiap simpul. Dalam hal ini, semua sertifikat publik diperlukan.
  • Sertifikat yang ditandatangani oleh CA: Sertifikat yang dikeluarkan oleh CA yang ditandatangani sendiri atau CA publik. Untuk penyiapan ini, Anda memerlukan sertifikat CA root dan semua sertifikat perantara, jika berlaku. Untuk informasi selengkapnya, lihat Menyiapkan sertifikat SSL untuk produksi.

Untuk menerapkan autentikasi sertifikat klien-ke-simpul atau Keamanan Lapisan Transportasi bersama, berikan sertifikat dengan menggunakan Azure CLI. Perintah berikut mengunggah dan menerapkan sertifikat klien Anda ke penyimpanan kepercayaan untuk kluster Azure Managed Instance for Apache Cassandra Anda. Anda tidak perlu mengubah cassandra.yaml pengaturan. Setelah sertifikat diterapkan, kluster memerlukan Cassandra untuk memverifikasi sertifikat selama koneksi klien. Untuk informasi selengkapnya, lihat require_client_auth: true di 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

Pemecahan Masalah

Jika Anda mengalami kesalahan saat menerapkan izin ke jaringan virtual dengan menggunakan Azure CLI, Anda dapat menerapkan izin yang sama secara manual dari portal Microsoft Azure. Contoh kesalahan tersebut adalah "Tidak dapat menemukan pengguna atau perwakilan layanan dalam database grafik untuk e5007d2c-4b13-4a74-9b6a-605d99f03501." Untuk informasi selengkapnya, lihat Menggunakan portal Microsoft Azure untuk menambahkan perwakilan layanan Azure Cosmos DB.

Penetapan peran Azure Cosmos DB digunakan hanya untuk tujuan penyebaran. Azure Managed Instanced for Apache Cassandra tidak memiliki dependensi back-end pada Azure Cosmos DB.

Membersihkan sumber daya

Saat sumber daya Anda tidak lagi diperlukan, gunakan az group delete perintah untuk menghapus grup sumber daya, instans terkelola, dan semua sumber daya terkait:

az group delete --name <Resource_Group_Name>

Langkah selanjutnya

Dalam panduan memulai cepat ini, Anda telah mempelajari cara membuat sebuah kluster *Azure Managed Instance for Apache Cassandra* dengan menggunakan Azure CLI. Sekarang, Anda dapat mulai bekerja menggunakan kluster: