Google Compute Engineで仮想マシンを作る
GCEとAmazon EC2を比較する
一通りGCEを起動までできるようになったところで、同種のサービスであるAmazon EC2との比較をしてみたいと思います。本記事では特に、料金体系、パフォーマンス、日本から見た時のネットワーク性能の3点を比較してみたいと思います。
まず料金についてですが、両者は課金の単位が異なっています。GCEは分単位での課金で、最小課金の時間は10分間です。これは、起動後まず10分ぶんの課金が発生し、10分以降は1分単位で課金されるようになるということです。例えば、8分間だけ起動する場合は10分間の料金が課金され、12分起動すると12分間の料金が課金されることになります。
これに対してAmazon EC2は、1時間単位で課金がされる仕組みです。起動時間が8分でも12分でも59分でも、同じ1時間分の料金を支払うことになります。
実際にほぼ同じ性能のインスタンス同士で、時間当たりの料金を比較します。GCEの「n1-standard-1」インスタンスと、EC2の「m3.medium」インスタンスがほぼ同性能なので、これらの1時間あたりの料金を比較します。いずれも2014年12月現在、かつアジア地域(AWSは東京リージョン、GCPはasia-east1)の料金です。
インスタンスタイプ | コア数 | メモリ | 料金 | |
---|---|---|---|---|
GCE | n1-standard-1 | 1-core | 3.75 GB | $0.069 / 1時間 |
EC2 | m3.medium | 1-core | 3.75 GB | $0.101 / 1時間 |
利用料金はインスタンスのぶんだけでなく、ネットワークやディスクの利用料金など他にも考慮すべき点があり、単純に比較するべきではありませんが、単位時間あたりの利用料金ではGCEの方が低め、ということになりそうです。
次はパフォーマンスの調査を行います。同じ条件で比較を行うため、先ほどと同様にGCEはn1-standard-1インスタンスを、EC2ではm3.mediumインスタンスを利用します。OSによる差がないように、どちらもCentOS 7を利用し、単純な計算の速度を比較します。計算はpythonのtimeitモジュールによって行います。
実行結果は次の通りです。
GCE | EC2 | |
---|---|---|
計測結果 | 19.1 マイクロ秒 / 回 | 41.5 マイクロ秒 / 回 |
以上の結果から、文字列の結合という単純な処理においてはGCEが倍程度のスピードであることがわかりました。CPUはいずれも1コアとのことですが、CPUの性能などが異なっている可能性があり、こちらも単純に比較するのは難しそうです。
最後に、日本から接続するときのネットワーク速度を比較します。パフォーマンス調査に利用したものと同じインスタンスにそれぞれ nginx をインストールし、同じHTMLを返すように設定し、東京都内にあるゴーガ社と、東京都内にインスタンスのある第3のクラウドサービスから、それぞれ1000回ずつGETして、平均速度を比較しました。
接続元\接続先 | GCE | EC2 |
---|---|---|
ゴーガ | 94.881 ミリ秒 / 回 | 45.396 ミリ秒 / 回 |
他社クラウド | 80.728 ミリ秒 / 回 | 9.374 ミリ秒 / 回 |
接続元がゴーガから接続した場合と、他社クラウドから接続した場合、いずれの場合においてもGCEよりEC2の方が高速に接続できているようです。ECのほうは、東京にリージョンを持っていることが影響しているかもしれません。
上記の結果からただちにGCEとEC2のどちらが優れていると結論づけられるわけではありませんが、クラウドサービスを構築する際に参考にしていただけますと幸いです。
オンプレからGCPへ
本記事ではGoogle Cloud Platform全体の紹介と、Google Compute Engineの紹介、および利用方法を紹介しました。
今後はこれまでオンプレ環境で構築されてきたシステムが、続々とクラウドにリプレースされていくと思われます。オンプレ環境をGCPにリプレースする場合は、単純に全てをGoogle Compute Engineで置き換えるのは非効率で、機能ごとに適切なサービスを選択していく必要があります。例えば、以下のような利用方法が考えられます。
- Webインターフェース部分にはCompute Engineを利用
- ファイルやログの格納にはGoogle Cloud Storageを利用
- ログの集計にはGoogle Big Queryを利用
- データベースサーバはGoogle Cloud SQLやGoogle Cloud Datastoreを利用
本連載では、引き続きこれらのサービスの解説や利用方法の紹介などを行っていく予定です。