Bagikan melalui


Mulai Cepat: Membuat kluster multi-wilayah dengan Azure Managed Instance for Apache Cassandra

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.

Panduan mulai cepat ini menunjukkan cara menggunakan perintah Azure CLI untuk mengonfigurasi kluster multi-wilayah di Azure.

Prasyarat

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

  • Azure Virtual Network dengan konektivitas ke lingkungan yang dihost sendiri atau lokal. Untuk informasi selengkapnya tentang cara menyambungkan lingkungan lokal ke Azure, lihat artikel Menyambungkan jaringan lokal ke Azure tersebut.

Menyiapkan lingkungan jaringan

Karena semua pusat data yang disediakan dengan layanan ini harus disebarkan ke subnet khusus menggunakan injeksi VNet, konfigurasikan peering jaringan yang sesuai sebelum penyebaran. Untuk mulai cepat ini, buat kluster dengan dua pusat data di wilayah terpisah: US Timur dan US Timur 2. Pertama, buat jaringan virtual untuk setiap wilayah.

  1. Masuk ke portal Azure.

  2. Buat grup sumber daya bernama cassandra-mi-multi-region:

    az group create --location eastus2 --name cassandra-mi-multi-region
    
  3. Buat VNet pertama di US Timur 2 dengan subnet khusus:

    az network vnet create \
      --name vnetEastUs2 \
      --location eastus2 \
      --resource-group cassandra-mi-multi-region \
      --address-prefix 10.0.0.0/16 \
      --subnet-name dedicated-subnet
    
  4. Buat VNet kedua di US Timur, juga dengan subnet khusus:

     az network vnet create \
       --name vnetEastUs \
       --location eastus \
       --resource-group cassandra-mi-multi-region \
       --address-prefix 192.168.0.0/16 \
       --subnet-name dedicated-subnet
    

    Catatan

    Kami secara eksplisit menambahkan rentang alamat IP yang berbeda untuk memastikan tidak ada kesalahan saat peering.

  5. Rekan VNet pertama ke VNet kedua:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet1ToMyVnet2 \
      --vnet-name vnetEastUs2 \
      --remote-vnet vnetEastUs \
      --allow-vnet-access \
      --allow-forwarded-traffic
    
  6. Untuk menyambungkan kedua VNet, buat peering lain antara VNet kedua dan yang pertama:

    az network vnet peering create \
      --resource-group cassandra-mi-multi-region \
      --name MyVnet2ToMyVnet1 \
      --vnet-name vnetEastUs \
      --remote-vnet vnetEastUs2 \
      --allow-vnet-access \
      --allow-forwarded-traffic
    

    Catatan

    Jika Anda menambahkan lebih banyak wilayah, setiap VNet memerlukan peering darinya ke semua VNet lainnya, dan dari semua VNet lainnya ke dalamnya.

  7. Periksa output perintah sebelumnya. Pastikan nilai "peeringState" sekarang "Koneksi ed". Anda juga dapat memeriksa hasil ini dengan menjalankan perintah berikut:

    az network vnet peering show \
      --name MyVnet1ToMyVnet2 \
      --resource-group cassandra-mi-multi-region \
      --vnet-name vnetEastUs2 \
      --query peeringState
    
  8. Terapkan beberapa izin khusus ke kedua Virtual Network. Azure Managed Instance for Apache Cassandra memerlukan izin ini. Jalankan perintah berikut. Ganti <SubscriptionID> dengan ID Langganan Anda:

    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/vnetEastUs
    

    Catatan

    Nilai assignee dan role dalam perintah sebelumnya adalah nilai tetap. Masukkan nilai-nilai ini persis seperti dalam perintah.

Jika Anda mengalami kesalahan saat menjalankan az role assignment create, Anda mungkin tidak memiliki izin untuk menjalankannya. Tanyakan kepada administrator Anda untuk mendapatkan izin.

Membuat kluster multi-wilayah

  1. Sebarkan sumber daya kluster. Ganti <Subscription ID> dengan ID Langganan Anda. Penyebaran dapat memakan waktu lima hingga 10 menit:

    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 \
       --debug
    
  2. Setelah sumber daya kluster dibuat, Anda siap untuk membuat pusat data. Pertama, buat pusat data di US Timur 2. Ganti <SubscriptionID> dengan ID Langganan Anda. Tindakan ini dapat memakan waktu hingga 10 menit:

    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 3
    
  3. Buat pusat data di US Timur. Ganti <SubscriptionID> dengan ID Langganan Anda.

    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 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 informasi selengkapnya, lihat SLA untuk Azure Managed Instance for Apache Cassandra.

    Peringatan

    Zona ketersediaan tidak didukung di semua wilayah. Penyebaran gagal jika Anda memilih wilayah di mana Zona ketersediaan tidak didukung. Untuk wilayah yang didukung, lihat Wilayah Azure dengan zona ketersediaan.

    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.

  4. Setelah pusat data kedua dibuat, dapatkan status simpul untuk memverifikasi bahwa semua simpul Cassandra berhasil muncul:

    resourceGroupName='cassandra-mi-multi-region'
    clusterName='test-multi-region'
    
    az managed-cassandra cluster node-status \
       --cluster-name $clusterName \
       --resource-group $resourceGroupName
    
  5. Kemudian sambungkan ke kluster Anda menggunakan CQLSH, dan gunakan kueri CQL berikut untuk memperbarui strategi replikasi di setiap keyspace untuk menyertakan semua pusat data di seluruh kluster (tabel sistem akan diperbarui secara otomatis):

    ALTER KEYSPACE "ks" WITH REPLICATION = {'class': 'NetworkTopologyStrategy', 'dc-eastus2': 3, 'dc-eastus': 3};
    
  6. Terakhir, jika Anda menambahkan pusat data ke kluster di mana sudah ada data, Anda harus menjalankan rebuild untuk mereplikasi data historis. Dalam hal ini, kita akan berasumsi bahwa dc-eastus2 pusat data sudah memiliki data. Di Azure CLI, jalankan perintah di bawah ini untuk mengeksekusi nodetool rebuild pada setiap simpul di pusat data baru dc-eastus Anda, mengganti <ip address> dengan alamat IP simpul:

    az managed-cassandra cluster invoke-command \
      --resource-group $resourceGroupName \
      --cluster-name $clusterName \
      --host <ip address> \
      --command-name nodetool --arguments rebuild="" "dc-eastus2"=""
    

    Peringatan

    Anda tidak boleh mengizinkan klien aplikasi menulis ke pusat data baru hingga Anda menerapkan perubahan replikasi ruang kunci. Jika tidak, pembangunan ulang tidak akan berfungsi, dan Anda harus membuat permintaan dukungan sehingga tim kami dapat menjalankan repair atas nama Anda.

Pemecahan Masalah

Jika Anda mengalami kesalahan saat menerapkan izin ke Virtual Network menggunakan Azure CLI, Anda dapat menerapkan izin yang sama secara manual dari portal Azure. Contoh kesalahan mungkin tidak dapat menemukan pengguna atau perwakilan layanan dalam database grafik untuk 'e5007d2c-4b13-4a74-9b6a-605d99f03501'. Untuk informasi selengkapnya, lihat Menggunakan portal Azure untuk menambahkan perwakilan layanan Azure Cosmos DB.

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

Jika Anda berencana tidak menggunakan Klaster instans terkelola ini, hapus dengan langkah-langkah berikut:

  1. Dari menu sebelah kiri portal Microsoft Azure, pilih Grup sumber daya.
  2. Dari daftar, pilih grup sumber daya yang Anda buat untuk panduan mulai cepat ini.
  3. Pada panel Ringkasan grup sumber daya, pilih Hapus grup sumber daya.
  4. Di jendela berikutnya, masukkan nama grup sumber daya yang akan dihapus, lalu pilih Hapus.

Langkah berikutnya

Dalam panduan mulai cepat ini, Anda telah mempelajari cara membuat kluster multi-wilayah menggunakan Azure CLI dan Azure Managed Instance for Apache Cassandra. Anda sekarang dapat mulai bekerja dengan kluster.