Amazon Web Services ブログ
Amazon MSK が AWS Gravition3 をサポートし、最大29%のスループット向上と最大24%のコスト削減を実現
Amazon Managed Streaming for Apache Kafka (Amazon MSK) は、Apache Kafka を使用してストリーミングデータを処理するアプリケーションを構築・実行可能なフルマネージドサービスです。 本日、Amazon MSK は、新規の MSK プロビジョンドクラスター用に M7g インスタンスの提供を開始いたしました。これにより、Graviton3 のメリットを Kafka ワークロードにもたらせることをうれしく思います。AWS Graviton プロセッサは、クラウドワークロードに最適なコストパフォーマンスを実現するために AWS が構築したカスタム ARM ベースのプロセッサです。たとえば、M7g.4xlarge インスタンスを使用して MSK プロビジョンドクラスターを実行すると、M5.4xlarge インスタンスと比較して CPU 使用量を最大 27% 削減し、書き込みと読み取りのスループットを最大 29% 向上させることができます。これらのパフォーマンス向上と、M7g の低いコストにより、M5 インスタンスに比べてコンピューティングコストを最大 24% 節約可能です。
2023 年 2 月に、AWS は Graviton3 ベースの新しい M7g インスタンスをローンチしました。M7g インスタンスには DDR5 メモリが搭載されており、前世代で使用されていた DDR4 メモリよりも最大で 50% 高いメモリ帯域幅を実現しています。また、M7g インスタンスは、同規模の M5 インスタンスと比べてストレージスループットが最大 25% 高く、ネットワークスループットが最大 88% 向上するため、Kafka ワークロードのコストパフォーマンス面でもメリットがあります。M7g の機能について詳しくは、新しい Graviton3 ベースの汎用 (m7g) およびメモリ最適化 (r7g) Amazon EC2 インスタンスでご覧いただけます。
MSK における M7g インスタンスのスペックは以下のとおりです。
インスタンスタイプ | vCPU | メモリ | ネットワーク帯域 | ストレージ帯域 |
M7g.large | 2 | 8 GiB | 最大 12.5 Gbps | 最大 10 Gbps |
M7g.xlarge | 4 | 16 GiB | 最大 12.5 Gbps | 最大 10 Gbps |
M7g.2xlarge | 8 | 32 GiB | 最大 15 Gbps | 最大 10 Gbps |
M7g.4xlarge | 16 | 64 GiB | 最大 15 Gbps | 最大 10 Gbps |
M7g.8xlarge | 32 | 128 GiB | 15 Gbps | 10 Gbps |
M7g.12xlarge | 48 | 192 GiB | 22.5 Gbps | 15 Gbps |
M7g.16xlarge | 64 | 256 GiB | 30 Gbps | 20 Gbps |
Amazon MSK における M7g インスタンス
組織は Amazon MSK を採用して、リアルタイムでのデータキャプチャと分析、機械学習 (ML) ワークフローの実行、イベント駆動型アーキテクチャの実装を行っています。Amazon MSK を使用すると、運用上のオーバーヘッドを削減し、より高い可用性と耐久性でアプリケーションを実行できます。また、階層型ストレージなどの機能により、コストパフォーマンスが向上します。コンピューティングは Kafka におけるコストの大部分を占めるため、利用者はコンピューティングコストを更に最適化する手段を必要としており、Graviton インスタンスがその最短経路であることを理解していました。Amazon MSK チームは Kafka バージョン 2.8.2、3.3.2 以降で M7g の十分なテストを行い、重要なワークロードの実行が容易で、Graviton3 のコスト削減によるメリットを得られることを確認しました。
AWS マネジメントコンソール、AWS SDK 経由での API 呼び出し、AWS コマンドラインインターフェイス (AWS CLI) を使用して、ブローカータイプに Graviton3 ベースの M7g インスタンスを指定して、新しいクラスターをプロビジョニングすることができます。M7g インスタンスは Amazon MSK と Kafka のすべての機能をサポートしているため、既存の Kafka ワークロードを最小限の変更で簡単に実行できます。Amazon MSK は Graviton3 ベースの M7g インスタンスを large から 16xlarge サイズまでサポートし、すべての Kafka ワークロードを実行できます。
MSKプロビジョンドクラスター で M7g インスタンスを試して、Amazon MSK M5 インスタンスと比較してみましょう。
M7g インスタンス入門
利用者は Amazon MSK でさまざまなワークロードを実行しています。レイテンシーの影響を受けやすいものもあれば、スループットの制約を受けるものもあります。本投稿では、スループットの制約を受けるワークロードに対する M7g のパフォーマンスの影響に焦点を当てています。M7g はネットワークとストレージのスループットが向上しており、M5ベースのクラスターと比較してブローカーあたりのスループットが高くなっています。
その影響を理解するために、Kafka がデータの書き込みまたは読み取りに利用可能なスループットをどのように消費するかを見てみましょう。MSK クラスター内のすべてのブローカーには、制限付きのストレージとネットワークスループットが付与されています。Kafka の書き込みは主にストレージとネットワークスループットの両方を消費しますが、読み取りは主にネットワークスループットを消費します。通常、Kafka のコンシューマーはページキャッシュからリアルタイムデータを読み取り、時々古いデータを処理するためにディスクにアクセスするからです。したがって、全体的なスループットの向上度合は、ワークロードの書き込みと読み取りのスループット比率によって変化します。
例に基づき、スループットの向上度合を見てみましょう。今回のセットアップでは、M7g.4xlarge インスタンスを含む MSK クラスターと、3 つの異なるアベイラビリティーゾーンに 3 つのノードがある M5.4xlarge インスタンスを含むMSK クラスターが含まれています。また、M7g とM5 MSK クラスターの両方で、TLS 暗号化、AWS Identity and Access Management (IAM) 認証を有効化し、レプリケーション係数を 3 にしました。また、ブローカー設定においては、num.network.threads
= 8 、num.io.threads
= 16 など、Amazon MSK のベストプラクティスを適用しました。書き込みクライアントでは、適切な linger.ms
と batch.size
設定によりバッチサイズを最適化しました。ワークロードとしては、それぞれ 64 パーティションを持つ 6 つのトピック (ブローカーあたり384 パーティション) を想定しました。取り込みでは、平均メッセージサイズ 512 バイト、トピックごとに 1 つのコンシューマーグループで負荷を生成しました。クラスターにかけられた負荷の量は同一でした。
MSK クラスターに取り込むデータが増えるにつれて、次のグラフに示すように、M7g.4xlarge インスタンスはブローカーあたりのスループットが高くなります。1 時間の一貫した書き込みの後、M7g.4xlarge ブローカーは最大で54 MB/秒の書き込みスループットを維持しているのに対し、M5 ベースのブローカーでは 40 MB/秒です。これは 29% の増加に相当します。
また、もう 1 つ重要な観測結果があります。M7g ベースのブローカーは、29% 高いスループットを維持しているにもかかわらず、消費する CPU リソースは M5よりもずっと少ないのです。次の図に示すように、M7Gベースのブローカーの CPU 使用率は平均 40% ですが、M5ベースのブローカーでは 47% です。
先ほど説明したように、コンシューマーグループの数、バッチサイズ、インスタンスサイズによってパフォーマンスの向上度合が異なる場合があります。 MSK Sizing and Pricing を参照して、ユースケースに応じた M7g のパフォーマンスの向上度合を計算するか、M7g インスタンスベースのクラスターを作成し、ベンチマークを通してメリットを確認することをお勧めします。
コストを削減し、運用上の負担を軽減し、耐障害性を高める
Amazon MSK はローンチ以来、全般的に耐障害性を向上させながら、Kafkaワークロードを費用対効果の高い方法で実行できるようにしてきました。ローンチ初日から、追加のネットワークコストを気にすることなく、複数のアベイラビリティーゾーンでブローカーを運用できるようになりました。私たちは、2022 年10 月に、最大 50% のコストを削減しつつ実質的に無制限のストレージを提供する階層型ストレージをローンチしました。階層型ストレージを使用すると、全体的なストレージコストを節約できるだけでなく、クラスターの全般的な可用性と弾力性も向上します。
この道を歩み続けることで、私たちは現在もパフォーマンスを向上させながら、お客様のコンピューティングコストを削減しています。M7g インスタンスによって、Amazon MSK は同様のサイズの M5 インスタンスと比較してコンピューティングコストを 24% 節約できます。Amazon MSK に移行することで、Amazon MSK Connect、Amazon MSK Replicator、Kafka の自動バージョンアップグレードなどの機能を使用して、運用上のオーバーヘッドを削減できるだけでなく、耐障害性を向上させ、インフラストラクチャコストを削減できます。
価格とリージョン
Amazon MSK の M7g インスタンスは、現在、米国 (オハイオ、バージニア北部、北カリフォルニア、オレゴン) 、アジアパシフィック (ハイデラバード、ムンバイ、ソウル、シンガポール、シドニー、東京) 、カナダ (中部)、欧州 (アイルランド、ロンドン、スペイン、ストックホルム) リージョンでご利用いただけます。
Graivton3ベースのインスタンスとAmazon MSKの価格設定については、Amazon MSK の料金表を参照してください。
まとめ
本投稿では、Graviton ベースの M7g インスタンスを使用することで達成できたパフォーマンスの向上について説明しました。これらのインスタンスは、Amazon MSK ワークロードにおける同サイズの M5 インスタンスと比較して、読み取りと書き込みのスループットを大幅に向上させることができます。まずは、AWS マネジメントコンソールを使用して、 M7g ブローカーで新しいクラスターを作成しましょう。詳細については、ドキュメントをご確認ください。
著者について
Sai Maddali は AWS の製品管理担当シニアマネージャーで、Amazon MSK の製品チームを率いています。彼は顧客のニーズを理解し、テクノロジーを使って顧客が革新的なアプリケーションを構築できるようにするサービスを提供することに情熱を注いでいます。仕事以外にも、旅行、料理、ランニングを楽しんでいます。
Umesh は AWS のストリーミングソリューションアーキテクトです。彼は AWS の顧客と協力して、リアルタイムのデータ処理システムを設計および構築しています。彼は、データ分析システムの設計、設計、開発を含むソフトウェアエンジニアリングで13年の実務経験があります。
Lanre Afod は、AWS のグローバル金融サービスに焦点を当てたソリューションアーキテクトです。お客様が、安全に、スケーラブルで、可用性が高く、回復力のあるアーキテクチャを AWS クラウド内にデプロイできるよう支援することに情熱を注いでいます。
翻訳はソリューションアーキテクトの榎本が担当いたしました。原文はこちらです。