Amazon S3のライバル? Google Cloud Storageに触れてみる

2015年3月30日(月)
出張 純也(でばり じゅんや)

コマンドラインからGCSを利用する

ここまでWebインターフェースからGCSを利用する手順を紹介しましたが、コマンドラインから利用する方法もご紹介します。Webインターフェースでは権限の設定やファイル公開の設定は個別に行わなければならないのですが、コマンドラインを利用するとバケット単位で公開設定ができたり、ファイルのアップロード時点にメタデータを指定できたりと、利点が多く存在します。

コマンドラインでGCSを利用するためには、gsutil をインストールする必要があります。連載第1回の「GCEで仮想マシンを作る」で紹介したgcloudをインストールすると、同時にgsutil もインストールされています。gsutil 単体でも配布はされていますが、バージョンが古いため、gsutil単体でのインストールはせずにgcloudをインストールしてください。

それでは、さっそくバケットを作成しましょう。まず、コマンドラインツールでログインしてから、利用するプロジェクトを設定します。

$ gcloud auth login
$ gcloud config set project <プロジェクトID>

次に、バケットを作成します。GCSでバケットを扱う際には、「gs://」プロトコルを利用します。cオプションでストレージのタイプを、lオプションでバケットを作成する位置を指定します。ここではWebで作成したものと同様にStandard StorageをASIAに作成します。

$ gsutil mb -c S -l ASIA gs://gcs-test-debari-cli

次に、ファイルをアップロードします。ファイルのアップロードは、cpコマンドを利用します。オプションを設定することで、アップロード時点で公開設定にしておいたり、任意のメタデータを設定したりすることも可能ですが、ここでは単純にアップロードをするだけにします。

$ gsutil cp index.html gs://gcs-test-debari-cli

最後に、ファイルの公開設定を変更します。

$ gsutil acl set public-read gs://gcs-test-debari-cli/index.html

一括で変更をするためにはRオプションを利用するため、バケットのファイル全てを公開設定にする場合は、次のようなコマンドになります。

$ gsutil acl set -R public-read gs://gcs-test-debari-cli/

実際のところ、ファイルの公開設定はアップロード時に指定することもできます。

$ gsutil cp -a public-read index.html gs://gcs-test-debari-cli

Webインターフェースから、結果を確認してみましょう。

コマンドラインで追加したバケットを、ストレージブラウザで確認する

図11:コマンドラインで追加したバケットを、ストレージブラウザで確認する

コマンドラインから追加したバケットが追加されていることがわかります。また、追加したファイルが公開設定になっていることも確認できました(図12)。

コマンドラインで設定した公開設定も反映されている

図12:コマンドラインで設定した公開設定も反映されている

GCSとS3を比較する

GCSにファイルをアップロードできるようになったので、同種のサービスであるAmazon S3と比較してみたいと思います。今回は料金、アップロード速度、ダウンロード速度の3点を比較します。

まずは利用料金から比較していきます。GCSとS3は、いずれもストレージ利用料金とネットワーク利用料金による課金を行っています。本記事では、ストレージの利用料金に着目して比較していきます。

S3には通常のストレージに加えて、GCSのDRAに該当するサービスとして低冗長化ストレージ(RRS)が存在しています。そこで今回は、GCSのStandard Storage、DRA Storage、S3のStandard Storage、RRS Storageの料金を比較します。

なおS3のGlacierに相当するストレージは、GCSには存在していません。Glacierは他のストレージとは扱い方が違うため、ここでは比較の対象とはしていません。

日本での利用を想定して、S3は東京リージョンの値段で比較を行います。GCSはリージョン別の値段体系は存在していません。また、S3には利用すれば利用するほど安くなっていくボリュームディスカウントの仕組みがあり、月あたりの利用量が5,000TB以上になった時に最も安くなります。一方、GCSにはボリュームディスカウントは存在していません。

GCS vs. Amazon S3料金の比較

〜1TB5,000TB〜
GCS (Standard)$0.026 / GB$0.026 / GB
GCS (DRA)$0.02 / GB$0.02 / GB
S3 (Standard)$0.0330 / GB$0.0302 / GB
S3 (RRS)$0.0264 / GB$0.0242 / GB

Standardな構成に着目すると、S3が最も安くなる5,000TB以上利用した場合よりも、GCSの方が安価に利用できることがわかります。安価な方の構成でも同様で、GCSの方が低コストとなっているようです。

次に、アップロード速度の比較してみましょう。GCS、S3両者ともStandard Storageで作成し、東京での利用を想定します。GCSのバケットはASIAに作成し、S3のバケットは東京リージョンに作成します。アップロードするファイルのサイズは1GBとして、東京都内にインスタンスのある第3のクラウドサービスからのアップロード時間で比較をします。計測は10回行い、平均値による比較を行います。

GCS vs. Amazon S3アップロード速度の比較

計測結果
GCS17.856秒
S31分28.246秒

アップロード速度については、GCSの方が速いという結果になりました。

次は、ダウンロード速度の比較を行います。アップロードの比較に用いたファイルをHTTPで公開し、これをダウンロードすることにします。GCSにはCDNがついているため、AWSのCDNであるAmazon CloudFrontとも比較してみました。

実験のために、本記事でGCSにアップロードしたものと同じindex.htmlをS3にアップロードし、CloudFront経由、およびS3経由でダウンロードできるように設定しました。GCSではデフォルトでいくつかのメタタグが自動的に設定されるため、S3でも同じタグを設定します。こちらも、東京都内にインスタンスのある第3のクラウドサービスから1,000回ずつ接続して接続時間を測定し、平均値を計算しました。

GCS vs. Amazon S3ダウンロード速度の比較

計測結果
GCS4.453ミリ秒
S319.596ミリ秒
CloudFront7.270ミリ秒

こちらも、GCSが一番速いという結果になりました。GCSが東京にデータセンターを持っていない点を考慮すると、相当速いと思います。全世界に大量のコンテンツを配信し続けるGoogleのCDNは、かなり強力なようです。

著者
出張 純也(でばり じゅんや)
株式会社ゴーガ エンジニア
大阪大学大学院情報科学研究科博士後期課程修了。博士(情報科学)。大学院ではソフトウェア開発におけるプロジェクト進行データをマイニングしてプロジェクト管理に役立てる研究に従事する。研究で得た多くのことを活かすべくゴーガに入社。日本酒が好きで、日本酒好き仲間を増やすべく勉強中。実は表千家茶通箱の免状を持っている。情報処理学会会員。O型のさそり座。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています