Amazon Managed Streaming for Apache Kafka (MSK) は、フルマネージドの Apache Kafka を提供します。Amazon MSK は、サーバーのプロビジョニング、Apache Kafka クラスターの設定、障害時のサーバーの交換、サーバーのパッチとアップグレードのオーケストレート、高可用性のためのクラスターの構築、データの永続的な保存とセキュリティの確保、モニタリングとアラームの設定、負荷変動をサポートするためのスケーリングの実行を行います。マネージドサービスを利用することで、お客様はイベントアプリケーションのストリーミングの開発と実行に時間を費やすことができます。
Amazon MSK は、オープンソースで安全性の高い Apache Kafka クラスターを複数のアベイラビリティーゾーン (AZ) に分散して提供し、耐障害性と可用性の高いストリーミングストレージを実現します。Amazon MSK は、高度に設定可能、観察可能、かつスケーラブルで、さまざまなユースケースに必要な柔軟性と制御を可能にします。
Amazon MSK では、他の AWS のサービスとの緊密な統合により、アプリケーション開発がよりシンプルになります。Amazon MSK は、セキュリティのための AWS Identity and Access Management (IAM) および AWS Certificate Manager、スキーマガバナンスのための AWS Glue スキーマレジストリ、ストリーム処理のための Amazon Managed Service for Apache Flink および AWS Lambda などと統合されます。Amazon MSK は、データの取り込みや処理サービス、マイクロサービスアプリケーションアーキテクチャの中心となる、最新のメッセージングおよびイベントドリブンアプリケーションの統合バックボーンを提供します。
サーバー管理が不要
フルマネージド
コンソールで数回クリックするだけで、Apache Kafka のデプロイのベストプラクティスに従うフルマネージド型の Apache Kafka クラスターを作成したり、カスタム設定を使用して独自のクラスターを作成したりできます。必要な設定を作成すると、Amazon MSK は Apache Kafka クラスターを自動的にプロビジョニング、設定、管理します。
メタデータ管理ノードが含まれています
Apache Kafka はメタデータの管理のために Kraft (Apache Kafka Raft) または Apache ZooKeeper のいずれかを使用します。Amazon MSK では、サポートされている Apache Kafka バージョンでいずれのモードでもクラスターを作成できます。また、Amazon MSK は、追加コストなしでこれらの追加のメタデータノードも管理します。
Amazon MSK Serverless
MSK Serverless は Amazon MSK のクラスタータイプであり、Apache Kafka クラスターを簡単に実行できます。コンピューティング容量とストレージ容量を管理する必要はありません。MSK Serverless は、Apache Kafka パーティションを管理しながらリソースを自動的にプロビジョニングおよびスケーリングするため、クラスターの適切なサイズ設定やスケーリングについて心配することなくデータをストリーミングできます。
高い可用性
高可用性はデフォルトです
すべてのクラスターは、複数のアベイラビリティーゾーン (デフォルトでは 3 つ) でプロビジョニングされるとともに、Amazon MSK のサービスレベルアグリーメントによってサポートされるほか、クラスターのインフラストラクチャと Apache Kafka ソフトウェアの問題を検出して対応する自動システムによってサポートされます。コンポーネントで障害が発生しても、Amazon MSK がアプリケーションのダウンタイムなしで自動的に交換します。 Amazon MSK が Apache ZooKeeper または KRaft コントローラーノードの可用性を管理するため、お客様ご自身でノードを起動または停止したり、ノードに直接アクセスしたりする必要はありません。また、クラスターを最新の状態に保ってスムーズに実行するため、必要に応じてソフトウェアパッチを自動的にデプロイします。
MSK クラスター間での信頼性の高い自動データレプリケーション
MSK Replicator は Amazon MSK の機能であり、オープンソースツールのセットアップ、コードの記述、インフラストラクチャ管理の専門知識を必要とせず、数回のクリックのみで Amazon MSK クラスター間でデータを確実にレプリケートできます。MSK Replicator は、基盤となるリソースを自動的にプロビジョニングしてスケールするため、データをオンデマンドでレプリケートでき、実際に使用した分のみをお支払いいただきます。MSK Replicator を使用すると、可用性が高く耐障害性のあるマルチリージョンアプリケーションを構築でき、回復性を高めることができます。また、MSK Replicator を使用して、異なるリージョンで低レイテンシーのデータアクセスを提供したり、パートナーにデータを配信したりできます。
高い安全性
プライベート接続
Apache Kafka クラスターは、Amazon MSK によって管理される Amazon 仮想プライベートクラウド (VPC) で実行されます。お客様の Amazon VPC 内の Kafka クライアントは、Amazon MSK が VPC にデプロイするクロスアカウントの Elastic Network Interface を介して、クラスターにプライベートにアクセスできます。Kafka クライアントが 1 つ以上の VPC または AWS アカウントに分散している場合でも、マルチ VPC プライベート接続機能を使用してクラスターにプライベートに接続できます。この機能により、PrivateLink ソリューションの自己管理によるオペレーションのオーバーヘッドが排除され、Amazon MSK クラスターのスケールに合わせてシームレスにスケールすることができるため、追加の設定を変更することなくクラスターへのプライベート接続を維持できます。マルチ VPC プライベート接続では、接続している VPC 間で IP を重複させることができるため、重複しない IP、他の VPC 接続ソリューションに関連する複雑なピアリングおよびルーティングテーブルを管理するという課題も解消されます。
クロスアカウントアクセスコントロール
Amazon MSK クラスターのクラスターポリシーを使用して、Amazon MSK クラスターへのプライベート接続を設定するためのクロスアカウントアクセス許可を持つ IAM プリンシパルを定義します。IAM クライアント認証と併用すると、クラスターポリシーを使用して、接続しているクライアントの Kafka データプレーンのアクセス許可を細かく定義することもできます。
きめ細かいアクセスコントロール
IAM アクセスコントロールは、追加費用なしで提供するセキュリティオプションです。IAM ロールやユーザーポリシーを使用してアクセスを制御することで、クラスター認証と Apache Kafka API 承認を簡素化します。IAM アクセスコントロールを使用すると、Apache Kafka のクライアント認証と認可を制御するために 1 回限りのアクセス管理システムを構築して実行する必要がなくなります。クラスターはデフォルトで最小権限の許可を使用して保護されます。プロビジョンドクラスターの場合、Simple Authentication and Security Layer (SASL)/Salted Challenge Response Authentication Mechanism (SCRAM) または Apache Kafka アクセスコントロールリスト (ACL) を使用した相互 Transport Layer Security (TLS) 認証を使用して、クライアントのアクセスを制御することもできます。
保管中と転送中の暗号化
Amazon MSK では、特殊な設定やサードパーティー製ツールがなくても保管時にデータが暗号化されます。プロビジョンドクラスターの場合、保存中のデータはすべてデフォルトで AWS Key Management Service (KMS) キーを使用して、またはお客様ご自身のキーを使用して暗号化できます。また、ブローカー間およびクラスター上のクライアントとブローカー間の転送データを TLS を介して暗号化することもできます。サーバーレスクラスターの場合、保管中のデータはすべてデフォルトでサービスマネージドキーを使用して暗号化され、転送中のデータはすべてデフォルトで TLS を介して暗号化されます。
インターネットを介した接続
Amazon MSK は、Apache Kafka 2.6.0 以降のバージョンを実行している Amazon MSK クラスターのブローカーにインターネット経由で安全に接続するオプションを提供しています。パブリックアクセスを可能にすることで、プライベートな Amazon 仮想プライベートクラウド (VPC) の外部にいる許可されたクライアントは、特定の Amazon MSK クラスターとの間で暗号化されたデータをストリーミングでやり取りすることができます。
クロスアカウントアクセスコントロール
Amazon MSK クラスターのクラスターポリシーを使用して、Amazon MSK クラスターへのクロスアカウントプライベート接続を設定するためのアクセス許可を持つクロスアカウント IAM プリンシパルを定義します。IAM クライアント認証と併用すると、クラスターポリシーを使用して、接続しているクライアントの Kafka データプレーンのアクセス許可を細かく定義することもできます。
深く統合
Amazon MSK の AWS 統合の幅と深さを提供しているプロバイダーは他にありません。これらの統合には以下のものが含まれます:
- Apache Kafka とサービスレベルの API アクセスコントロールのための AWS IAM
- フルマネージド型の Appache Flink アプリケーションを実行し、Apache Kafka 内のストリーミングデータを処理する Amazon Managed Service for Apache Flink
- Apache FlinkSQL を使用して、インタラクティブな Streaming SQL ジョブや長時間実行の SQL ジョブを実行する Amazon Managed Service for Apache Flink
- スキーマを一元的に管理および進化させる AWS Glue スキーマレジストリ
- AWS IoT Core による IoT イベントストリームの MSK への配信
- 変更データのキャプチャと分析向けの AWS Database Migration Service (AWS DMS)
- プライベートクライアント接続とネットワーク分離向けの Amazon Virtual Private Cloud (Amazon VPC)
- 保管時の暗号化向けの AWS Key Management Service (AWS KMS)
- 相互 TLS クライアント認証向けの AWS Certificate Manager Private Certificate Authority
- AWS Secrets Manager による SASL/SCRAM の秘密の安全な保存と管理
- Amazon MSK をコードで展開する AWS CloudFormation
- クラスター、ブローカー、トピック、コンシューマー、パーテーションレベルのメトリクス向けの Amazon CloudWatch
Graviton
オープンソース
ネイティブの Apache Kafka で動作
Amazon MSK は、ネイティブバージョンの Apache Kafka をデプロイしているため、Apache Kafka 向けに構築されたアプリケーションやツールはアプリケーションコードを変更することなく、すぐに Amazon MSK で動作します。
合理化されたバージョンの提供
Amazon MSK は通常、Apache Kafka の新バージョンを公開後、7 日以内に提供しています。
シームレスなバージョンアップグレード
プロビジョンドクラスターの Apache Kafka バージョンを数回クリックするだけでアップグレードできます。そのようにして、いつ Apache Kafka の新しいバージョンで提供されている機能やバグ修正を活用するか決められるようになります。Amazon MSK は、ベストプラクティスに従ったお客様のために、クライアントの I/O の可用性を維持するために、稼働中のクラスターへのバージョンアップグレードの展開を自動化します。サーバーレスクラスターの場合、Apache Kafka のバージョンは Amazon MSK によって自動的にアップグレードされます。
最低コスト
Amazon MSK は、1 日あたり 2.00 USD 以下で開始できます。お客様は通常、取り込み 1 GB あたり 0.05 USD から 0.07 USD を支払うことになりますが、これは他のマネージドプロバイダーの 1/13 のコストまで下がります。料金の詳細については、Amazon MSK の料金ページをご覧ください。
階層化ストレージ
階層化ストレージを使えば、ストレージ容量のプロビジョニングや管理をすることなく、MSK に事実上無制限にデータを保存することができます。新規または既存のクラスターに対して、数回のクリックで階層化ストレージを有効にし、使用した分だけ支払うことができます。まずパフォーマンスを最適化したプライマリストレージ階層でデータを保存すると、長期保存のために自動で MSK が新しいローコスト階層にデータを配置します。この機能は、MSK が存在するすべての AWS リージョンでサポートされています。階層型ストレージの開始方法については、Amazon MSK デベロッパーガイドをご覧ください。
スケーラブル
ブローカーのスケーリング (プロビジョンドクラスターのみ)
Apache Kafka ブローカーのサイズまたはファミリーを変更して、ダウンタイムなしで数分以内に Amazon MSK クラスターをスケーリングすることもできます。サイズまたはファミリーを変更することは、ワークロードの変化に合わせてクラスターのコンピューティング性能を柔軟に調整できるため、Amazon MSK クラスターを拡張する一般的な方法です。この方法は、Apache Kafka の可用性に影響を与える可能性のあるパーテーションの再割り当てを必要としないため、好ましい方法となり得ます。
クラスタースケーリング (サーバーレスクラスターのみ)
Amazon MSK は、アプリケーションのスループットニーズに応じて、クラスターのコンピューティングリソースとストレージリソースを自動的にスケーリングします。
オートマチックパーテーションマネジメント
Amazon MSK は、Apache Kafka 用の人気オープンソースツールである Cruise Control と統合しており、お客様に代わってパーテーションの割り当てを自動的に管理します。サーバーレスクラスターの場合、Amazon MSK がパーティションの割り当てを自動的に管理します。
自動ストレージスケーリング (プロビジョンドクラスターのみ)
AWS マネジメントコンソールまたは AWS Command Line Interface (AWS CLI) を使用して、ストレージ要件の変化に合わせてブローカーごとにプロビジョニングされるストレージの量をシームレスにスケールアップできます。また、オートスケーリングポリシーを作成することで、増大するストリーミング要件に合わせて自動的にストレージを拡張することができます。
設定可能
Amazon MSK は、デフォルトで Apache Kafka のベストプラクティスクラスター設定をデプロイします。プロビジョンドクラスターの場合、あらゆる動的設定およびトピックレベルの設定をサポートしながら、30 種を超える異なるクラスター設定を調整することができます。詳細については、ドキュメントの Custom MSK Configurations を参照してください。
ヴィジブル
CloudWatch メトリクスをデフォルトで搭載し、ストリーミングパフォーマンスを容易に観測可能
Amazon CloudWatch を使用して、重要なメトリクスを視覚化してモニタリングし、ストリーミングアプリケーションのパフォーマンスを理解して維持することができます。
Open Monitoring で JMX、Node メトリクスを Prometheus サーバーにエクスポートする (プロビジョンドクラスターのみ)
Open Monitoring with Prometheus では、Datadog、Lenses、New Relic、Sumo Logic、または Prometheus サーバーなどのソリューションを使用して Amazon MSK をモニタリングし、既存のモニタリングダッシュボードを簡単に Amazon MSK に移行することができます。詳しくは、ドキュメントの Open Monitoring with Prometheus をご覧ください。
Amazon MSK の利用を開始する
Amazon MSK 料金表ページを参照してください。
Amazon MSK で Apache Kafka クラスターをセットアップする方法については、このステップバイステップガイドを参照してください。
Amazon MSK で Apache Kafka クラスターを実行し始めます。Amazon MSK コンソールにログインします。