【AWS】Windows ServerにアタッチしたEBSの容量を縮小する

Linuxで減らす方法はいくつかありましたが、Windows Serverではあまり見かけなかったので。
ただし、自己責任でお願いします。
また、事前にAWSマネジメントコンソールでスナップショットを取得しておくことをオススメします。
環境:

  • Windows Server2012 R2 Standard

参考:
小さくなって欲しいときもあります

今回、1000GBだったEBSを240GBに縮小しています。
手順としては
Windows Serverでパーティションを縮小
 ↓
作業用Linuxで縮小後のEBSにクローン
 ↓
縮小後のEBSをWindows Serverにアタッチ
といった流れとなります。

コントロールパネル > コンピューターの管理 > ディスクの管理 へ移動

縮小したいパーティションを右クリック>ディスクの縮小 を選択

「〇: の縮小」ウィンドウでサイズを決定
今回はCドライブなので「C: の縮小」となっています。

また、全て縮小してしまうとディスクに余裕がなくなるので、ある程度は余裕を持たせた方が良いです。
ひとまず下記のように50,000MBの余裕を持たせて設定することとしました。

するとディスクが下記のように縮小され、未割当の領域が出来ます。

マイコンピュータを確認しても同様。

当然ですが、縮小後のEBSの容量は上記ディスク容量よりも大きい必要があるので注意。

その後AWSマネジメントコンソールへ行き、縮小後のEBS(240GB)を作成します。
EBSのアベイラビリティゾーンは、Windows ServerのEC2のアベイラリティゾーンと合わせる必要があります。

EBS作成後、作業用のLinuxのEC2を作成します。
AMIは「Amazon Linux 2 AMI (HVM), SSD Volume Type」としました。
インスタンスタイプはt2.micro、EBSはデフォルトの8GBとしています。

作業用EC2作成後、作業用EC2に縮小前(1000GB)・縮小後(240GB)のEBSをアタッチします。
/dev/sdfが縮小前のEBS、/dev/sdgが縮小後のEBSとなります。

アタッチ後、SSHにて作業用EC2に接続し、ddコマンドにてクローンを行います。
確認用のコマンドも含め下記のように操作をしました。

※28行目の sudo dd if=/dev/sdf of=/dev/sdg bs=512 count=1 の結果が取得出来ていませんでした……

上記作業完了後、AWSマネジメントコンソールから作業用EC2を停止させ、縮小後のEBSをデタッチし、そのまま縮小後のEBSをWindows Serverにアタッチを行います。
アタッチ先は下記。
/dev/sda1

縮小前のEBSはアタッチする必要はありません。

アタッチ後、Windows Serverを起動し、リモートデスクトップ接続が行えることを確認。
接続後、再度ディスクの管理を確認すると未割当の領域が少なくなっていることが分かります。

未割当の領域をCドライブに追加する為、(C:)のパーティションを右クリック>ボリュームの拡張を選択します。

そのまま全て「次へ」を選択し、ディスクの拡張を行います。
拡張後にマイコンピュータを確認すると、240GB(一部システム領域があるので若干不足しているが)となっていることを確認します。

多分この手順で問題ないと思いますが……しばらくはスナップショットを保持して様子見してみます。

シェア: