Amazon EBSがアップデートで複数インスタンス接続可能になっていた

お疲れ様です。
エンジニアリングソリューション事業部のS.Kです
8月に「AWSソリューションアーキテクト-アソシエイト」の試験勉強をしていた際、
AWSのEBSというストレージサービスにおいて
気になるアップデートがありましたので共有させていただきます。

目次

  1. AmazonEBSとは
  2. アップデートによって追加されたEBSのマルチアタッチ機能について
  3. マルチアタッチ機能を有効にする際の制約
  4. マルチアタッチ機能を有効にする方法
  5. AWS認定試験における注意点
  6. まとめ

Amazon EBSとは



Amazon EBSとは、EC2インスタンスに接続することのできる
ブロックレベルのストレージサービスのことです。
EC2という仮想サーバに取り付ける、外付けストレージのような
役割といえばわかりやすいかと思います。

本来、EC2インスタンスはインスタンスストアボリュームと呼ばれる
揮発性のストレージを持っているのですが
これはインスタンスを停止するごとにデータを消去してしまいます。

そのためEBSをインスタンスに接続することで、
インスタンスを停止してもデータを消去せず
再起動した際にはデータを保持したままの状態で接続してくれます。 

EBSにはいろいろな特徴があります。
  • EC2インスタンスアタッチできるブロックタイプストレージ
  • スナップショット機能によるデータのバックアップ
  • ストレージ容量の増減がいつでも可能
  • 5種類のストレージタイプから選ぶことで様々なワークロードに対応
  • 自動的な複数サーバへのレプリケートにより、可用性と耐久性を実現
  • EBSのデータはシームレスに暗号化されている
  • 一つのEBSボリュームは一つのEC2インスタンスにしかアタッチすることができない。


これらがEBSの一般的に知られている特徴なのですが、
一つのEBSボリュームは一つのEC2インスタンスにしかアタッチすることができない
という特徴については、正式にいうと間違った認識であるといえます。


アップデートによって追加されたEBSのマルチアタッチ機能について



今年の二月に、Amazon EBSにおいてMulti-Attach機能が追加されるアップデートがありました。
※下記参照

<New – Multi-Attach for Provisioned IOPS (io1) Amazon EBS Volumes>


これによって単一のEBSボリュームが
複数のEC2インスタンスの共有ボリュームとして
アタッチできるようになったのです。


今までのAWSの一般知識として、EBSボリュームは
単一のインスタンスにしかアタッチできないという考え方が
常識だったので、このアップデートがあったと知ったときは驚きでした。

しかしながら、このアップデート自体はあまり普及していないようで、
公式のAWS試験においても「EBSボリュームは単一インスタンス
にしか接続できない」という考え方が正解の選択肢のままになっています。

というのも、このマルチアタッチ機能は
多くの制約のもと使用できる機能のため
まだ一般的に使用されているとは言い難いようですね。

マルチアタッチ機能を有効にする際の制約



前述したマルチアタッチ機能を使う上での
制約についてご紹介していきます


・プロビジョンドIOPS SSD(io1)ボリュームの種類でのみサポートされる
・リージョンでの制限があり、現在利用可能なのはus-east-1、us-west-2、 eu-west-1、ap-northeast-2地域のみ。
・I/Oフェンシングをサポートしていないため、アプリケーション側で同時更新を防ぐための排他制御を行う必要がある
・アタッチできるのはNitoroベースのインスタンスのみ
・最大接続数は16のインスタンス
・マルチアタッチを有効化できるのはボリュームの作成時のみ
・マルチアタッチを有効にしたボリュームをブートボリュームとして作成できない
・マルチアタッチを有効にしたボリュームはインスタンスごとに一つのデバイスのみアタッチ可能
・マルチアタッチを有効にしたボリュームはタイプ、サイズの変更はできない
・Amazon EBSインフラストラクチャレイヤー(EBSの物理ホスト)に問題がある場合、アタッチしているすべてのインスタンスで使用できなくなる

※Nitoroベース:2017年に発表された、AWSが開発した次世代EC2インスタンスの基盤プラットフォーム

これらの通り、マルチアタッチ機能は有効にする上で
多くの制約がつけられていますので、多くのユースケースに
沿わないことが多いようですね


マルチアタッチ機能を有効にする方法



制約条件について理解していれば、
マルチアタッチ機能を有効にするのはきわめて簡単です。

まず、AWSマネジメントコンソールからEBSボリュームの作成画面まで移ります。
EBSボリューム作成画面(汎用SSD)
ボリューム作成画面まで遷移しましたが、
ボリュームタイプが「汎用SSD(gp2)」になっているため
マルチアタッチ機能についての表示がありません。


そのためボリュームタイプを
「プロビジョンド IOPS SSD(ios1)」に変更してみます。
EBSボリューム作成画面(プロビジョンドIOPS SSD)
すると、マルチアタッチ機能のチェックボックスが出現しました!
こちらを押下することで、EBSのマルチアタッチ機能を
利用できるようになります。


AWS認定試験における注意点



今年の2月にこのマルチアタッチ機能がEBSに追加されたのは確かなのですが、
前述したとおり、まだまだ一般的に広まっているとは言えません。

AWS認定試験においてもそれは変わらず、
EBSボリュームは単一インスタンスにのみ接続できる
というのが前提として問題が出題されます。

そのため、今後AWS認定試験を受ける予定の方は
このマルチアタッチ機能については
「そういう新しい機能はあるが、基本的には問題には出ないな」
という認識でいることをおススメいたします。

まとめ


制約はありますが、思った以上に簡単に導入できましたね。
制約が多いせいで、使い勝手は悪いでしょうがブロックタイプストレージで
共有ができるようになったことで多様性が生まれたことは確かです。

また、AWSの成長性についても健在であることの再確認になりました。
今後もアップデートが重ねられることが予想されるため、
たびたびチェックしていきます。

投稿者: エムシバ君