Amazon S3 Express One Zoneの性能を調べてみた
投稿日: 2024/03/25
はじめに
こんにちは、高橋です。
私が好きなサービスはAmazon S3です。どこからでもアクセスでき、容量は無制限、安価、データが失われるリスクも限りなく低いというとても素晴らしいサービスですね。そのS3に昨年のre:invent 2023で、新しいストレージクラスであるAmazon S3 Express One Zoneが発表されました。うたい文句は従来のS3の10倍のI/O性能ということでしたので、今回は実際にどれぐらい速いのか試してみたいと思います。
1.Amazon S3 Express One Zoneとは?
Amazon S3 Express One ZoneはAmazon S3に追加された新しいストレージクラスで、S3の中でも最もスループットが高く、レイテンシーも低いものとなります。Amazon S3 Express One Zoneはシングルアベイラビリティーゾーン構成となっており、データアクセス速度は最大 10 倍速くなるとなっています。Amazon S3 Standardと同様にシングルアベイラビリティーゾーン構成のOne Zone-1Aとのスペックを纏めると以下のようになります。
Standard | One Zone-1A | Express One Zone | |
---|---|---|---|
レイテンシー | ミリ秒 | ミリ秒 | 一桁ミリ秒 |
耐久性 | 99.999999999% | 99.999999999% | 99.999999999% |
利用アベイラビリティゾーン | 3以下 | 1 | 1 |
可用性 | 99.99% | 99.5% | 99.95% |
保存料金(GB) | $0.025 | $0.0138 | $0.18 |
主な用途 | 汎用ストレージ | アクセス頻度が少ないデータ用 | 最もアクセス頻度が高いデータ用 |
耐久性はイレブンナインでどのストレージも変わりませんが、One Zone-1AとExpress One Zoneはシングルアベイラビリティーゾーン構成なのでアベイラビリティゾーンが全滅する様な大災害が発生したら、データロスのリスクがあります。
2.Amazon S3 Express One Zoneの作成
ここではAmazon S3 Express One Zoneを作成してみます。
ただ作製は簡単で、通常のS3作成のウィザードの中でバケットタイプを「ディレクトリ-新規」を選択し、作成するアベイラビリティゾーンを指定し、「データは 1 つのアベイラビリティゾーンに保存されます」にチェックを入れ、バケットのベース名を入力するだけです。

バケット名にはサフィックスが自動的に付与され、どこのリージョンにあるかすぐわかるようになっています。

3.AWS CLIからの読み書き性能比較
続いてStandardクラスとI/O性能を比較してみます。
テストはAmazon S3 Express One Zone があるアベイラビリティゾーンにEC2インスタンスを作成し、そこからAWS CLIのコマンドで1GBのファイルを読み書き(copy)し、それに要した時間を計測します。それを7回実施し、最短と最長時間を切った5回分の平均時間で比較を行います。
結果は下記の通りとなりました。
読み込み | 書き込み | |||
---|---|---|---|---|
S3 Standard | S3 Express 1-Z | S3 Standard | S3 Express 1-Z | |
1回目 | 4.005秒 | 3.570秒 | 6.011秒 | 2.685秒 |
2回目 | 3.571秒 | 5.799秒 | ||
3回目 | 3.581秒 | 5.955秒 | 2.866秒 | |
4回目 | 4.014秒 | 5.811秒 | 2.927秒 | |
5回目 | 4.022秒 | 3.611秒 | 5.972秒 | |
6回目 | 4.015秒 | 2.641秒 | ||
7回目 | 3.934秒 | 3.618秒 | 2.654秒 | |
平均 | 3.998秒 | 3.590秒 | 5.910秒 | 2.755秒 |
読み込みに関しては10%程度Amazon S3 Express One Zoneの方が処理速度が速いという結果が得られ、全体的に少し速度が上がるかなという程度の結果となりました。それに対して書き込みはAmazon S3 Express One Zoneの方が2倍以上の速度で処理が完了し、書き込み性能の方が大きな恩恵が得られるという結果となりました。
4.Mountpoint for Amazon S3を利用した場合の性能比較
Amazon S3 Express One Zoneは、昨年夏ごろにGAされたMountpoint for Amazon S3にも対応しています。Mountpoint for Amazon S3はEC2やECSインスタンスがS3バケットをファイルシステムとしてマウントし、OSコマンドで直接読み書きすることができる機能です。
今回はLinux上でテストをしたいので、まずは下記のようにmount-s3のパッケージをダウンロードしてS3バケットをマウントします。
[ec2-user@ip- tmp]$ wget https://s3.amazonaws.com/mountpoint-s3-release/latest/x86_64/mount-s3.rpm
[ec2-user@ip- tmp]$ sudo yum install mount-s3.rpm
[ec2-user@ip- tmp]$
[ec2-user@ip- tmp]$ mount-s3 s3exoz--apne1-az1--x-s3(バケット名) /home/ec2-user/ ex-1zone(マウントポイント)
bucket s3exoz--apne1-az1--x-s3 is mounted at /home/ec2-user/ex-1zone
では読み書きのテストを実施しようと思いますが、Amazon S3 Express One Zoneは小さいファイルのI/Oの方がより効果的と言われているので、今回は1KBのファイルを100個用意して、それをOSのcpコマンドでマウントしたS3バケットに読み書きするテストを行います。こちらもそれぞれ7回実施し、最短と最長時間を切った5回分の平均時間で比較を行います(AWS CLIのときも試したかったのですが、I/Oの時間よりそれ以外の待ち時間が長すぎてテストの意味がありませんでした)。
読み込み | 書き込み | |||
---|---|---|---|---|
S3 Standard | S3 Express 1-Z | S3 Standard | S3 Express 1-Z | |
1回目 | 24.275秒 | |||
2回目 | 13.577秒 | 6.529秒 | 55.604秒 | 24.019秒 |
3回目 | 13.328秒 | 6.485秒 | 52.660秒 | |
4回目 | 12.598秒 | 6.487秒 | 50.322秒 | 24.051秒 |
5回目 | 12.205秒 | 50.324秒 | 24.149秒 | |
6回目 | 12.289秒 | 6.477秒 | 49.703秒 | |
7回目 | 6.467秒 | 24.018秒 | ||
平均 | 12.799秒 | 6.489秒 | 51.723秒 | 24.102秒 |
こちらの場合は読み書き共にExpress One ZoneはStandardの2倍の速度で実行されており、言われていた通り速度に関しては十分な優位性があることが確認できました。
さいごに
今回Amazon S3 Express One ZoneはI/O性能に優れているという触れ込みを受けて、実際にそうなのかと速度の比較を行いましたが、単純な検証でも一般的なStandardクラスの2倍程度の速度がでることが確認でき、少しでも早く処理をしたいという場合には有用であることが分かりました。これまで多くの場合はStandardクラスを利用してきましたが、今後は用途に応じてExpress One Zoneを選択するのはありだと思います。
CTCは、AWSのビジネス利活用に向けて、お客様のステージに合わせた幅広い構築・運用支援サービスを提供しています。
経験豊富なエンジニアが、ワンストップかつ柔軟にご支援します。
ぜひ、お気軽にお問い合わせください。