コンテンツに移動
データ分析

新しい Managed Service for Apache Kafka で、クラスタ管理を ToDo リストから外す

2024年9月4日
Kir Titievsky

Product Manager, Google Cloud

※この投稿は米国時間 2024 年 8 月 16 日に、Google Cloud blog に投稿されたものの抄訳です。

Apache Kafkaのような分散ストレージ システムを実行することで、さまざまなことを学べます。まず、クラスタのセキュリティとネットワーキングを設計、設定し、次に信頼性の高い運用やアップグレードのためのプロセスやツールを開発します。その間に、新たなトラフィックに合わせてスケールアップしたり、費用削減のためにスケールダウンしたりといった調整を行います。これはやりがいのある作業ではあるものの、決して容易ではありません。

そこで Google がご提供する近道が、新しい Google Cloud Managed Service for Apache Kafka です。このサービスは、インフラストラクチャの実行という、リスクが高く、時には単調でつまらない作業を引き受けます。今すぐ Google Cloud プロジェクトでプレビュー版をご利用いただけます。

このサービスは、Cloud Pub/Sub に代わるものです。メンテナンスの容易さやグローバル リソースモデルが決定要因となるアプリケーションには、Pub/Sub が適していますが、環境間で移植可能な使い慣れたテクノロジーをお探しの方には、Managed Service for Apache Kafka が最適です。

独自の Apache Kafka インフラストラクチャの実行をご検討中の方は、このサービスを利用すれば、ToDo リストにある他の作業にもっと時間を費やせるようになるでしょう。本ブログ投稿をお読みになり、この新しいサービスで何を実現できるかをご確認ください。

Apache Kafka とは

まず、Apache Kafka がスケーラブルなソフトウェアやビジネスの構築にどのように役立つかについて簡単にご説明します。技術的なレベルでは、Apache Kafka はアプリケーション間でイベントを共有するために使用されるスケーラブルなストレージ システムです。イベントに反応するサービスを構築する必要がある場合は、Apache Kafka からそのイベントを取得できます。この方法は、イベントを生成したアプリケーションと直接統合するよりもずっと簡単です。このように分離することで、耐久性と拡張性を兼ね備えた複雑なソフトウェアを構築できます。これは、Kafka が他のストレージ システムとは異なり、1 秒あたり数ギガバイトのスループットまで水平方向にスケーリングできるためです。オブジェクト ストレージとは異なり、Kafka は大きな不変のバッチで配信するのではなく、個々のレコードを数マイクロ秒以内で配信します。

こうしたシステムは、どのような場面で役立つでしょうか。小売業であれば「ユーザー X が商品 Y をクリックした」といったようなイベントを処理するサービスがよくあります。それに応じて、たとえば、レコメンデーション システムの構築やユーザーが最近閲覧した商品の履歴の表示を行いたい場合もあるでしょう。そして当然ながら、データ サイエンス チームは、ユーザー インタラクションの完全な履歴を入手したいでしょう。あるいは、製造業であれば「センサー X が測定値 Y を報告した」といったようなイベントが考えられます。このようなイベントに応じて行うことは、運用監視ダッシュボードの作成から、早期障害検出アルゴリズムの開発や実行までさまざまです。金融サービス企業なら、株式の売買や取引を不正検出パイプラインや残高カウンタに取り込むことができます。

Managed Service for Apache Kafka がどのように役立つか

では、Managed Service for Apache Kafka を使用して Apache Kafka クラスタを実際に実行するために必要な手順、具体的には安全でスケーラブルなクラスタにする手順を見ていきましょう。

最初の手順は、サービスに対するアクセス権の取得です。プロジェクト管理者であれば、すでにアクセス権があります。これは既存のアカウント、利用規約に含まれており、お支払い方法または契約の対象となっています。

2 つ目の手順は、クラスタを保護する方法の決定です。Managed Service for Apache Kafka には、これも組み込まれています。すべてのクラスタは、暗号化された認証済み接続のみを許可します。認証は、サービス アカウントや Workforce Identity Federation アカウントなど、Google IAM でサポートされているすべての ID に対応しています。これらの ID Kafka クラスタで管理する必要はありません。クライアントは OAuth で認証でき、Google Cloud での認証情報の処理や、レガシー アプリケーションでのユーザー名とパスワード(SASL_PLAIN)による認証が自動化されます。そしてもちろん、データは保存時に暗号化され、CMEK もサポートされます。

次に行うのがネットワーク設計です。これも Managed Service for Apache Kafka によって完全に自動化されます。ユーザーはクライアントがサービスにアクセスするために使用する VPC ネットワークを決めるだけで、残りはサービスが行います。クラスタは最大 10 種類の VPC ネットワークで公開できます。つまり、クライアントごとに異なるネットワークに分離して、クラスタへのリージョン間アクセスを実現できます。VPC ペアリングは必要ありません。サービスが、ネットワークごとにブローカーとブートストラップ サーバーのプライベート IP アドレスを作成します。その後、サービスは DNS エントリを設定し、すべてのクライアントがクラスタのブートストラップ URL を知るだけでアクセスできるようにします。なお、各クラスタにロードバランサが設定されるため、ブートストラップ URL 1 つのみです。

次はサイズ設定です。使用するブローカーのマシンタイプとその数、そしてディスクの設定方法を設定します。これは簡単です。サービスがブローカーとストレージを完全に管理するからです。管理する責任がある設定は、vCPU の数とクラスタの RAM のサイズの 2 つだけです。これらを設定すれば、ブローカーの管理は自動化されます。これには、ブローカーとストレージの水平方向と垂直方向のスケーリングも含まれます。ストレージは階層化されており、バッファリング用の最小限のローカル ストレージと、実質的に無制限のリモート ストレージが含まれています。つまり、Kafka データを好きなだけ保存でき、ディスク空き容量の不足を心配する必要はありません。

これで、サービスを使用する準備が整いました。このサービスはオープンソースの Apache Kafka を実行するため、Kafka プロトコルを使用するクライアントは想定どおりに動作するはずです。重要な運用指標は Cloud Monitoring で取得し、ログは Cloud Logging で取得します。このサービスは Google Cloud API であるため、TerraformUICLI などのクライアント ライブラリが付属しています。

クラスタがフル稼働すると、最後に嬉しいサプライズが待っています。それは自動アップグレードです。このサービスは、すべてのソフトウェアを自動的に最新の状態に維持し、再起動は必要ありません。

使ってみる: 1 時間ほどで公開

まとめると、Managed Service for Apache Kafka を使用すると、Google Cloud Apache Kafka クラスタを実行する作業が軽減され、サブネットの選択と、RAM CPU の使用率の監視だけで済みます。ぜひお試しください。Google Cloud コンソールで開始するか、こちらのクイックスタートに沿って始められます。ご不明な点などございましたら、アカウント チームにご連絡いただくか、kafka-hotline@google.com までメールでお問い合わせください。

ー Google Cloud、プロダクト マネージャー Kir Titievsky

投稿先