必見の記事

【速報】全てのS3ユーザ必見!S3の性能が大幅パワーアップ!面倒なアレが不要に!

AWS Summit 2018 New Yorkのキーノートセッションで発表された、S3の性能アップとはどのようなものなのか? そして不要になった面倒なアレとは?
2018.07.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

皆さんこんばんは…。日本とほぼ半日時差のあるニューヨークでは、2018年7月15〜16日の日程で、AWS Summit 2018 New Yorkが開催されています。

ここで皆さんおなじみのAmazon S3に関する重大な発表が行われました!何が起きたのかを早速確認しましょう!

何が変わったのか?

変更点を箇条書きでまとめます。

  • S3の書き込み/読み取りの性能が上がった
    • PUT/POST/DELETE:3,500リクエスト/秒/プレフィックス
    • GET:5,500リクエスト/秒/プレフィックス
  • 自動的に性能増加(内部で並列処理)
  • アプリケーション等の周辺環境に対し、事前設定や追加設定は一切不要
  • 追加料金なし

※"プレフィックス"に関しては、下解説「パフォーマンス向上の為のキー名の工夫が不要に」をごらんください。

面倒なアレとは?新旧開発者ガイドを比較する

上記What's Newの文末に"For more information, visit the Amazon S3 Developer Guide."とあるので、変更点をS3の開発者ガイドで新旧比較してみましょう。

2018年7月18日現在の日本語版ドキュメントは、まだ上記最新の変更が反映されていないものです。この日本語版の元になっている英語ドキュメントはInternet Archiveサービスから取得しました。

これが、現在は以下のように変わりました。 (注:日本語版が表示された場合は、右上の言語設定ドロップダウンリストから"English"を選択してください)

めっちゃ短くなってます…。色々と考慮すべき点が不要になったようです。確認したところ、以下2点が楽になってます。

ワークロード対応の為のサポート依頼の頻度が減る

従来は800リクエスト/秒を超えるGETリクエストが発生する場合は、ワークロードの増加に備える為にサポートへの依頼が必要でしたが、その値が現在は5,500リクエスト/秒と大幅に引き上げられています。また、PUT/LIST/DELETEリクエストのしきい値も300リクエスト/秒だったところがPUT/POST/DELETEに対して3,500リクエスト/秒と変わりました。(LISTとPOSTの変化が気になりますが…)

従来と比較したら、よっぽど高負荷状態にならない限り、サポートへのリクエスト対応が必要でなくなったのは嬉しいですね。

パフォーマンス向上の為のキー名の工夫が不要に

旧ドキュメントに記載されていた"The sequence pattern in the key names introduces a performance problem.(キー名を連続するパターンにすると、パフォーマンス上の問題が発生します)"という問題が解決しています。

従来は、キー名がシーケンシャルだとI/Oが分散せず性能が向上しませんでした。その為、

  1. 16 進のハッシュプレフィックスをキー名に追加する
  2. キー名の文字列を左右反転する(逆キーを生成する)

のように、設計時にキー名を考慮してあげなければいけなかったのですが、そこが不要になった、ということですね。日付でも通し番号でも、シーケンシャルなキー名を使って構いませんよという事のようです。キー名にシーケンシャルなプレフィックスが使えれば、ハッシュや逆キーと比べて範囲検索が非常に楽になります。大変ありがたいことです。

ちなみに、GETリクエストが多いワークロードに対しては、Amazon CloudFrontの使用を検討する、という点は変わりません。

※2018.7.20追記

「パフォーマンス向上の為のキー名の工夫が不要」について、「プレフィックス設定そのものが完全に不要」という誤解があるようなので、念の為下記補足しておきます。

  • プレフィックスが無くても、PUT/POST/DELETEに対する3,500リクエスト/秒 および GET 5,500リクエスト/秒はいける
  • それ以上の性能を望む場合は、AWSサポートへ依頼するか、プレフィックスを設定する必要がある
  • 従来のプレフィックス設定は、ハッシュや逆キーにする等の工夫が必要だったが、これからはその工夫が不要。シーケンシャルな値でも良い

まとめ

設定変更や追加料金無しで処理性能が大幅に上がってくれるのは、ユーザであれば誰もが大歓迎ではないでしょうか?素晴らしいアップデートだと思います!

それから、ドキュメントはご覧のように日本語が提供されるまで多少なりともタイムラグが発生します。面倒でも一度は英語の原本をチラ見して最新かどうかは確認する習慣を付けておきましょう。

それでは、また。yokatsuki@日本でした。