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
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai Cepat untuk Bash di Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Masuk dengan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
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.
Masuk ke portal Azure.
Buat grup sumber daya bernama cassandra-mi-multi-region:
az group create --location eastus2 --name cassandra-mi-multi-region
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
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.
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
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.
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
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
danrole
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
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
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
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 kefalse
. Untuk mengaktifkan zona ketersediaan, atur ini ketrue
. 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.
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
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};
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 bahwadc-eastus2
pusat data sudah memiliki data. Di Azure CLI, jalankan perintah di bawah ini untuk mengeksekusinodetool rebuild
pada setiap simpul di pusat data barudc-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:
- Dari menu sebelah kiri portal Microsoft Azure, pilih Grup sumber daya.
- Dari daftar, pilih grup sumber daya yang Anda buat untuk panduan mulai cepat ini.
- Pada panel Ringkasan grup sumber daya, pilih Hapus grup sumber daya.
- 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.