Bagikan melalui


Mulai Cepat: Membuat kluster Azure Managed Instance for Apache Cassandra menggunakan Azure CLI

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

Mulai cepat ini memperlihatkan cara menggunakan perintah Azure CLI untuk membuat kluster dengan Azure Managed Instance for Apache Cassandra. Mulai cepat Ini juga menunjukkan proses pembuatan pusat data, dan skala simpul ke atas atau ke bawah di dalam pusat data.

Prasyarat

Penting

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

Membuat kluster instans terkelola

  1. Masuk ke portal Azure

  2. Atur ID langganan Anda di Azure CLI:

    az account set -s <Subscription_ID>
    
  3. Selanjutnya, buat Microsoft Azure Virtual Network dengan subnet khusus pada grup sumber daya Anda:

    az network vnet create -n <VNet_Name> -l eastus2 -g <Resource_Group_Name> --subnet-name <Subnet Name>
    

    Catatan

    Penyebaran Azure Managed Instance for Apache Cassandra memerlukan akses internet. Penyebaran akan gagal di lingkungan ketika akses internet terbatas. Pastikan Anda tidak memblokir akses dalam VNet Anda ke layanan vital Azure berikut, yang diperlukan agar Managed Cassandra dapat berfungsi dengan baik:

    • Azure Storage
    • Azure KeyVault
    • Azure Virtual Machine Scale Sets
    • Azure Monitoring
    • Microsoft Entra ID
    • Azure Security
  4. Terapkan beberapa izin akses khusus ke Microsoft Azure Virtual Network, yang diperlukan oleh instans terkelola. Gunakan perintah az role assignment create, mengganti <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>
    

    Catatan

    Nilai assignee dan role pada perintah sebelumnya adalah nilai tetap, masukkan nilai ini persis seperti yang disebutkan dalam perintah. Jika tidak dilakukan, akan terjadi kesalahan saat membuat Klaster. Jika Anda menemukan kesalahan saat menjalankan perintah ini, Anda mungkin tidak memiliki izin untuk menjalankannya. Silakan hubungi admin Anda untuk meminta izin.

  5. Selanjutnya, buat kluster di MIcrosoft Azure Virtual Network yang baru Anda buat dengan menggunakan perintah buat kluster az managed-cassandra . Jalankan perintah nilai variabel delegatedManagementSubnetId berikut:

    Catatan

    Nilai variabel delegatedManagementSubnetId yang akan Anda berikan di bawah ini sama persis dengan nilai --scope yang Anda berikan pada perintah di atas:

    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='3.11' # 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. Akhirnya, buat pusat data untuk cluster, dengan tiga node, Standard D8s v4 VM SKU, dengan 4 disk P30 yang dilampirkan untuk setiap node, dengan menggunakan perintah pembuatan datacenter az managed-cassandra:

    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
    

    Catatan

    Nilai untuk --sku dapat dipilih dari SKU yang tersedia berikut:

    • 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

    Perhatikan juga --availability-zone diatur ke false. Untuk mengaktifkan zona ketersediaan, atur ini ke true. Zona ketersediaan meningkatkan ketersediaan SLA layanan. Untuk detail selengkapnya, tinjau detail SLA lengkap di sini.

    Peringatan

    Zona ketersediaan tidak didukung di semua wilayah. Penyebaran akan gagal jika Anda memilih wilayah di mana zona Ketersediaan tidak didukung. Lihat di sini untuk daerah yang didukung. Keberhasilan penyebaran zona ketersediaan juga tunduk pada ketersediaan sumber daya komputasi di semua zona di wilayah tertentu. Penyebaran mungkin gagal jika SKU yang Anda pilih, atau kapasitas, tidak tersedia di semua zona.

  7. Setelah pusat data dibuat, jika Anda ingin menaikkan atau menurunkan skala simpul pada pusat data, jalankan perintah perbarui pusat data az managed-cassandra. Ubah nilai parameter node-count ke nilai yang diinginkan:

    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 menggunakan alamat IP publik. Untuk tersambung ke kluster Cassandra yang baru dibuat, Anda harus membuat sumber daya lain di dalam jaringan virtual. Sumber daya ini dapat berupa aplikasi, atau komputer virtual dengan alat kueri sumber terbuka Apache CQLSHyang telah terpasang. Anda dapat menggunakan template Azure Resource Manager untuk menyebarkan komputer virtual Ubuntu.

Koneksi dari CQLSH

Setelah komputer virtual disebarkan, gunakan SSH untuk menyambungkan ke mesin dan menginstal CQLSH seperti yang ditunjukkan pada perintah berikut:

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

# Install the Cassandra libraries in order to get CQLSH:
echo "deb http://archive.apache.org/dist/cassandra/debian 311x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl https://downloads.apache.org/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra

# Export the SSL variables:
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false

# Connect to CQLSH (replace <IP> with the private IP addresses of a node in your Datacenter):
host=("<IP>")
initial_admin_password="Password provided when creating the cluster"
cqlsh $host 9042 -u cassandra -p $initial_admin_password --ssl

Koneksi dari aplikasi

Seperti halnya CQLSH, menyambungkan dari aplikasi menggunakan salah satu driver klien Apache Cassandra yang didukung mengharuskan enkripsi SSL diaktifkan, dan verifikasi sertifikasi dinonaktifkan. Lihat sampel untuk menyambungkan ke Azure Managed Instance for Apache Cassandra menggunakan Java, .NET, Node.js, dan Python.

Menonaktifkan verifikasi sertifikat disarankan karena verifikasi sertifikat tidak akan berfungsi kecuali Anda memetakan alamat I.P node kluster Anda ke domain yang sesuai. Jika Anda memiliki kebijakan internal yang mengamanatkan bahwa Anda melakukan verifikasi sertifikat SSL untuk aplikasi apa pun, Anda dapat memfasilitasi ini dengan menambahkan entri seperti 10.0.1.5 host1.managedcassandra.cosmos.azure.com dalam file host Anda untuk setiap simpul. Jika mengambil pendekatan ini, Anda juga perlu menambahkan entri baru setiap kali meningkatkan simpul.

Untuk Java, kami juga sangat menyarankan untuk mengaktifkan kebijakan eksekusi spekulatif di mana aplikasi sensitif terhadap latensi ekor. Anda dapat menemukan demo yang mengilustrasikan cara kerjanya dan cara mengaktifkan kebijakan di sini.

Catatan

Dalam sebagian besar kasus , seharusnya tidak perlu mengonfigurasi atau menginstal sertifikat (rootCA, node atau klien, truststores, dll) untuk terhubung ke Azure Managed Instance for Apache Cassandra. Enkripsi SSL dapat diaktifkan dengan menggunakan truststore default dan kata sandi runtime yang digunakan oleh klien (lihat sampel Java, .NET, Node.js dan Python ), karena sertifikat Azure Managed Instance for Apache Cassandra akan dipercaya oleh lingkungan tersebut. Dalam kasus yang jarang terjadi, jika sertifikat tidak tepercaya, Anda mungkin perlu menambahkannya ke truststore.

Mengonfigurasi sertifikat klien (opsional)

Mengonfigurasi sertifikat klien bersifat opsional. Aplikasi klien dapat terhubung ke Azure Managed Instance for Apache Cassandra selama langkah-langkah di atas telah diambil. Namun, jika diinginkan, Anda juga dapat membuat dan mengonfigurasi sertifikat klien untuk autentikasi. Secara umum, ada dua cara untuk membuat sertifikat:

  • Sertifikat yang ditandatangani sendiri. Ini berarti sertifikat privat dan publik (tidak ada OS) untuk setiap simpul - dalam hal ini kita memerlukan semua sertifikat publik.
  • Sertifikat yang ditandatangani oleh OS. Ini bisa berupa OS yang ditandatangani sendiri atau bahkan yang publik. Dalam hal ini, kita memerlukan sertifikat OS akar (mengacu pada instruksi di menyiapkan sertifikat SSL untuk produksi), dan semua perantara (jika ada).

Jika Anda ingin menerapkan autentikasi sertifikat klien-ke-simpul atau Keamanan Lapisan Transportasi bersama (mTLS), Anda perlu memberikan sertifikat melalui Azure CLI. Perintah di bawah ini akan mengunggah dan menerapkan sertifikat klien Anda ke truststore untuk kluster Cassandra Managed Instance Anda (yaitu Anda tidak perlu mengedit cassandra.yaml pengaturan). Setelah diterapkan, kluster Anda akan mengharuskan Cassandra untuk memverifikasi sertifikat saat klien terhubung (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 Anda menggunakan Azure CLI, seperti Tidak dapat menemukan pengguna atau prinsip layanan dalam database grafik untuk 'e5007d2c-4b13-4a74-9b6a-605d99f03501', Anda dapat menerapkan izin yang sama secara manual dari portal Azure. Pelajari cara melakukannya di sini.

Catatan

Penetapan peran Azure Cosmos DB digunakan hanya untuk tujuan penyebaran. Azure Managed Instance for Apache Cassandra tidak memiliki dependensi ujung belakang pada Azure Cosmos DB.

Membersihkan sumber daya

Saat tidak diperlukan lagi, Anda dapat menggunakan perintah az group delete tersebut untuk menghapus grup sumber daya, instans terkelola, dan seluruh sumber daya terkait:

az group delete --name <Resource_Group_Name>

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara membuat kluster Azure Managed Instance for Apache Cassandra menggunakan Azure CLI. Sekarang, Anda dapat mulai bekerja menggunakan kluster: