SlideShare a Scribd company logo
1 of 81
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Webinar
https://amzn.to/JPWebinar https://amzn.to/JPArchive
ソリューションアーキテクト
山﨑 翔太・倉光 怜
2019/11/20
サービスカットシリーズ
Amazon Managed Streaming for Kafka
[AWS Black Belt Online Seminar]
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Black Belt Online Seminar とは
「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ
ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。
質問を投げることができます!
• 書き込んだ質問は、主催者にしか見えません
• 今後のロードマップに関するご質問は
お答えできませんのでご了承下さい
① 吹き出しをクリック
② 質問を入力
③ Sendをクリック
Twitter ハッシュタグは以下をご利用ください
#awsblackbelt
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
内容についての注意点
• 本資料では2019年11月20日時点のサービス内容および価格についてご説明しています。最新の
情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。
• 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相
違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消
費税をご請求させていただきます。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is
subject to change in accordance with the AWS Customer Agreement available at
http://aws.amazon.com/agreement/. Any pricing information included in this
document is provided only as an estimate of usage charges for AWS services based on
certain information that you have provided. Monthly charges will be based on your
actual use of AWS services, and may vary from the estimates provided.
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
自己紹介
 名前:山﨑 翔太
 所属 : 技術統括本部
シニアソリューションアーキテクト
 好きな AWS のサービス
 Amazon Kinesis Family & AWS Lambda
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
自己紹介
倉光 怜
所属:ソリューションアーキテクト
自動車業界のお客様を担当
好きなサービス:
AWS Glue Amazon S3Amazon Kinesis
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK として提供している機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK として提供している機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Managed Streaming for Apache Kafka
(Amazon MSK)
フルマネージドで
可用性が高くセキュアな
Apache Kafka サービス
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ストリームデータ
(多数のデータソースによって)
継続的に生成されるデータ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ストリームデータ処理の全体像
取込 変換 分析 アクション 保存
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ストリームデータ処理の全体像
取込 変換 分析 アクション 保存取込
データソースからデータを取り込んで永続化し、他のサービスへの連携を担う
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
パブリッシュ・サブスクライブ・モデル
Publisher SubscriberMessage Message Broker
• サブスクライバーは受信したいメッセージを指定して取得する
• 1つのメッセージを複数のサブスクライバーが受け取れる
Message
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafka (Kafka) とは
分散データストリーミング・プラットフォーム
多くの導入実績があり、スケーラビリティに優れた、
パブリッシュ・サブスクライブ・モデルの分散メッセージング基盤を提供
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK として提供している機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafkaの全体像
データの流れ
ZooKeeper
Kafka ClusterProducer ConsumerMessage Message
• Kafkaのクライアントとして、プロデューサーとコンシューマーが存在する
• プロデューサーはメッセージの発行(パブリッシュ)を行い、
コンシューマーはメッセージの購読(サブスクライブ)を行う
• Kafkaは複数のサーバーでクラスターを構成しており、スケーラビリティと可用性を
確保している
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafkaの全体像
データの流れ
ZooKeeper
Kafka ClusterProducer ConsumerMessage Message
• Apache Kafka の構成要素として、プロデューサーとコンシューマーが存在する
• プロデューサーはメッセージの発行 (Publish) を行い、コンシューマーはメッセージの
購読 (Subscribe) を行う
• 複数のKafkaサーバーでクラスターを構成しており、可用性を確保している
Kafka Cluster
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafkaの全体像
データの流れ
• Kafkaのクラスターは、複数のブローカーで構成され、トピック内のパーティションを
分散キューとしてブローカーに配置してメッセージを管理する
• ZooKeeper が、トピックやパーティションのメタ情報を管理する
• プロデューサーはブローカーにメッセージを送信し、コンシューマーはブローカーから
取り出して利用する
ZooKeeper
Broker
Topic
Partition
Kafka Cluster
Producer
Producer
Consumer
Consumer
Consumer
Consumer
Consumer Group
Broker
Topic
Partition
Replication
Broker
Topic
Partition
Partition
Message
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafkaの全体像
データの流れ
ZooKeeper
Broker
Topic
Partition
Kafka Cluster
Producer
Producer
Consumer
Consumer
Consumer
Consumer
Consumer Group
Broker
Topic
Partition
Replication
Broker
Topic
Partition
Partition
Message
• Kafkaクラスターはブローカー・トピック・パーティションで構成される
• 複数のブローカーでクラスター構成し、分散キューであるトピック内の
パーティションでメッセージを管理する
Replication
Broker
Topic
Partition
Partition
Broker
Topic
Partition
Partition
• ブローカー:クラスターとして動作し、データの受配信を担う
• トピック:メッセージを種別で管理する
• パーティション:ブローカー上に分散配置され、トピックのメッセージが格納される
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックとパーティション
Producer
Producer
Consumer
Consumer
Broker 2Broker 1 Broker 3
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica Follower Replica
Follower ReplicaFollower Replica
Follower Replica
Topic 1
Kafka Server Kafka Server Kafka Server
• メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた
複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックとパーティション
Producer
Producer
Consumer
Consumer
Broker 2Broker 1 Broker 3
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica Follower Replica
Follower ReplicaFollower Replica
Follower Replica
Topic 1
Kafka Server Kafka Server Kafka Server
• メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた
複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ)
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica Follower Replica
Follower ReplicaFollower Replica
Follower Replica
Topic 1
Producer
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
• プロデューサーはトピックと値を指定することで書き込みを行う
• 各パーティションへのメッセージの書き込みはリーダーレプリカのみ実施される
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックとパーティション
Producer
Producer
Consumer
Consumer
Broker 2Broker 1 Broker 3
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica Follower Replica
Follower ReplicaFollower Replica
Follower Replica
Topic 1
Kafka Server Kafka Server Kafka Server
• メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた
複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ)
Partition 2
Partition 3
Partition 1
Topic 1
Leader Replica Follower ReplicaFollower Replica
Partition 1
Leader Replica Follower ReplicaFollower Replica
• リーダーレプリカに書き込まれた内容はフォロワーレプリカに複製する
• リーダーレプリカはフォロワーレプリカと同期がとれているかを把握している
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックとパーティション
Producer
Producer
Consumer
Consumer
Broker 2Broker 1 Broker 3
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica Follower Replica
Follower ReplicaFollower Replica
Follower Replica
Topic 1
Kafka Server Kafka Server Kafka Server
• メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた
複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ)
Partition 2
Partition 3
Topic 1
Consumer
Leader Replica
Leader Replica
Leader Replica
Follower Replica
Follower Replica
Consumer
Partition 2
Partition 3
Partition 1
Leader Replica
Leader Replica
Leader Replica
コンシューマーのメッセージの読み込みについても、
プロデューサーと同様に、リーダーレプリカのみから行われる
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
オフセット
• メッセージがパーティションに入れられた際に付与されるシーケンシャルな番号
• パーティション単位で最後に取得したメッセージを ZooKeeper もしくは
Kafka自体が保存しており、コンシューマーが追跡している
• オフセットにより、コンシューマーは継続的に Kafka に保存されるメッセージの
どこまで読み出したかを管理することが可能
0 1 2 3 4 5 6 7 8 9 10
Consumer A
(Offset=5)
Consumer B
(Offset=8)
Producer
Writes
Reads
Partition 1
Old New
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ハイウォーターマーク
• レプリカによる複製が完了済みのオフセット
• コンシューマーはハイウォーターマークのデータのみ取得可能
0 1 2 3 4 5
Leader
Replica
0 1 2 3
4
Follower
Replica
0 1 2 3
Follower
Replica
Producer
High Water Mark
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ハイウォーターマーク
• レプリカによる複製が完了済みのオフセット
• コンシューマーはハイウォーターマークのデータのみ取得可能
0 1 2 3 4 5
Leader
Replica
0 1 2 3
4
Follower
Replica
0 1 2 3
Follower
Replica
Producer
High Water Mark
0 1 2 3 4 5
Leader
Replica
0 1 2 3
4
Follower
Replica
0 1 2 3
Follower
Replica
High Water Mark
0 1 2 3
Leader
Replica
0 1 2 3
Follower
Replica
0 1 2 3
Follower
Replica
Consumer
High Water Mark
コンシューマーは枠内のオフセットまでのメッセージを取得できる
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
In Sync Replica と Out Sync Replica
• リーダーとフォロワーが同じ状態であるレプリカを In Sync Replica と言う
• ブローカーやネットワークの問題により、一定時間以上で同期できない場合は
Out Sync Replica と見なされる
• min.insync.replicas パラメーターで最低限必要な In Sync Replica を設定する
0 1 2 3 4 5
Leader
Replica
0 1 2 3
Follower
Replica
0 1 2
Follower
Replica
4 5
In Sync Replica
3 4 5 Out Sync Replica
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafka のまとめ
• Apache Kafka は、分散データストリーミング・プラットフォームである
 多くの導入実績がある
 スケーラビリティに優れたパブリッシュ・サブスクライブ・モデルの分散メッセージング基盤を
提供する
• Kafka のクラスターは、ブローカー・トピック・パーティションで構成される
 ブローカー:データの受配信を担う
 トピック:メッセージを種別で管理する
 パーティション:ブローカー上に配置され、トピックのメッセージを格納する
• スケーラビリティのために分散アーキテクチャを採用していて構成要素が多く、
環境構築や運用の負担は大きい
 Kafkaクラスターの環境構築においては、多くのサーバーに対する設定が必要となる
 稼働後にも、ブローカーや Zookeeper 自体の運用に加えて、スケールの管理や監視などの多くの
運用作業が必要となる
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK が提供する機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK とは
フルマネージドで可用性が高くセキュアな
Apache Kafka サービス
• Amazon MSK は、コントロールプレーンの操作を提供
• クラスターの作成、更新、削除などの API を提供
• データプレーンの操作は、Apache Kafka の API をそのまま使用可能
• トピックの作成や管理
• プロデューサーからのデータの入力や、コンシューマーからのデータの取得
• Amazon MSK は Apache Kafka のオープンソースバージョンを実行
• Kafka のバージョン 1.1.1 と 2.2.1 をサポート(2019年11月現在)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のアーキテクチャ
subnet A subnet B subnet C
ZooKeeper Nodes (Managed EC2 Instances)
Broker Nodes (Managed EC2 Instances)
Producer (EC2 Instance) Consumer (EC2 Instance) Topic Creator (EC2 Instance)
オペレーター
AWS CLI や
マネジメントコンソール
で操作を実行
Customer VPC
Amazon MSK
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK を動かすまで
注意点
最新の AWS CLI がインストールされていることをご確認下さい
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html
$ aws –version
aws-cli/1.16.266 Python/3.7.3 Linux/4.14.138-114.102.amzn2.x86_64 botocore/1.13.2
$ pip3 install --upgrade --user awscli
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クラスターの準備
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/getting-started.html
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/create-cluster.html
$ aws kafka create-cluster ¥
--cluster-name "AWSKafkaTutorialCluster” ¥
--broker-node-group-info file://brokernodegroupinfo.json ¥
--encryption-info file://encryptioninfo.json ¥
--kafka-version "2.2.1" ¥
--number-of-broker-nodes 3 ¥
--enhanced-monitoring PER_TOPIC_PER_BROKER ¥
--region ap-northeast-1
{
"ClusterArn": ”ClusterArn",
"ClusterName": "AWSKafkaTutorialCluster",
"State": "CREATING"
}
Amazon MSK の Create Cluster API で簡単に Kafka クラスターを作成可能
ブローカーを配置する
VPCサブネット等の設定
クラスターのストレージと
転送中のデータに対する暗号化の設定
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックの準備
$ sudo yum install java-1.8.0
$ wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz
$ cd kafka_2.12-2.2.1/
$ ls
LICENSE NOTICE bin config libs site-docs
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/create-cluster.html
Kafka のクライアントツールをインストール
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックの準備
# Amazon MSK の Describe Cluster API で 接続するZooKeeper (ZookeeperConnectString) を取得
$ aws kafka describe-cluster --cluster-arn "ClusterArn”
{
"ClusterInfo": {
…,
"ClusterName": "AWSKafkaTutorialCluster",
"NumberOfBrokerNodes": 3,
"ZookeeperConnectString": "z-3.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-
1.amazonaws.com:2181,z-1.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:2181,z-
2.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:2181",
…
}
}
# Kafka の API でトピックを作成
$ bin/kafka-topics.sh --zookeeper ZookeeperConnectionString ¥
--create --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
Created topic AWSKafkaTutorialTopic.
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
トピックの準備
$ sudo yum -y install jq
# Amazon MSK の Describe Cluster API で取得した ZookeeperConnectString に対してトピックを作成
$ bin/kafka-topics.sh --zookeeper `aws kafka describe-cluster
--cluster-arn “ClusterArn” | jq -r .ClusterInfo.ZookeeperConnectString`
--create --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic
Created topic AWSKafkaTutorialTopic.
#トピックの一覧を表示
$ bin/kafka-topics.sh --zookeeper `aws kafka describe-cluster
--cluster-arn “ClusterArn” | jq -r .ClusterInfo.ZookeeperConnectString` --list
AWSKafkaTutorialTopic
ワンラインで記述
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
プロデューサーとコンシューマー の接続
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/produce-consume.html
# Amazon MSK の Get Bootstrap Brokers API で クラスターの接続先ブローカー (BootstrapBrokerString) を取得
$ aws kafka get-bootstrap-brokers --cluster-arn "ClusterArn”
{
"BootstrapBrokerStringTls": "b-1.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094,b-
2.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094,b-
3.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094"
}
# Kafka の API でプロデューサーを接続
$ bin/kafka-console-producer.sh --broker-list BootstrapBrokerString ¥
--producer.config client.properties --topic AWSKafkaTutorialTopic
> Hello Kafka!
> Hello MSK!
# Kafka の API でコンシューマーを接続
$ bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerString ¥
--consumer.config client.properties --topic AWSKafkaTutorialTopic --from-beginning
Hello Kafka!
Hello MSK!
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
https://aws.amazon.com/jp/blogs/news/best-practices-for-running-apache-kafka-on-aws/
「Amazon EC2 上で Apache Kafka を動かす際のベストプラクティス」
を以下の項目毎にガイドしたブログ
1. デプロイメントのパターン
2. ストレージオプション
3. インスタンスタイプ
4. ネットワーキング
5. アップグレード
6. パフォーマンスチューニング
7. モニタリング
8. セキュリティ
9. バックアップとリストア
AWS Big Data Blog - ”Best Practices for Running Apache Kafka on AWS”
AWS での Apache Kafka の実行のためのベストプラクティス
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kafka on EC2 と Amazon MSK を利用した場合の違い
項目 Kafka on EC2 Amazon MSK
デプロイメントのパターン 複数AZへのデプロイを軸に自身で構築 複数AZに自動的にデプロイ*
ストレージオプション EBS または インスタンスストア (MSKが管理する)EBS
インスタンスタイプ 任意のインスタンスタイプ m5ファミリー(large〜24xlarge)
ネットワーキング
インスタンスタイプやENI構成を
考慮して自身で設計
クラスター内はマネージドとなり、
クライアントからはENI経由で接続*
バージョンアップグレード 要件に合わせて選択 現時点は Blue/Green が基本*
パフォーマンスチューニング Kafka のパフォーマンスチューニングにおいては、ほとんど違いはない
監視 自身で監視ツールとの連携を構築 MSKの監視機能を利用*
セキュリティ 自身で暗号化や認証を設定 MSKのセキュリティ機能を利用*
バックアップとリストア
EBSスナップショットを取得
MirrorMaker でクラスターをコピー
クラスターのバックアップ機能は未提供
MirrorMaker でクラスターをコピー
* 後述
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クラスターのデプロイメント
シングルリージョン・3AZ
シングルクラスター構成
シングルリージョン・3AZ
アクティブ - スタンバイ構成
MSKでクラスター
をマネージド化
MSKでクラスター
をマネージド化
MSKでクラスター
をマネージド化
• AZ間でブローカーを均等にデプロイするベストプラクティスを適用
• 2つもしくは3つのAZに含まれるサブネットをクラスター作成時に指定
• AZ当たりのブローカー数のみ、あるいはAZ数の倍数でブローカー数を指定
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のネットワーク構成
subnet A subnet B subnet C
ZooKeeper Nodes
Broker Nodes
Producer Consumer Topic Creator
Customer VPC
Amazon MSK
ENI ENI ENIENI ENI ENI
MSKクラスターに指定した
セキュリティグループ
同じセキュリティグループに
入れることで構築を簡易化
・MSKクラスター
・プロデューサー
・コンシューマー
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クラスターのバージョンアップグレード
Kafka on EC2 Amazon MSK
https://aws.amazon.com/jp/msk/faqs/
https://aws.amazon.com/jp/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/
要件に合わせて選択
• ローリング や インプレース
• クラスターの一時停止
• Blue/Green
Blue/Green での切り替え
• クラスターのアップグレードは未サポート
(今後の機能追加でサポート予定)
• Blue/Green での切り替えは容易に
1. 新しいKafkaクラスターを作成(Green)
2. GreenのKafkaクラスターを指す
新しいKafkaのプロデューサースタックを作成
3. GreenのKafkaクラスターに関するトピックを作成
4. 新しいGreen環境へのデプロイを一気通貫でテスト
5. Amazon Route 53 を使用して、
新しいKafkaのプロデューサースタックを更新し、
GreenのKafkaクラスターを指すように変更
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK の監視機能
モニタリングレベル 拡張モニタリングの設定値 メトリクスの内容 利用料
基本モニタリング DEFAULT
基本的なクラスターレベルおよび
ブローカーレベルのメトリクス
無料
拡張ブローカーレベル
モニタリング
PER_BROKER
基本モニタリングおよび
拡張ブローカーレベルのメトリクス
有料
拡張トピックレベル
モニタリング
PER_TOPIC_PER_BROKER
拡張ブローカーレベルおよび
拡張トピックレベルのメトリクス
有料
• Amazon CloudWatch でメトリクスを取得可能
• 以下の3つからクラスターのモニタリングレベルを選択可能
よくある Kafka の監視項目
• ブローカーの死活監視 ⇨ 基本モニタリングのメトリクスで正常性確認
• トピックレベルでの流入量 ⇨ 拡張トピックレベルのメトリクスで監視
• エンドツーエンドのレイテンシー ⇨ Burrow などのツールも活用してコンシューマー側で計測
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
取得可能なメトリクスの例:基本モニタリング
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html
メトリクス名 モニタリングレベル ディメンション 説明
ZooKeeperSessionState DEFAULT Cluster Name, Broker ID
ブローカーのZooKeeper
セッションの接続状態
GlobalPartitionCount DEFAULT Cluster Name
クラスター内の全ブローカー
にあるパーティションの総数
GlobalTopicCount DEFAULT Cluster Name
クラスター内の全ブローカー
にあるトピックの総数
MemoryUsed DEFAULT Cluster Name, Broker ID
ブローカーに使用されている
メモリのサイズ(bytes)
CpuIdle DEFAULT Cluster Name, Broker ID CPUアイドル時間の割合
KafkaDataLogsDiskUsed DEFAULT Cluster Name, Broker ID
データログに使用されている
ディスク容量の割合
NetworkRxErrors DEFAULT Cluster Name, Broker ID
ブローカーのネットワーク
受信エラーの数
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
取得可能なメトリクスの例:拡張ブローカーレベル
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html
メトリクス名 モニタリングレベル ディメンション 説明
LeaderCount PER_BROKER Cluster Name, Broker ID
ブローカーが持つ
リーダーレプリカの数
PartitionCount PER_BROKER Cluster Name, Broker ID
ブローカーが持つ
パーティションの数
MessagesInPerSec PER_BROKER Cluster Name, Broker ID
1秒あたりにクライアント
から受信したメッセージの数
ProduceThrottleByteRate PER_BROKER Cluster Name, Broker ID
1秒あたりにスロットリング
されたバイト数
RequestTime PER_BROKER Cluster Name, Broker ID
ブローカーのネットワークと
I/Oスレッドでリクエストの
処理に費やした平均時間
RequestThrottleQueueSize PER_BROKER Cluster Name, Broker ID
スロットリングした
キュー内のメッセージの数
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
取得可能なメトリクスの例:拡張トピックレベル
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html
メトリクス名 モニタリングレベル ディメンション 説明
BytesInPerSec PER_TOPIC_PER_BROKER
Cluster Name,
Broker ID, Topic
(トピック毎の)
1秒あたりの受信バイト数
BytesOutPerSec PER_TOPIC_PER_BROKER
Cluster Name,
Broker ID, Topic
(トピック毎の)
1秒あたりの送信バイト数
MessagesInPerSec PER_TOPIC_PER_BROKER
Cluster Name,
Broker ID, Topic
(トピック毎の)
1秒あたりにクライアント
から受信したメッセージの数
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のセキュリティ機能
• 保存データの暗号化
• データ通信の暗号化
• IAMポリシーやIAMロールでの制御
• タグ付けとタグベースのIAM設定
PCI や HIPAA BAA の認証
データの保護
クライアントの認証
IAMによる操作権限管理
コンプライアンス
TLSクライアント認証
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/security.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のセキュリティ機能
• 保存データの暗号化
• データ通信の暗号化
• IAMポリシーやIAMロールでの制御
• タグ付けとタグベースの認証
PCI や HIPAA BAA の認証
データの保護
クライアントの認証
IAMによる操作権限管理
コンプライアンス
TLSクライアント認証
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/security.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
データの保護
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-encryption.html
• KMSと連携したサーバー側の暗号化①が
デフォルトで有効
(Server Side Encryption)
• クラスター作成時に、
Customer Master Key (CMK) を指定
• 指定しなければ、
MSK が AWS Managed CMK を作成
保存データの暗号化 データ通信の暗号化
Broker Nodes
Producer
Consumer ①
②③
①
• ブローカー同士の通信②はデフォルトで
暗号化が有効で、無効化することも可能
• クライアントとブローカー間の通信③は
以下の3つから選択が可能
1. TLSで暗号化されたデータのみを許可
(デフォルトの設定)
2. プレーンテキストとTLSで暗号化された
データの両方を許可
3. プレーンテキストのデータのみを許可
• TLS 1.2 を利用
• データ通信の暗号化を有効にすると、
パフォーマンスは約30%低下
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
TLSクライアント認証
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-authentication.html
https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Authorization+Command+Line+Interface
クライアント認証 ブローカー側のサーバー証明
• クライアントとブローカー間の通信の
TLS暗号化③を有効化するのみ
• クライアント認証をするには有効化が必要
• ブローカーは AWS Certificate Manager
(ACM) の証明書を使用
• Amazon Trust Services を信頼する
トラストストアは、MSKのブローカーの
証明書も信頼
• MSKクラスターの作成時に、
ACM Private Certificate Authority
(ACM PCA) のプライベートCAを指定
• クライアント側に証明書を設定
1. 秘密鍵を作成し、秘密鍵を使用して
証明書署名要求(CSR)を作成
2. ACM PCA で CSR に署名して証明書を発行
3. ACM PCA が署名した証明書をクライアント
に設定してブローカーと通信
• Kafka Authorization CLI を利用して、
トピックに対してアクセス権を設定
Broker Nodes
Producer
Consumer
** ③
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK によるKafkaクラスターの構成管理
• MSKは、ブローカー、トピック、ZooKeeperノードのデフォルト構成を提供
• カスタム構成を作成し、新規のMSKクラスターを作成することが可能
• カスタム構成で、既存のクラスターを更新することも可能
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-configuration.html
auto.create.topics.enable = true
zookeeper.connection.timeout.ms = 1000
log.roll.ms = 604800000
$ aws kafka create-configuration ¥
--name "CustomConfiguration" ¥
--description ”MSK BlackBelt." ¥
--kafka-versions "1.1.1" ¥
--server-properties file://config-file-path
{
"Arn": "arn:aws:kafka:XXX",
…,
"LatestRevision": {
…,
"Description": "MSK BlackBelt.",
"Revision": 1
},
"Name": "CustomConfiguration"
}
$ aws kafka update-cluster-configuration ¥
--cluster-arn "arn:aws:kafka:YYY" ¥
--configuration-info file://configuration-info.json ¥
--current-version ”K21V3IB1VIZYYH”
{
"ClusterArn": "arn:aws:kafka:YYY",
"ClusterOperationArn": "arn:aws:kafka:ZZZ”
}
config-file {
"Arn": "arn:aws:kafka:XXX",
"Revision": 1
}
configuration-info.json
Kafkaの設定ファイルを作成 MSKのConfigurationを作成 MSKのクラスターを作成・更新
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
デフォルト構成
設定項目 初期値
num.network.threads 5
num.io.threads 8
num.replica.fetchers 2
socket.send.buffer.bytes 102400
socket.receive.buffer.bytes 102400
socket.request.max.bytes 104857600
num.partitions 1
auto.create.topics.enable false
default.replication.factor 3
min.insync.replicas 2
unclean.leader.election.enable true
auto.leader.rebalance.enable true
allow.everyone.if.no.acl.found true
zookeeper.set.acl false
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-default-configuration.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
カスタム構成で設定可能な項目
設定項目
auto.create.topics.enable
delete.topic.enable
log.cleaner.delete.retention.ms
group.initial.rebalance.delay.ms
group.max.session.timeout.ms
group.min.session.timeout.ms
log.flush.interval.messages
log.flush.interval.ms
log.retention.bytes
log.retention.hours
log.retention.minutes
log.retention.ms
num.partitions
設定項目
max.incremental.fetch.session.cache.slots
log.cleaner.min.cleanable.ratio
offsets.retention.minutes
zookeeper.connection.timeout.ms
unclean.leader.election.enable
min.insync.replicas
message.max.bytes
log.segment.bytes
log.roll.ms
transaction.max.timeout.ms
replica.fetch.max.bytes
compression.type
default.replication.factor
設定項目
message.timestamp.difference.max.ms
message.timestamp.type
num.io.threads
num.network.threads
num.recovery.threads.per.data.dir
num.replica.fetchers
offsets.topic.replication.factor
replica.fetch.response.max.bytes
socket.request.max.bytes
transaction.state.log.min.isr
transaction.state.log.replication.factor
log.cleanup.policy
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-configuration-properties.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK による構成管理の注意点
• (現時点では)Configurationを削除するAPIはない
 AWSアカウントごとに作成できるConfiguration数の上限に注意(デフォルトでは100)
• (現時点では)Configurationを更新するAPIはない
 ConfigurationのRevisionを指定してクラスターを更新するが、Revisionを上げる方法はない
• クラスターを更新すると、ブローカーとの順次の接続断が発生する
 クラスターのステータスは「更新中」になる
 ブローカーはローリングアップグレードされ、順次の接続断が発生する
$ bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerString ¥ --consumer.config client.properties --topic AWSKafkaTutorialTopic --from-beginning
Hello Kafka!
Hello MSK!
[2019-11-10 03:31:54,014] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 2 (b-2.awskafkatutorialc.6xjbqy.
c4.kafka.ap-northeast-1.amazonaws.com/10.0.0.214:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Are you OK?
[2019-11-10 03:33:03,988] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 1 (b-1.awskafkatutorialc.6xjbqy.
c4.kafka.ap-northeast-1.amazonaws.com/10.0.1.96:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
We can still consume data
[2019-11-10 03:34:16,763] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 3 (b-3.awskafkatutorialc.6xjbqy.
c4.kafka.ap-northeast-1.amazonaws.com/10.0.2.175:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
Done!
Hello updated cluster!
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クラスターのスケーリング
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-update-storage.html
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-update-broker-count.html
https://aws.amazon.com/jp/msk/faqs/
• マネジメントコンソール
または AWS CLI を使用して、
ブローカーのストレージ容量を
拡張可能
• クラスター内の全ブローカーに
対する一括での拡張のみ可能
• 容量を増やすことは出来るが、
減らすことは出来ない
ストレージの拡張
✕
ブローカー数の拡張 ブローカーサイズの拡張
• マネジメントコンソール
または AWS CLI を使用して、
ブローカーのノード数を
拡張可能
• AZあたりのブローカー数を
指定して拡張
• 数を増やすことは出来るが、
減らすことは出来ない
現時点では、ブローカーの
スケールアップは未サポート
(今後の機能追加でサポート予定)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クラスターの耐障害性
• Amazon MSKのクラスターは、マルチAZクラスターの以下の一般的な障害シナリオを
検出して自動的に回復
1. ブローカーへのネットワーク接続の損失
2. ブローカーノードの障害
• 障害を検出すると、正常でない(到達不能な)ブローカーを新しいブローカーに置換
 可能であれば、古いブローカーのストレージを再利用して、Kafkaが複製する必要がある
データ量を削減する
 可用性への影響は、MSKが検出と回復を完了するのに必要な時間に制限される
 復旧後、プロデューサーアプリケーションとコンシューマーアプリケーションは、
障害が発生する前に使用していたものと同じIPアドレスでブローカーとの通信を継続できる
• Amazon MSK は、99.9%の可用性(SLA)を提供
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/what-is-msk.html
https://aws.amazon.com/jp/msk/sla/
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のベストプラクティス
1. クラスターを適切なサイズに設定する
 MSK Sizing and Pricing スプレッドシートを利用してサイズを決定
https://amazonmsk.s3.amazonaws.com/MSK_Sizing_Pricing.xlsx
2. ディスク容量を監視する
 KafkaDataLogsDiskUsed メトリクスを監視し、85%を超えたらいずれかの方法で対処
1. ブローカーのストレージ容量を増やす
2. メッセージの保存期間またはログサイズを減らす
3. 未使用のトピックを削除する
3. Kafka の Data Retention パラメーターを指定する
 ディスクの空き容量を定期的に解放するために、保持期間を明示的に指定
 log.retention.hours などの設定により、クラスターレベルまたはトピックレベルで、
Data Retentionパラメーターを指定
4. MSK の管理外にあるブローカーを追加しない
5. データ通信の暗号化を有効にする
6. パーティションの再割り当てを行う
 パーティション再割り当てツール kafka-reassign-partitions.sh を使用
 新しいブローカーの追加後にはパーティションを再割り当てしてリバランスを実施
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/bestpractices.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK の料金体系
ブローカーインスタンスの料金
• ブローカーインスタンスの使用量に応じて時間単位で発生 (1秒ごとに請求)
• 料金は、ブローカーインスタンスのサイズや、アクティブなブローカーの数によって異なる
ブローカーストレージの料金
• クラスターにプロビジョニングしたストレージ容量に応じて課金
• 時間単位のブローカーあたりの GB 数を加算した値を、月の使用時間数で割って算出
データ転送料金
• クライアントとクラスターとの間で送受信されたデータ量に対して、通常のAWSデータ転送料金が発生
• ブローカー間、ZooKeeperノードおよびブローカー間のデータ転送に料金は無料
拡張モニタリング
• 拡張モニタリングを有効化した場合には、利用量に応じた課金が Amazon CloudWatch に発生
https://aws.amazon.com/jp/msk/pricing/
https://aws.amazon.com/jp/cloudwatch/pricing/
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK が提供する機能のまとめ
 Kafkaクラスターの作成、更新、削除の自動化
 ZooKeeperによるクラスター管理の隠蔽
 複数AZに跨ったデプロイメントの自動最適化
 Amazon CloudWatch と連携した監視機能
 保存データとデータ通信の暗号化
 TLSクライアント認証
 タグ付けとタグベースのIAM設定
 Kafkaクラスターの構成管理
 ストレージのスケーリング
 ブローカーのスケールアウト
 99.9%の可用性(SLA)
 PCI や HIPAA BAA のコンプライアンス認証
現時点では出来ないこと
(今後の機能追加でサポート予定)
• クラスターのバージョンアップ
• ブローカーのスケールアップ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK として提供している機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis Data Streams
エ
ン
ド
ポ
イ
ン
ト
シャード 0
シャード 1
シャード ..N
プロデューサー コンシューマー
データ
レコード
ストリーム
大量のストリームをリアルタイムで収集して処理するためのデータストリーミングサービス
Amazon Kinesis Data Streams
エ
ン
ド
ポ
イ
ン
ト
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Kinesis Data Streams のエコシステム
プロデューサー(データ送信側) コンシューマー(データ処理側)
AWS SDK
Kinesis Producer Library
Kinesis Agent
AWS IoT Core
Kinesis Log4j Appender
…
AWS SDK
Kinesis Client Library
Fluentd
Kinesis Data Analytics
AWS Lambda
Amazon EMR
Apache Flink
Apache Storm
…
Kinesis Data Firehose
CloudWatch Events
CloudWatch Logs
Amazon Kinesis Data Streams
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
• AWSが提供するAPIで送受信
• 他のAWSサービスとの深い統合
• スループットをプロビジョニング
• シームレスなスケーリングが可能
• インフラを意識しないサーバーレス構成
• オープンソース互換のAPIで送受信
• Kafkaのエコシステムを利用可能
• クラスターをプロビジョング
• シームレスなスケーリングが困難
• オンプレミスからの移行が容易
Amazon MSK Amazon Kinesis Data Streams
Amazon MSK と Amazon Kinesis Data Streams の特徴
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
用語の対応関係
Apache Kafka
(Amazon MSK)
Amazon Kinesis Data Streams
クラスター (サーバーレスなので存在しない)
ブローカー (サーバーレスなので存在しない)
トピック ストリーム
パーティション シャード
プロデューサー プロデューサー
コンシューマー コンシューマー
オフセット チェックポイント
リーダーレプリカ
フォロワーレプリカ
ハイウォーターマーク
(内部で3AZに冗長化して隠蔽)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アーキテクチャの比較
Kinesis Data Streams
Producer Consumer
エ
ン
ド
ポ
イ
ン
ト
Shard 0
Shard 1
Shard 2
Stream
エ
ン
ド
ポ
イ
ン
ト
Shard 3
Amazon MSK Amazon Kinesis Data Streams
MSK
Producer
with
構成情報
Partition 0
Topic 1
Partition 1
Partition 2
Broker 1
Consumer
with
構成情報
Topic 2
Broker 2
Partition 3
Topic 3
Broker 3
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アーキテクチャの比較
Kinesis Data Streams
Producer Consumer
エ
ン
ド
ポ
イ
ン
ト
Shard 0
Shard 1
Shard 2
Stream
エ
ン
ド
ポ
イ
ン
ト
Shard 3
Amazon Kinesis Data Streams
• プロデューサーとコンシューマーが
接続先のブローカーを選択して通信するため、
シームレスなスケールが難しい
• クラスターをプロビジョニングするため
リソースの利用効率を管理する必要があるが、
トピック毎にパーティション割当を管理できる
MSK
Producer
with
構成情報
Partition 0
Topic 1
Partition 1
Partition 2
Broker 1
Consumer
with
構成情報
Topic 2
Broker 2
Partition 3
Topic 3
Broker 3
Amazon MSK
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アーキテクチャの比較
Amazon MSK
MSK
Producer
with
構成情報
Partition 0
Topic 1
Partition 1
Partition 2
Broker 1
Consumer
with
構成情報
Topic 2
Broker 2
Partition 3
Topic 3
Broker 3
• プロデューサーとコンシューマーは
APIのエンドポイントと通信するため、
シームレスにスケールすることができる
• シャード数を増やすことでスケールし、
それ以外のリソースをプロビジョニング
する必要はない(サーバーレス)
Kinesis Data Streams
Producer Consumer
エ
ン
ド
ポ
イ
ン
ト
Shard 0
Shard 1
Shard 2
Stream
エ
ン
ド
ポ
イ
ン
ト
Shard 3
Amazon Kinesis Data Streams
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK における Kafka のエコシステムとの互換性
オープンソースの Apache Kafka
 Kafka MirrorMaker
 Kafka Connect
 Kafka Streams
Apache Kafka の周辺ツールとフレームワーク
 Schema Registry
 Rest Proxy
 Burrow
Jarファイルのロードが必要なツール
• Confluent Control Center
• Auto Data Balancer (Confluent)
• uReplicator (Uber)
• Cruise Control (LinkedIn)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK における Kafka のエコシステムとの互換性
オープンソースの Apache Kafka
 Kafka MirrorMaker
 Kafka Connect
 Kafka Streams
Apache Kafka の周辺ツールとフレームワーク
 Schema Registry
 Rest Proxy
 Burrow
Jarファイルのロードが必要なツール
• Confluent Control Center
• Auto Data Balancer (Confluent)
• uReplicator (Uber)
• Cruise Control (LinkedIn)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kafka MirrorMaker
• MirrorMaker に、ソースのクラスターを読み取るコンシューマーとしての設定と、
ターゲットのクラスターに書き込むプロデューサーとしての設定を入力
• レプリケーションに問題が発生した場合に備えて、MirrorMaker はターゲット側で動かす
• Amazon MSK のドキュメントにある “MirrorMaker 1.0 Best Practices” も参照
Kafkaのクラスター間をレプリーケーションするツール
https://kafka.apache.org/documentation/#basic_ops_mirror_maker
https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/migration.html
On-premise Data Center
Broker
Kafka Cluster Amazon MSK
AWS Cloud
VPC
MirrorMaker
Amazon EC2
Broker
Amazon MSK
AWS Cloud
VPC
MirrorMaker
Amazon EC2
Broker
VPC Peering
AWS
Direct Connect
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Kafka Connect
• Kafka のブローカーと接続する部分を Connector と呼ぶ
 プロデューサー側を Source Connector、コンシューマー側を Sink Connector と呼ぶ
• 様々なプラグインが公開されており、接続先に合ったプラグインを実装せずに利用可能
 Source の例:RDB (JDBC)、Amazon CloudWatch Logs、Amazon DynamoDB …
 Sink の例:RDB (JDBC) 、HDFS、Elasticsearch、Amazon S3、AWS Lambda …
RDB
Source
Connector
Sink
Connector
Broker
Amazon MSKAmazon EC2 Amazon EC2
Kafkaと周辺のシステムを接続するためのフレームワーク
Kafka Connect
https://kafka.apache.org/documentation/#connect
https://docs.confluent.io/current/connect/index.html
Amazon CloudWatch Logs
Data Source
RDB
Data Sink
Amazon S3
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Schema Registry
Broker
Schema Registry
Producer Consumer
• Avro Schemaでスキーマを定義し、REST APIでスキーマを登録/取得
• スキーマに応じた自動的なシリアライゼーションを提供
• スキーマをバージョン管理し、変更時の変化にも対応
Topic11.Schemaの存在確認と情報を取得
2.IDをProducerに送信
3.IDとシリアライズした
データをBrokerに送信
6.IDとデシリアライズした
データをBrokerから取得
5.ConsumerがIDを取得
4.Schemaの存在確認と情報を取得
Amazon MSK
Amazon EC2
メッセージに対して一元化されたスキーマ管理とシリアライズ機構を提供
https://docs.confluent.io/current/schema-registry/index.html
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Apache Kafka のユースケース
1. メッセージング
 ActiveMQ や RabbitMQ などの代替として、メッセージブローカーとして利用
2. ウェブサイトのアクティビティ追跡
 サイトアクティビティからユーザーのアクティビティ追跡パイプラインを構築
3. メトリクス
 分散したアプリケーションから運用監視データを集約して集計や統計処理を実施
4. ログの集約
 ログのイベントデータをメッセージのストリームとして利用
5. ストリーム処理
 複数のステップで構成されるパイプラインでストリームデータを処理
 Kafka Streams や Apache Flink などのストリーム処理ツールと合わせて利用
6. イベントソーシング
 状態の変化が時系列なレコードのシーケンスとして記録されるアプリケーションのバックエンドとして利用
7. コミットログ
 Apache BookKeeper のような、分散システムの外部コミットログとして利用
https://kafka.apache.org/uses
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon MSK のユースケース
1. オンプレミスにある既存の Apache Kafka クラスターの移行
2. Amazon EC2 上に構築されている Apache Kafka クラスターの移行
3. Apache Kafka の周辺ツールを利用している場合、または利用したい場合
それ以外の場合には、基本的に Amazon Kinesis Data Streams の利用がお勧め
 サーバーレスのメリットが得られるため、多くの場合ではスケーラビリティとコストの
観点でメリットがある
 AWS Lambda など他のAWSサービスとの連携機能を活用して、
プロデューサーとコンシューマーを含めてサーバレスなアーキテクチャを設計できる
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
オンプレミス上のストリーム処理+バッチ処理の移行
On-premise Data Center
ETL /
Source Connector
Data Source
Pig
バッチ処理
ストリーム処理・バッチ処理
ETL /
Source Connector
Data Source
バッチ処理
ストリーム処理・バッチ処理
AWS Cloud
Amazon S3
AWS GlueAmazon EMR
Amazon MSK
Amazon EMR
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ストリーム・パイプラインのアーキテクチャと移行プラン
On-premise Data Center or Amazon EC2
Data Source
リアルタイム処理
バッチ処理
Data Source
リアルタイム処理
バッチ処理
AWS Cloud
Amazon Kinesis Data Streams
Amazon
EMR
Amazon Kinesis
Data Analytics
Amazon S3
Amazon Kinesis
Data Firehose
Data Source
リアルタイム処理
バッチ処理
AWS Cloud
Amazon EMR
Amazon S3
Amazon MSK
EC2
マネージドサービス化 サーバーレス化
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本日のアジェンダ
1. Amazon Managed Streaming for Kafka (Amazon MSK) とは
2. Apache Kafka の概要
3. Amazon MSK の機能
• Amazon MSK を動かすまで
• Amazon MSK として提供している機能
• Amazon MSK の運用
4. Amazon MSK のユースケース
• Amazon Kinesis との使い分け
• Apache Kafka の周辺ツールとの組み合わせ
5. まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
• Amazon MSK は、
フルマネージドで可用性が高くセキュアな Apache Kafka サービス
 Kafkaクラスターの作成、更新、削除をはじめ、クラスターの管理機能を提供
 複数AZに自動的にデプロイして可用性を確保し、障害復旧の自動化も内包
 データプレーンの操作は、Apache Kafka の API をそのまま使用可能
 Kafka のエコシステムの大部分とも互換性を保持
• Amazon MSK では現在は未サポートの機能もあるが、今後も拡張予定
 クラスターのアップグレード
 ブローカーインスタンスのスケールアップ
• Amazon Kinesis と上手く使い分けることをお勧め
 Amazon MSK の主なユースケースは、既存のKafkaクラスターの移行
 Amazon MSK はフルマネージドではあるが、サーバーレスではない
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Q&A
お答えできなかったご質問については
AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて
後日掲載します。
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS の日本語資料の場所「AWS 資料」で検索
https://amzn.to/JPArchive
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Well-Architected 個別技術相談会
毎週”W-A個別技術相談会”を実施中
• AWSのソリューションアーキテクト(SA)に
対策などを相談することも可能
• 申込みはイベント告知サイトから
(https://aws.amazon.com/jp/about-aws/events/)
で[検索]AWS イベント
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
ご視聴ありがとうございました

More Related Content

What's hot

20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS BatchAmazon Web Services Japan
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSyncAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAmazon Web Services Japan
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...Amazon Web Services Japan
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSyncAmazon Web Services Japan
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)Amazon Web Services Japan
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...Amazon Web Services Japan
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrailAmazon Web Services Japan
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step FunctionsAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAmazon Web Services Japan
 
20200526 AWS Black Belt Online Seminar AWS X-Ray
20200526 AWS Black Belt Online Seminar AWS X-Ray20200526 AWS Black Belt Online Seminar AWS X-Ray
20200526 AWS Black Belt Online Seminar AWS X-RayAmazon Web Services Japan
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMRAmazon Web Services Japan
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeployAmazon Web Services Japan
 
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch ServiceAmazon Web Services Japan
 
今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用Yasuhiro Araki, Ph.D
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)Amazon Web Services Japan
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要Amazon Web Services Japan
 
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball EdgeAmazon Web Services Japan
 

What's hot (20)

20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync20190821 AWS Black Belt Online Seminar AWS AppSync
20190821 AWS Black Belt Online Seminar AWS AppSync
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync20210316 AWS Black Belt Online Seminar AWS DataSync
20210316 AWS Black Belt Online Seminar AWS DataSync
 
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
20190604 AWS Black Belt Online Seminar Amazon Simple Notification Service (SNS)
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 
20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions20190522 AWS Black Belt Online Seminar AWS Step Functions
20190522 AWS Black Belt Online Seminar AWS Step Functions
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
 
20200526 AWS Black Belt Online Seminar AWS X-Ray
20200526 AWS Black Belt Online Seminar AWS X-Ray20200526 AWS Black Belt Online Seminar AWS X-Ray
20200526 AWS Black Belt Online Seminar AWS X-Ray
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR
 
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy20210126 AWS Black Belt Online Seminar AWS CodeDeploy
20210126 AWS Black Belt Online Seminar AWS CodeDeploy
 
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
20200623 AWS Black Belt Online Seminar Amazon Elasticsearch Service
 
今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用今だから!Amazon CloudFront 徹底活用
今だから!Amazon CloudFront 徹底活用
 
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
 
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
20190730 AWS Black Belt Online Seminar Amazon CloudFrontの概要
 
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge20180322 AWS Black Belt Online Seminar AWS Snowball Edge
20180322 AWS Black Belt Online Seminar AWS Snowball Edge
 

Similar to 20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Kafka (Amazon MSK)

20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ 20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ Amazon Web Services Japan
 
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティングAmazon Web Services Japan
 
Kixs.vol003 LBの夜 AWSにおけるロードバランサー
Kixs.vol003 LBの夜 AWSにおけるロードバランサーKixs.vol003 LBの夜 AWSにおけるロードバランサー
Kixs.vol003 LBの夜 AWSにおけるロードバランサーTomonori Takada
 
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep diveAmazon Web Services Japan
 
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)Amazon Web Services Japan
 
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)真吾 吉田
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFSAmazon Web Services Japan
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonightAmazon Web Services Japan
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価kaminashi
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例Amazon Web Services Japan
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...Amazon Web Services Japan
 
AWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAmazon Web Services Japan
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBSAmazon Web Services Japan
 
Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Yuuki Namikawa
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -真吾 吉田
 
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container ServicesAmazon Web Services Japan
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...Amazon Web Services Japan
 

Similar to 20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Kafka (Amazon MSK) (20)

20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ 20210317 AWS Black Belt Online Seminar Amazon MQ
20210317 AWS Black Belt Online Seminar Amazon MQ
 
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
 
Kixs.vol003 LBの夜 AWSにおけるロードバランサー
Kixs.vol003 LBの夜 AWSにおけるロードバランサーKixs.vol003 LBの夜 AWSにおけるロードバランサー
Kixs.vol003 LBの夜 AWSにおけるロードバランサー
 
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
20201028 AWS Black Belt Online Seminar Amazon CloudFront deep dive
 
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
JAWS-UG 情シス支部の皆様向け Amazon Elastic File System (Amazon EFS)
 
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)
 
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS
 
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
[CTO Night & Day 2019] AWS Amplify で Web/Mobile 爆速スケーラブル Serverless 開発 #ctonight
 
Running Apache Spark on AWS
Running Apache Spark on AWSRunning Apache Spark on AWS
Running Apache Spark on AWS
 
20110406aws accenture
20110406aws accenture20110406aws accenture
20110406aws accenture
 
AWS Nightschool20180618
AWS Nightschool20180618AWS Nightschool20180618
AWS Nightschool20180618
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価
 
エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例エンターテイメント業界におけるAWS活用事例
エンターテイメント業界におけるAWS活用事例
 
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
20180704(20190520 Renewed) AWS Black Belt Online Seminar Amazon Elastic File ...
 
AWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native BusinessAWS re:Invent 2019 recap For Digital Native Business
AWS re:Invent 2019 recap For Digital Native Business
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例Amazon EC2を使った実践SaaS運用事例
Amazon EC2を使った実践SaaS運用事例
 
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
 
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
 

More from Amazon Web Services Japan

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device DefenderAmazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現Amazon Web Services Japan
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...Amazon Web Services Japan
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender202204 AWS Black Belt Online Seminar AWS IoT Device Defender
202204 AWS Black Belt Online Seminar AWS IoT Device Defender
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現
 
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap...
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 

Recently uploaded

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Kafka (Amazon MSK)

  • 1. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Webinar https://amzn.to/JPWebinar https://amzn.to/JPArchive ソリューションアーキテクト 山﨑 翔太・倉光 怜 2019/11/20 サービスカットシリーズ Amazon Managed Streaming for Kafka [AWS Black Belt Online Seminar]
  • 2. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Black Belt Online Seminar とは 「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマゾ ン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。 質問を投げることができます! • 書き込んだ質問は、主催者にしか見えません • 今後のロードマップに関するご質問は お答えできませんのでご了承下さい ① 吹き出しをクリック ② 質問を入力 ③ Sendをクリック Twitter ハッシュタグは以下をご利用ください #awsblackbelt
  • 3. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 内容についての注意点 • 本資料では2019年11月20日時点のサービス内容および価格についてご説明しています。最新の 情報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には十分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相 違があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。日本居住者のお客様が東京リージョンを使用する場合、別途消 費税をご請求させていただきます。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  • 4. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介  名前:山﨑 翔太  所属 : 技術統括本部 シニアソリューションアーキテクト  好きな AWS のサービス  Amazon Kinesis Family & AWS Lambda
  • 5. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 自己紹介 倉光 怜 所属:ソリューションアーキテクト 自動車業界のお客様を担当 好きなサービス: AWS Glue Amazon S3Amazon Kinesis
  • 6. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK として提供している機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 7. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK として提供している機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 8. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Managed Streaming for Apache Kafka (Amazon MSK) フルマネージドで 可用性が高くセキュアな Apache Kafka サービス
  • 9. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリームデータ (多数のデータソースによって) 継続的に生成されるデータ
  • 10. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリームデータ処理の全体像 取込 変換 分析 アクション 保存
  • 11. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリームデータ処理の全体像 取込 変換 分析 アクション 保存取込 データソースからデータを取り込んで永続化し、他のサービスへの連携を担う
  • 12. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. パブリッシュ・サブスクライブ・モデル Publisher SubscriberMessage Message Broker • サブスクライバーは受信したいメッセージを指定して取得する • 1つのメッセージを複数のサブスクライバーが受け取れる Message
  • 13. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafka (Kafka) とは 分散データストリーミング・プラットフォーム 多くの導入実績があり、スケーラビリティに優れた、 パブリッシュ・サブスクライブ・モデルの分散メッセージング基盤を提供
  • 14. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK として提供している機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 15. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafkaの全体像 データの流れ ZooKeeper Kafka ClusterProducer ConsumerMessage Message • Kafkaのクライアントとして、プロデューサーとコンシューマーが存在する • プロデューサーはメッセージの発行(パブリッシュ)を行い、 コンシューマーはメッセージの購読(サブスクライブ)を行う • Kafkaは複数のサーバーでクラスターを構成しており、スケーラビリティと可用性を 確保している
  • 16. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafkaの全体像 データの流れ ZooKeeper Kafka ClusterProducer ConsumerMessage Message • Apache Kafka の構成要素として、プロデューサーとコンシューマーが存在する • プロデューサーはメッセージの発行 (Publish) を行い、コンシューマーはメッセージの 購読 (Subscribe) を行う • 複数のKafkaサーバーでクラスターを構成しており、可用性を確保している Kafka Cluster
  • 17. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafkaの全体像 データの流れ • Kafkaのクラスターは、複数のブローカーで構成され、トピック内のパーティションを 分散キューとしてブローカーに配置してメッセージを管理する • ZooKeeper が、トピックやパーティションのメタ情報を管理する • プロデューサーはブローカーにメッセージを送信し、コンシューマーはブローカーから 取り出して利用する ZooKeeper Broker Topic Partition Kafka Cluster Producer Producer Consumer Consumer Consumer Consumer Consumer Group Broker Topic Partition Replication Broker Topic Partition Partition Message
  • 18. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafkaの全体像 データの流れ ZooKeeper Broker Topic Partition Kafka Cluster Producer Producer Consumer Consumer Consumer Consumer Consumer Group Broker Topic Partition Replication Broker Topic Partition Partition Message • Kafkaクラスターはブローカー・トピック・パーティションで構成される • 複数のブローカーでクラスター構成し、分散キューであるトピック内の パーティションでメッセージを管理する Replication Broker Topic Partition Partition Broker Topic Partition Partition • ブローカー:クラスターとして動作し、データの受配信を担う • トピック:メッセージを種別で管理する • パーティション:ブローカー上に分散配置され、トピックのメッセージが格納される
  • 19. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックとパーティション Producer Producer Consumer Consumer Broker 2Broker 1 Broker 3 Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Follower Replica Follower ReplicaFollower Replica Follower Replica Topic 1 Kafka Server Kafka Server Kafka Server • メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた 複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ)
  • 20. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックとパーティション Producer Producer Consumer Consumer Broker 2Broker 1 Broker 3 Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Follower Replica Follower ReplicaFollower Replica Follower Replica Topic 1 Kafka Server Kafka Server Kafka Server • メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた 複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ) Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Follower Replica Follower ReplicaFollower Replica Follower Replica Topic 1 Producer Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica • プロデューサーはトピックと値を指定することで書き込みを行う • 各パーティションへのメッセージの書き込みはリーダーレプリカのみ実施される
  • 21. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックとパーティション Producer Producer Consumer Consumer Broker 2Broker 1 Broker 3 Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Follower Replica Follower ReplicaFollower Replica Follower Replica Topic 1 Kafka Server Kafka Server Kafka Server • メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた 複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ) Partition 2 Partition 3 Partition 1 Topic 1 Leader Replica Follower ReplicaFollower Replica Partition 1 Leader Replica Follower ReplicaFollower Replica • リーダーレプリカに書き込まれた内容はフォロワーレプリカに複製する • リーダーレプリカはフォロワーレプリカと同期がとれているかを把握している
  • 22. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックとパーティション Producer Producer Consumer Consumer Broker 2Broker 1 Broker 3 Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Follower Replica Follower ReplicaFollower Replica Follower Replica Topic 1 Kafka Server Kafka Server Kafka Server • メッセージの冗長性確保のために、各パーティションにはブローカー間でコピーされた 複数のレプリカを構成する(1つのリーダーレプリカと複数のフォロワーレプリカ) Partition 2 Partition 3 Topic 1 Consumer Leader Replica Leader Replica Leader Replica Follower Replica Follower Replica Consumer Partition 2 Partition 3 Partition 1 Leader Replica Leader Replica Leader Replica コンシューマーのメッセージの読み込みについても、 プロデューサーと同様に、リーダーレプリカのみから行われる
  • 23. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. オフセット • メッセージがパーティションに入れられた際に付与されるシーケンシャルな番号 • パーティション単位で最後に取得したメッセージを ZooKeeper もしくは Kafka自体が保存しており、コンシューマーが追跡している • オフセットにより、コンシューマーは継続的に Kafka に保存されるメッセージの どこまで読み出したかを管理することが可能 0 1 2 3 4 5 6 7 8 9 10 Consumer A (Offset=5) Consumer B (Offset=8) Producer Writes Reads Partition 1 Old New
  • 24. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ハイウォーターマーク • レプリカによる複製が完了済みのオフセット • コンシューマーはハイウォーターマークのデータのみ取得可能 0 1 2 3 4 5 Leader Replica 0 1 2 3 4 Follower Replica 0 1 2 3 Follower Replica Producer High Water Mark
  • 25. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ハイウォーターマーク • レプリカによる複製が完了済みのオフセット • コンシューマーはハイウォーターマークのデータのみ取得可能 0 1 2 3 4 5 Leader Replica 0 1 2 3 4 Follower Replica 0 1 2 3 Follower Replica Producer High Water Mark 0 1 2 3 4 5 Leader Replica 0 1 2 3 4 Follower Replica 0 1 2 3 Follower Replica High Water Mark 0 1 2 3 Leader Replica 0 1 2 3 Follower Replica 0 1 2 3 Follower Replica Consumer High Water Mark コンシューマーは枠内のオフセットまでのメッセージを取得できる
  • 26. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. In Sync Replica と Out Sync Replica • リーダーとフォロワーが同じ状態であるレプリカを In Sync Replica と言う • ブローカーやネットワークの問題により、一定時間以上で同期できない場合は Out Sync Replica と見なされる • min.insync.replicas パラメーターで最低限必要な In Sync Replica を設定する 0 1 2 3 4 5 Leader Replica 0 1 2 3 Follower Replica 0 1 2 Follower Replica 4 5 In Sync Replica 3 4 5 Out Sync Replica
  • 27. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafka のまとめ • Apache Kafka は、分散データストリーミング・プラットフォームである  多くの導入実績がある  スケーラビリティに優れたパブリッシュ・サブスクライブ・モデルの分散メッセージング基盤を 提供する • Kafka のクラスターは、ブローカー・トピック・パーティションで構成される  ブローカー:データの受配信を担う  トピック:メッセージを種別で管理する  パーティション:ブローカー上に配置され、トピックのメッセージを格納する • スケーラビリティのために分散アーキテクチャを採用していて構成要素が多く、 環境構築や運用の負担は大きい  Kafkaクラスターの環境構築においては、多くのサーバーに対する設定が必要となる  稼働後にも、ブローカーや Zookeeper 自体の運用に加えて、スケールの管理や監視などの多くの 運用作業が必要となる
  • 28. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK が提供する機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 29. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK とは フルマネージドで可用性が高くセキュアな Apache Kafka サービス • Amazon MSK は、コントロールプレーンの操作を提供 • クラスターの作成、更新、削除などの API を提供 • データプレーンの操作は、Apache Kafka の API をそのまま使用可能 • トピックの作成や管理 • プロデューサーからのデータの入力や、コンシューマーからのデータの取得 • Amazon MSK は Apache Kafka のオープンソースバージョンを実行 • Kafka のバージョン 1.1.1 と 2.2.1 をサポート(2019年11月現在)
  • 30. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のアーキテクチャ subnet A subnet B subnet C ZooKeeper Nodes (Managed EC2 Instances) Broker Nodes (Managed EC2 Instances) Producer (EC2 Instance) Consumer (EC2 Instance) Topic Creator (EC2 Instance) オペレーター AWS CLI や マネジメントコンソール で操作を実行 Customer VPC Amazon MSK
  • 31. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK を動かすまで 注意点 最新の AWS CLI がインストールされていることをご確認下さい https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-install.html $ aws –version aws-cli/1.16.266 Python/3.7.3 Linux/4.14.138-114.102.amzn2.x86_64 botocore/1.13.2 $ pip3 install --upgrade --user awscli …
  • 32. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クラスターの準備 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/getting-started.html https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/create-cluster.html $ aws kafka create-cluster ¥ --cluster-name "AWSKafkaTutorialCluster” ¥ --broker-node-group-info file://brokernodegroupinfo.json ¥ --encryption-info file://encryptioninfo.json ¥ --kafka-version "2.2.1" ¥ --number-of-broker-nodes 3 ¥ --enhanced-monitoring PER_TOPIC_PER_BROKER ¥ --region ap-northeast-1 { "ClusterArn": ”ClusterArn", "ClusterName": "AWSKafkaTutorialCluster", "State": "CREATING" } Amazon MSK の Create Cluster API で簡単に Kafka クラスターを作成可能 ブローカーを配置する VPCサブネット等の設定 クラスターのストレージと 転送中のデータに対する暗号化の設定
  • 33. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックの準備 $ sudo yum install java-1.8.0 $ wget https://archive.apache.org/dist/kafka/2.2.1/kafka_2.12-2.2.1.tgz $ cd kafka_2.12-2.2.1/ $ ls LICENSE NOTICE bin config libs site-docs https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/create-cluster.html Kafka のクライアントツールをインストール
  • 34. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックの準備 # Amazon MSK の Describe Cluster API で 接続するZooKeeper (ZookeeperConnectString) を取得 $ aws kafka describe-cluster --cluster-arn "ClusterArn” { "ClusterInfo": { …, "ClusterName": "AWSKafkaTutorialCluster", "NumberOfBrokerNodes": 3, "ZookeeperConnectString": "z-3.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast- 1.amazonaws.com:2181,z-1.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:2181,z- 2.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:2181", … } } # Kafka の API でトピックを作成 $ bin/kafka-topics.sh --zookeeper ZookeeperConnectionString ¥ --create --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic Created topic AWSKafkaTutorialTopic.
  • 35. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. トピックの準備 $ sudo yum -y install jq # Amazon MSK の Describe Cluster API で取得した ZookeeperConnectString に対してトピックを作成 $ bin/kafka-topics.sh --zookeeper `aws kafka describe-cluster --cluster-arn “ClusterArn” | jq -r .ClusterInfo.ZookeeperConnectString` --create --replication-factor 3 --partitions 1 --topic AWSKafkaTutorialTopic Created topic AWSKafkaTutorialTopic. #トピックの一覧を表示 $ bin/kafka-topics.sh --zookeeper `aws kafka describe-cluster --cluster-arn “ClusterArn” | jq -r .ClusterInfo.ZookeeperConnectString` --list AWSKafkaTutorialTopic ワンラインで記述
  • 36. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. プロデューサーとコンシューマー の接続 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/produce-consume.html # Amazon MSK の Get Bootstrap Brokers API で クラスターの接続先ブローカー (BootstrapBrokerString) を取得 $ aws kafka get-bootstrap-brokers --cluster-arn "ClusterArn” { "BootstrapBrokerStringTls": "b-1.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094,b- 2.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094,b- 3.awskafkatutorialc.6xjbqy.c4.kafka.ap-northeast-1.amazonaws.com:9094" } # Kafka の API でプロデューサーを接続 $ bin/kafka-console-producer.sh --broker-list BootstrapBrokerString ¥ --producer.config client.properties --topic AWSKafkaTutorialTopic > Hello Kafka! > Hello MSK! # Kafka の API でコンシューマーを接続 $ bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerString ¥ --consumer.config client.properties --topic AWSKafkaTutorialTopic --from-beginning Hello Kafka! Hello MSK!
  • 37. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. https://aws.amazon.com/jp/blogs/news/best-practices-for-running-apache-kafka-on-aws/ 「Amazon EC2 上で Apache Kafka を動かす際のベストプラクティス」 を以下の項目毎にガイドしたブログ 1. デプロイメントのパターン 2. ストレージオプション 3. インスタンスタイプ 4. ネットワーキング 5. アップグレード 6. パフォーマンスチューニング 7. モニタリング 8. セキュリティ 9. バックアップとリストア AWS Big Data Blog - ”Best Practices for Running Apache Kafka on AWS” AWS での Apache Kafka の実行のためのベストプラクティス
  • 38. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kafka on EC2 と Amazon MSK を利用した場合の違い 項目 Kafka on EC2 Amazon MSK デプロイメントのパターン 複数AZへのデプロイを軸に自身で構築 複数AZに自動的にデプロイ* ストレージオプション EBS または インスタンスストア (MSKが管理する)EBS インスタンスタイプ 任意のインスタンスタイプ m5ファミリー(large〜24xlarge) ネットワーキング インスタンスタイプやENI構成を 考慮して自身で設計 クラスター内はマネージドとなり、 クライアントからはENI経由で接続* バージョンアップグレード 要件に合わせて選択 現時点は Blue/Green が基本* パフォーマンスチューニング Kafka のパフォーマンスチューニングにおいては、ほとんど違いはない 監視 自身で監視ツールとの連携を構築 MSKの監視機能を利用* セキュリティ 自身で暗号化や認証を設定 MSKのセキュリティ機能を利用* バックアップとリストア EBSスナップショットを取得 MirrorMaker でクラスターをコピー クラスターのバックアップ機能は未提供 MirrorMaker でクラスターをコピー * 後述
  • 39. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クラスターのデプロイメント シングルリージョン・3AZ シングルクラスター構成 シングルリージョン・3AZ アクティブ - スタンバイ構成 MSKでクラスター をマネージド化 MSKでクラスター をマネージド化 MSKでクラスター をマネージド化 • AZ間でブローカーを均等にデプロイするベストプラクティスを適用 • 2つもしくは3つのAZに含まれるサブネットをクラスター作成時に指定 • AZ当たりのブローカー数のみ、あるいはAZ数の倍数でブローカー数を指定
  • 40. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のネットワーク構成 subnet A subnet B subnet C ZooKeeper Nodes Broker Nodes Producer Consumer Topic Creator Customer VPC Amazon MSK ENI ENI ENIENI ENI ENI MSKクラスターに指定した セキュリティグループ 同じセキュリティグループに 入れることで構築を簡易化 ・MSKクラスター ・プロデューサー ・コンシューマー
  • 41. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クラスターのバージョンアップグレード Kafka on EC2 Amazon MSK https://aws.amazon.com/jp/msk/faqs/ https://aws.amazon.com/jp/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/ 要件に合わせて選択 • ローリング や インプレース • クラスターの一時停止 • Blue/Green Blue/Green での切り替え • クラスターのアップグレードは未サポート (今後の機能追加でサポート予定) • Blue/Green での切り替えは容易に 1. 新しいKafkaクラスターを作成(Green) 2. GreenのKafkaクラスターを指す 新しいKafkaのプロデューサースタックを作成 3. GreenのKafkaクラスターに関するトピックを作成 4. 新しいGreen環境へのデプロイを一気通貫でテスト 5. Amazon Route 53 を使用して、 新しいKafkaのプロデューサースタックを更新し、 GreenのKafkaクラスターを指すように変更
  • 42. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK の監視機能 モニタリングレベル 拡張モニタリングの設定値 メトリクスの内容 利用料 基本モニタリング DEFAULT 基本的なクラスターレベルおよび ブローカーレベルのメトリクス 無料 拡張ブローカーレベル モニタリング PER_BROKER 基本モニタリングおよび 拡張ブローカーレベルのメトリクス 有料 拡張トピックレベル モニタリング PER_TOPIC_PER_BROKER 拡張ブローカーレベルおよび 拡張トピックレベルのメトリクス 有料 • Amazon CloudWatch でメトリクスを取得可能 • 以下の3つからクラスターのモニタリングレベルを選択可能 よくある Kafka の監視項目 • ブローカーの死活監視 ⇨ 基本モニタリングのメトリクスで正常性確認 • トピックレベルでの流入量 ⇨ 拡張トピックレベルのメトリクスで監視 • エンドツーエンドのレイテンシー ⇨ Burrow などのツールも活用してコンシューマー側で計測 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html
  • 43. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 取得可能なメトリクスの例:基本モニタリング https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html メトリクス名 モニタリングレベル ディメンション 説明 ZooKeeperSessionState DEFAULT Cluster Name, Broker ID ブローカーのZooKeeper セッションの接続状態 GlobalPartitionCount DEFAULT Cluster Name クラスター内の全ブローカー にあるパーティションの総数 GlobalTopicCount DEFAULT Cluster Name クラスター内の全ブローカー にあるトピックの総数 MemoryUsed DEFAULT Cluster Name, Broker ID ブローカーに使用されている メモリのサイズ(bytes) CpuIdle DEFAULT Cluster Name, Broker ID CPUアイドル時間の割合 KafkaDataLogsDiskUsed DEFAULT Cluster Name, Broker ID データログに使用されている ディスク容量の割合 NetworkRxErrors DEFAULT Cluster Name, Broker ID ブローカーのネットワーク 受信エラーの数
  • 44. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 取得可能なメトリクスの例:拡張ブローカーレベル https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html メトリクス名 モニタリングレベル ディメンション 説明 LeaderCount PER_BROKER Cluster Name, Broker ID ブローカーが持つ リーダーレプリカの数 PartitionCount PER_BROKER Cluster Name, Broker ID ブローカーが持つ パーティションの数 MessagesInPerSec PER_BROKER Cluster Name, Broker ID 1秒あたりにクライアント から受信したメッセージの数 ProduceThrottleByteRate PER_BROKER Cluster Name, Broker ID 1秒あたりにスロットリング されたバイト数 RequestTime PER_BROKER Cluster Name, Broker ID ブローカーのネットワークと I/Oスレッドでリクエストの 処理に費やした平均時間 RequestThrottleQueueSize PER_BROKER Cluster Name, Broker ID スロットリングした キュー内のメッセージの数
  • 45. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 取得可能なメトリクスの例:拡張トピックレベル https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/monitoring.html メトリクス名 モニタリングレベル ディメンション 説明 BytesInPerSec PER_TOPIC_PER_BROKER Cluster Name, Broker ID, Topic (トピック毎の) 1秒あたりの受信バイト数 BytesOutPerSec PER_TOPIC_PER_BROKER Cluster Name, Broker ID, Topic (トピック毎の) 1秒あたりの送信バイト数 MessagesInPerSec PER_TOPIC_PER_BROKER Cluster Name, Broker ID, Topic (トピック毎の) 1秒あたりにクライアント から受信したメッセージの数
  • 46. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のセキュリティ機能 • 保存データの暗号化 • データ通信の暗号化 • IAMポリシーやIAMロールでの制御 • タグ付けとタグベースのIAM設定 PCI や HIPAA BAA の認証 データの保護 クライアントの認証 IAMによる操作権限管理 コンプライアンス TLSクライアント認証 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/security.html
  • 47. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のセキュリティ機能 • 保存データの暗号化 • データ通信の暗号化 • IAMポリシーやIAMロールでの制御 • タグ付けとタグベースの認証 PCI や HIPAA BAA の認証 データの保護 クライアントの認証 IAMによる操作権限管理 コンプライアンス TLSクライアント認証 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/security.html
  • 48. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. データの保護 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-encryption.html • KMSと連携したサーバー側の暗号化①が デフォルトで有効 (Server Side Encryption) • クラスター作成時に、 Customer Master Key (CMK) を指定 • 指定しなければ、 MSK が AWS Managed CMK を作成 保存データの暗号化 データ通信の暗号化 Broker Nodes Producer Consumer ① ②③ ① • ブローカー同士の通信②はデフォルトで 暗号化が有効で、無効化することも可能 • クライアントとブローカー間の通信③は 以下の3つから選択が可能 1. TLSで暗号化されたデータのみを許可 (デフォルトの設定) 2. プレーンテキストとTLSで暗号化された データの両方を許可 3. プレーンテキストのデータのみを許可 • TLS 1.2 を利用 • データ通信の暗号化を有効にすると、 パフォーマンスは約30%低下
  • 49. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. TLSクライアント認証 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-authentication.html https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Authorization+Command+Line+Interface クライアント認証 ブローカー側のサーバー証明 • クライアントとブローカー間の通信の TLS暗号化③を有効化するのみ • クライアント認証をするには有効化が必要 • ブローカーは AWS Certificate Manager (ACM) の証明書を使用 • Amazon Trust Services を信頼する トラストストアは、MSKのブローカーの 証明書も信頼 • MSKクラスターの作成時に、 ACM Private Certificate Authority (ACM PCA) のプライベートCAを指定 • クライアント側に証明書を設定 1. 秘密鍵を作成し、秘密鍵を使用して 証明書署名要求(CSR)を作成 2. ACM PCA で CSR に署名して証明書を発行 3. ACM PCA が署名した証明書をクライアント に設定してブローカーと通信 • Kafka Authorization CLI を利用して、 トピックに対してアクセス権を設定 Broker Nodes Producer Consumer ** ③
  • 50. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK によるKafkaクラスターの構成管理 • MSKは、ブローカー、トピック、ZooKeeperノードのデフォルト構成を提供 • カスタム構成を作成し、新規のMSKクラスターを作成することが可能 • カスタム構成で、既存のクラスターを更新することも可能 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-configuration.html auto.create.topics.enable = true zookeeper.connection.timeout.ms = 1000 log.roll.ms = 604800000 $ aws kafka create-configuration ¥ --name "CustomConfiguration" ¥ --description ”MSK BlackBelt." ¥ --kafka-versions "1.1.1" ¥ --server-properties file://config-file-path { "Arn": "arn:aws:kafka:XXX", …, "LatestRevision": { …, "Description": "MSK BlackBelt.", "Revision": 1 }, "Name": "CustomConfiguration" } $ aws kafka update-cluster-configuration ¥ --cluster-arn "arn:aws:kafka:YYY" ¥ --configuration-info file://configuration-info.json ¥ --current-version ”K21V3IB1VIZYYH” { "ClusterArn": "arn:aws:kafka:YYY", "ClusterOperationArn": "arn:aws:kafka:ZZZ” } config-file { "Arn": "arn:aws:kafka:XXX", "Revision": 1 } configuration-info.json Kafkaの設定ファイルを作成 MSKのConfigurationを作成 MSKのクラスターを作成・更新
  • 51. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. デフォルト構成 設定項目 初期値 num.network.threads 5 num.io.threads 8 num.replica.fetchers 2 socket.send.buffer.bytes 102400 socket.receive.buffer.bytes 102400 socket.request.max.bytes 104857600 num.partitions 1 auto.create.topics.enable false default.replication.factor 3 min.insync.replicas 2 unclean.leader.election.enable true auto.leader.rebalance.enable true allow.everyone.if.no.acl.found true zookeeper.set.acl false https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-default-configuration.html
  • 52. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. カスタム構成で設定可能な項目 設定項目 auto.create.topics.enable delete.topic.enable log.cleaner.delete.retention.ms group.initial.rebalance.delay.ms group.max.session.timeout.ms group.min.session.timeout.ms log.flush.interval.messages log.flush.interval.ms log.retention.bytes log.retention.hours log.retention.minutes log.retention.ms num.partitions 設定項目 max.incremental.fetch.session.cache.slots log.cleaner.min.cleanable.ratio offsets.retention.minutes zookeeper.connection.timeout.ms unclean.leader.election.enable min.insync.replicas message.max.bytes log.segment.bytes log.roll.ms transaction.max.timeout.ms replica.fetch.max.bytes compression.type default.replication.factor 設定項目 message.timestamp.difference.max.ms message.timestamp.type num.io.threads num.network.threads num.recovery.threads.per.data.dir num.replica.fetchers offsets.topic.replication.factor replica.fetch.response.max.bytes socket.request.max.bytes transaction.state.log.min.isr transaction.state.log.replication.factor log.cleanup.policy https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-configuration-properties.html
  • 53. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK による構成管理の注意点 • (現時点では)Configurationを削除するAPIはない  AWSアカウントごとに作成できるConfiguration数の上限に注意(デフォルトでは100) • (現時点では)Configurationを更新するAPIはない  ConfigurationのRevisionを指定してクラスターを更新するが、Revisionを上げる方法はない • クラスターを更新すると、ブローカーとの順次の接続断が発生する  クラスターのステータスは「更新中」になる  ブローカーはローリングアップグレードされ、順次の接続断が発生する $ bin/kafka-console-consumer.sh --bootstrap-server BootstrapBrokerString ¥ --consumer.config client.properties --topic AWSKafkaTutorialTopic --from-beginning Hello Kafka! Hello MSK! [2019-11-10 03:31:54,014] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 2 (b-2.awskafkatutorialc.6xjbqy. c4.kafka.ap-northeast-1.amazonaws.com/10.0.0.214:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) Are you OK? [2019-11-10 03:33:03,988] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 1 (b-1.awskafkatutorialc.6xjbqy. c4.kafka.ap-northeast-1.amazonaws.com/10.0.1.96:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) We can still consume data [2019-11-10 03:34:16,763] WARN [Consumer clientId=consumer-1, groupId=console-consumer-74932] Connection to node 3 (b-3.awskafkatutorialc.6xjbqy. c4.kafka.ap-northeast-1.amazonaws.com/10.0.2.175:9094) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient) Done! Hello updated cluster!
  • 54. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クラスターのスケーリング https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-update-storage.html https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/msk-update-broker-count.html https://aws.amazon.com/jp/msk/faqs/ • マネジメントコンソール または AWS CLI を使用して、 ブローカーのストレージ容量を 拡張可能 • クラスター内の全ブローカーに 対する一括での拡張のみ可能 • 容量を増やすことは出来るが、 減らすことは出来ない ストレージの拡張 ✕ ブローカー数の拡張 ブローカーサイズの拡張 • マネジメントコンソール または AWS CLI を使用して、 ブローカーのノード数を 拡張可能 • AZあたりのブローカー数を 指定して拡張 • 数を増やすことは出来るが、 減らすことは出来ない 現時点では、ブローカーの スケールアップは未サポート (今後の機能追加でサポート予定)
  • 55. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クラスターの耐障害性 • Amazon MSKのクラスターは、マルチAZクラスターの以下の一般的な障害シナリオを 検出して自動的に回復 1. ブローカーへのネットワーク接続の損失 2. ブローカーノードの障害 • 障害を検出すると、正常でない(到達不能な)ブローカーを新しいブローカーに置換  可能であれば、古いブローカーのストレージを再利用して、Kafkaが複製する必要がある データ量を削減する  可用性への影響は、MSKが検出と回復を完了するのに必要な時間に制限される  復旧後、プロデューサーアプリケーションとコンシューマーアプリケーションは、 障害が発生する前に使用していたものと同じIPアドレスでブローカーとの通信を継続できる • Amazon MSK は、99.9%の可用性(SLA)を提供 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/what-is-msk.html https://aws.amazon.com/jp/msk/sla/
  • 56. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のベストプラクティス 1. クラスターを適切なサイズに設定する  MSK Sizing and Pricing スプレッドシートを利用してサイズを決定 https://amazonmsk.s3.amazonaws.com/MSK_Sizing_Pricing.xlsx 2. ディスク容量を監視する  KafkaDataLogsDiskUsed メトリクスを監視し、85%を超えたらいずれかの方法で対処 1. ブローカーのストレージ容量を増やす 2. メッセージの保存期間またはログサイズを減らす 3. 未使用のトピックを削除する 3. Kafka の Data Retention パラメーターを指定する  ディスクの空き容量を定期的に解放するために、保持期間を明示的に指定  log.retention.hours などの設定により、クラスターレベルまたはトピックレベルで、 Data Retentionパラメーターを指定 4. MSK の管理外にあるブローカーを追加しない 5. データ通信の暗号化を有効にする 6. パーティションの再割り当てを行う  パーティション再割り当てツール kafka-reassign-partitions.sh を使用  新しいブローカーの追加後にはパーティションを再割り当てしてリバランスを実施 https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/bestpractices.html
  • 57. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK の料金体系 ブローカーインスタンスの料金 • ブローカーインスタンスの使用量に応じて時間単位で発生 (1秒ごとに請求) • 料金は、ブローカーインスタンスのサイズや、アクティブなブローカーの数によって異なる ブローカーストレージの料金 • クラスターにプロビジョニングしたストレージ容量に応じて課金 • 時間単位のブローカーあたりの GB 数を加算した値を、月の使用時間数で割って算出 データ転送料金 • クライアントとクラスターとの間で送受信されたデータ量に対して、通常のAWSデータ転送料金が発生 • ブローカー間、ZooKeeperノードおよびブローカー間のデータ転送に料金は無料 拡張モニタリング • 拡張モニタリングを有効化した場合には、利用量に応じた課金が Amazon CloudWatch に発生 https://aws.amazon.com/jp/msk/pricing/ https://aws.amazon.com/jp/cloudwatch/pricing/
  • 58. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK が提供する機能のまとめ  Kafkaクラスターの作成、更新、削除の自動化  ZooKeeperによるクラスター管理の隠蔽  複数AZに跨ったデプロイメントの自動最適化  Amazon CloudWatch と連携した監視機能  保存データとデータ通信の暗号化  TLSクライアント認証  タグ付けとタグベースのIAM設定  Kafkaクラスターの構成管理  ストレージのスケーリング  ブローカーのスケールアウト  99.9%の可用性(SLA)  PCI や HIPAA BAA のコンプライアンス認証 現時点では出来ないこと (今後の機能追加でサポート予定) • クラスターのバージョンアップ • ブローカーのスケールアップ
  • 59. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK として提供している機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 60. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Data Streams エ ン ド ポ イ ン ト シャード 0 シャード 1 シャード ..N プロデューサー コンシューマー データ レコード ストリーム 大量のストリームをリアルタイムで収集して処理するためのデータストリーミングサービス Amazon Kinesis Data Streams エ ン ド ポ イ ン ト
  • 61. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Kinesis Data Streams のエコシステム プロデューサー(データ送信側) コンシューマー(データ処理側) AWS SDK Kinesis Producer Library Kinesis Agent AWS IoT Core Kinesis Log4j Appender … AWS SDK Kinesis Client Library Fluentd Kinesis Data Analytics AWS Lambda Amazon EMR Apache Flink Apache Storm … Kinesis Data Firehose CloudWatch Events CloudWatch Logs Amazon Kinesis Data Streams
  • 62. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. • AWSが提供するAPIで送受信 • 他のAWSサービスとの深い統合 • スループットをプロビジョニング • シームレスなスケーリングが可能 • インフラを意識しないサーバーレス構成 • オープンソース互換のAPIで送受信 • Kafkaのエコシステムを利用可能 • クラスターをプロビジョング • シームレスなスケーリングが困難 • オンプレミスからの移行が容易 Amazon MSK Amazon Kinesis Data Streams Amazon MSK と Amazon Kinesis Data Streams の特徴
  • 63. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 用語の対応関係 Apache Kafka (Amazon MSK) Amazon Kinesis Data Streams クラスター (サーバーレスなので存在しない) ブローカー (サーバーレスなので存在しない) トピック ストリーム パーティション シャード プロデューサー プロデューサー コンシューマー コンシューマー オフセット チェックポイント リーダーレプリカ フォロワーレプリカ ハイウォーターマーク (内部で3AZに冗長化して隠蔽)
  • 64. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アーキテクチャの比較 Kinesis Data Streams Producer Consumer エ ン ド ポ イ ン ト Shard 0 Shard 1 Shard 2 Stream エ ン ド ポ イ ン ト Shard 3 Amazon MSK Amazon Kinesis Data Streams MSK Producer with 構成情報 Partition 0 Topic 1 Partition 1 Partition 2 Broker 1 Consumer with 構成情報 Topic 2 Broker 2 Partition 3 Topic 3 Broker 3
  • 65. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アーキテクチャの比較 Kinesis Data Streams Producer Consumer エ ン ド ポ イ ン ト Shard 0 Shard 1 Shard 2 Stream エ ン ド ポ イ ン ト Shard 3 Amazon Kinesis Data Streams • プロデューサーとコンシューマーが 接続先のブローカーを選択して通信するため、 シームレスなスケールが難しい • クラスターをプロビジョニングするため リソースの利用効率を管理する必要があるが、 トピック毎にパーティション割当を管理できる MSK Producer with 構成情報 Partition 0 Topic 1 Partition 1 Partition 2 Broker 1 Consumer with 構成情報 Topic 2 Broker 2 Partition 3 Topic 3 Broker 3 Amazon MSK
  • 66. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アーキテクチャの比較 Amazon MSK MSK Producer with 構成情報 Partition 0 Topic 1 Partition 1 Partition 2 Broker 1 Consumer with 構成情報 Topic 2 Broker 2 Partition 3 Topic 3 Broker 3 • プロデューサーとコンシューマーは APIのエンドポイントと通信するため、 シームレスにスケールすることができる • シャード数を増やすことでスケールし、 それ以外のリソースをプロビジョニング する必要はない(サーバーレス) Kinesis Data Streams Producer Consumer エ ン ド ポ イ ン ト Shard 0 Shard 1 Shard 2 Stream エ ン ド ポ イ ン ト Shard 3 Amazon Kinesis Data Streams
  • 67. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK における Kafka のエコシステムとの互換性 オープンソースの Apache Kafka  Kafka MirrorMaker  Kafka Connect  Kafka Streams Apache Kafka の周辺ツールとフレームワーク  Schema Registry  Rest Proxy  Burrow Jarファイルのロードが必要なツール • Confluent Control Center • Auto Data Balancer (Confluent) • uReplicator (Uber) • Cruise Control (LinkedIn)
  • 68. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK における Kafka のエコシステムとの互換性 オープンソースの Apache Kafka  Kafka MirrorMaker  Kafka Connect  Kafka Streams Apache Kafka の周辺ツールとフレームワーク  Schema Registry  Rest Proxy  Burrow Jarファイルのロードが必要なツール • Confluent Control Center • Auto Data Balancer (Confluent) • uReplicator (Uber) • Cruise Control (LinkedIn)
  • 69. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kafka MirrorMaker • MirrorMaker に、ソースのクラスターを読み取るコンシューマーとしての設定と、 ターゲットのクラスターに書き込むプロデューサーとしての設定を入力 • レプリケーションに問題が発生した場合に備えて、MirrorMaker はターゲット側で動かす • Amazon MSK のドキュメントにある “MirrorMaker 1.0 Best Practices” も参照 Kafkaのクラスター間をレプリーケーションするツール https://kafka.apache.org/documentation/#basic_ops_mirror_maker https://docs.aws.amazon.com/ja_jp/msk/latest/developerguide/migration.html On-premise Data Center Broker Kafka Cluster Amazon MSK AWS Cloud VPC MirrorMaker Amazon EC2 Broker Amazon MSK AWS Cloud VPC MirrorMaker Amazon EC2 Broker VPC Peering AWS Direct Connect
  • 70. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Kafka Connect • Kafka のブローカーと接続する部分を Connector と呼ぶ  プロデューサー側を Source Connector、コンシューマー側を Sink Connector と呼ぶ • 様々なプラグインが公開されており、接続先に合ったプラグインを実装せずに利用可能  Source の例:RDB (JDBC)、Amazon CloudWatch Logs、Amazon DynamoDB …  Sink の例:RDB (JDBC) 、HDFS、Elasticsearch、Amazon S3、AWS Lambda … RDB Source Connector Sink Connector Broker Amazon MSKAmazon EC2 Amazon EC2 Kafkaと周辺のシステムを接続するためのフレームワーク Kafka Connect https://kafka.apache.org/documentation/#connect https://docs.confluent.io/current/connect/index.html Amazon CloudWatch Logs Data Source RDB Data Sink Amazon S3
  • 71. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Schema Registry Broker Schema Registry Producer Consumer • Avro Schemaでスキーマを定義し、REST APIでスキーマを登録/取得 • スキーマに応じた自動的なシリアライゼーションを提供 • スキーマをバージョン管理し、変更時の変化にも対応 Topic11.Schemaの存在確認と情報を取得 2.IDをProducerに送信 3.IDとシリアライズした データをBrokerに送信 6.IDとデシリアライズした データをBrokerから取得 5.ConsumerがIDを取得 4.Schemaの存在確認と情報を取得 Amazon MSK Amazon EC2 メッセージに対して一元化されたスキーマ管理とシリアライズ機構を提供 https://docs.confluent.io/current/schema-registry/index.html
  • 72. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Apache Kafka のユースケース 1. メッセージング  ActiveMQ や RabbitMQ などの代替として、メッセージブローカーとして利用 2. ウェブサイトのアクティビティ追跡  サイトアクティビティからユーザーのアクティビティ追跡パイプラインを構築 3. メトリクス  分散したアプリケーションから運用監視データを集約して集計や統計処理を実施 4. ログの集約  ログのイベントデータをメッセージのストリームとして利用 5. ストリーム処理  複数のステップで構成されるパイプラインでストリームデータを処理  Kafka Streams や Apache Flink などのストリーム処理ツールと合わせて利用 6. イベントソーシング  状態の変化が時系列なレコードのシーケンスとして記録されるアプリケーションのバックエンドとして利用 7. コミットログ  Apache BookKeeper のような、分散システムの外部コミットログとして利用 https://kafka.apache.org/uses
  • 73. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon MSK のユースケース 1. オンプレミスにある既存の Apache Kafka クラスターの移行 2. Amazon EC2 上に構築されている Apache Kafka クラスターの移行 3. Apache Kafka の周辺ツールを利用している場合、または利用したい場合 それ以外の場合には、基本的に Amazon Kinesis Data Streams の利用がお勧め  サーバーレスのメリットが得られるため、多くの場合ではスケーラビリティとコストの 観点でメリットがある  AWS Lambda など他のAWSサービスとの連携機能を活用して、 プロデューサーとコンシューマーを含めてサーバレスなアーキテクチャを設計できる
  • 74. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. オンプレミス上のストリーム処理+バッチ処理の移行 On-premise Data Center ETL / Source Connector Data Source Pig バッチ処理 ストリーム処理・バッチ処理 ETL / Source Connector Data Source バッチ処理 ストリーム処理・バッチ処理 AWS Cloud Amazon S3 AWS GlueAmazon EMR Amazon MSK Amazon EMR
  • 75. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ストリーム・パイプラインのアーキテクチャと移行プラン On-premise Data Center or Amazon EC2 Data Source リアルタイム処理 バッチ処理 Data Source リアルタイム処理 バッチ処理 AWS Cloud Amazon Kinesis Data Streams Amazon EMR Amazon Kinesis Data Analytics Amazon S3 Amazon Kinesis Data Firehose Data Source リアルタイム処理 バッチ処理 AWS Cloud Amazon EMR Amazon S3 Amazon MSK EC2 マネージドサービス化 サーバーレス化
  • 76. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本日のアジェンダ 1. Amazon Managed Streaming for Kafka (Amazon MSK) とは 2. Apache Kafka の概要 3. Amazon MSK の機能 • Amazon MSK を動かすまで • Amazon MSK として提供している機能 • Amazon MSK の運用 4. Amazon MSK のユースケース • Amazon Kinesis との使い分け • Apache Kafka の周辺ツールとの組み合わせ 5. まとめ
  • 77. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ • Amazon MSK は、 フルマネージドで可用性が高くセキュアな Apache Kafka サービス  Kafkaクラスターの作成、更新、削除をはじめ、クラスターの管理機能を提供  複数AZに自動的にデプロイして可用性を確保し、障害復旧の自動化も内包  データプレーンの操作は、Apache Kafka の API をそのまま使用可能  Kafka のエコシステムの大部分とも互換性を保持 • Amazon MSK では現在は未サポートの機能もあるが、今後も拡張予定  クラスターのアップグレード  ブローカーインスタンスのスケールアップ • Amazon Kinesis と上手く使い分けることをお勧め  Amazon MSK の主なユースケースは、既存のKafkaクラスターの移行  Amazon MSK はフルマネージドではあるが、サーバーレスではない
  • 78. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Q&A お答えできなかったご質問については AWS Japan Blog 「https://aws.amazon.com/jp/blogs/news/」にて 後日掲載します。
  • 79. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS の日本語資料の場所「AWS 資料」で検索 https://amzn.to/JPArchive
  • 80. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Well-Architected 個別技術相談会 毎週”W-A個別技術相談会”を実施中 • AWSのソリューションアーキテクト(SA)に 対策などを相談することも可能 • 申込みはイベント告知サイトから (https://aws.amazon.com/jp/about-aws/events/) で[検索]AWS イベント
  • 81. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive ご視聴ありがとうございました