1. はじめに
Amazon S3 Express One Zone ストレージクラス (以降、S3 Express One Zoneと示します)は、アクセス頻度が高いデータ向けの最速とされるストレージクラスであり、AWS公式ドキュメントによると、S3 Express One Zoneは Amazon S3 標準 ストレージクラス (以降、S3 標準と示します) と比べてデータアクセス速度が最大10倍速いとされています。
そこで、 S3 Express One Zone のデータアクセス速度を実際に計測してみました。比較対象としてS3 標準についてもデータアクセス速度も計測しています。
2. 計測方法
S3 Express One ZoneとS3 標準について、同条件でのファイルアップロード (PUT) およびファイルダウンロード (GET) にかかる時間を計測します。計測に用いるツール
と環境、テストシナリオは以下です。
- ツール
- AWS公式が提供する、Python用のAWSを操作するためのライブラリである Boto3 を使用して、S3にファイルアップロードおよびファイルダウンロードを実行するPyhtonプログラムを作成し利用します。
- 環境
- 上記 Python プログラムを実行する環境は、Amazon EC2 のt3.medium サイズ(2vCPU、4.0GiBメモリ)です。ネットワーク帯域幅は最大5Gbpsです。
- 上記 Amazon EC2 と同じリージョンかつ同じアベイラビリティーゾーン (以降、AZと示します) のS3 Express One Zoneと、同じリージョンのS3 標準を使用します。
- テストシナリオ
- 下記3パターンのファイルサイズとファイル数の条件で、ファイルアップロードおよびファイルダウンロードにかかる時間をそれぞれ計測します(計6テストケース)。
下記3パターンは合計ファイルサイズが同じです。- 1GBファイル1個
- 10MBファイル100個
- 100KBファイル10,000個
- テストケースごとに10回計測した値(秒)の平均値を計測値とします。
- 下記3パターンのファイルサイズとファイル数の条件で、ファイルアップロードおよびファイルダウンロードにかかる時間をそれぞれ計測します(計6テストケース)。
3. 計測結果
性能検証の結果を表1と表2に示します。
ファイルアップロードとファイルダウンロードの両方で、いずれのパターンでもS3 Express One Zoneの方がS3 標準よりも短時間に実行できています。特にファイル数が多い場合に差異が大きく、100KBファイル10,000個のダウンロードでは約9.4倍の差となりました。
AWS公式に言われている、S3 Express One ZoneはS3 標準より最大10倍速いということに、信憑性のある結果となりました。
表1 アップロード計測結果
テストケース | S3 Express One Zone (秒) | S3 標準 (秒) | 差異 |
---|---|---|---|
1GBファイル1個のアップロード | 10.094 | 28.840 | x2.85 |
10MBファイル100個のアップロード | 12.821 | 50.052 | x3.90 |
100KBファイル10,000個のアップロード | 103.130 | 603.371 | x5.85 |
表2 ダウンロード計測結果
テストケース | S3 Express One Zone (秒) | S3 標準 (秒) | 差異 |
---|---|---|---|
1GBファイル1個のダウンロード | 7.082 | 11.370 | x1.60 |
10MBファイル100個のダウンロード | 8.025 | 34.715 | x4.32 |
100KBファイル10,000個のダウンロード | 111.547 | 1,047.844 | x9.39 |
4. 考察
上記のように、S3 Express One ZoneはS3 標準よりファイルアップロードおよびファイルダウンロードが高速であることがわかりました。
この理由について考察します。
- S3 Express One Zoneではデータを単一の AZ に保存するため、AZ 内での高速なデータ転送が可能となっています。
このことが、S3 標準より高速になる一因だと考えられます。 - S3 Express One Zoneは AWS IAM 認証の他に、セッションベースの認証 をサポートしています。
セッションベースの認証では、連続してデータアクセスを実施する際に、AWS IAMでの承認を繰り返す必要がないため、特にファイル数が多い場合にS3 標準より高速となった一因だと考えられます。 - ファイル数が多くなるほど、リクエストのオーバーヘッドが大きくなるため、S3 Express One ZoneとS3 標準のリクエスト処理性能の差が顕著になったと考えられます。
- S3 Express One Zoneではバケットが階層的なディレクトリ構造になっており、S3 標準ではバケットはフラットな構造になっています。この構造の差により、バケット内のオブジェクトを検索する場合にS3 Express One Zoneの方が高速なようですが、今回の検証ではバケット内のオブジェクト数は極めて少ないため、結果に影響していないと考えられます。
5. おわりに
S3 Express One Zoneの明確な長所は性能です。
そのため、ストレージアクセスを高速化したいアプリケーションでは、S3 Express One Zoneが向いています。
例えば、高速なデータアクセスにより全体の処理時間を短縮したいアプリケーションや、静的Webコンテンツや画像、動画などのメディアコンテンツへの高速なアクセスを実現したい場合の利用が考えられます。
一方、本稿では記載していませんが、S3 Express One ZoneはAZ冗長性がない、ストレージ容量に対する価格がS3 標準より高いといった点もあります。
Amazon S3を利用する場合には、要件や制約に応じた適切なストレージクラスを選択する必要があると、今回の計測を通して改めて感じました。