標準 ブローカー の 階層型 ストレージ - Amazon Managed Streaming for Apache Kafka

標準 ブローカー の 階層型 ストレージ

階層型ストレージは Amazon MSK 用の低コストのストレージ階層で、実質的に無制限にストレージをスケーリングできるため、ストリーミングデータアプリケーションの構築を費用対効果の高い方法で行うことができます。

パフォーマンスとコストのバランスをとる階層型ストレージを使用して構成された Amazon MSK クラスターを作成できます。Amazon MSK は、Apache Kafka トピックの保持制限に達するまで、パフォーマンスが最適化されたプライマリストレージ階層にストリーミングデータを保存します。その後、Amazon MSK は新しい低コストのストレージ階層に自動的にデータを移動します。

アプリケーションが階層型ストレージからのデータの読み取りを開始すると、最初の数バイトは読み取りレイテンシーが大きくなることが予想されます。残りのデータを低コスト階層から順次読み取り始めると、プライマリストレージ階層と同様のレイテンシーになることが予想されます。低コストの階層型ストレージ用にストレージをプロビジョニングしたり、インフラストラクチャを管理したりする必要はありません。任意の量のデータを保存することができ、使用量に応じた料金のみが発生します。この機能は、KIP-405: Kafka 階層型 ストレージで導入された API と互換性があります。

MSK 階層型 ストレージ クラスターのサイズ設定、モニタリング、最適化の詳細については、Amazon MSK 階層型ストレージを使用して本稼働のワークロードを実行するためのベストプラクティスを参照してください。

階層型 ストレージ には、次のような特徴があります。

  • 実質的に無制限にストレージをスケーリングできます。Apache Kafka インフラストラクチャをスケーリングする方法を考える必要はありません。

  • ブローカーの数を増やすことなく、Apache Kafka トピックのデータをより長く保持したり、トピックのストレージを増やしたりできます。

  • これにより、安全バッファーが長くなり、処理中の予期しない遅延に対処できるようになります。

  • 既存のストリーム処理コードと Kafka API を使用して、古いデータを正確な生成順序で再処理できます。

  • セカンダリストレージのデータをブローカーディスク間でレプリケートする必要がないため、パーティションの再調整が高速化されます。

  • ブローカーと階層型ストレージ間のデータは VPC 内を移動し、インターネットを経由しません。

  • クライアントマシンは、階層型ストレージが有効になっていないクラスターに接続するのと同じプロセスを使用して、階層型ストレージが有効になっている新しいクラスターに接続することができます。「クライアントマシンを作成する」を参照してください。

Amazon MSK クラスターの階層型ストレージの要件

  • 階層型ストレージを有効にして新しいトピックを作成するには、Apache Kafka クライアントのバージョン 3.0.0 以降を使用する必要があります。既存のトピックを階層型ストレージに移行するには、バージョン 3.0.0 より前の Kafka クライアント (サポートされている Apache Kafka の最小バージョンは 2.8.2.tiered) を使用するクライアントマシンを再構成して、階層型ストレージを有効にすることができます。「ステップ 4: Amazon MSK クラスターにトピックを作成する」を参照してください。

  • 階層型ストレージが有効になっている Amazon MSK クラスターでは、バージョン 3.6.0 以降または 2.8.2.tiered を使用する必要があります。

Amazon MSK クラスターの階層型ストレージの制約と制限

階層型ストレージには、次の制約と制限があります。

  • アプリケーションがトランザクション機能をアクティブに使用していない限り、Amazon MSK の remote_tier から読み取りを行う際にクライアントが read_committed に設定されていないことを確認してください。

  • AWS GovCloud (米国) リージョンでは、階層型ストレージを使用できません。

  • 階層型ストレージは、プロビジョンドモードのクラスターにのみ適用されます。

  • 階層型ストレージでは、ブローカーサイズ t3.small はサポートされていません。

  • 低コストストレージでの最小保持期間は 3 日間です。プライマリストレージには最小保持期間はありません。

  • 階層型ストレージは、ブローカーの複数のログディレクトリをサポートしていません (JBOD 関連機能)。

  • 階層型 ストレージ は、圧縮されたトピックをサポートしていません。階層型 ストレージ が有効になっている すべてのトピックで cleanup. Policy が 「DELETE」 のみに設定されていることを確認します。

  • 階層型 ストレージ クラスターは、トピックの作成後の log.cleanup.policy ポリシーの変更をサポートしていません。

  • 階層型 ストレージ は、個々の トピック では無効にできますが、クラスター 全体では 無効にできません。いったん無効にすると、トピックに対して階層型ストレージを再度有効にすることはできません。

  • Amazon MSK バージョン 2.8.2.tiered を使用している場合、別の階層ストレージがサポートされている Apache Kafka バージョンにのみ移行できます。階層ストレージがサポートされているバージョンをこれ以上使用したくない場合は、新しい MSK クラスターを作成し、データをそのクラスターに移行してください。

  • kafka-log-dirs ツールは、階層型ストレージのデータサイズを報告できません。このツールは、プライマリストレージ内のログセグメントのサイズのみを報告します。

トピック レベル で階層型 ストレージ を設定するときに注意する必要があるデフォルト 設定 と 制約については、 Amazon MSK 階層型ストレージのトピックレベル設定に関するガイドライン を参照してください。