Amazon EC2のAmazon EBS最適化が無効になるケースとその有効化手順をまとめてみた

突然ですが、Amazon EC2のAmazon EBS最適化は有効にできていますか?AWS CLIやAWS CloudFormationで起動した場合、インスタンスタイプによってはデフォルトで有効になっていない可能性があります。
2024.02.05

Amazon EBS最適化が無効になっている?

おのやんです。

みなさん。Amazon EC2(以下、EC2)のAmazon EBS(以下、EBS)最適化は有効にできていますか?EC2インスタンスタイプによっては、もしかしたら無効になっているかもしれません。

EBS最適化オプションは、EC2インスタンスにおいてEBSのI/O性能を最適化するための機能です。EBSのデータ転送とインスタンス間のデータ処理に必要な帯域幅を確保することで、安定したパフォーマンスを提供可能となります。

このEBS最適化オプションですが、AWS CLIやAWS CloudFormation(以下、CFn)で起動した場合、インスタンスタイプによってはデフォルトで無効になっている可能性があります。こういった際には、既存のEC2インスタンスのEBS最適化を手動で有効にする必要があります。今回はそちらの手順を紹介します。

EBS最適化オプションに関する概要・前提

EBS最適化オプションは、EC2インスタンスのEBSのI/O性能を最適化するオプションです。こちらを有効にすると、EBSボリュームへの読み書きが他のトラフィックと分離されて専用の帯域幅を持ち、EBSボリュームの性能が向上します。これにより、ストレージに対して高いパフォーマンスを必要とするアプリケーションや、データベースサーバーなどのワークロードにとって、パフォーマンスを安定させ信頼性を高めることができます。

こちら基本的にはデフォルトで対応しているインスタンスタイプが多いです。実際にAWS CLIの--ebs-optimizedやCFnのEbsOptimizedのオプションはデフォルトでfalseの値を取りますが、多くの場合問題ありません。

少しややこしいですが、EBS最適化オプションにデフォルトで対応しているインスタンスタイプだと、EBSが無効と表示されていたとしても、EBS最適化の機能は有効になっているそうです

EBS 最適化 (デフォルト)

次の表は、EBS 最適化をサポートするインスタンスタイプを示します。EBS 最適化はデフォルトで有効になっています。EBS 最適化を有効にする必要はなく、EBS 最適化を無効にしてもその効果はなくなりません。

一方でC1〜R3 など、デフォルトではEBS最適化に対応していないEC2インスンスをAWS CLIやCFnで作成する場合、--ebs-optimizedEbsOptimizedを明示的にtrueにして、初めてEBS最適化が有効となります。

EBS 最適化をサポート

次の表は、EBS 最適化をサポートするインスタンスタイプを示します。EBS 最適化はデフォルトでは有効になっていません。EBS 最適化は、これらのインスタンスの起動時または実行後に有効にすることができます。

ですので、今回紹介するEBS最適化の手動有効化が必要になる状況は

  • デフォルトではEBS最適化に対応していないEC2インスタンスを、AWS CLIやCFn経由で作成する
  • AWS CLIやCFnテンプレートで、EBS最適化の項目を設定していない、もしくは明示的にfalseにしている

これらの2点を満たすレアケースであるということはご了承ください。

有効化手順

それでは実際にEBS最適化オプションを有効にしてみましょう。

まずは、EBS最適化オプションがデフォルトで無効になっているEC2インスタンスを用意します。今回はc1.xlargeを選択します。

c1.xlargeを選択した状態で、「高度な詳細」セクションにてEBS最適化オプションを有効にするか選択します。今回は検証のため、明示的に「無効化」に設定しておきます。

実際にEC2インスタンスを起動すると、以下の状態になります。ステータス画面から見ても分かる通り、EBS最適化オプションが無効になっているのか分かります。

ここから、このインスタンスのEBS最適化オプションを有効にしていきます。

ここで注意なのですが、既存のEC2インスタンスに対してEBS最適化オプションを有効にする場合は、最初にEC2インスタンスを停止させる必要があります。本番環境で運用しているようなEC2インスタンスの場合、停止した際の影響範囲を前もって調査するなどの対応が必要になるので、ここは気をつけましょう。

実際にEC2インスタンスを停止させると、こちらのように「インスタンスの状態」の値が実行中から停止中に変化します。この状態になれば、停止完了です。

停止作業が完了したEC2インスタンスに対して、「アクション」 => 「インスタンスの設定」 から 「インスタンスタイプを変更」に移ります。

「インスタンスタイプを変更」の画面では、EC2インスタンスの詳細なスペックが確認できます。ここでEBS最適化インスタンスに対応しているインスタンスタイプになっている場合、「EBSに最適化」の項目が確認できます。こちらのチェックボックスにチェックを入れ、「適用」を押下します。

正常にEBS最適化オプションを有効にできた場合、ステータス画面にて、EBS最適化オプションが有効になっているのが確認できます。

EBS最適化オプションが無効になっているケースは極めて稀

近年使用されているインスタンスタイプだと、EBS最適化オプションが有効だろうと無効だろうと、裏側では有効になっていることがほとんどです。そのため、今回の作業を行うことはかなり稀でしょう。インスタンスはきちんと確認する必要がありますね。

それでも作業自体はシンプルなので、もしこのような操作を行う場合は参考にしてみてください。では!