[セッションレポート]Optimize price and performance with Amazon EBS (STG204)#reinvent

2023.01.17

コンサル部の南です。 AWS re:Invent 2022 にて Breakout Session の 「Optimize price and performance with Amazon EBS」に参加しました。
セッションレポートをお届けします。

URL

こちらのセッションはYoutubeに公開されています。

セッション概要

Millions of organizations run their performance-intensive enterprise applications, databases, and analytics engines on AWS. Learn how to choose the best Amazon EBS volume for your workload to optimize price and performance. Also, discover the Amazon EBS innovations that provide you with greater flexibility to dynamically increase capacity, tune performance, and change the type of live volumes with no downtime or performance impact.

スピーカー

  • Prarthana Karmakar, Software Development Manager, Amazon
  • Andrew Boyer, Principal Tech Product Manager, Amazon

レベル

200 - Intermediate

EBSとは?

EBSとは使いやすく、安全で高性能なブロックストレージサービスです。
EBSはネットワークで接続される為大規模な分散ストレージステム上に構成されます。その為柔軟性や高いパフォーマンスを得ることができます。
また、インスタンスのライフサイクル外にある為、移動したりタイプを切り替えたりすることも可能です。

大きく分けると二つSSDでバックアップされたEBSボリュームであるgp3、io2とHDDでバックアップされたEBSボリュームのst1、sc1が存在します。

EBSの14年間の歴史

EBSのリリース以来さまざまなアップデートをおこなってきました。
ここでは特に価格とパフォーマンスに関するアップデートを紹介します。

2008年に「Standard」(マグネティック)とスナップショット機能を発表しました。Standardボリュームは最初のHDDボリュームタイプであり、HDD1秒間に100回の入出力操作(100IOPS)が可能でした。
そして2012年に最初のSSDボリュームタイプとして「プロビジョンドIOPS」とEBSとEC2に専用の帯域を用意するebs最適化を発表しました。
2014年には大部分のロークロードで機能する「汎用タイプ」を発表しました。
2016年には次世代のHDDボリュームタイプのst1、sc1が発表されました。これらは特にストリーミングとスループットのワークロードに重点を置いたものです。
2018年にはDLMが発表されたことで、スナップショットとバックアップ戦略についての考え方が簡素化されました。
その他にも2020年に次世代のSSDファミリーであるgp3、信じられないほどのパフォーマンスを発揮するio2 Block Expressを発表してます。
パフォーマンスに関しては初期の「Standard」の100IOPSからio2 Block Expressの最大性能の2560000IOPSまで進化してます。

ワークロードに適したボリュームタイプの選定

前述の通り、EBSには大きく分けて二つHDDに基づいたタイプとSSDに基づいたタイプが存在します。
基本的にはSSDでほとんどのワークロードに対応することができ、特に汎用ボリュームである「gp3」を使うことで70~80%のほとんどのワークロードに適しています。
もう一つのSSDであるio2はgp3ボリュームよりも4倍優れたパフォーマンスを得ることが出来ます。

それぞれのボリュームタイプの特徴について

gp3

gp3のベースラインはIOPSが3000でスループットは128MiB/sとなります。
それぞれ最大値として160000IOPS、1000MiB/sまで拡張することが可能です。
ストレージ容量とは別に設定可能な為、ワークロードに基づいてパフォーマンス要件をカスタマイズすることが出来ます。レイテンシーは1桁ミリ秒以下でI/Oサイズは最大256KBとなります。

その為ブートボリュームや非常に低いレイテンシーを必要とする高負荷のアプリケーションやデータベースに利用することが出来ます。
どこから始めればよいか分からない場合はgp3から始めることを強くお勧めします。

io2 Block Express

io2 Block ExpressはSRDネットワークプロトコルに支えられた次世代のアーキテクチャとなります。
パフォーマンス性能は前世代のボリュームよりも4倍優れており、ストレージ容量も最大64TBとなっております。特にレイテンシーに優れており、1ms以下のレイテンシーとなります。
既にさまざまなお客様に利用されており、特にレイテンシーの改善に関して素晴らしい評価を頂いております。 

gp3 と io2 Block Expressの選定基準

モニタリングすることが重要になってきます。 実際にio2 Block Expressを導入しているお客様の中にもgp3で十分なケースも多々あります。その為モニタリングが出来る環境を整備し、ワークロードに最適なパフォーマンスを設定する必要があります。

正しいボリュームタイプを選定する為に

正しいボリュームタイプを選択する為にこれらの質問が役に立ちます。
一番大切なのは「それを何に使用するか?」ということです。
それがどれくらい顧客に影響を与えるのか?ただのログ保管用のストレージなのかを把握した上でボリュームタイプを選定する必要があります。
また、モニタリングを整備し、パフォーマンス要件を微調整することも大切です。

st1

スループットが改善されたHDDとなります。 ベースラインとして40MiB/sを提供し最大500MiB/sまで引き上げることが可能となり、バースト機能も備えてあります。

st1はブートボリュームや顧客に影響を与えるワークロードには適していないですが、スループットが重要で非常に大きなブロックストレージ要件には適しています。

sc1

st1と非常によく似ていますが、st1と比較するとスループットが低い代わりに、コストはかなり低いボリュームタイプとなります。
特にロギングやシーケンシャルワークロード、ワークロードのバックアップに適しています。

##ワークロードとボリュームタイプの例 ワークロードはさまざまな為、一つのシステムに対して一つのボリュームタイプに決めないといけないという必要は無く、複数のボリュームタイプを使っても問題ありません。

### データベースワークロード    一般的にデータベースの要件はアプリケーションのパフォーマンス要件を決定するものとなります。
データベースには通常ランダムI/Oがあり、予想することが出来ません。
またI/Oは使用状況に応じて増減します。その為基本的にはSSDを使用するボリュームタイプを推奨します。

仮想デスクトップワークロード

VDIアプリケーションを利用している顧客のほとんどはEBSでバックアップされたストレージが存在しています。
I/OもほとんどランダムとなるためSSDを使用するボリュームタイプ、特にgp3を推奨します。

メディアファイルワークロード

メディアも多くの顧客が使用しているワークロードとなります。
ここではトランスコーディングやエンコーディング、ストリーミングなどのワークロードを取り上げます。
これらは非常に高いスループット要件であり、ほとんどがシーケンシャルI/Oでレイテンシーは考慮されないですが、スループット要件は最優先事項となることが多いでしょう。
ここではst1を利用することを推奨します。

データ分析のワークロード

データ分析にも非常に高いスループット要件が求められることが多いです。また、ランダムI/Oではなく、シーケンシャルI/Oが多いことも特徴として挙げられます。
その為HDDを使用するボリュームタイプを推奨します。st1かsc1かの判断にはパフォーマンスの要件を確認した上で決める必要があります。

ファイルストレージ

CIFD, NFSなどのファイルストレージとして使うワークロードも多いでしょう。この場合は比較的スループット要件は高くない場合が多いです。
また、ワークロードはバースト性がありますが、持続的なアクセスパターンではないことが多いです。
ファイルをアーカイブしたり頻繁にアクセスする必要がない場合もあり、トラフィックもそれほど多く無いので、sc1がうまく機能することが多いです。

まとめ

インスタンスに対し、複数のEBSボリューム接続する場合に、それぞれが同じボリュームタイプである必要はありません。
様々なタイプを組み合わせてアタッチすることが大切です。
EBSではダウンタイム無しでボリュームタイプを変更することが可能な為、ワークロードに適した最適なボリュームタイプを選定することでパフォーマンスと価格を最適化することが出来ます。