【AWS】Amazon MSK ~ AWS CLI ~

■ はじめに

Amazon MSK Connect (Amazon Managed Streaming for Apache Kafka)
の REST API について、調べていたのだが、
結局は、AWS CLIの方がいいといったこともあるので、そこらへんをメモ。

目次

【1】Amazon MSK の AWS CLI
 1)MSK
 2)MSK Connect
【2】サンプル
 1)MSK
 2)MSK Connect
【3】補足:Amazon MSK Connect の REST API
 1)REST API一覧
 2)使い方
 3)サンプル

【1】Amazon MSK の AWS CLI

* 注意点としては、
 サブコマンドが「msk/mskconnect」ではなく「kafka/kafkaconnect」

1)MSK

* aws kafka <sub-command> で管理できる

API一覧

* 以下の公式ドキュメントを参照のこと。

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/index.html

list-clusters / list-clusters-v2

* MSK cluster一覧を表示

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/list-clusters.html
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/list-clusters-v2.html

describe-cluster

* Zookeeperへの接続に必要な ZookeeperConnectString が取得できる

構文

# <MSK cluster ARN> については、AWS Management ConsoleのMSK画面から取得可能
aws kafka describe-cluster --cluster-arn "<MSK cluster ARN>"

https://docs.aws.amazon.com/cli/latest/reference/kafka/describe-cluster.html
https://awscli.amazonaws.com/v2/documentation/api/2.1.30/reference/kafka/describe-cluster.html

get-bootstrap-brokers

* ブローカーへの接続に必要な BootstrapBrokerStringを取得する

構文

# <MSK cluster ARN> については、AWS Management ConsoleのMSK画面から取得可能 
aws kafka get-bootstrap-brokers --cluster-arn "<MSK cluster ARN>"

https://docs.aws.amazon.com/cli/latest/reference/kafka/get-bootstrap-brokers.html

2)MSK Connect

* aws kafkaconnect <sub-command> で管理できる

API一覧

* 以下の公式ドキュメントを参照のこと。

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafkaconnect/index.html#cli-aws-kafkaconnect

describe-connector

* MSK connector の詳細情報を取得

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafkaconnect/describe-connector.html

 => connectorState により、
  Connectorの状況(Valid Values: RUNNING | CREATING | UPDATING | DELETING | FAILED)を取得可能

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafkaconnect/describe-connector.html

【2】サンプル

1)MSK

list-clusters / list-clusters-v2

aws kafka list-clusters

aws kafka list-clusters-v2

describe-cluster

aws kafka describe-cluster \
  --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5
  --region us-west-2

get-bootstrap-brokers

aws kafka get-bootstrap-brokers \
    --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5

{
    "BootstrapBrokerString": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092",
    "BootstrapBrokerStringTls": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094"
}

2)MSK Connect

describe-connector

# connector-arn = arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx の場合
aws kafkaconnect describe-connector --connector-arn arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx

【3】補足:Amazon MSK Connect の REST API

(ここからが裏テーマ)
始めは、Apache Kafka connect の REST API の流れで
MSK Connect REAST APIを調べていたのだが
AWS CLI でも全く同じことができ、なにより、
問題なくレスポンスが返ってくるEC2環境において、
実際に使用したら、権限エラー(※1)になった。

使い方が悪いのかもしれないが、AWS CLI の方が使い勝手がいいし、
それを調べる時間ももったいないので、AWS CLIを使うことにする

※1:エラー内容

{"Message": "Unable to determine service/operation name to be authorized" }

1)REST API一覧

https://docs.aws.amazon.com/ja_jp/MSKC/latest/mskc/API_Operations.html
https://docs.aws.amazon.com/pdfs/MSKC/latest/mskc/mskc-api.pdf

2)使い方

* Amazon MSK Connect エンドポイント(※2) に対して
 上記のAmazon MSK Connect の REST APIに対して、リクエストを送る

※2:Amazon MSK Connect エンドポイント
https://docs.aws.amazon.com/ja_jp/general/latest/gr/msk-connect.html

* 例えば、「us-east-2」の場合
 => kafkaconnect.us-east-2.amazonaws.com

エンドポイント例

# https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/<connectorArn>
https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx  

3)サンプル

curl -X GET -H "Content-Type: application/json" \
 https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx

関連記事

Amazon MSK ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/04/21/000000
Amazon MSK ~ 基本編 / Connector ~
https://dk521123.hatenablog.com/entry/2023/05/20/003516
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
Kafka Connect ~ Rest API
https://dk521123.hatenablog.com/entry/2023/05/31/000000
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Apache Kafka ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/01/000000
curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100