全般

Q: Amazon MSK とは何ですか?
Amazon Managed Streaming for Kafka (Amazon MSK) は、Apache Kafka のインフラストラクチャと運用を管理する新しい AWS ストリーミングデータであり、開発者と DevOps 管理者が Apache Kafka クラスター運用のエキスパートとならなくても AWS で Apache Kafka を簡単に実行できるようにします。Amazon MSK は、AWS で既存または新しい Apache Kafka アプリケーションを実行するのに最適な場所です。Amazon MSK では、Apache Kafka クラスターが運用および維持され、エンタープライズプラスのセキュリティ機能をすぐに使うことができます。また、ストリーミングデータアプリケーションの開発をすばやく行うための AWS 統合が組み込まれています。最初に、既存の Apache Kafka ワークロードを Amazon MSK に移動できます。または、数回クリックするだけで、新しいワークロードを一から構築できます。数分しかかかりません。クラスター内のトラフィックにデータ転送料金はかからず、契約や前払い料金は必要ありません。お客様は、使用したリソースに対してのみ料金を支払います。
 
Q: Apache Kafka とは何ですか?
Apache Kafka は、リアルタイムのストリーミングデータパイプラインおよびアプリケーションを構築するための、高いパフォーマンス、耐障害性、スケーラビリティを備えたオープンソースプラットフォームです。Apache Kafka は、データストアにストリーミングデータを生成するアプリケーション (プロデューサー) と、データストアからストリーミングデータを使用するアプリケーション (コンシューマー) を切り離すストリーミングデータストアです。組織では、ストリーミングデータを継続的に分析して対応するアプリケーションのデータソースとして Apache Kafka を使用します。
 
Q: ストリーミングデータとは何ですか?
ストリーミングデータは、数千ものマシン、デバイス、ウェブサイト、アプリケーションによって生成された小さいレコード (レコードは通常数キロバイトです) の連続したストリームです。ストリーミングデータには、モバイルアプリケーションやウェブアプリケーションを使用して顧客が生成したログファイル、E コマースの購買情報、プレイヤーによるゲーム内のアクティビティ、ソーシャルネットワークの情報、取引所の財務情報、地理空間サービスの情報、接続されているデバイスのテレメトリ、データセンターのインストルメンテーション情報など、様々なデータが含まれます。Amazon Managed Streaming for Kafka や Amazon Kinesis Data Streams などのストリーミングデータサービスを利用すると、ストリーミングデータを継続的に収集、処理、配信するのが簡単になります。
 
Q: Apache Kafka の主な機能は何ですか?
Apache Kafka には、3 つの主な機能があります。
  • Apache Kafka は、ストリーミングデータを連続する一連のレコードとして耐障害性の高い方法で保存し、レコードが生成された順序を保持します。
  • Apache Kafka は、データプロデューサーとデータコンシューマーの間のバッファとして機能します。Apache Kafka では、多くのデータプロデューサー (ウェブサイト、IoT デバイス、Amazon EC2 インスタンスなど) がストリーミングデータを連続的に発行し、Apache Kafka トピックを使用してこのデータを分類できます。複数のデータコンシューマー (機械学習アプリケーション、Lambda 関数など) がこれらのトピックを独自のレートで読み込みます。これは、メッセージキューやエンタープライズメッセージングシステムと似ています。
  • データコンシューマーは、Apache Kafka トピックからのデータを先入れ先出しベースで処理し、データが生成された順序を保持します。
 
Q: Apache Kafka の主な概念は何ですか?
Apache Kafka は、レコードをトピックに保存します。データプロデューサーは、レコードをトピックに書き込み、コンシューマーはレコードをトピックから読み込みます。Apache Kafka 内の各レコードは、キー、値、タイムスタンプで構成されています。Apache Kafka は、ブローカーと呼ばれる複数のノード間でトピックをパーティション化し、レプリケートします。Apache Kafka は、1 つ以上のブローカーでクラスターとして実行され、ブローカーは可用性の高いクラスターを作成するために複数の AWS アベイラビリティーゾーンに配置できます。Apache Kafka は、クラスタータスクを調整するために Apache Zookeeper に依存しており、Apache Kafka クラスターを操作するリソースの状態を維持できます。
 
Q: どのような場合に Apache Kafka を使用すればよいですか?
Apache Kafka は、ストリーミングデータを変換、配信、反応するリアルタイムのアプリケーションをサポートするために使用され、複数のシステムまたはアプリケーション間でデータを確実に取得するリアルタイムのストリーミングデータパイプラインを構築するためにも使用されます。
 
Q: Amazon Managed Streaming for Kafka は何を行いますか?
Amazon Managed Streaming for Kafka (Amazon MSK) を使用すると、可用性とセキュリティの高い Apache Kafka のオープンソースバージョンを AWS で簡単に利用開始して実行できるだけでなく、Apache Kafka クラスターを実行する運用上のオーバーヘッドを生じさせずに AWS のサービスとの統合が実現します。Amazon MSK では、お客様が Apache Kafka のオープンソースバージョンを使用および設定できますが、Apache Kafka クラスターのセットアップ、プロビジョニング、AWS 統合、継続的なメンテナンスはサービスが行います。
 
コンソールで数回クリックするだけで、Amazon MSK クラスターをプロビジョニングできます。そこから Amazon MSK は異常なブローカーを置き換える、データを自動的にレプリケートして可用性を高める、Apache Zookeeper ノードを管理する、必要に応じてハードウェアパッチを自動的にデプロイする、AWS のサービスとの統合を管理する、コンソールから重要なメトリクスを参照できるようにする、といった処理を行います。また、複数のバージョンがサポートされるようになったときは Apache Kafka のバージョンアップグレードがサポートされるようになるため、Apache Kafka のオープンソースバージョンに加えられた改善点を活用できます。
 
Q: Amazon MSK がサポートする Apache Kafka のバージョンを教えてください。
Amazon MSK は、現在のところ Apache Kafka バージョン 1.1.1 をサポートしています。
 
Q: Apache Kafka API は Amazon MSK と互換性がありますか?
はい、すべてのデータプレーンと管理 API が Amazon MSK によってネイティブにサポートされます。
 
Q: Apache Kafka AdminClient は Amazon MSK によりサポートされていますか?
はい。

データの生成と使用

Q: Apache Kafka API を使用して Apache Kafka からデータを出し入れすることはできますか?
はい、Amazon MSK はネイティブの Apache Kafka プロデューサーおよびコンシューマー API をサポートしています。クライアントが Amazon MSK 内のクラスターを操作し始めたときに、アプリケーションコードを変更する必要はありません。
 
 
Q: Apache Kafka Connect、Apache Kafka Streams、または Apache Kafka の他のエコシステムコンポーネントを Amazon MSK で使用することはできますか?
はい、Apache Kafka プロデューサーおよびコンシューマー API を利用するあらゆるコンポーネント、および Apache Kafka AdminClient を使用できます。.jar ファイルを Apache Kafka クラスターにアップロードするツールは、現在のところ Amazon MSK と互換性がありません (Confluent Control Center、Confluent Auto Data Balancer、Uber  uReplicator、LinkedIn  Cruise Control など)。

Amazon MSK への移行

Q: 既存の Apache Kafka クラスター内のデータを Amazon MSK に移行できますか?
はい、サードパーティー製ツールやオープンソースツール (オープンソースの Apache Kafka に付属する MirrorMaker など) を使用して、クラスターから Amazon MSK クラスターにデータをレプリケートできます。

バージョンアップグレード

Q: サービスで複数のバージョンがサポートされるようになったとき、Amazon MSK ではどのようにバージョンアップグレード (マイナーまたはメジャー) を Apache Kafka クラスターにデプロイできるようになりますか?
Amazon MSK のプレビュー期間は、UpdateClusterSoftware はサポートされていません。
 
Q: アップグレードプロセスは背後でどのように動作しますか?
新しいバージョンをデプロイするとき、Amazon MSK は次のリソースに移行する前の時点で 1 つのブローカーまたは Apache Zookeeper ノードをアップグレードするローリングプロセスを使用します。アップグレードプロセス全体を通じてクラスターは「更新中」状態となり、完了すると「アクティブ」状態に移行します。アップグレードするクラスター内の複数のプローカーにデータをレプリケートすることを選択しなかった場合、クラスターでダウンタイムが発生する点に留意してください。

クラスター

Q: 最初の Amazon MSK クラスターを作成するにはどうすればよいですか?
AWS マネジメントコンソールまたは AWS SDK を使用し、数回のクリックで最初のクラスターを作成できます。まず、 Amazon MSK コンソールに移動し、Amazon MSK クラスターを作成する AWS リージョンを選択します。クラスターの名前、クラスターの実行に使用する VPC、クラスターのデータレプリケーション戦略 (耐久性を高めるためデフォルトでは AZ は 3 つです)、各 AZ のサブネットを選択します。次に、ブローカーインスタンスタイプと、AZ ごとのブローカーの数を選択し、[Create (作成)] をクリックします。

Q: クラスター内にはどのようなリソースがありますか?
各クラスターには、ブローカーインスタンス、プロビジョニングされたストレージ、Apache Zookeeper ノードが含まれています。

Q: Amazon MSK クラスターではどのようなタイプのブローカーインスタンスをプロビジョニングできますか?
EC2 M5 インスタンスファミリー内のインスタンスを選択できます。

Q: ブローカーブートボリュームのプロビジョニングと支払いは必要ですか?
いいえ、プロビジョニングする各ブローカーには、Amazon MSK サービスによって管理されるブートボリュームストレージが含まれています。

Q: Apache Kafka クラスターを作成するとき、基になるリソース (Amazon EC2 インスタンスなど) は EC2 コンソールに表示されますか?
Elastic Network Interface (ENI) などの一部のリソースは、Amazon EC2 アカウントに表示されます。他の Amazon MSK リソースは、Amazon MSK サービスによって管理されているため EC2 アカウントには表示されません。

Q: Amazon MSK クラスター内では何をプロビジョニングする必要がありますか?
作成したクラスターごとにブローカーインスタンスとブローカーストレージをプロビジョニングする必要があります。Apache Zookeeper ノードはプロビジョニングしません。これらのリソースは、作成した各クラスターに追加料金なしで含められるためです。

Q: クラスターのデフォルトのブローカー設定は何ですか?
特に指定がない限り、Amazon MSK は Apache Kafka のオープンソースバージョンにより指定されたのと同じデフォルトを使用します。サービスにより使用されるデフォルトを以下にします。サービスがプレビューの間、この設定を変更することはできません。

ブローカーレプリケーション戦略

3-AZ

Min.Insync.Replicas

2

Broker.ID

サービスにより設定

Default.Replication.Factor

3-AZ の場合は 3

security.inter.broker.protocol

プレーンテキスト

サーバー側の暗号化

AWS サービスキーを通じて AWS KMS を有効化

Q: AZ 間で不均等になるようにブローカーをプロビジョニングできますか (us-east-1a では 3、us-east-1b では 2、us-east-1c では 1 など)?
いいえ、Amazon MSK では、クラスター内の AZ 間でブローカーの数量を均等にするというベストプラクティスが適用されます。

Q: データレプリケーションは Amazon MSK でどのように機能しますか?
Amazon MSK は、Apache Kafka のリーダー - フォロワーレプリケーションを使用して、ブローカー間でデータをレプリケートします。Amazon MSK では、よく使用されるレプリケーション戦略を簡単にデプロイでき、カスタムレプリケーション戦略を使用するオプションも用意されています。デフォルトでは、レプリケーションオプションごとに、指定したレプリケーション戦略を使用してリーダーおよびフォロワーブローカーが展開されて分離されます。たとえば、AZ クラスターごとにブローカーが 1 つの 3 AZ ブローカーレプリケーション戦略を選択した場合、Amazon MSK は 3 つのブローカーのクラスターを作成し (リージョン内の 3 つの AZ で 1 つのブローカー)、デフォルトでは (トピックレプリケーション係数の上書きを選択しない限り) トピックレプリケーション係数も 3 になります。選択したレプリケーション戦略によって、背後でクラスターに割り当てられる Apache Zookeeper ノードの最小数も決まります。

トピック

Q: トピックはどのように作成しますか?
Apache Kafka クラスターが作成されたら、Apache Kafka API を使用してトピックを作成できます。すべてのトピックおよびパーティションのアクションと設定が Apache Kafka API を使用して実行されます。
 
 
Q: 新しいトピックのデフォルト設定は何ですか?
Amazon MSK は、ここで特に明記されていない限り Apache Kafka のデフォルト設定を使用します。  

レプリケーション係数

クラスターのデフォルト

Min.Insync.Replicas

2

ネットワーキング

Q: Amazon MSK は Amazon VPC で実行されますか?
はい、Amazon MSK は常に Amazon MSK サービスにより管理される Amazon VPC 内で実行されます。Amazon MSK リソースは、クラスターのセットアップ時に選択したお客様自身の Amazon VPC、サブネット、セキュリティグループで利用可能になります。VPC の IP アドレスは、Elastic Network Interface (ENI) を通じて Amazon MSK リソースにアタッチされ、すべてのネットワークトラフィックが AWS ネットワーク内に留まり、インターネットにアクセスできなくなります。
 
Q: クライアントと Amazon MSK クラスター間の接続は常にプライベートですか?
はい、Amazon MSK クラスターからデータを生成して使用するには、VPC および Amazon MSK クラスター間でプライベート接続を使用する必要があります。Amazon MSK は、パブリックエンドポイントをサポートしていません。

Q: Amazon MSK クラスター内のブローカーはどのようにして VPC 内のクライアントにアクセスできるようになりますか?
クラスター内のブローカーは、アカウントに表示される Elastic Network Interface (ENI) を通じて VPC 内のクライアントにアクセスできるようになります。 ENI のセキュリティグループは、ブローカーで許可される受信および送信トラフィックのソースとタイプを指示します。

Q: 異なる AWS アカウントで実行されているクライアントにクラスターへのアクセスを許可するにはどうすればよいですか?
VPC ピア接続を使用して、異なる AWS アカウントで実行されているクライアントにクラスターへのアクセスを許可することができます。

暗号化

Q: Amazon MSK クラスターでデータを暗号化することはできますか?
はい、Amazon MSK は Amazon EBS のサーバー側の暗号化AWS KMS キーを使用して、ストレージボリュームを暗号化できます。

Q: データは、Amazon MSK クラスター内のブローカー間を移動するとき暗号化されますか?
現在はしていません。
 
Q: データは、Amazon MSK クラスター内のブローカーと Apache Zookeeper ノードの間を移動するとき暗号化されますか?
現在はしていません。
 
Q: Apache Kafka クライアントと Amazon MSK サービスの間で送信されるデータを暗号化できますか?
現在はしていません。

監視、メトリクス、ログ記録

Q: クラスターまたはトピックのパフォーマンスを監視するにはどうすればよいですか?
クラスターのパフォーマンスは標準メトリクスを使用して監視でき、トピックのパフォーマンスは Amazon CloudWatch コンソール内の拡張メトリクスを使用して監視できます。
 
Q: クライアントの状態とパフォーマンスを監視するにはどうすればよいですか?
使用している Apache Kafka バージョンによりサポートされているクライアント側の監視を使用できます。

Apache Zookeeper

Q: Apache Zookeeper とは何ですか?
https://zookeeper.apache.org/ による説明: 「Apache ZooKeeper は、設定情報の維持、名前付け、分散化された同期の提供、およびグループサービスを提供する一元化されたサービスです。これらすべての種類のサービスが分散アプリケーションにより何らかの形で使用されます」 (Apache Kafka を含む)。

Q: Amazon MSK は Apache Zookeeper を使用しますか?
はい、Amazon MSK は Apache Zookeeper を使用し、Amazon MSK サービスの一部として各クラスター内で Apache Zookeeper を管理します。Apache Zookeeper ノードは、追加料金なしで各クラスターに含まれています。
 
Q: クライアントはどのようにして Apache Zookeeper を操作しますか?
クライアントは、サービスにより提供される Apache Zookeeper エンドポイントを通じて Apache Zookeeper を操作できます。このエンドポイントは、AWS マネジメントコンソールまたは DescribeCluster API を通じて使用できます。

統合

Q: Amazon MSK と統合されるのはどの AWS のサービスですか?
Amazon MSK は次のサービスと統合されます。

スケーリング

Q: クラスターをスケールアップするにはどうすればよいですか?
Amazon MSK のプレビュー期間は、既存のクラスターのスケーリングはサポートされていません。

料金と可用性

Q: Amazon MSK の料金のしくみを教えてください。
料金は、Apache Kafka ブローカー時間単位、およびプロビジョニングされたストレージ時間単位となっています。AWS データ転送料金は、Amazon MSK で送受信されたデータ転送に適用されます。詳細については、 料金表ページを参照してください。

Q: データレプリケーションの結果、データ転送料金は発生しますか?
いいえ、クラスター内のデータ転送はすべてサービスに含まれており、追加料金はありません。
 
Q: どのリージョンが Amazon MSK を提供してますか?
Amazon MSK は、パブリックプレビュー中は米国東部 (バージニア北部) AWS リージョンで利用できます。

Q: データ転送料金のしくみを教えてください。
Amazon MSK で送受信されたデータに対して通常の AWS データ転送料金をお支払いいただきます。ブローカー間のデータ転送、ブローカーおよび Apache Zookeeper ノード間のデータ転送など、同じリージョンのクラスター内におけるデータ転送に料金はかかりません。

Amazon MSK の利用を開始する

Product-Page_Standard-Icons_01_Product-Features_SqInk
コストの計算

Amazon MSK 料金表ページを参照してください。

Product-Page_Standard-Icons_01_Product-Features_SqInk
入門ガイドを見る

Amazon MSK で Apache Kafka クラスターをセットアップする方法については、このステップバイステップガイドを参照してください。

Product-Page_Standard-Icons_03_Start-Building_SqInk
Apache Kafka クラスターの実行

Amazon MSK で Apache Kafka クラスターを実行し始めます。Amazon MSK コンソールにログインします。