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 node-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 のデータセンターを管理する方法について説明します。

データセンターを作成する

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-zonefalse に設定されています。 可用性ゾーンを有効にするには、この値を 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

次のステップ