あいさつ
ご無沙汰しています、yuta(59RY)です。
未だに自分のホームページやブログを持っていないので、久し振りにQiitaに技術ブログでも投稿してみます。
さて、自分の中では最近 OSS(オープンソースソフトウェア)を使うのがブームになっています。
・「Twitterのようなもの」でMisskeyを使ってみたり、
・「Slackのようなもの」でMattermostを使ってみたり、
・「Dropboxのようなもの」でnextCloudを使ってみたり・・・
その時に書かせないのがオブジェクトストレージです。
その際最初はiDrive E2を使っていました。
しかしMattermostで絵文字やファイルを開くときにどうも遅くて。。
ということで速いところに引っ越ししたく、今回はオブジェクトストレージのスピード測定をやってみようかと思います。
本記事では、速度をすべて 1024 based に統一して記載します。例えば 1 Mibps = 1,024 Kibps として扱います。
測定対象
- AWS S3
- 東京リージョン (ap-northeast-1)
- Google Cloud Storage
- 東京リージョン (asia-northeast-1)
- CloudFlare R2
- 位置情報のヒント: アジア太平洋(APAC)
- Wasabi
- 東京リージョン
- iDrive E2
- US サンノゼ州
Oracle Cloudのオブジェクトストレージ入れ忘れました😱
気が向いたら更新記事を作ろうかと思います。
測定環境
自宅、AWS EC2、そしてOracle Cloudを使用します。
環境 | 自宅 | EC2 | OCI |
---|---|---|---|
リージョン(場所) | 東京都町田市 | 東京 (ap-northrast-1) | 東京 (ap-tokyo-1) |
インスタンスタイプ | (MacBook Pro M1 Pro) | c7g.large | VM.Standard.A1.Flex |
ネットワーク | nuro光 (2Gbps) ※2.5Gbps対応イーサネット接続 |
up to 12.5Gbps | up to 2Gbps |
事前に調査した Ookla Speedtest |
DL: 1,928.92 Mibps UL: 769.71 Mibps Result Link |
DL: 9,611.55 Mibps UL: 4,398.16 Mibps Result Link |
DL: 1,855.64 Mibps UL: 819.72 Mibps Result Link |
OS | macOS | Rocky Linux 9 | Rocky Linux 9 |
CPU・メモリ | 10コア(P8, E2)・16GB | 2vCPU・4GB | 2vCPU・4GB |
このうち、EC2・OCIについては、今回の調査専用でインスタンスを立ち上げました(つまり素の状態です)。
測定方法
- 「16KiBのダミーファイル256個」と「256MiBのダミーファイル1個」をそれぞれ作成する
- 16KiBのダミーファイルは、使い回しではなく、1個1個中身が違うファイル
- 作成したファイルを各オブジェクトストレージにアップロード&ダウンロードし、その速度を計測する
-
rclone
コマンドを使用する
-
測定基準
- 以下で判定する
- 「16KiBのダミーファイル256個」のそれぞれUL/DLの速度
- 「256MiBのダミーファイル」のそれぞれUL/DLの速度
- それぞれ3回ずつ計測し、一番速かった時間を採用する
- マルチスレッドは無効にした (rcloneのオプション
--multi-thread-streams 1
)
測定結果
アップロード (16KiB×256)
環境 | 自宅 | EC2 | OCI | 👑 |
---|---|---|---|---|
AWS S3 | 700.767 KiB/s | 803.054 KiB/s | 784.026 KiB/s | |
Google Cloud Storage | 891.791 KiB/s | 967.968 KiB/s | 911.972 KiB/s | 👑(第2候補) |
CloudFlare R2 | 117.025 KiB/s | 116.722 KiB/s | 118.355 KiB/s | |
Wasabi | 735.977 KiB/s | 995.812 KiB/s | 1007.823 KiB/s | 👑(第1候補) |
iDrive E2 | 221.363 KiB/s | 237.928 KiB/s | 150.270 KiB/s |
アップロード (256MiB)
環境 | 自宅 | EC2 | OCI | 👑 |
---|---|---|---|---|
AWS S3 | 66.667 MiB/s | 81.668 MiB/s | 76.146 MiB/s | 👑(第2候補) |
Google Cloud Storage | 81.667 MiB/s | 81.704 MiB/s | 30.874 MiB/s | 👑(第1候補) |
CloudFlare R2 | 28.443 MiB/s | 28.444 MiB/s | 14.121 MiB/s | |
Wasabi | 48.008 MiB/s | 47.019 MiB/s | 28.374 MiB/s | |
iDrive E2 | 15.997 MiB/s | 19.691 MiB/s | 6.960 MiB/s |
ダウンロード (16KiB×256)
環境 | 自宅 | EC2 | OCI | 👑 |
---|---|---|---|---|
AWS S3 | 2.719 MiB/s | 2.640 MiB/s | 1.937 MiB/s | |
Google Cloud Storage | 932.021 KiB/s | 991.900 KiB/s | 1011.916 KiB/s | |
CloudFlare R2 | 244.977 KiB/s | 244.997 KiB/s | 253.001 KiB/s | |
Wasabi | 3.484 MiB/s | 3.656 MiB/s | 3.154 MiB/s | 👑 |
iDrive E2 | 267.408 KiB/s | 295.383 KiB/s | 220.421 KiB/s |
ダウンロード (256MiB)
環境 | 自宅 | EC2 | OCI | 👑 |
---|---|---|---|---|
AWS S3 | 91.998 MiB/s | 94.492 MiB/s | 94.484 MiB/s | |
Google Cloud Storage | 143.992 MiB/s | 200.914 MiB/s | 142.401 MiB/s | 👑 |
CloudFlare R2 | 46.000 MiB/s | 42.331 MiB/s | 36.661 MiB/s | |
Wasabi | 74.331 MiB/s | 81.994 MiB/s | 85.495 MiB/s | |
iDrive E2 | 4.415 MiB/s | 24.001 MiB/s | 16.571 MiB/s |
まとめ
総合的にはGoogle Cloud Storageが最速、しかし状況によっては他のオブジェクトストレージがいい場合もありそう。
例えば細かいファイルのダウンロードが中心になる場合はWasabi、大容量のアップロードはインフラによってはAWS S3も良い、といった感じでしょうか。
個人利用・小規模の場合は取り敢えず「AWS S3」「Google Cloud Storage」「Wasabi」どれか3択にしておけばまず間違いなし、
しかしクリティカルな要求がされる場合(●●分以内に全てのデータをオブジェクトストレージに格納しなければならない、など)の場合は、当然設計も重要かとは思いますが、どのインフラを使うか、参考になればと思います。
筆者は、オブジェクトストレージの総使用量がまだ数GB程度なので、最初はS3を使い、容量が増えてきたら今度はWasabiに引っ越しを考えています。
ご覧いただきありがとうございました。