安いと噂のGCP、どれくらい安いのか！そして、それでもAWSを使う理由

こんにちは。

先日、とある展示会でGCP安いですよ～という話を聞き、どれくらい安いのか知りたくなりました。普段、AWSを使っているので、とっても気になりました。
そして、それでもAWSを使う理由はなんだろうといろいろ考えてみました。

# さて、どれを比較しようか

GCPもAWSもたくさんのサービスがあります。
全てのサービスを比較してもたくさんありすぎて大変なので、使用する金額が多いものを選んでその金額を比較したいと思います。
Amazonの公式( http://www.slideshare.net/AmazonWebServicesJapan/20150519-billing/16 )によると

 - VirtualMachine
 - Database

の使用金額が多いようです。
VirtualMachineで60%前後、Databaseで30%前後使われているようです。
この２つの金額を比較することで、使用する料金の90%ほどを比較したことになるので、よさそうです。

なお、料金計算はそれぞれが簡易計算ツールを公開しているので、１ヶ月分の金額を計算し、比較します。
AWS:http://calculator.s3.amazonaws.com/index.html?lng=ja_JP#
GCP:https://cloud.google.com/products/calculator/?hl=ja#

# 比較

AWSは米国東部(バージニア)リージョン、GCPは米国リージョンで１ヶ月稼働した時の料金で比較しています。

## VirtualMachine

GCPは「Google Compute Engine」、AWSは「Amazon Elastic Compute Cloud(Amazon EC2)」という名前のサービスで提供されています。
インスタンスの規模で比較してみます。

| | AWS | GCP | 率(AWS/GCP) |
|----|----|----|----|
| 高[32CPU,208-244GB Mem,375GB SSD * 2] | $2295.81(r3.8xlarge) | $1194.43(n1-highmem-32) | 1.92 |
| 中[8CPU,30-32GB Mem,375GB SSD] | $387.68(m4.2xlarge) | $286.53(n1-standard-8) | 1.35 |
| 低[2CPU,7.5GB Mem,375GB SSD] | $116.11(m3.large) | $133.23(n1-standard-2) | 0.87 |

※[]内はおおよそのスペック。AWSとGCPで全く同じではないので、幅があります。
※()内はインスタンス種別の名称

インスタンスの種類が大きくなると、２倍近く価格の差が出ますね！
小さめのインスタンスだと、AWSのほうが若干安いですが、大きなインスタンスに比べると差額は小さくなりますね。

## Database

GCPは「Cloud SQL」、AWSは「Amazon Relational Database Service(Amazon RDS)」という名前のサービスで提供されています。
こちらも、インスタンスの規模で比較してみます。

| | AWS | GCP | 率(AWS/GCP) |
|----|----|----|----|
| 中[15-16GB] | $564.68(db.m3.xlarge) | $1103.46(D32) | 0.51 |
| 低[4GB] | $122.56(db.t2.medium) | $294.05(D8) | 0.42 |

※[]内はおおよそのスペック。AWSとGCPで全く同じではないので、幅があります。GCPはCPU数が公開されていないので未記入。
※()内はインスタンス種別の名称

おっと、Databaseは逆転！AWSのほうが２倍程度安いですね！
比較に"高"がありませんが、GCPは最高のインスタンスが"中"で出てきているD32なので、高の比較ができませんでした。

# それぞれを選択する理由

金額の比較でわかった、それぞれに有利なのはどんな場合でしょう。

## GCPを使う理由

#### VirtualMachineをたくさん使う

大きなインスタンスになると２倍近くGCPのほうが安いです。
最初に紹介したように、利用料金の中でVirtualMachineが占める割合が大きくなるので、全体支払い金額への影響がデカイです。

## AWSを使う理由

#### 大きなDBが必要な場合

先ほども少し触れましたが、GCPのCloud SQLの最大インスタンスはD32というインスタンスの種類でメモリ容量は16GBです。
それなりの大きさではありますが、ちょっと心もとないサイズですね。
一方、AWSのRDSはメモリが最大で244GBまで選択できます。
CPU数は40個のインスタンスもあります。
なお、Cloud SQLにはCPU数の記述がないので、こちらで比較することはできません。

既存システムの置き換えで、すでに16GBより多いメモリで運用している場合は、GCPのCloud SQLでは対応できないので、AWSを選択することになると思います。

#### MySQL以外のRDBMSを使いたい場合

GCPのCloud SQLはMySQLしかサポートしていません。
AWSのRDSはMySQLだけではなく、PostgreSQL、Oracle、SQLServerに加え、Auroraという独自のサービスも提供しています。
既存のシステムの置き換える場合など、MySQLではないDBを使いたい場合もたくさんあると思います。
その場合、AWSは上記選択肢がありますが、GCPの場合、MySQLしか選択できません。
DBを置き換えることになると移行するコストがかかることになるので、同じDBを選択できることのメリットはありそうです。

### その他のAWSを使う理由

VirtualMachine、Database以外の理由でもAWSを使う理由として、こんなのもありますね。

### 東京リージョンがほしい

GCPには東京リージョンがありません。
当然、距離により性能の差がでるので、東京リージョンがあるAWSを選択する理由にもなりそうです。

### AWS独自のサービスを使いたい場合

やはり、AWSは先行しているので、GCPにないサービスもたくさんあります。
Lambda、RedShift、、など。
これら、独自のサービスが非常に有効な場合、AWSを使う動機になるでしょう。

# 結論

と、いうように、構築するシステムの特性によって、どちらを採用すべきか違ってきます。
VirtualMachineの金額は噂(?)通り、GCPのほうが安いですが、それだけではなく、他の要素も考えて決定するのが良いと思います。

# おまけ

VirtualMachineとDatabaseの金額を比較しましたが、実はある種のサービスを提供すると、金額が非常に高くなってしまいます。
それは、動画配信サイトやファイル共有サービスのような、ネットワーク上をたくさんデータが流れるサービスを構築する場合、VirtualMachineやDatabaseよりも、ネットワーク利用料が支配的になってしまいます。
そんなときは、NTTCommunicationsのCloud'nというクラウドサービスを検討するとよいかもしれません。
なんと、このクラウドサービス、通信料金が**無料**です！！
一度、話を聞いたことがあるのですが、「通信回線を持ってる会社なので、これができるんです！」と言ってました。
ネットワークをたくさん使うサービスの構築時、検討してみるのもよいかもしれません。