ご存知でしたか?EC2インスタンスは再起動なしにディスクサイズ(EBSボリュームサイズ)を増やせます

やりたいこと

ディスクサイズを増やしたい!
EC2インスタンスを立ち上げて利用し始めたは良いものの、実際使ってみると保存しておきたいデータがいっぱいでディスクの空き容量が少なくなってきてしまった…ピンチ…
あると思います。ディスクサイズを増やしたいところですね。

私は、ディスクサイズ拡張などEBSの設定に変更を加えたい場合、以下の作業が必要だと思っていました。

  • インスタンスを停止する
  • EBSボリュームをデタッチする
  • スナップショット作成
  • スナップショットを使って新しいサイズのEBSボリュームを作成
  • EBSボリュームアタッチ
  • インスタンス再起動

2019年5月現在、これらの作業は 不要 になっていました。確かに昔はこのような作業が必要でしたが、今はインスタンスを起動したまま、ボリュームをアタッチしたまま、サイズ拡張が可能です。どうやら2017年2月のアップデートだったようですね。。AWSの進化のスピードおそるべし。

【遂に来た!】EBS でボリュームサイズを変更できるようになりました(ボリュームタイプ変更も)

今回はこのディスクサイズ拡張作業をWindowsインスタンスでやってみたレポートになります。
主に下記の公式ドキュメントを参考にしています。
EBS ボリュームのサイズ、パフォーマンス、またはタイプの変更

例外があります

以下の場合はこれまでのようにインスタンス再起動等の前述の手順が必要です。

  • インスタンスタイプが現行世代のインスタンス でなく、かつ旧世代の以下インスタンスファミリーでもない場合
    • C1、C3、CC2、CR1、G2、I2、M1、M3、R3
  • 2 TiB (2048 GiB) 以上のボリュームの場合
  • 前回の変更から6時間以内の場合

また、 たとえインスタンス再起動等を行なっても ボリュームサイズを小さくすることはできません。 ボリュームサイズを小さくしたい場合は、小さいサイズのボリュームを新規作成し、そのボリュームにデータをコピーしてください。

他にも細かな条件があります。詳細は公式ユーザーガイドhttps://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/modify-volume-requirements.htmlをご確認ください。

具体的な手順

概要は以下です。

  1. (スナップショット作成)
  2. EC2コンソール上でボリュームサイズ変更リクエスト
  3. 待つ
  4. ファイルシステムの拡張

それでは各ステップを細かく見ていきましょう。

(スナップショット作成)

必須ではありませんが、変更をロールバックする必要が生じた場合に備えて念の為ボリュームのスナップショットを取っておきましょう。

まずは、サイズを変更したいディスクがアタッチされているインスタンスをインスタンス一覧ページから特定します。
詳細情報欄のルートデバイス、ブロックデバイス欄にアタッチされているEBSボリュームの情報が記載されています。クリックするとEBS ID欄がリンクになっているので、そちらからEBSボリュームのページに移動しましょう。 EC2詳細画面でアタッチされているEBSボリュームの情報を表示しているところ

移動したらナビゲーションペインで「スナップショットを作成」を選択。次画面のフォームで作成手続きを完了させてください。 スナップショットを作成

EC2コンソール上でボリュームサイズ変更

さてここからは本作業です。再びEBSボリュームのページでナビゲーションペインを開きます。今度は「ボリュームの変更」をクリックしましょう。 ボリュームの変更

次画面にて変更後のサイズを入力して「変更」ボタンをクリックします。 サイズ変更

変更リクエスト成功

待つ

EBSボリューム一覧で対象のボリュームを確認すると、状態列の値が変化しているはずです。
ボリュームの状態は modifying、optimizing、completed の順に変わるとのこと。ただ私の環境ではmodifyの状態は確認できず、すぐoptimizing(in-use - optimizing)になっていました。あまり大きく無いサイズだったからでしょうかね。
optimizing以降になっていれば次の操作が可能ですので、次に進みましょう。

ファイルシステムの拡張

インスタンスにRDP接続します。
「diskmgmt.msc」で検索してディスクの管理ユーティリティを呼び出します。
ディスクの管理ユーティリティ 下の方のDisk0欄に「20.00GB unallocated」というのが見えますね。見えていない場合は「操作 > ディスクの再スキャン」(「Action > Rescan Disks」)を実行してください。

次に、Cドライブ(サイズを増やしたいドライブ)を右クリックし、「Extend Volume (ボリュームの拡張)」を選択してください。 ドライブを選択 あとはウィザードのデフォルトの選択肢を進めていけばサイズ拡張の完了です!

Linuxだとどうなの?

Linuxでも可能です!詳しくは以下をご覧ください。
EBS ボリュームのサイズ、パフォーマンス、またはタイプの変更 (EC2 Linux インスタンス用ユーザーガイド)

まとめ

ディスクサイズ拡張にインスタンスの停止とかボリュームデタッチが必要だったのは過去の話。今はボリュームアタッチしたままインスタンス起動したままでサイズ拡張ができます!

参考リンク