SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

大規模解析サービスを支えるGCP活用事例

GCPとAWSのマルチクラウドで構築する、大規模解析サービスのシステム全体像

大規模解析サービスを支えるGCP活用事例 第2回


GCPを活用して大規模解析サービスを構成する(2)

dbコンポーネント

 大規模解析サービスでは、今まで説明してきたコンポーネントに対応する以下のようなDBが必要となります。

  • リアルタイムな解析に利用するDB
  • ニアリアルタイムな解析に利用するDB
  • サイト管理者の管理画面で利用するDB
  • 更新頻度が比較的高くないデータを高速に読み出すためのキャッシュDB
  • 解析処理など、一時格納で使うキューイング用のDB(先ほど説明した解析キューもここに入ります)

 ここでのポイントは、用途に応じて利用するDBを使い分けることです。例えば、リアルタイムな解析に利用するDBでは、さまざまな構造のデータの解析をリアルタイムに行わなければいけないという特性から、以下が要件になります。

  • スキーマレスで高いスループット、低レイテンシで読み込み、書き込みができる

 また、負荷(データのスループット)が想像できないことから、以下の2点が要件になります。

  • DBのパフォーマンスアップが比較的簡単にできること
  • データ容量を比較的簡単に増やせること

 この要件をふまえると、リアルタイムな解析に利用するDBにはCloud Bigtableが適していそうです。

 KARTEではCloud Bigtable、BigQuery、Cloud Pub/Sub、MongoDB、Redis、CloudSpanner、CloudDatastoreなどを使い分けています。どのように使い分けているかは次回紹介します。

図6 

trackerコンポーネント

 trackerというJavaScriptのファイルを、エンドユーザに配布するための仕組みはどう実現すればいいでしょうか。自分たちでGCE+Autoscaling+Cloud Load Balancingをという仕組みを構築し、Webサーバから配信することも可能ですが、Content Delivery Network(CDN)という仕組みを使うのが一般的だと思います。

 GCPではCloud CDN という形でCDNがフルマネージドで提供されており、trackerを保存するGoogle Cloud Storage(GCS)と Cloud Load Balancingとを組み合わせることで比較的簡単にCDNから配信が可能です。

 trackerコンポーネントはGoogle Cloud Storage(GCS)+Cloud Load Balancing+Cloud CDNで構成します。

図7 

監視について

 各コンポーネントでは、アベイラビリティをできるだけ高められるような構成を取っているという説明をしてきました。

 問題が起きた時には人手を介さず自動で復旧するように構成していくのが理想になりますが、全てを自動化するのはとても難しいことです。

 現実的にはいくつかの問題においては人が何らかの対応をすることになると思いますが、問題に気づくことができなければ、対応のしようがありません。

 つまり、大規模解析サービスを提供していく上で「サービスを監視し、問題を通知する」仕組みはとても重要になります。

 GCPにはStackdriverという監視サービスが存在します。Stackdriverでは外形監視、症状監視からログ監視までが可能で、監視結果に応じてSMSやslackなどの通知先に通知することができます。

 このような監視サービスを利用することで、予期できない問題に素早く気づくことが可能となり、大規模解析サービスのコンポーネントで何か問題が起きた時に、素早い対応が可能となります。

図8 

次のページ
マルチクラウドで大規模解析サービスを構成する

この記事は参考になりましたか?

大規模解析サービスを支えるGCP活用事例連載記事一覧

もっと読む

この記事の著者

竹村尚彦(株式会社プレイド)(タケムラ ナオヒコ)

 株式会社プレイド エンジニア 2014年からプレイドで、インフラを中心にKARTEの裏側を全般的に担当。 プレイド入社前はNECにてクラウドサービスの立ち上げにエンジニアとして従事。 2011年、同志社大学工学部を卒業。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10401 2017/10/05 11:50

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー