EBS サイズ拡張後の Windows ファイルシステムのボリュームを セッションマネージャで増やしてみた

みなさま Xin chao !

この度、既に稼働中の Windows EC2 インスタンスに接続されている EBS のボリュームサイズを増やすことになりました。

以下のブログで紹介されている通り、現在では EC2 インスタンスを停止させることなく EBS ボリュームサイズを増やすことができるようになっています。

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

なのでサクっとできるかな~と考えていましたが、まずは AWS のドキュメントを読んでみました。

Amazon EBS Elastic Volumes - AWS ドキュメント - Windows インスタンス用ユーザーガイド

 

AWS のドキュメントによれば、大まかに以下のような流れになります。

  1. EBS ボリュームサイズを増やす
  2. Windows ファイルシステムのボリュームサイズを増やす

 

AWS のドキュメントを読んでいて、1 つ疑問が湧きました。

Windows ファイルシステムのボリュームサイズを増やすのは SSM セッションマネージャ経由でも可能か?

前述の AWS のドキュメントでは、Windows ファイルシステムのボリュームサイズを増やすのを、GUI で行う方法が記載されていました。 この方法では、対象の EC2 インスタンスにリモートデスクトップ接続するがありますが、外部からリモートデスクトップ接続を行う経路が存在しない AWS 構成の場合、オンプレ環境等内部からリモートデスクトップ接続できる別の方に作業を依頼する等の必要があります。 もし SSM セッションマネージャ経由でも可能であれば、より簡単にできるようになります。

問題なくできそうな気もするのですが、いろいろ検索しても、実際にやってみたような情報を見つけることはできず (自分の検索テクニックがないだけかもしれませんが)... ということで、実際に試してみました。

やってみた

前提

今回試した環境

既存環境として、既に以下のリソースが用意された状態から始めます。

  • EC2 × 1 (Windows Server 2016, t3a.medium)
    • SSM セッションマネージャで接続できるよう AmazonSSMManagedInstanceCore のポリシーを含む IAM ロールを割り当て済み
    • インターネット向けの通信はすべて許可
  • EBS × 1 (300 GB)
    • Windows ファイルシステムで C: 300 GB として割り当て済み

やりたいこと

  • EC2 に接続されているEBS のボリュームサイズを 500 GB に拡張し C: を 500 GB に拡張する (つまり 200 GB だけ拡張する)
  • SSM セッションマネージャで接続して Windows ファイルシステムのボリュームサイズを増やすことができることを確認する

AMI を取得

変更を与える前に、万が一に備えて対象となる EC2 の AMI を取得します。

EBS ボリュームサイズを確認

AWS マネジメントコンソールにて、現状の EBS ボリュームサイズを確認します。

EBS ボリュームサイズを増やす

AWS マネジメントコンソールにて、EBS ボリュームサイズを 300 GB → 500 GB に増やします。

EBS の状態が、optimizing から in-use に変わるまでしばらく待ちます。 今回の環境で何度か試した限りでは、いずれも 5 ~ 10 分程度で in-use になりました。

※※※※※ 以下 2020/1/16 追記 ※※※※※

今回と同様に 300 GB の EBS を 500 GB に増やす場合でも、ボリュームサイズを増やす前の EBS の利用状況に応じて、in-use になるまでの時間は大幅に異なる場合があります。 本ブログを投稿後、まったく別の環境で試した際には 2 時間かかっても optimizing (xx%) の状態が進行中で in-use になりませんでした。

なお、optimizing の状態でも、次のステップである Windows ファイルシステムのボリュームサイズを増やすことは可能です。 AWS のドキュメントにも、以下の通り記載されています。

ボリュームが optimizing 状態になり次第、ファイルシステムのサイズ変更を開始できます。

ボリュームサイズ変更後の Windows ファイルシステムの拡張 - AWS ドキュメント - Windows インスタンス用ユーザーガイド

※※※※※ 以上 2020/1/16 追記 ※※※※※

Windows ファイルシステムのボリュームサイズを増やす

SSM セッションマネージャで対象の EC2 に接続し、Diskpart コマンドを使って Windows ファイルシステムのボリュームサイズ拡張を進めていきます。

まずは、EBS ボリュームサイズが増えていることが認識され、空き領域ができていることを確認します。

diskpart
list disk

EBS ボリュームサイズが増えていることが認識されていない場合、rescan コマンドで再認識させたうえで、再度確認します。

rescan

Windows ファイルシステムのボリューム一覧を表示し、現状のサイズを確認します。

list volume

C: を選択します。

select volume 0

空き領域全てを C: に割り当てます。

extend

C: が 500 GB に増えていることを確認します。

list volume

diskpart コマンドを終了します。

exit

SSM セッションマネージャでも、無事に Windows ファイルシステムのボリュームサイズを増やすことができました!

まとめ

SSM セッションマネージャ経由でも、無事に Windows ファイルシステムのボリュームサイズを増やすことができました。

SSM セッションマネージャで接続できるインスタンスであれば、リモートデスクトップで接続できるように既存環境を変更する必要もなく作業ができるので、とても助かります!

あわせて読みたい

OS別EBSオンライン拡張方法

EBS でボリュームサイズ/タイプ変更時のパフォーマンスを検証してみた

新ポリシー AmazonSSMManagedInstanceCore がサポートされました