☁️くもをもくもくまなぶ

クラウドコンピューティングサービスの学んだことを中心につらつらと書いています

AWS 特別編 Amazon MSKハンズオン

AWS エバンジェリストシリーズ AWSの基礎を学ぼう

Amazon Managed Streaming for Apache Kafka (MSK)

Apache Kafka
クラウドにおけるキューの使い方
  • AWSにおけるSQS/EventBridge/Kinesisなど
    • 疎結合アーキテクチャを構成する上で、Web/APサーバの中に保存せずに処理を冗長性、可用性をもたせるうえで必要な機能
      • Web/APサーバにデータを保存せずに、接続しているクライアントのセッション情報やステートレスな構成
        • そこでキュー管理することで、誰が、どこまで、どういう処理を行っているのかを把握
  • Kinesis
    • Producer/Consumer
      • Pull型
  • SNS/SQS
    • Publisher/Subscriber
      • Push型(fan out型)

Handson

Producer
$ bin/kafka-topics.sh --create --zookeeper z-3.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:2181,z-2.msktutorialcluster.jw517k.c1.kafka.us-we
st-2.amazonaws.com:2181,z-1.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:2181 --replication-factor 3 --partitions 1 --topic MSKTutorialTopic
Created topic MSKTutorialTopic.
$
$
$ ./kafka-console-producer.sh --broker-list b-3.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092,b-2.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws
.com:9092,b-1.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092 --producer.config client.properties --topic MSKTutorialTopic
>hello
>world
>test
>kafka
>
Consumer
$ ./kafka-console-consumer.sh --bootstrap-server b-3.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092,b-2.msktutorialcluster.jw517k.c1.kafka.us-west-2.amaz
onaws.com:9092,b-1.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092 --consumer.config client.properties --topic MSKTutorialTopic --from-beginning
hello
world
test
kafka

<video width="6400" height="480" controls>
<source src="https://drive.google.com/file/d/1eJT5OgdYJPceC0hVxsht6pltxE8M9ZYk" type="video/mp4">
</video>

まとめ

今はクラウドが浸透してきたからこそ、当たり前になっている Pub/Subモデルですが、
そういえば以前、IBM MQを使っているシステムを横で見ていました。

当時はオンプレミスであり、MQってなんだろうとぼんやりとした疑問でしたが、
今となっては10年前にそこで分散メッセージング処理をしていたことを考えると、
当時としてはすごい構成だったんだと改めて感じました。

本日のハンズオン内容は、Apache Kafkaをつかうというより、
キューメッセージ管理とは?を改めて学ぶことを目的として置いていたので、
そのあたりはスッキリしてよかったです。