AWS SAA(Solutions Architect - Associate)対策

EBSボリューム選定

このレッスンでは、性能要件の文からEBSのボリュームタイプを1つに絞り込み、IOPSとスループットのどちらを問われているかを見分けられるようになります。

まず要件文から

ある企業が、オンプレミスのデータベースをEC2へ移そうとしています。現行機の実測では、小さな読み書きが常時大量に発生し、業務のピーク時にはさらに跳ね上がります。データベースの停止は事業に直結するため、ストレージ側にもより高い耐久性が求められています。一方、同じシステムのバッチ処理では、巨大なログファイルを順に読み込む処理があり、こちらは1件ごとの応答よりも1秒あたりに流せる量が効きます。

1つのシステムの中に、答えの違う2つの要件が入っています。SAAはこの読み分けを問います。

IOPS とスループットを取り違えない

  • IOPS は1秒あたりの入出力回数です。小さなランダムアクセスが多いデータベースはここが効きます
  • スループット は1秒あたりに流せるです。大きなファイルを順に読むログ処理やビッグデータ処理はここが効きます

設問に「小さなランダムな読み書き」「トランザクション」「レイテンシに厳しい」とあればIOPS、「大きなファイルを順次」「シーケンシャル」「ログの取り込み」とあればスループットの話だと読みます。

タイプの線引き

タイプ系統選ぶ要件
gp3SSD一般用途の既定。IOPSとスループットを容量と切り離して指定できる
gp2SSD旧世代。容量にIOPSが連動する。設問では gp3 への移行が正解になりやすい
io2 / io2 Block ExpressSSD極めて高いIOPSと、より高い耐久性が要るデータベース
st1HDD大きなファイルの順次読み書き。スループット重視で低コスト
sc1HDDほとんど読まない冷たいデータ。最も低コスト

gp3 を既定と考えるのが実務にも試験にも合います。 gp2 は容量を増やさないとIOPSが上がらない設計なので、「性能のためだけに容量を大きくしている」という記述が出てきたら、gp3 へ変えて必要なIOPSだけを指定する、が答えです。

io2 を選ぶのは、gp3 の上限では足りないほどのIOPSを要求されたときと、ストレージの耐久性そのものを要件に書かれたときです。「ミッションクリティカルなデータベース」「より高い耐久性」という言い回しが合図になります。

HDD系はブートボリュームに使えません。 「起動ディスクを安くしたい」という文脈で st1 や sc1 を選ぶ選択肢は落とします。

ボリュームだけで足りないとき

極めて高いIOPSと最小の遅延が要り、しかもデータが消えても再作成できる場合は、EBSではなくインスタンスストアが答えになることがあります。キャッシュ、一時ファイル、スクラッチ領域といった言葉が合図です。ただし停止すると内容が失われるため、永続性を要件に書かれていたら選びません。

また、複数のEC2から同じブロックボリュームへ同時に接続したい、という要件にはマルチアタッチがありますが、これは対応するタイプに限られ、クラスタ対応のファイルシステムが前提です。単に「複数のサーバーからファイルを共有したい」であれば、次のレッスンで扱う共有ファイルサービスが答えになります。

要件語から構成への対応

要件文の言い回し構成
一般的なワークロード、コストも抑えたいgp3
性能のために容量を過剰に確保しているgp2 から gp3 へ変更する
極めて高いIOPS、より高い耐久性io2
大きなファイルを順次処理、スループット重視st1
めったに読まない保管用のブロックストレージsc1
消えてよい一時領域で最速インスタンスストア

よくある引っ掛け

1つ目は、スループット要件にプロビジョンドIOPSを当てる選択肢です。ログを順次読むだけの処理に io2 を積んでも、支払いが増えるだけで要件には効きません。「最も低コストで」が付いていたら st1 です。

2つ目は、IOPS不足を解決するために gp2 の容量を増やす選択肢です。確かに動きはしますが、gp3 なら容量を増やさずにIOPSだけを上げられます。「動くが最適でない」典型なので、コストの制約語があれば落とします。

まとめ

  • 回数を問われていればIOPS、量を問われていればスループットです
  • 既定は gp3 で、gp2 が出てきたら移行が正解になりやすい構図です
  • io2 は極めて高いIOPSと、より高い耐久性が明記されたときです
  • 順次アクセスで低コストなら st1、ほぼ読まないなら sc1 です
  • HDD系はブートボリュームに使えません
生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部

復習ミニクイズ

ある企業のEC2上のアプリケーションが、数百GBのログファイルを毎晩まとめて順次読み込み、集計しています。1件ごとの応答時間は重要ではなく、1秒あたりに読み出せるデータ量が処理時間を決めています。この処理を最も低コストで満たすEBSボリュームはどれですか。