kt.log

Deploying a Virtual Machine to issue CQL to Azure Managed Instance for Apache Cassandra using cqlsh

本記事では、デプロイ済みの Azure Managed Instance for Apache Cassandra クラスターに対して cqlshCQL を発行するための仮想マシンをデプロイする方法を解説します。仮想マシンから cqlsh を使って Azure Managed Instance for Apache Cassandra クラスターに対して接続することをゴールとします。
Azure Managed Instance for Apache Cassandra クラスターのデプロイ方法に関しては Get Started with Azure Managed Instance for Apache Cassandra を参照してください。

前提

  • Microsoft Azure に利用可能なサブスクリプションを持っている
  • Azure Portal で操作を行う
  • Azure Managed Instance for Apache Cassandra クラスターがデプロイされている

免責

  • 筆者の環境は英語です。画面が日本語表示になっていない点、ご了承ください。
  • 今回扱う Cassandra のツールは cqlsh のみです。 Nodetool は扱いません。

手順

基本的に クイック スタート - Azure portal で Linux VM を作成する - Azure Virtual Machines | Microsoft Docs と同様の手順で Linux 仮想マシンを作成します。仮想マシン作成後は、SSHでログインして、Azure Managed Instance for Apache Cassandra に対して cqlsh で接続します。

今回、仮想マシンのデプロイにあたって、テンプレートは使用しません。テンプレートから仮想マシンを作成しようとした際に、既存の Azure Managed Instance for Apache Cassandra クラスターと同じ VNet 内に仮想マシンを作成することができなかったためです。

Azure Managed Instance for Apache Cassandra クラスターと同じリソースグループに移動する

仮想マシンの作成を開始し、基本項目を入力する

本記事執筆時点では Azure Managed Instance for Apache Cassandra はプレビュー版であり、利用できるリージョンは限定的です。今回は West US にデプロイしたクラスターに合わせて、仮想マシンも同じリージョンにデプロイしました。

ディスクの項目を入力する(任意)

ミッションクリティカルな用途ではなく、ディスク性能も要求されないことを想定し、ディスクはより安価な Standard SSD としました。

ネットワークの項目を入力する(任意)

Virtual network と Subnet が、 Azure Managed Instance for Apache Cassandra クラスターと同じものであることを確認してください。

マネジメントの項目を入力する(任意)

今回はデフォルトのままとしました。

アドバンスドの項目を入力する(任意)

こちらも今回はデフォルトのままとしました。

タグを入力する(任意)

筆者は独自にタグを付与しています。

レビューし作成する

ここまでで入力した項目をレビューして、問題なければ作成を行います。

デプロイ完了

仮想マシンのネットワークインターフェースが Azure Managed Instance for Apache Cassandra クラスターと同じサブネットに存在することを確認する

リソースグループから Virtual network のリソースにアクセスします。

上記のスクリーンショットでは、 Type: Network interface の vmforazuremanagedin… が、今回作成した仮想マシンのネットワーク インターフェースです。
それ以外の Type: Scale set instance は、 Azure Managed Instance for Apache Cassandra クラスターのネットワーク インターフェースです。
これらが同じサブネットに存在していることを確認してください。

仮想マシンで cqlsh を利用できるようにセットアップする

仮想マシンにSSHでログインします。
その後、以下の通りにパッケージをインストールします。

1
2
3
4
5
6
sudo apt update -y
sudo apt install -y openjdk-8-jdk openjdk-8-jre
echo "deb http://www.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 update -y
sudo apt install -y cassandra

仮想マシンから cqlsh を実行する

本記事では、予め以下の通り、環境変数およびシェル変数を設定します。

1
2
3
export SSL_VERSION=TLSv1_2
export SSL_VALIDATE=false
host=("10.0.0.5" "10.0.0.6" "10.0.0.7")

host の IPアドレスは、 Azure Managed Instance for Apache Cassandra クラスターにおける各インスタンスの IPアドレス と同じ値です。

その後、以下の要領で cqlsh を実行し、接続に成功すればOKです。

1
cqlsh $host 9042 -u cassandra -p $password --ssl

$password は、 Azure Managed Instance for Apache Cassandra クラスターを作成した際に指定した Initial Cassandra admin password です。

なお、 --ssl オプションは必須であり、指定しない(=SSLを使用しない)場合は接続に失敗します。

まとめ

Azure Managed Instance for Apache Cassandra クラスターに接続し cqlsh で CQL を発行するための仮想マシンをデプロイする方法を解説しました。Linux の経験があれば、全般的に悩むことは無いと思います。
構築した仮想マシンに関しては、セキュリティ強化のため、SSHのポート番号を変更したり、使っていない間は停止することをお勧めします。