クラウドストレージ比較まとめ (Amazon S3・Azure Storage・Google Cloud Storage)

前へ << クラウド サーバレスコンピューティング比較まとめ (AWS Lambda・Azure Functions・Cloud Functions) クラウドデータベース比較 (Amazon RDS・Azure SQL Database・Google Cloud SQL) >> 次へ

Amazon S3 と Azure Storage と Google Cloud Storage

そもそも、クラウド以前のホスティングサービスや VPS においては、 サーバ内部のハードディスクとしてストレージが用意されていました。

しかしながら複数サーバでのストレージ共有をどうするか、 特にクラウドにおいてインスタンスが数百や数千になった場合どうやって共有するか、 またストレージ障害時のフェイルオーバーやバックアップについて、簡単と言える方法はありませんでした。

そして 2006年に Amazon より S3 がリリースされました。主な特徴は下記です。

  • 使った分だけ課金
  • 専用 SDK、専用 API にて操作する
  • 自動的にバックアップを生成
  • 容量無制限
現在では Azure・GCP 各社も似たような特徴を持つストレージサービスを展開しています。 3大クラウドサービスについて、下記のストレージを比較していきましょう。
  • Amazon S3 (Amazon Simple Storage Service)
  • Azure Blob Storage
  • Google Cloud Storage

オブジェクトストレージの特徴

Amazon S3・Azure Blob Storage・Google Cloud Storage などのストレージサービスを、 ここでは「オブジェクトストレージ」と呼ぶことにします。 これはオブジェクトという「ファイル的なモノ」を配置するのに特化したストレージです。

一方で「ファイルストレージ」というものがあります。 これはいわゆる Linux・Windows でよく使われる、 ext4 や NTFS などのファイルシステムを持ったストレージです。

「オブジェクトストレージ」と「ファイルストレージ」の違いは何か。 明確な定義があるわけではないので、全体的な傾向ではありますが、 下記のような制約・制限があると考えます。

  • 単純性。オブジェクト、つまりファイルしかない。ディレクトリ・シンボリックリンク・ハードリンク・デバイスファイル・名前付きパイプなどは存在しない。
  • 単純性。シンプルな操作。例えばオブジェクトへの追記ができない。できるのは GET・PUT・DELETE・RENAME 程度。
  • 単純性。ディレクトリ階層構造の排除。/usr や c:\windows といったディレクトリ・フォルダという概念がない。ぱっと見では /mybacket/dir/subdir/file.txt などと階層構造があるように見えるが、実際はオブジェクト名に "/" が使えるというだけ。
  • 低性能。基本的には遅い。

このような制約・制限をかけてでも欲しかったものは下記です。

  • 拡張性。サイズは無制限。ネットワークの向こう側には数万台・数十万台・数百万台のストレージがある。
  • 冗長性。二重・三重の冗長化。しかし RAID を使わず単純性は維持 (推測)
  • 安価。SSD は使わず HDD を使っている (推測)。

オブジェクトストレージサービス機能比較

オブジェクトストレージサービスの機能を比較します。

- Amazon S3 Azure Blob Storage Google Cloud Storage
ストレージ料金 (東京・1ヶ月あたり・2018/2 調査) $0.025/GB 2.24円/GB $0.023/GB
GET 料金 (東京・2018/2 調査) $0.0037/10,000リクエスト 0.45円/10,000リクエスト $0.004/10,000リクエスト
転送量 (東京・2018/2 調査) $0.14/GB 13.44円/GB $0.14/GB
ストレージ全体容量上限 無制限 実質無制限? (200ストレージアカウント×500TB/ストレージアカウントだが、上限引き上げ申請可能) 無制限 (多分)
オブジェクト数上限 無制限 無制限 無制限
1オブジェクト容量上限 5TB 約4.7TB(?) 5TB
リージョン 作成時に決定 作成時に決定 作成時に決定
レプリケーション クロスリージョンレプリケーション (CRR) ゾーン冗長ストレージ (ZRS), geo 冗長ストレージ (GRS)
バージョニング × (多分)
Webでの公開
Webでの公開 - IP アドレス制限 ◯ Shared Access Signature (SAS)
Webでの公開 - 期限付き公開 ?
Webでの公開 - リダイレクト ? ?
Webでの公開 - 認証 × × ×
Webでの公開 - SSL
ライフサイクル管理 ×?
イベント駆動 ◯ (Lambda) ◯ (Azure Functions) ◯ (Cloud Function)
アクセスログ
マウント FUSE (s3fs, goofys) FUSE FUSE
SQLでオブジェクト内部を検索 Amazon Athena, S3 Select, Glacier Select × ×
DWH エンジンからの検索 Amazon Redshift Spectrum ×? ×?
高速アップロード S3 Transfer Acceleration
大規模データアップロード AWS Snowball, AWS Snowball Edge, AWS Snowmobile × ×
管理画面からのファイル操作

詳細説明

ストレージ料金

- Amazon S3 Azure Blob Storage Google Cloud Storage
ストレージ料金 (東京・1ヶ月あたり・2018/2 調査) $0.025/GB 2.24円/GB $0.023/GB
GET 料金 (東京・2018/2 調査) $0.0037/10,000リクエスト 0.45円/10,000リクエスト $0.004/10,000リクエスト
転送量 (東京・2018/2 調査) $0.14/GB 13.44円/GB $0.14/GB

ストレージ料金は各サービスとも同じような考え方です。さらにおおむね同一の価格帯となっています。

  • ストレージ料金 … オブジェクトを置いておくと費用がかかる。10GB 置くと おおむね 22〜27円/月。
  • リクエスト料金 … GET や PUT をするたびにかかる費用。100万回の GET でおおむね 40〜45円。
  • データ転送料金 … クラウド外にデータを転送した際にかかる費用。100GB ダウンロードするとおおむね 1,304〜1,540円。

ストレージ全体容量上限

- Amazon S3 Azure Blob Storage Google Cloud Storage
ストレージ全体容量上限 無制限 実質無制限? (200ストレージアカウント×500TB/ストレージアカウントだが、上限引き上げ申請可能) 無制限 (多分)

ストレージ全体の容量制限について、Amazon S3 は「無制限」とうたっています。 Azure は制限がありますが、引き上げ申請が可能なので実質無制限と言っていいでしょう。 Google Cloud Storage は無制限とは書いてないのですが、制限があるとも書いてないので、おそらくは無制限です。

オブジェクト数上限

- Amazon S3 Azure Blob Storage Google Cloud Storage
オブジェクト数上限 無制限 無制限 無制限

オブジェクト (≒ファイル) 数の上限はありません。

1オブジェクト容量上限

- Amazon S3 Azure Blob Storage Google Cloud Storage
1オブジェクト容量上限 5TB 約4.7TB(?) 5TB

リージョン

- Amazon S3 Azure Blob Storage Google Cloud Storage
リージョン 作成時に決定 作成時に決定 作成時に決定

オブジェクトを作成する際、どのリージョンに置くかを決める必要があります。 将来的にどうなるかわかりませんが、2018/02 現在ではオブジェクトストレージはリージョン依存なサービスということです。

レプリケーション

- Amazon S3 Azure Blob Storage Google Cloud Storage
レプリケーション クロスリージョンレプリケーション (CRR) ゾーン冗長ストレージ (ZRS), geo 冗長ストレージ (GRS)

バージョニング

- Amazon S3 Azure Blob Storage Google Cloud Storage
バージョニング × (多分)

Webでの公開

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開

ストレージに配置したファイルは、 Web で公開することができます (公開しないこともできます)。 例えば Amazon S3 であれば、

  • http://mybucket.s3.amazonaws.com/hoge.html のような URL で HTML ファイル
  • http://mybucket.s3.amazonaws.com/hoge.png のような URL で画像ファイル

を配置できます。動的な Web システムは無理ですが、静的 Web コンテンツであればだいたいは大丈夫です。

Webでの公開 - IP アドレス制限

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開 - IP アドレス制限 ◯ Shared Access Signature (SAS)

Webでの公開 - 期限付き公開

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開 - 期限付き公開 ?

Webでの公開 - リダイレクト

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開 - リダイレクト ? ?

Webでの公開 - 認証

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開 - 認証 × × ×

Amazon S3・Azure Blob Storage・Google Cloud Storage とも、 Web で公開する際に、Basic 認証や Digest 認証は使用できないようです。

Webでの公開 - SSL

- Amazon S3 Azure Blob Storage Google Cloud Storage
Webでの公開 - SSL

ライフサイクル管理

- Amazon S3 Azure Blob Storage Google Cloud Storage
ライフサイクル管理 ×?

イベント駆動

- Amazon S3 Azure Blob Storage Google Cloud Storage
イベント駆動 ◯ (Lambda) ◯ (Azure Functions) ◯ (Cloud Function)

アクセスログ

- Amazon S3 Azure Blob Storage Google Cloud Storage
アクセスログ

マウント

- Amazon S3 Azure Blob Storage Google Cloud Storage
マウント FUSE (s3fs, goofys) FUSE FUSE

オブジェクトストレージはマウントして使うものではありませんが、 それでもどうしてもマウントしたい場合もあります。 そのような場合に使える、マウントするツールがあります。

まず基礎知識として、UNIX/Linux には FUSE (Filesystem in Userspace) というオープンソースのソフトウェアがあります。 以前は root 権限が必要であったマウントを一般ユーザにて行えるようにするというものです。 アダプタというものを開発するだけで、さまざまなファイルシステムに対応できます。 FUSE は Linux・FreeBSD・macOS 等で利用可能です。

AWS の場合、2008年より s3fs というオープンソースソフトウェアがありましたが、 2013年に FUSE ベースのアダプタ s3fs-fuse に移行しました。 s3fs は速度が遅いことで有名らしく、goofys という FUSE ベースのアダプタも存在します。 操作内容にもよりますが、goofys は s3fs の 10〜100倍速いとのこと。

Azure Blob Storage をマウントするものとして、FUSE のアダプタ blobfuse があります。

Google Cloud Storage をマウントするものとして、FUSE のアダプタ gcsfuse があります。 これは Google にて開発されたものですが、コミュニティベースでオープンソースとして開発が続けられています。

SQLでオブジェクト内部を検索

- Amazon S3 Azure Blob Storage Google Cloud Storage
SQLでオブジェクト内部を検索 Amazon Athena, S3 Select, Glacier Select × ×

DWH エンジンからの検索

- Amazon S3 Azure Blob Storage Google Cloud Storage
DWH エンジンからの検索 Amazon Redshift Spectrum ×? ×?

高速アップロード

- Amazon S3 Azure Blob Storage Google Cloud Storage
高速アップロード S3 Transfer Acceleration

大規模データアップロード

- Amazon S3 Azure Blob Storage Google Cloud Storage
大規模データアップロード AWS Snowball, AWS Snowball Edge, AWS Snowmobile × ×

管理画面からのファイル操作

- Amazon S3 Azure Blob Storage Google Cloud Storage
管理画面からのファイル操作

前へ << クラウド サーバレスコンピューティング比較まとめ (AWS Lambda・Azure Functions・Cloud Functions) クラウドデータベース比較 (Amazon RDS・Azure SQL Database・Google Cloud SQL) >> 次へ