/ #クラウド #テクノロジー 

【GCP】Cloud Pub/Sub 初心者向け情報と使用料金の検証

GCPのCloud Pub/Subってそもそも何?
キューイングに使えるって聞いたけどどうなの?
使用料金は?レイテンシー速度とか大丈夫なの?

今回は初心者向けにこんな疑問に答えます。
メッセージキューシステムを使いたい時に、
今はクラウドをまずは第一候補として考えるのがベストです。
GCPのCloud Pub/Subはこのキューとして使えるので、色々調べてみました。

目次

  1. Pub/Subってなに?
  2. 特徴
  3. 使用料金の検証
  4. 性能、速度について
  5. まとめ

1. Pub/Subってなに?

Google Cloud Pub/Subはシンプルで巨大な容量まで対応できるキューシステムです。
GCPのインスタンスやBigQuery,Cloud Dataflow等と連携することができます。
高い対応力があり、自動的にスケーリングします。
マネージドサービスなので、Pub/Subの為にインスタンスを立てる必要が無いです。
似たような製品にAmazon Kinesis、Apache Kafkaがあります。

2. 特徴

  • 1 秒あたり数億件のメッセージにまでスケールできる
  • 課金は使用したリソースのみに対して行われます。
  • プロビジョニング不要の自動処理
  • メッセージキューのデータは可用性ゾーン間で同期的に複製される
  • 複数言語、オープン REST/HTTPでメッセージを受信して処理できます。

3.使用料金の検証

料金テーブルは以下のようになっています。

最初の10GBまで無料

次の50TBまで$60
次の100TBまで$50
150TB超で$40

運用にかかる総費用を考えてみます。

データ量は保存と取得の合計です。

計算式はこのような感じです。
1秒あたりの標準的なメッセージ発行率|分|時間|日(R)
典型的なメッセージサイズ、kB(S)
トピックあたりの購読数、N

合計のデータ量はN * R * Sです

例として以下のようなケースを考えてみます。
1秒に1回 2MBのデータ量をキューに保存して、
1秒に1回 1MBのデータ量を取得するとします。

データの出し入れの合計は3MB/sですので
一か月に直すと、3 MB/s × 3600 × 24 × 30 = 7776000MB

これをTBに直すと 7.416 TBになります。

無料枠10GBを引くと、データ量は7.415TBです。

$60/TBの層で、合計料金は $444.90(49,185円) になります。

ちょっと複雑ですね

実際の一般的なそこそこ売れてるアプリのケースを考えてみます。
データ量を保存と取得の合計で考えたとして、
10000人のアクティブユーザで1秒に1KB(最小値)のデータ量が流れるとしましょう。

10000KB -> 約10MBとして
10 MB/s × 3600 × 24 × 30 = 24.71TB
24.71TB × $60 = $1482.6(163,923円)

そこそこしますが、これをMYSQLなど自前でキューしようとしたら、
インスタンスの分散や大容量のストレージが必要なので、
もっと料金が高くついて現実的ではありません。
PubSubのマネージドサービスを選択するのがベストだと思います。

5. 性能、速度について

パブリッシャーのスループット 1 分あたり 60,000,000 kB(1,000 MB/秒)
サブスクライバーのスループット 1 分あたり 120,000,000 kB(2,000 MB/秒

これがデフォルトの割り当て制限で、追加で引き上げられるみたいですね

デフォルトの制限で考えたとして、
5万人が毎秒サブスクライブして40kbのメッセージが捌ける 。

データ量を少なく見積もる場合は

50万人が毎秒サブスクライブして4kbのメッセージが捌けますね。

メッセージのデータ量にもよりますが、
アクティブユーザを5-50万人も捌けるのであれば、
性能的にも十分なスループットを有していますね。

実際のアプリに使っても大丈夫そうです。

まとめ

今回はGCPのPub/Subについて主に料金と速度について検証してみました。

実際に業務に使えるのかも検証したかったので、今回具体的に料金を計算してみました。
そこそこしますが、オンプレでKafkaを構築するよりも格段に簡単で安く構築できそうです。
Pub/Subを検討している方は計算方法などを参考にしていただけたらと思います。

このブログではフリーランス情報やプログラミング情報の発信を
続けていこうと思うのでぜひ応援お願いします。
また、Twitterでも日々の為になる技術情報やフリーランスについての
有益な情報をつぶやくので、いいなと思った方はTwitterのフォローをお願いします。

ブログの著者:IT業界10年以上のベテランフリーランスエンジニア。
会社員時代に比べ年収2.5倍にUP。
AWSとGCPの両方でゲーム系インフラの構築,運用と
C#とPHPでのサーバープログラミングの二刀流で絶賛稼働中。
有益なIT情報を発信出来きるように日々IT情報収集が日課です。
ブログではフリーランスやIT情報を毎日更新中です。

クラウドランス 望月 のポートフォリオサイト

またブログに関する感想やご意見、応援などがありましたら、
こちらから自分宛てにTweetして頂ければと思います。