Azure CLI を利用して Azure Managed Instance for Apache Cassandra リソースを管理する
この記事では、Azure CLI を使用して Azure Managed Instance for Apache Cassandra のクラスターとデータセンターの管理を自動化するための一般的なコマンドについて説明します。
前提条件
Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。
CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。
ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。
初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。
az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。
この記事では、Azure CLI バージョン 2.30.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。
重要
Azure Managed Instance for Apache Cassandra リソースの名前を変更することはできません。 これらのリソースの名前を変更することは、Azure Resource Manager がリソース URI を取り扱う方法に違反します。
クラスターの管理
以降のセクションでは、Azure Managed Instance for Apache Cassandra クラスターを管理する方法について説明します。
クラスターの作成
Az Cassandra cluster createコマンドを使用して、Azure Managed Instance for Apache Cassandra クラスターを作成します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
location='West US'
delegatedManagementSubnetId='/subscriptions/<subscription id>/resourceGroups/customer-vnet-rg/providers/Microsoft.Network/virtualNetworks/customer-vnet/subnets/management'
initialCassandraAdminPassword='myPassword'
# You can override the cluster name if the original name is not legal for an Azure resource:
# overrideClusterName='ClusterNameIllegalForAzureResource'
# The default Cassandra version is v3.11
az managed-cassandra cluster create \
--cluster-name $clusterName \
--resource-group $resourceGroupName \
--location $location \
--delegated-management-subnet-id $delegatedManagementSubnetId \
--initial-cassandra-admin-password $initialCassandraAdminPassword \
クラスターの削除
az managed-cassandra cluster delete コマンドを使用して、クラスターを削除します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
az managed-cassandra cluster delete \
--cluster-name $clusterName \
--resource-group $resourceGroupName
クラスターの詳細の取得
az managed-cassandra cluster show コマンドを使用して、クラスターの詳細を取得します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
az managed-cassandra cluster show \
--cluster-name $clusterName \
--resource-group $resourceGroupName
クラスター ノードの状態を取得する
az managed-cassandra cluster status コマンドを使用して、クラスター ノードの状態を取得します。
clusterName='cassandra-hybrid-cluster'
resourceGroupName='MyResourceGroup'
az managed-cassandra cluster status \
--cluster-name $clusterName \
--resource-group $resourceGroupName
リソース グループでクラスターを一覧表示する
az managed-cassandra cluster list コマンドを使用して、リソース グループ別にクラスターを一覧表示します。
subscriptionId='MySubscriptionId'
resourceGroupName='MyResourceGroup'
az managed-cassandra cluster list\
--resource-group $resourceGroupName
サブスクリプション ID でクラスターを一覧表示する
az managed-cassandra cluster list コマンドを使用して、サブスクリプション ID 別にクラスターを一覧表示します。
# Set your subscription ID
az account set -s <subscriptionID>
az managed-cassandra cluster list
データセンターを管理する
以降のセクションでは、Azure Managed Instance for Apache Cassandra のデータセンターを管理する方法について説明します。
- データセンターを作成する
- データセンターを削除する
- データセンターの詳細を取得する
- クラスター内のデータセンターを取得する
- データセンターを更新またはスケーリングする
- Cassandra の構成を取得する
- Cassandra の構成を更新する
データセンターを作成する
az managed-cassandra datacenter create コマンドを使用して、データセンターを作成します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
dataCenterLocation='eastus2'
delegatedSubnetId='/subscriptions/<SubscriptionID>/resourceGroups/customer-vnet-rg/providers/Microsoft.Network/virtualNetworks/customer-vnet/subnets/dc1-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 $delegatedSubnetId \
--node-count 3
--sku $virtualMachineSKU \
--disk-capacity $noOfDisksPerNode \
--availability-zone false
次の使用可能な仮想マシン (VM) オプションから --sku
の値を選択します。
- 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
- Standard_L8s_v3
- Standard_L16s_v3
- Standard_L32s_v3
- Standard_L8as_v3
- Standard_L16as_v3
- Standard_L32as_v3
現在、Azure Managed Instance for Apache Cassandra では、VM ファミリ間の移行はサポートされていません。 たとえば、現在 Standard_DS13_v2 VM があり、Standard_DS14_v2 などのより大きい VM へのアップグレードに関心がある場合、このオプションは使用できません。 しかし、サポート チケットを開いて、アップグレードを要求することはできます。
上記のコマンドでは、--availability-zone
が false
に設定されています。 可用性ゾーンを有効にするには、この値を true
に設定します。 可用性ゾーンにより、サービスの可用性に関するサービス レベル アグリーメント (SLA) が向上します。 詳細については、「SLA の詳細」を参照してください。
警告
Azure Managed Instance for Apache Cassandra は、一部のリージョンで可用性ゾーンをサポートしていません。 可用性ゾーンがサポートされていないリージョンを選択すると、デプロイは失敗します。 「サポートされているリージョンの一覧」を参照してください。
可用性ゾーンの正常なデプロイは、リージョン内のすべてのゾーンでコンピューティング リソースが使用可能かどうかにも左右されます。 選択した VM または容量が利用できないゾーンがあると、デプロイが失敗する可能性があります。
データセンターの削除
az managed-cassandra datacenter delete コマンドを使用して、データセンターを削除します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
az managed-cassandra datacenter delete \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--data-center-name $dataCenterName
警告
クラスターに複数のデータセンターがある場合は、まず、キースペース レプリケーション戦略の設定で、削除しようとしているデータセンターへの参照をすべて削除する必要があります。 クラスター内のいずれかのキースペースにデータセンターへの参照がまだ残っている場合、このコマンドは失敗します。
データセンターの詳細を取得する
az managed-cassandra datacenter show コマンドを使用して、データセンターの詳細を取得します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
az managed-cassandra datacenter show \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--data-center-name $dataCenterName
データセンターを更新またはスケーリングする
az managed-cassandra datacenter update コマンドを使用して、データセンターを更新またはスケーリングします。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
az managed-cassandra datacenter update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--data-center-name $dataCenterName \
--node-count 13
データセンターをスケーリングするには、--node-count
値を変更します。
Cassandra の構成を取得する
az managed-cassandra cluster invoke-command コマンドを使用して、ノードの現在の YAML 構成を取得します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
commandName='get-cassandra-yaml'
az managed-cassandra cluster invoke-command \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--host <ip address> \
--command-name 'get-cassandra-yaml'
次のコマンドを使用して出力を読みやすくすることができます。
$output = az managed-cassandra cluster invoke-command \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--host <ip address> \
--command-name 'get-cassandra-yaml' \
| ConvertFrom-Json
$output.commandOutput
Cassandra の構成を更新する
データセンターで Cassandra の構成を変更するには、az managed-cassandra datacenter update コマンドを使用します。 オンライン ツールを使用して、YAML フラグメントを Base64 エンコードする必要があります。
たとえば、次の YAML フラグメントがあるとします。
column_index_size_in_kb: 16
read_request_timeout_in_ms: 10000
エンコードすると、YAML が次のように変換されます: Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA==
エンコードされた YAML フラグメントを含む az managed-cassandra datacenter update
コマンドを次に示します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
dataCenterName='dc1'
dataCenterLocation='eastus'
yamlFragment='Y29sdW1uX2luZGV4X3NpemVfaW5fa2I6IDE2CnJlYWRfcmVxdWVzdF90aW1lb3V0X2luX21zOiAxMDAwMA=='
az managed-cassandra datacenter update \
--resource-group $resourceGroupName \
--cluster-name $clusterName \
--data-center-name $dataCenterName \
--base64-encoded-cassandra-yaml-fragment $yamlFragment
重要
指定した Cassandra YAML 設定が Cassandra のバージョンに適合していることを確認します。 「Cassandra v3.11 の設定」 と「Cassandra v4.0 の設定」を参照してください。 次の YAML 設定は更新できません。
cluster_name
seed_provider
initial_token
autobootstrap
client_encryption_options
server_encryption_options
transparent_data_encryption_options
audit_logging_options
authenticator
authorizer
role_manager
storage_port
ssl_storage_port
native_transport_port
native_transport_port_ssl
listen_address
listen_interface
broadcast_address
hints_directory
data_file_directories
commitlog_directory
cdc_raw_directory
saved_caches_directory
endpoint_snitch
partitioner
rpc_address
rpc_interface
クラスター内のデータセンターを取得する
az managed-cassandra datacenter list コマンドを使用して、クラスター内のデータセンターを取得します。
resourceGroupName='MyResourceGroup'
clusterName='cassandra-hybrid-cluster'
az managed-cassandra datacenter list \
--resource-group $resourceGroupName \
--cluster-name $clusterName