全般

Q: Amazon MSK とは何ですか?
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 を利用できます。 Apache Kafka の詳細について学ぶ.
 
Q: ストリーミングデータとは何ですか?
ストリーミングデータは、数千ものマシン、デバイス、ウェブサイト、アプリケーションによって生成された小さいレコード (レコードは通常数キロバイトです) の連続したストリームです。ストリーミングデータには、モバイルアプリケーションやウェブアプリケーションを使用して顧客が生成したログファイル、E コマースの購買情報、プレイヤーによるゲーム内のアクティビティ、ソーシャルネットワークの情報、取引所の財務情報、地理空間サービスの情報、接続されているデバイスのテレメトリ、データセンターのインストルメンテーション情報など、様々なデータが含まれます。Amazon MSK や 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 MSK は何をしますか?
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 のバージョンを教えてください。
サポート対象の Kafka のバージョンについては、 Amazon MSK ドキュメントを参照してください。
 
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: Apache Kafka のバージョンアップグレードはサポートされていますか? 
クラスタのバージョンアップは現在サポートされてませんが、間もなくサポートされる予定です。 
 
Q: アップグレードプロセスは背後でどのように動作しますか?
新しいバージョンをデプロイするとき、Amazon MSK は次のリソースに移行する前の時点で 1 つのブローカーまたは Apache ZooKeeper ノードをアップグレードするローリングプロセスを使用します。アップグレードプロセス全体を通じてクラスターは「更新中」状態となり、完了すると「アクティブ」状態に移行します。アップグレードするクラスター内の複数のプローカーにデータをレプリケートすることを選択しなかった場合、クラスターでダウンタイムが発生する点に留意してください。

クラスター

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

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

Q: Amazon MSK クラスターではどのようなタイプのブローカーインスタンスをプロビジョニングできますか?
EC2 M5 インスタンスファミリー内のインスタンスを選択できます。
 
Q: Amazon MSK はリザーブドインスタンスの料金に対して、割引を行っていますか?
現在はしていません。

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 のオープンソースバージョンにより指定されたのと同じデフォルトを使用します。デフォルト設定は ここに記載されています。 
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 レプリケーションでクラスターを簡単にデプロイでき、トピック別にカスタムレプリケーション戦略を使用することもできます。デフォルトでは、各レプリケーションオプションで、指定したレプリケーション戦略を使用してリーダーおよびフォロワーブローカーが展開されて分離されます。たとえば、AZ クラスターごとにブローカーが 1 つの 3 AZ ブローカーレプリケーション戦略を選択した場合、Amazon MSK は 3 つのブローカーのクラスターを作成し (リージョン内の 3 つの AZ で 1 つのブローカー)、デフォルトでは (トピックレプリケーション係数の上書きを選択しない限り) トピックレプリケーション係数も 3 になります。

Q: デフォルトのブローカー設定の変更、またはクラスター設定を Amazon MSK にアップロードすることはできますか?
はい、Amazon MSKでは、カスタム設定を作成して、新しいクラスターに適用することができます。カスタム設定は、AWS CLI またはコンソールを使用して作成できます。既存のクラスターのカスタム構成サポートは、2019 年 6 月に利用可能になります。

Q: どのような設定プロパティをカスタマイズできますか?
カスタマイズ可能な構成プロパティーはここに記載されています。

Q: 新しいトピックのデフォルト設定は何ですか?
Amazon MSK は、ここで特に明記されていない限り Apache Kafka のデフォルト設定を使用します。

レプリケーション係数

クラスターのデフォルト

Min.Insync.Replicas

2

トピック

Q: トピックはどのように作成しますか?
Apache Kafka クラスターが作成されたら、Apache Kafka API を使用してトピックを作成できます。すべてのトピックおよびパーティションのアクションと設定が Apache Kafka API を使用して実行されます。次のコマンドは、Apache Kafka API を使用してトピックを作成する一例です。
 
bin/kafka-topics.sh --create —bootstrap-server ConnectionString:9092 --replication-factor 3 --partitions 1 --topic TopicName  

ネットワーキング

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 アカウントで実行されているクライアントにクラスターへのアクセスを許可することができます。

VPC への接続

Q:VPC 外部の AWS MSK クラスターにはどのように接続しますか?

VPC の外部で AWS MSK クラスターに接続する方法はいくつかあります。

暗号化

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

Q: Amazon MSK クラスター内のブローカー間で転送中のデータは暗号化されていますか?
はい、デフォルトでは、新しいクラスタはブローカ間通信用の TLS を介した転送データの暗号化が有効になっています。クラスターの作成時に転送データの暗号化の使用をオプトアウトできます。

Q: Apache Kafka クライアントと Amazon MSK サービス間で転送データは暗号化されますか?
はい。デフォルトでは、転送中の暗号化は、CLI または AWS コンソールから作成されたクラスターに対してのみ TLS に設定されます。クライアントが TLS 暗号化を使用してクラスターと通信するには、追加設定が必要です。デフォルトの暗号化設定は、TLS/プレーンテキストまたはプレーンテキストの設定を選択して変更できます。続きを読む: MSK 暗号化

Q: データは、Amazon MSK クラスター内のブローカーと Apache ZooKeeper ノードの間を移動するとき暗号化されますか?
いいえ、Apache Kafkaにバンドルされているデフォルトバージョンの Apache Zookeeper は暗号化をサポートしていません。ただし、Apache ZookeeperとApache Kafkaブローカー間の通信は、ブローカー、トピック、およびパーティションの状態情報に限定されることにご注意ください。

認証と認可

Q: VPC 内の複数のクライアントにわたって Amazon MSK クラスターへの接続範囲を制限するにはどうすればよいですか?
Amazon MSK は、TLS ベースの認証をサポートしており、この機能を使用して Amazon MSK クラスターへのクライアント接続を認証できます。Amazon MSK を使用すると、AWS Certificate Manager サービス内のプライベート CA を MSK クラスターにデプロイできます。TLS クライアント認証が有効になっている場合、以前にロードされたプライベート CA から生成された TLS 証明書を提示しているクライアントだけがクラスタで認証を受けることができます。

Q: Amazon MSK では承認はどのように機能しますか?
Apache Kafka は認証にアクセスコントロールリスト (ACL) を使用し、Amazon MSK は ACL の使用をサポートしています。ACL を有効にするには、TLS を使用してクライアント認証を有効にする必要があります。

Q: 同時にクライアントを認証および承認するにはどうすればよいですか?
クライアント TLS 認証を使用する Amazon MSK のお客様は、クライアント TLS 証明書の Dname を ACL のプリンシパルとして使用して、クライアントのリクエストを認証および承認できます。

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

Q: クラスターまたはトピックのパフォーマンスを監視するにはどうすればよいですか?
クラスターのパフォーマンスは標準メトリクスを使用して監視でき、トピックのパフォーマンスは Amazon CloudWatch コンソール内の拡張メトリクスを使用して監視できます。
 
Q: さまざまな監視レベルのコストはいくらですか?
Amazon CloudWatch を使用してクラスターを監視するコストは、Kafka クラスターの監視レベルとサイズによります。Amazon CloudWatch は、メトリクスごとに毎月課金され、無料利用枠が含まれます。詳細については、 Amazon CloudWatch 料金を参照してください。各モニタリングレベルで公開されるメトリクスの数の詳細については、 Amazon MSK モニタリングドキュメントを参照してください。
 
Q: クライアントの状態とパフォーマンスを監視するにはどうすればよいですか?
使用している Apache Kafka バージョンによりサポートされているクライアント側の監視を使用できます。
 
Q: Amazon MSK リソースにタグを付けることはできますか?
はい、AWS CLI またはコンソールから Amazon MSK クラスターにタグを付けることができます。
 
Q: コンシューマーラグをモニタリングするにはどうすれば良いですか?
Amazon MSK クラスターを持つコンシューマーラグは、Linkedin の Burrow ( https://github.com/linkedin/Burrow) など、コンシューマーラグツールを使用してモニタリングできます。

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: クラスタ内のストレージをどのように拡張できますか?
AWS マネジメントコンソールまたは AWS CLI を使用して、クラスター内のストレージを拡張することができます。 
 
Q.既存のクラスター内でブローカ数のスケーリングは行えますか?
いいえ。Amazon MSK では、既存のクラスターでブローカーの数をスケールすることは現在サポートされていませんが、今後のロードマップでサポートされる予定です。
 
Q.既存のクラスター内でブローカインスタンスサイズのスケーリングを行えますか?
いいえ。Amazon MSK では、既存のクラスターでブローカーインスタンスサイズをスケーリングすることは現在サポートされていませんが、今後のロードマップでサポートされる予定です。

料金と可用性

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

Q: データレプリケーションの結果、データ転送料金は発生しますか?
いいえ、クラスター内のデータ転送はすべてサービスに含まれており、追加料金はありません。
 
Q: どの AWS リージョンで Amazon MSK が提供されていますか?
Amazon MSK のリージョンご利用状況については、 こちらの資料をご覧ください。 

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

コンプライアンス

Q: Amazon MSK HIPAA は対象ですか?

はい。Amazon MSK は HIPAA の対象外です。AWS のサービスとコンプライアンスプログラムの完全なリストについては、コンプライアンスプログラムによる AWS 対象範囲内のサービスをご参照ください。

サービスレベルアグリーメント (SLA)

Q: Amazon MSK の SLA は何を保証していますか?
Amazon MSK SLA は、Amazon MSK に最低 99.9% の月間稼働率を保証しています。
 
Q: SLA サービスクレジットの資格を有しているかどうかは、どうすればわかりますか?
Amazon MSK でのマルチ AZ 配置で、毎月の請求サイクル中に月間稼働率が 99.9% 未満の場合、Amazon MSK SLA に基づく Amazon MSK の SLAクレジットを取得できます。
 
SLA の利用規約に関するすべての詳細、およびクレジット請求方法の詳細については、 Amazon MSK SLA の詳細ページをご参照ください。

Amazon MSK の利用を開始する

コストの計算
コストの計算

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

入門ガイドを見る
入門ガイドを見る

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

Apache Kafka クラスターの実行
Apache Kafka クラスターの実行

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