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
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.
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.
Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
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
Masuk ke portal Azure
Atur ID langganan Anda di Azure CLI:
az account set -s <Subscription_ID>
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
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
danrole
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.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
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 kefalse
. Untuk mengaktifkan zona ketersediaan, atur ini ketrue
. 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.
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: