オブジェクトストレージ比較：S3 vs OSS

最近話題のAlibaba Cloud。
よく利用されているAWS S3とAlibaba CloudのOSSを比較してみました。

# Alibaba Cloudとは
+ Alibaba Cloudとは、中国最大のクラウドサービスプロバイダー
+ 2018年5月現在、中国国内やアメリカ、ヨーロッパ、日本を含む世界中に18個リージョンが存在し、仮想サーバーやストレージ、CDNなどをはじめとしたクラウドサービスを展開している
+ 最近注目を集めているQRコードを使用した非接触型決済サービスAlipayのインフラを支えている
+ 日本では2016年にソフトバンク株式会社とアリババグループが設立した合弁会社である、SBクラウド株式会社が日本向けのサービス対応を開始(東京リージョン開設)

# AWSとは
+ AWSとはAmazon Web Servicesの略で、2006年にITインフラストラクチャサービスの提供を開始
+ 最初のクラウドサービスとして、2006年3月に「Amazon S3」をリリース
+ 2018年1月現在、世界中に18の物理的なリージョンと51のアベイラビリティゾーンがある
+ 現在では、ストレージだけでなくコンピューティングやデータベース、分析ツールなど数多くのサービスを展開しており、世界190か国の方々に利用されている

# オブジェクトストレージの特徴
　オブジェクトストレージは、オブジェクトという単位でデータを記憶装置であるストレージに保存や取り出しが出来ます。
特徴としてはストレージの容量を**拡張(スケーラビリティ)**することが出来るため、大きなデータを保存することに向いています。
大量の写真や動画、IoTのセンサーデバイスから送られてきた大量のデータなど、様々なデータの保存先として利用されています。

OSSやS3には、オブジェクトストレージのアクセス頻度やAPIのリクエスト頻度によってサービス内容や料金が分かれているので、状況に応じて適切なサービスを選択することでコストを抑えることが出来ます。

# Alibaba Cloud OSSの特徴
**OSSは「Object Storage Service」**の略で、大容量のデータを格納し、バックアップやアーカイブすることが可能なクラウドオブジェクトストレージサービスです。
「**バケット**」を作成し、その中にオブジェクトを保存します。
OSSは暗号化されたストレージを提供しており、また、災害などの緊急時にも復旧出来るように自動データ**レプリケーション**や**フェールオーバー機能**にも対応しています。
さらに、Intel XeonプロセッサE5-2600 v3プロセッサファミリを使用して構築されています。
ストレージとしては、IA ストレージ（Infrequent Access Storage）やアーカイブストレージも利用出来ます。
また、REST APIを利用してバケットやオブジェクトなどを操作することが出来ます。

# Amazon S3の特徴
　Amazon S3の特徴として、オブジェクトは「バケット」というリソースに保存されます。
このバケットに保存出来るオブジェクトの最大サイズは5TBまでです。
また、このバケットに保存しているオブジェクトに対して書き込み、読み取り、削除といった操作が可能です。

さらに、オブジェクトだけでなくバケットに対してのアクセス制限の設定や、アクセスログの閲覧、レイテンシーの最適化などに対応出来ます。

Alibaba CloudのOSSと同様に災害時にも復旧出来るように、全てのS3オブジェクトを別のバケットに自動的にレプリケートするクロスリージョンレプリケーション(CRR)を行っています。
S3もREST APIが準備されており、バケットやオブジェクト、アクセス制限などAPIで操作することが出来ます。
S3の最大の特徴として、ストレージクラスとライフサイクル管理があります。
ストレージクラスとは、ユーザーの様々な利用シーンに向けた幅広いストレージクラスです。
S3では、以下のストレージクラスが準備されています。

**1.S3 標準ストレージ**
　頻繁にアクセスするオブジェクト向けのストレージクラス。

**2.S3 標準-低頻度アクセス(S3 標準-IA)ストレージ**
　アクセスは低頻度ですが、必要な時にすぐにアクセス可能なオブジェクト向けのストレージクラス。

**3.S3 1ゾーン-低頻度アクセス(S3 1ゾーン-IA)ストレージ**
　2)同様低頻度アクセスで必要な時にすぐアクセス可能なオブジェクト向けのストレージクラスです。
2)と異なる点は、S3は3つのアベーラビリティゾーン(AZ)にオブジェクトを保存せず、1つのAZにオブジェクトを保存します。
この性質から、セカンダリバックアップとして利用したり、別リージョンからのS3クロスリージョンレプリケーションとして利用することに向いています。
ただし、AZが破壊されると保存内容は失われます。

**4.Amazon Glacierストレージ**
　アーカイブとして利用されます。
アーカイブへのアクセスは数分から数時間までの3つのオプションが準備されています。
各ストレージクラスの耐久性や可用性などの詳細は[こちら](https://aws.amazon.com/jp/s3/storage-classes/)を参考にしてください。

# OSSとS3の比較
機能面(スペック)と料金について比較していきます。

## スペック
### アップロード制限
| サービス | 内容 |
|:-:|:-:|
| S3  | １度のPUTでは1ファイル5GBまで。<br> それ以上大きなファイルは<br>マルチパートアップロードAPIを利用することで<br>5TBまでファイルを分割してアップロードできます。 |
| OSS  | 1ファイル5GBまで。<br>OSSではマルチパートアップロードの場合、<br>ファイルを複数のデータブロック<br>(パート)に分割します。<br>この１パートにつき、最大5GBのサイズが制限となり、<br>ファイル全体のサイズは最大48.8 TBまでです。|  

### ストレージ容量
| サービス | 内容 |
|:-:|:-:|
| S3  | バケットは100個まで。<br>それ以上はサービスの制限緩和申請を行うことで、<br>上限を解除することが出来ます。<br>各バケットの容量は無制限。  |
| OSS  | バケットは30個まで。各バケットの容量は無制限。  |

### レプリケーション
| サービス | 内容 |
|:-:|:-:|
| S3  | クロスリージョンレプリケーション(CRR)  |
| OSS  | レプリケーション機能あり。  |

### バージョニング
| サービス | 内容 |
|:-:|:-:|
| S3  | あり  |
| OSS  | なし  |

### ライフサイクル管理
| サービス | 内容 |
|:-:|:-:|
| S3  | あり  |
| OSS  | あり  |

### 静的なWebサイトのホスティング
| サービス | 内容 |
|:-:|:-:|
| S3  | あり。<br>バケットをWebサイトホスティング用に設定する。  |
| OSS  | あり。<br>ストレージ容量を静的Webサイトホスティングモード<br>で機能するように設定する。  |

### サーバーアクセスログ
| サービス | 内容 |
|:-:|:-:|
| S3  | あり。<br>アクセスログを残すために、<br>バケットで設定が必要になります。  |
| OSS  | あり。<br>バケットへのアクセスリクエストログを格納する<br>オブジェクトを1時間単位で生成します。  |


## 料金
標準パターンの料金体系の比較をまとめました。
今回は、**OSSは東京リージョン、S3はアジアパシフィック(東京)リージョン**で比較しています。
こちらで比較している内容は、参考価格でありカスタマイズプランなどの利用により実際の金額とは異なる場合があります。

基本的な料金体系は以下の通りです。
### OSS
ストレージの合計量、転送されたデータ量、実行されたAPIリクエスト数(GET/PUTなど)に基づいて算出されます。
https://jp.alibabacloud.com/product/oss#pricing

### S3
ストレージの合計量、リクエスト数(GET/PUT)、データ**「S3標準ストレージ」**を利用します。
https://aws.amazon.com/jp/s3/pricing/

料金の見積もりは[こちら](http://calculator.s3.amazonaws.com/index.html)で計算出来ます。
S3 標準 – 低頻度アクセスと S3 1 ゾーン – 低頻度アクセスストレージでは、128KB以下のデータでも128KBとして最小課金対象となります。

金額の比較表は、以下の通りです。
金額は税抜き価格です。
1ドル109円で換算して計算しています。

###ストレージ：標準
今回は標準的なストレージのもので金額を比較しています。
S3とOSSには、それぞれ低頻度アクセス用のストレージやアーカイブ用のストレージも準備されています。
これらのストレージの金額は別の価格が設定されています。
S3: https://aws.amazon.com/jp/s3/pricing/
OSS: https://jp.alibabacloud.com/product/oss#pricing

#### [S3]
| 容量 | USD/GB | 日本円 |
|:-:|:-:|:-:|
| ～50TB/月  | 0.025 | 2.725 |
| ～450TB/月  | 0.024 | 2.616 |
| 500～TB/月  | 0.023 | 2.507 |

#### [OSS]	
| 容量 | 日本円/GB/Month |
|:-:|:-:|
| ～5GB  | 無料 |
| 5～GB  | 2.41 |

### API:標準
S3と比較するとOSSの方が料金は安いですが、操作内容においてはS3の方が幅広く対応している様にみえます。
#### [S3]
| 操作 | 金額 | 日本円 |
|:-:|:-:|:-:|
| S3 Select によって返されたデータ  | 0.0008USD/GB | 0.0872    | 
| S3 Select によってスキャンされたデータ  | 0.00225USD/GB  | 0.24525 |
| PUT、COPY、POST、または LIST リクエスト  | リクエスト 1,000 件あたり 0.0047USD  | 0.5123 |
| GET、SELECT および他のすべてのリクエスト  | リクエスト 1,000 件あたり 0.00037USD  | 0.04033 |
| 標準 – 低頻度アクセス<br>または<br>1ゾーン–低頻度アクセス<br>へのライフサイクル移行<br>リクエスト  | リクエスト 1,000 件あたり 0.01USD  | 1.09 |
|DELETE| 無料 | 無料 |

#### [OSS]
| 操作 | 金額 |
|:-:|:-:|
| Get/Head  | リクエスト10,000件あたり0.204円  |
| Put/Post/Delete  | リクエスト10,000件あたり1.64円  |
※OSSではDeleteにも料金が必要です。

### データ転送
#### [S3]
同一リージョン内でのS3バケット間やS3から他のサービスへの転送は無料です。
**インターネットから Amazon S3 へのデータ転送受信 (イン)**

| 場所 | 金額 |
|:-:|:-:|
| すべてのデータ転送受信 (イン) |	0.00USD/GB |
<br>
**Amazon S3 からインターネットへのデータ転送（アウト）**

| 転送量 | 金額 | 日本円 |
|:-:|:-:|:-:|
| 1 GB まで / 月  | 0.00USD/GB  |  0円 |
| 次の 9.999 TB / 月  | 0.14USD/GB  | 15.26円 |
| 次の 40 TB / 月  | 0.135USD/GB  | 14.715円 |
| 次の 100 TB / 月  | 0.13USD/GB  | 14.17円|
| 150 TB 以上 / 月  | 0.12USD/GB  | 13.08円|
<br>
**Amazon S3 からのデータ転送（アウト）**

| 場所 | 金額 | 日本円 |
|:-:|:-:|:-:|
|CloudFront|	0.00USD/GB|　0円 |
|欧州 (フランクフルト)|	0.09USD/GB|9.81円 |
|欧州 (パリ)|	0.09USD/GB| 9.81円 |
|米国東部（バージニア北部）|	0.09USD/GB| 9.81円 |
|米国西部 (北カリフォルニア)|	0.09USD/GB| 9.81円 |
|アジアパシフィック（シドニー）|	0.09USD/GB| 9.81円 |
|AWS GovCloud (米国)|	0.09USD/GB| 9.81円 |
|アジアパシフィック (シンガポール)	|0.09USD/GB| 9.81円 |
|アジアパシフィック (ムンバイ)|	0.09USD/GB| 9.81円 |
|カナダ (中部)|	0.09USD/GB| 9.81円 |
|アジアパシフィック (ソウル)|	0.09USD/GB| 9.81円 |
|南米 (サンパウロ)|	0.09USD/GB| 9.81円 |
|欧州 (ロンドン)|	0.09USD/GB| 9.81円 |
|米国西部（オレゴン）|	0.09USD/GB| 9.81円 |
|米国東部 (オハイオ)|	0.09USD/GB| 9.81円 |
|アジアパシフィック (大阪ローカル)	|0.09USD/GB| 9.81円 |
|欧州（アイルランド）|	0.09USD/GB| 9.81円 |


#### [OSS]
ダウンストリームトラフィックの総使用率に基づいて課金されます。
アップストリームトラフィックとイントラネットアクセストラフィックは無料です。

##### パブリックトラフィック
| 転送量 | 金額 |
|:-:|:-:|
| 0～5GB |無料|
| 5GB～10TB | 12.3円/GB |
| 10TB～50TB | 11.1円/GB |
| 50TB～150TB | 10.5円/GB |
| 150TB～ | 9.69円/GB |


##### CDNトラフィック
**8.16円/GB**



# まとめ
 AWSのS3の方が現在は利用できる機能が多く便利な状況ですが、Alibaba CloudのOSSもこれから機能が充実してくるのではないかと思われます。
オブジェクトストレージを単体で利用することは少ないと思いますので、クラウドデザインパターンや運用、料金などトータルで検討してみてはいかがでしょうか。