ablog

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

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行する(DataStax Java Driver 4.x 版)

Amazon KeySpaces に SigV4 認証でアクセスするサンプル Java アプリを実行した手順。

前提

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

準備手順

KeySpaces にテーブルを作成してデータを登録する

マネコンの Amazon KeySpaces の CQL エディタから以下の CQL を実行する
-キースペースを作成する

create keyspace acme with replication = {'class': 'SimpleStrategy', 'replication_factor' : 1 };
  • テーブルを作成する
create table acme.orders (
       customer_id text,
       order_timestamp timestamp,
       order_id uuid,
       primary key (customer_id, order_timestamp)) with clustering order by (order_timestamp desc);
  • レコードを挿入する
insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid());
insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid());
insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid());
insert into acme.orders (customer_id, order_timestamp, order_id) values ('1234', toTimestamp(now()), uuid());
サンプル Java アプリをビルドする
$ git clone https://github.com/aws/aws-sigv4-auth-cassandra-java-driver-plugin.git
$ cd aws-sigv4-auth-cassandra-java-driver-examples
$ mvn package
  • cassandra_truststore.jks をダウンロードする
$ pwd
/home/ec2-user/github/aws-sigv4-auth-cassandra-java-driver-examples
$ cd target
$ curl -L -O https://github.com/aws-samples/aws-sigv4-auth-cassandra-java-driver-examples/raw/master/cassandra_truststore.jks

実行手順

  • サンプル Java アプリを実行する。
$ pwd
/home/ec2-user/github/aws-sigv4-auth-cassandra-java-driver-examples/target
$ java -Djavax.net.ssl.trustStore=./cassandra_truststore.jks \
     -Djavax.net.ssl.trustStorePassword=amazon -jar \
      aws-sigv4-auth-cassandra-java-driver-examples-1.0.3.jar \
      ap-northeast-1 cassandra.ap-northeast-1.amazonaws.com 1234

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Date                     Order Id
2023-09-20T04:52:17.311Z 4a0b1d82-dfad-4a2c-bc19-bd3d59579b3c
2023-09-20T04:52:05.949Z f735fabf-7cf9-490c-8db1-cd3dc09a8b78
2023-09-20T04:51:57.898Z ce466fec-505f-48d2-b116-9f75cf412e9a
2023-09-20T04:51:21.194Z 5da3d365-cf2b-474c-92b6-acdc431aa90e