ablog

不器用で落着きのない技術者のメモ

cqlsh から Amazon KeySpaces に接続する(Sigv4 認証版)

Amazon Linux 2023 に cqlsh をインストールして、Sigv4 認証で Amazon KeySpaces に接続して CQL を発行する手順。

インストール

$ pip install cqlsh
$ cqlsh --version
cqlsh 6.1.0

設定

Sigv4 Authentication の設定
  • EC2 インスタンスにアタッチしている IAM ロールに IAM ポリシー "AmazonKeyspacesFullAccess" をアタッチする
$ pip install --user cqlsh-expansion
$ cqlsh-expansion.init
$ cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl --auth-provider "SigV4AuthProvider"
  • AWS CLI でリージョンを設定
$ aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:
Default region name [None]: ap-northeast-1
Default output format [None]:
cqlshr の設定を行う
  • cqlshrc のテンプレートをダウンロードする
$ pwd
/home/ec2-user
$ cd .cassandra
$ curl -o cqlshrc -L https://raw.githubusercontent.com/aws-samples/amazon-keyspaces-toolkit/master/cqlsh-expansion/cqlsh_expansion/cqlshrc_template
  • ${HOME}/.cassandra/cqlshrc を編集する
[connection]
port = 9142
factory = cqlshlib.ssl.ssl_transport_factory

[ssl]
validate = true
certfile = ~/.cassandra/sf-class2-root.crt

[copy-from]
CHUNKSIZE=50

接続する

$ cqlsh cassandra.ap-northeast-1.amazonaws.com 9142 --ssl
Connected to Amazon Keyspaces at cassandra.ap-northeast-1.amazonaws.com:9142
[cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cqlsh> SELECT * FROM tutorialkeyspace.tutorialtable;

 email            | age | name
------------------+-----+----------
 john@example.com |  21 |     John
   p@muramura.com |   1 |   murata
  yusuke@oyama.jp |  28 |    Oyama
  bob@example.com |  22 |      Bob
    chrai@co2.com |   1 |  shiotsu
 shohei@otani.com |  29 |    Otani
        e@co2.com |   1 |  shiotsu
   chrai@co22.com |   1 | shiotsu2

(8 rows)
cqlsh> exit
$

環境

  • AMI ID: ami-0a21e01face015dd9
$ cat /etc/system-release
Amazon Linux release 2023 (Amazon Linux)
$ uname -r
6.1.49-69.116.amzn2023.x86_64