マネージドサービス部 佐竹です。
今回、AWS 公式ドキュメントを眺めていると、io2 が一覧から消えていることに (いまさら) 気付きました。また本件に関連して AWS サポートへ問い合わせを実施したため、その回答と共に記載していきます。
- はじめに
- io2 Block Express に以前あった制限事項
- 2023年11月21日 以前に作成された io2 ボリュームでは io2bx 化するために操作が必要
- このアップデートは何が嬉しいのか
- まとめ
はじめに
まずはこちらをご覧ください。
本画面キャプチャは、以下の AWS 公式ドキュメントである「Amazon EBS ボリュームの種類」から抜粋したものです。
以前まではここに「io2」が存在しておりましたが、その io2 が一覧から消えています。代わりに以下の文章が追記されていました。
2023 年 11 月 21 日以降に作成されたすべての io2 ボリュームは io2 Block Express ボリュームです。2023 年 11 月 21 日より前に作成された io2 ボリュームは、ボリュームの IOPS またはサイズを変更することで io2 Block Express ボリュームに変換できます。
io2 と io2 Block Express (以後 io2bx と記載) に境目がなくなり全てが io2bx に統一されていました。ということで、現在 io2 は一覧から削除されてしまっています。
AWS アップデート
参考まで、2023年11月21日に発表されていた AWS アップデートの記事は以下の通りです。
io2 Block Express に以前あった制限事項
以下のブログでも引用しましたが、io2bx を利用するためには、io2 を特定のインスタンスタイプにアタッチする必要がありました。
io2 Block Express volumes are supported with C6a, C6in, C7g, C7gd, C7gn, C7i, Inf2, M6a, M6in, M6idn, M7a, M7g, M7gd, M7i, M7i-flex, P5, R5b, R6a, R6in, R6idn, R7a, R7g, R7gd, R7iz, Trn1, Trn1n, X2idn, and X2iedn instances.
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/provisioned-iops.html#io2-block-express
上記の記載は既にドキュメントから削除されているため存在しませんが、以前は上記の通りの制限が io2bx には存在していたのです。
またこの件に関しては re:Post にも記載があります。
Amazon EBS io2 Block Express ボリュームを EC2 インスタンスにアタッチしようとすると、「VolumeInUse」というエラーが表示されるのはなぜですか?
このエラーは、io2 Block Express ボリュームをサポートしていない EC2 インスタンスタイプに、そのボリュームタイプのアタッチを試みた場合に発生します。この問題を解決するには、ボリュームをアタッチする対象である EC2 インスタンスタイプが、io2 Block Express ボリュームをサポートしているかどうかを確認します。
ということで、制限があったことは間違いがないのですが、2024年2月現在は本制限がなくなっています。
2023年11月21日 以前に作成された io2 ボリュームでは io2bx 化するために操作が必要
ドキュメントに「2023 年 11 月 21 日より前に作成された io2 ボリュームは、ボリュームの IOPS またはサイズを変更することで io2 Block Express ボリュームに変換できます。」と記載があるように、全てのインスタンスタイプで io2bx として利用するためには io2 の EBS Volume 側に何らかの変更を行う必要があります。
ただし、この変更を行ったかどうか把握できていない場合もあるでしょう。
確認には AWS Config / CloudTrail を利用する
この件に関して AWS サポートに対し「ここを見れば、2023年11月21日以降に変更されたかどうかを正しく判断することが可能となる機能はあるか?」と問い合わせしたのですが、答えは「直接、確認ができるような機能はご提供がございません。」とのことです。
そのため、AWS Config で該当 Volume の変更履歴を確認するか、AWS CloudTrail で ModifyVolume の API Call を確認するしかないようでした。
AWS Config での調査例
特定の EBS Volume の設定変更履歴を AWS Config の機能で追いかけることが可能です。
全ての変更履歴を見ると数が多すぎるため、「Resource Timeline」を開いた後に「Event type」から「configuration events」を選択して確認してください。
今回の例では「October 2, 2023」が最終変更日のため、io2bx を全てのインスタンスタイプで利用する準備ができていないことがわかりました。
2023年11月21日 以前に作成された io2 を変更操作なく io2bx で利用するためには
2023年11月21日 以前に作成された io2 を変更操作なく io2bx で利用するためには、以前記載されていた制限の通り特定のインスタンスタイプにアタッチする必要があります。
ただこのインスタンスタイプの一覧が既に AWS 公式ドキュメント上に存在しないこともあり、できれば何らかの変更作業を io2 ボリュームに対して実施されたほうが良いでしょう。
費用へのインパクトを考え、かつ可逆的な設定を考えると「IOPS の値を 1 だけ増加させる、後程元の IOPS 値に戻す」あたりが考えられる1つの案となります。
このアップデートは何が嬉しいのか
本アップデートのコストメリットについて記載します。
これまでは、例えば R6i を利用しているインスタンスでは、io2bx を利用することができませんでした。よって、io2bx を利用するために R6in へとインスタンスタイプを変更する必要がありました。
この変更により、「インスタンスが一時的に停止する」且つ「インスタンスの単価が増加する」という影響がありました。
しかし、今現在は R6i のままでも io2bx が利用できる状況のため、上記2つの影響を受けずに済みます。
もし io2bx を利用したいがために少し高額なインスタンスタイプを利用されているお客様は、n 表記なしのインスタンスタイプへ変更することでコスト最適化が可能な場合もあるでしょう。
ただし、R6in と R6i では、EBS 最適化のベースラインの帯域幅 (Mbps)、ベースラインの帯域幅 (Mbps)などの値が異なる点に注意が必要です。
インスタンスタイプ変更によるこれらの値の影響は以下の公式ドキュメントを合わせてご確認ください。
まとめ
本ブログでは、2023年11月21日に EBS Volume の io2 が io2 Block Express に統一され、公式ドキュメントの一覧表記から消えた件について記載しました。
注意点として、2023年11月21日 以前に作成された io2 ボリュームでは io2bx 化するために何らかの変更操作が必要です。
また既に対象のボリュームに変更操作がされているかどうかの確認には、AWS Config か AWS CloudTrail を利用されると良いでしょう。
そしてこれまで io2bx のために少し高額なインスタンスタイプを(制限のために仕方なく)利用されているお客様は、インスタンスタイプを適切に変更することでコスト最適化が可能な場合もあるかと存じますため、一度見直しをされても良いかと存じます*1。
以上で io2 が一覧から消えた件については終わりにしたいと思います。
では、またお会いしましょう。
*1:これには AWS Compute Optimizer の提案も参考になるでしょう
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。