ゲーム開発が変わる!Google Cloud Platform実践インフラ構築 第2章:書籍転載(3/3 ページ)
あらゆる書籍の中から、Windows Server Insider読者に有用だと考えられる情報をピックアップして転載する本連載。今回は、ゲームインフラエンジニア向けのGoogleのクラウドサービス「Google Cloud Platform」の中からGoogle Cloud Platformの概要ならびに料金に関する章を転載する。
オンプレミスとGoogle Cloud Platformの比較
一般論としてのGCPとオンプレミスとの比較
まずGCPとオンプレミスを比較する前に、一般論としてのクラウドとオンプレミスとの比較についておさらいしておきましょう。自明のことではありますが、まずこれらの違いを理解しておくことは非常に重要です。
世間一般には柔軟性やスケーラビリティの観点でトレンドとしてはクラウドへ向いていますが、例えば「負荷が平準的で予測可能であり、また極めてディスクIOへの要求性能が高い」などのケースではオンプレミスの方が優位な事もあり、改めて整理しておくべきでしょう。
クラウドの優位性 | オンプレミスの優位性 |
---|---|
◯コストや調達が柔軟で迅速に行える ◯インフラ運用コストを極小化できる |
◯ハードウェア構成の自由度が高い ◯障害時に追跡を行いやすい |
一般論として(GCPに限らない)のクラウドとオンプレミスの比較 |
●ゲームインフラとしてのGCPとオンプレミスとの比較
次にもう一歩踏み込んで、ゲームインフラとしてGCPとオンプレミスを比較してみます。単純に言うと、スケーラビリティや規模の柔軟性が必要なケースはGCP、細かなチューニングが必要なケースはオンプレミスという使い分けになるかと思います。ただしAWSやGCPなどクラウドの性能も日々向上しているため、ベンチマークを確認するなどして定期的に最適なインフラのポートフォリオについて検討することは重要でしょう。
なお、以下の比較表ではGCPの優位な項目が多いように見えますが、本質は項目数ではなく自社で取り組もうとしている課題を解決しようとした際に、自社にとって何が重要かということです。他のサービスとの比較の際にも言えることですが。単なるマルバツ表は意味がなく、自社のゲームインフラの課題解決や改善にどれだけ意味があるのかという観点で考えることが重要です。
GCPが向いているケース | オンプレミスが向いているケース |
---|---|
◯コストや調達が柔軟で迅速に行いたい ◯インフラメンテナンスを極小化したい ◯グローバルなタイトルで活用したい ◯ユーザ数の増減が激しい ◯コストを下げたい ◯インフラ保守の計画停止をなくしたい ◯高負荷でも安定したネットワークを使いたい |
◯ハードウェアからOSまで細かくチューニングする必要がある ◯できるだけ固定費で使いたい ◯既存資産を既に所有している |
GCPとオンプレミスの比較 |
●GCEのベンチマークとコスト比較
本章最後の項目として、ベンチマークとコストの比較について紹介します。当然ですがベンチマークはあくまでも特定条件下でのスコアでしかないため注意が必要です。また今日比較したベンチマークとコストが半年後には変わっていた、などの事態もあるため定期的な情報収集が必要です。
なお本項目のベンチマークやROI(投資対効果)については主として吉積情報株式会社(以下、吉積情報)提供の情報を参照しています。同社はGCPのベンチマークとコスト比較を定期的に行いその結果を公開していますので、最新の情報についてはそのWebページを参照して下さい。
ベンチマーク
吉積情報による各クラウドサービスのベンチマーク
吉積情報はGCP、 AWS、Azureの3つのクラウドサービスについて性能とコストパフォーマンスについてベンチマークとして定点観測しています。これはUnixBenchというツールを用いて、各サービスの標準的な1コアのサーバをそのまま使って計測しています。
ベンチマーク測定方法
GCE、EC2、Azureで以下のVMインスタンスを作成しUnixBenchを用いて測定しています。価格に関してはインスタンス利用料のみを算出し1$=120円で試算しています。
GCE | EC2 | Azure | |
---|---|---|---|
インスタンスタイプ | n1-standard-1 | m3.medium | Standard A1 |
リージョン | asia-east1-a | ap-northeast-1 | 日本(東) |
OS | Ubuntu14.04 LTS | Ubuntu14.04 LTS | Ubuntu14.04 LTS |
ベンチマーク対象のインスタンススペック |
ベンチマーク結果
ベンチマーク結果をみると、GCEは価格面でAzureよりは少々高価ではありますがEC2よりもかなり安価です。性能面ではEC2、Azureを大きく引き離しています。浮動小数点演算性能やファイルコピー性能など個別のベンチマークもGCEはおおむね他のサービスを大きく上回る結果を出しており、基本性能の高さが伺えます。もちろんUnixBenchの結果がアプリケーションの性能に直結する訳ではありませんが、エンタープライズシステム用途のサーバと異なり台数規模や要求性能がよりシビアであるゲームインフラにおいて、基本性能は一つの重要ではないでしょうか。ベンチマークの詳細は前述の吉積情報のWebサイトを参照下さい。
GCE | EC2 | Azure | |
---|---|---|---|
スコア | 1897.4点 | 271.3点 | 754.6点 |
課金額 | 4.0円 | 11.5円 | 3.0円 |
2015年12月4日15時時点のベンチマーク(スコアと課金額) |
ベンチマーク推移
各サービスの性能は日々向上しているため、ある時点のみのベンチマークのみではサービスとしての特徴として判断するのは難しいかと思いますが、吉積情報のサイトでは2014年からのベンチマーク推移も公開しています。以下に2015年の一年間でのベンチマーク推移について紹介します。全般に価格は全サービス共に下降傾向にあり、性能面ではGCEが徐々にスコアを伸ばしていることが読み取れます。
PerfKit Benchmarker
またUnixBench以外にもGoogle社が複数のクラウドサービス対応の「PerfKit Benchmarker」というベンチマークツールを無償公開していますので、自社でベンチマークを取得する際にはこういったツールを活用するのもよいでしょう。
コスト比較
コストについての比較もベンチマークと同じく正確に評価するのは意外と難しいものです。これは単純なベンチマークと実際のユースケースは異なること、クラウドベンダ毎の料金体系や割引の仕組みが異なることに起因しています。
GCEの料金体系の特徴についてのおさらい
まず、ここまでに紹介したGCEの料金体系の特徴について以下にまとめます。GCEの料金体系は単価の安さと細やかで柔軟な課金の仕組みが特徴です。
- 一分単位の課金
- 自動的に適用される割引と柔軟な料金体系
- デフォルトで70%割引となるPreemptible VM
- カスタムマシンタイプによるオーバースペックなインスタンスコストの節約
長期予約契約のメリットとデメリット
AWSやAzureなどではリザーブドインスタンスのように予約契約や先払いのような契約オプションがあります。こちらはあらかじめ決められたインスタンスを先に予約契約しておけばインスタンスを割引して利用できるという契約オプションです。メリットはインスタンスを安く利用できる点です。
ではデメリットはなんでしょうか。それは先に購入リソースを決める必要があるため、購買の柔軟性が失われることです。一般的な企業システムではインフラ負荷変動のボラティリティ(変動幅)が相対的に低いため、見積りが大きくブレるリスクは小さいですが、特にボラティリティの高いゲームインフラにおいては大きなリスクとなります。リスクを更に掘り下げると以下の3点となります。
- 将来のインフラに必要なキャパシティはゲームが流行するか否かに大きく依存し、あらかじめ予測することは極めて難しい。そのため余裕を持ったサイジングを行えば無駄な投資になるリスクが増え、最小構成でサイジングした場合は将来の増加分に対して予約契約割引を適用できないためコスト高となるリスクがある。
- いまだに広義でのムーアの法則は継続されており、コンピューティング単価は継続的に低下している。そのため長期での予約や先払いは現在レートでコンピューティング能力を固定購入することとなり、本質的に将来期待される市場での値下がりの可能性を放棄することになる。
- 魅力的な新たなテクノロジやサービスが出た際に切り替えることが難しくなる。
メリット | デメリット |
---|---|
◯割引を受けられる | ◯ゲームインフラはサイジング・需要予測・見積が難しい ◯予約リソースの陳腐化 ◯ベンダロックインリスク |
長期予約契約のメリット・デメリットのまとめ |
逆に言えば中期的に変動幅が小さいと予測されるシステムに関しては、小さなリスクでリザーブドインスタンスのような予約契約による割引を享受することができます。
GCPは月単位で利用した量に対しての自動割引になるため、前述のデメリットがほとんどありません。必要最低限の構成からはじめ、その後拡張していく場合に、追加したVMにも月単位で最適な割引が適用されます。またVMを減らしても割引率に変わりはありません。中途解約のリスクも小さく、他のクラウドへの移行も容易です。
GCPはゲームインフラという観点で単価が安いというだけでなく、極めて柔軟性の高い割引設計となっています。
価格比較シミュレーション
Google社が公開している価格比較シミュレーションを紹介します。見積前提やサイジングの根拠、見積ツールへのリンクなど事細かな試算が行われていますが、ここではサマリと重要なポイントだけをします。詳細についてはGoogle社のブログを参照下さい(「[GCP] クラウドの料金体系を理解する: 第 1 部 − 仮想コンピュータ編」)。なおこのシミュレーションはUSリージョンの2015年1月12日時点での情報に基づいて行われていますがその他の地域においても比較の本質は変わらないかと思います。
●価格比較シナリオ
シミュレーションの想定シナリオは、以下のバックエンドサーバをクラウドで構築する際の費用を試算するという内容です。
- 画像共有モバイルアプリ
- クラウドをバックエンドサーバとして利用
- 500万の月間アクティブユーザ
上記のサービスを提供するのに必要なシステム構成を想定し、GCPとAWSそれぞれで月平均コストを算出して比較します。
●想定構成
本書では細かなサイジングと設計プロセスは割愛しますが、このシステムバックエンドでは以下の4つのコンポーネントを想定しています。
コンポーネント | 用途 | インスタンス数 |
---|---|---|
APIフロントエンドサーバ | モバイルからのリクエスト処理 | 4インスタンス |
フロントエンドWebサーバ | マーケティング用Webサーバ | 2インスタンス |
アプリケーションサーバ | 画像処理とストレージ制御 | 4インスタンス |
DBサーバ | Cassandraクラスタ | 5インスタンス |
料金シミュレーション結果
これらの前提で料金をシミュレーションした結果が以下の表です。AWSのリザーブドインスタンスの1年分がGCPの価格とほぼ同等となっています。また3年分のインスタンスを予約して、料金を前払いすることでAWSはGCPと比較して40%程度安くインスタンスを利用することができます。
支払いパターン | 支払額 | 実質月額 |
---|---|---|
GCP: オンデマンド | 月額: $2610.90 | $2610.90 |
AWS: オンデマンド | 月額: $4201.68 | $4201.68 |
AWS: 前払いなし: 1年分 | 月額: $2993.00 | $2993.00 |
AWS: 一部前払い: 1年分 | 前払い額: $18164.00 月額: $1093.54 |
$2607.21 |
AWS: 全額前払い: 1年分 | 前払い額: $30,649.00 月額: $0.00 |
$2554.08 |
AWS: 一部前払い: 3年分 | 前払い額: $27,585.00 月額: $897.90 |
$1664.15 |
AWS: 全額前払い: 3年分 | 前払い額: $56,303.00 月額: $0.00 |
$1563.97 |
コスト算出で考慮すべきその他のポイント
コスト比較を行う際に他に考慮すべき点は以下の通りです。主として前払いによるプロジェクトファイナンスと後々の環境変化に対する柔軟性がポイントとなります。
考慮すべき点 | 内容 |
---|---|
期待される値下げ | 一般にテクノロジの向上によりインフラの価格は低下していくものです。例えば2014年にGCPで3回、AWSで2回の値下げが行われています。その結果GCPは2014年の月平均で4.85%値下げされました。リザーブドインスタンスでは契約時の価格に固定されますが、GCPはオンデマンドの課金体系であるため値下げは自動的に適用されます。 |
前払い金の資金コスト | 前払いでコストを支払うことはプロジェクトファイナンスや企業のキャッシュフロー管理に大きな影響があります。一般論として多くの業種での資本コストは毎年〜7%程度であり、前払いでキャッシュを支出することで割引メリットが大きく減ってしまいます。 |
要求キャパシティの変化に対するコスト | ゲームのリリース後にアプリがチューニングされて、インフラへの要求性能がサイジング当初より低下することはよくあります。GCEのオンデマンド値引きの考え方であれば、アプリのチューニング度に応じてインスタンスを減らしても割引率に影響はありません。 |
負荷スパイクに対する設計柔軟性の違い | GCEの値引き体系の柔軟性と起動の速さを上手く活用すると、さらにコストを削減できる可能性があります。平常時とピーク時のサーバ負荷は数十倍から100倍程度に達することもありますが、こうした一時のスパイクに対してはリザーブドインスタンスでの対応は困難です。しかし、GCPであればオンデマンドやPreemptible VMをフル活用できます。GCEのインスタンスは数十秒で起動するためオートスケールやバッチでの運用でも急なアクセススパイクに対応することも可能です。 |
●コスト比較シミュレーションのまとめ
これまでのコストシミュレーションで得られた知見を以下にまとめます。
- オンデマンドインスタンス購入に関してはGCPがAWSよりも40%程度安い
- AWSリザーブドインスタンスの1年分がGCPとほぼ同等
- AWSリザーブドインスタンスの3年分であればGCPと比較して40%程度安い
- ただし長期のリザーブド契約は環境変化に対する柔軟性やプロジェクトファイナンスの観点でリスクがある
コスト比較の観点では「インフラへの性能要求が変化しにくいゲームであれば長期リザーブドインスタンス契約によってコストメリットが出る。性能要求が推測が難しいゲームであればより柔軟なGCPの価格体系にコストメリットがある」と言えるかと思います。
なお筆者の経験では、ゲームインフラのAWSからGCPへの移行によって一般的には20%〜30%のコスト削減が期待できるようです。さらに、ゲームインフラの需要は予測することが難しいため、3年リザーブドを選択するケースはあまりないようです。
ゲームインフラでGCPの見積りを行う際のその他のポイント
一般的にほとんどのクラウドベンダから何らかの見積りツールは提供されていますし、サードパーティによるコスト比較ツールなども出ていますので、単純なコスト算出に困ることは少ないでしょう。
ただし前述の通り各サービスそのものや価格体系の違いによって単純な比較が難しい部分もありますので、注意すべき点について紹介します。
●ネットワークコスト
ネットワークコストの考え方は各クラウドサービスによって違いが大きいため注意が必要です。例えばGCEやEC2ではクラウドからエンドユーザへのデータ転送(Egressデータ転送)に関して課金が発生しますが、国内系のサービスであればデータ転送に対して課金が発生しないものもあります。GCEでは以下のポイントに注意する必要があります。
- 基本的にEgressデータ転送に対しては課金が発生する
- ゾーンをまたいだ通信は課金が発生するが、同一ゾーン内の通信は無料
- 他のGoogleサービスとの連携の際の通信には課金されないものがある
●キャッシュ・CDNコスト
GCPでは以下の3サービスに関してキャッシュ・CDN機能があります。
- GCEのHTTP(S)ロードバランシングのCloud CDN機能
- GAEのエッジキャッシュ機能
- GCSのエッジキャッシュ機能
エッジキャッシュは無料で使えるため、構成によってはAkamaiなどのCDNサービスやキャッシュコンポーネントの一部のコストを軽減できる可能性があります。ただしエッジキャッシュはベストエフォートサービスであり細やかなコンテンツキャッシュコントロールができないなど、AkamaiやAWS CloudFront CDNなどと同じ機能を提供している訳ではないという点には注意が必要です。
またAkamaiなどCDNベンダとGoogleはダイレクト接続されており、これらのベンダとGCPの一部の通信には割引が適用されます。対応ベンダと条件についてはGCPのドキュメントの「CDN Interconnect」を参照して下さい。
その他比較調査レポートやツール
価格見積りツールは各ベンダから出ていますが、ここではいくつかサードパーティの比較ツールやレポートについて紹介します。
●調査会社によるGCPとAWSのコスト比較レポート
The Enterprise Strategy Group社(以下、ESG社)は、GCPとAWSについて詳細な分析レポートを公開しています。単純な単価の比較だけではなく付加オプションやさまざまな利用シナリオに沿ったシミュレーションも多く紹介されています。
●Spotinst社によるクラウド最適化とコスト比較サービス
イスラエルの企業であるSpotinst社はGCPとAWSを効率的に使うための各種ツールを提供しています。AWSの利用データを元にGCPに移行した場合のコストシミュレーションなども行っています。
「書籍転載」
Copyright© Digital Advantage Corp. All Rights Reserved.