Pub/Sub Lite 予約を使って低コストで簡単にスループット容量を管理
Google Cloud Japan Team
※この投稿は米国時間 2021 年 9 月 28 日に、Google Cloud blog に投稿されたものの抄訳です。
ストリーミング分析のために低コストのマネージド メッセージ サービスが必要なら、Pub/Sub Lite をお試しください。 Lite は Pub/Sub より 10 倍も安くご利用いただけます。 ただし、これまでは価格が安い分、手間がかかっていました。すべてのトピックのパーティションごとに読み取りと書き込みのスループット容量を管理しなければなりませんでした。 単一パーティションのトピックが10 個ある場合、容量使用率を書き込みと読み込みでそれぞれ 10 個ずつ監視していないと、容量が足りなくなる可能性がありました。
予約機能の開始
Google は、この点でも改善の余地があると考えていました。そこで、多くのトピックのスループット容量を 1 つの数字で管理できるPub/Sub Lite 予約をリリースしました。 予約とは、スループット容量のリージョン別プールのことです。 この容量は、予約と同じプロジェクトやリージョン内の任意のトピックで、読み取りオペレーションと書き込みオペレーションのどちらに対しても使用できます。これは、マシンのクラスタをプロビジョニングし、トラフィックを処理させる機能と考えることができます。 ただし、具体的なクラスタの代わりに 1 つの数字で処理に必要なリソースを管理します。
当然ながら、作業負荷が軽減されるのは素晴らしいことです。コストの節約になるならなおさらです。 予約を設定しない場合、各トピックのパーティションをピーク時のスループットに合わせてプロビジョニングする必要があります。 トラフィックの変動にもよりますが、これはほとんどの時間帯で、プロビジョニングされた容量が半分以下しか使用されないことを意味します。ですが、未使用の容量に対してもコストは発生します。
予約を設定すれば、少ない予備容量で同じようなトラフィックの急増に対応できます。 通常、スループットのピークは、トピック間で完全に相関しているわけではありません。そうであれば、1 回の予約におけるスループットの集約値のピークは、時間平均で比較した場合、個々のトピックのピークよりも小さくなります。 これにより、スループットの変動が少なくなり、予備容量の必要性が減ります。
費用削減のために、予約ではパーティションごとの最小容量を明示的に設定する必要はありません。ただし、予約あたりのパーティションの数には制限があります。この制限により、トピック パーティションごとに少なくとも毎秒 1 MiB 分の料金が発生することになります。 これは Pub/Sub の「ゼロへのスケーリング」を実現するものではありませんが、予約がない場合の任意のパーティション 1 つにつき毎秒 4 MiB という数字を下回っています。
例
1 日周期のリズムを基本に、ランダムな急増を伴うトラフィック パターンを持つ 3 つのトピックがあるとします。 このトラフィックに対応するために必要な最低限の容量を以下に示します。
「Before(使用前)」では各トピックの使用量急増に対し、個別に容量をプロビジョニングしています。「After(使用後)」では、トラフィックの集約により、ほとんどのピークを減衰させることに成功しています。 実際には、これ以上に多くのピークがあることが予想されるため、ここに示した回数以上のプロビジョニングを行うことになります。 また、トピックの数もおそらくこれより多いでしょう。いずれの場合も、予約の使用による優位性がさらに大きくなります。
予約は常に最適な方法か
容量を共有できるという利点の反面、「ノイジー ネイバー(うるさい隣人)」といわれる問題があります。 あるトピックのトラフィックがピークを迎えることで、他のトピックが容量不足になるというものです。 アプリケーションが安定したレイテンシと高可用性に決定的に依存している場合、これは大きな問題になります。 このような場合、別の予約を設定することで他に影響を及ぼす「うるさい」トピックを分離できます。さらに、個々のトピックにスループットの上限を設定することで、他に及ぼす影響を制限できます。
この新たな機能により、毎秒数十メガバイトのストリーミングを低コストで行う必要がある場合、Lite は従来にも増して有用な選択肢となりました。
予約機能は、すべての Pub/Sub Lite ユーザー向けに一般提供されています。 また、予約は既存のトピックに対しても使用できます。Cloud Console で Pub/Sub Lite の予約を作成して、お金と時間の節約を始めましょう。また、その成果を pubsub-lite-helpline@google.com までご報告ください。
- Google Cloud Pub/Sub プロダクト マネージャー Kir Titievsky