データエンジニア日記

データエンジニアの雑記

EC2(EBS)のサイズ拡張が簡単になっていた件

会社で使っているサーバ(EC2)の容量がFullになっていた。 ここで動いているRStudioServerにブラウザ経由でログインできなくなったことにより発覚。*1

そこでそのEC2にアタッチされているEBSの拡張をしようと思った、、、のだが、

  1. EC2を停止

  2. 該当EBSのスナップショット取得(1時間ぐらい)

  3. スナップショットからサイズを大きくしたEBSを取得

  4. EC2から元のEBSをデタッチ

  5. 拡張した方のEBSをEC2にアタッチ

  6. EC2を起動

としなくてはいけないのかと思っていた(実際に昔この手順をしたことがある)。これはEBSの大きさにもよるが、小一時間程度かかる。

当然この間サーバは使えない。

ところが、以下のような簡単な操作でEBSのサイズを変えれるようになっていた!

dev.classmethod.jp

aws.amazon.com

以下の手順で早速やってみた。

AWSコンソール上での作業

上記のクラスメソッドのページの手順の通り。

今回は500Gのst1のEBSを1000Gにしたが、一瞬で完了した。 EBSをデタッチ→アタッチする手順に比べると大違い。EC2の高負荷時は避けた方がいいらしいので、出来れば凪な時間帯にやるのがいいだろう。今回は利用者側から特に不具合報告はなかった。

注意としてはAWSのWeb管理コンソール上のEBSのブロックデバイス名とLinuxコンソール上の各種コマンド(dfとか)で見たデバイス名は微妙に異なるので注意(作業対象のEBSを間違えないように)

docs.aws.amazon.com

事後にLinuxコンソール上でやらないといけない操作

Linuxコンソールでログインした後、

lsblk

で見ると

/dev/xvda1         40188  13461     26629  34% /
devtmpfs           15325      1     15325   1% /dev
tmpfs              15334      0     15334   0% /dev/shm
/dev/xvdc        1007805 488568    473122  51% /home

df -h で見てもサイズは元のままである。

ここでは

sudo resize2fs /dev/xvdc

のように作業対象のFileSystemをリサイズしてあげる必要がある。*2

事後にdfで確認したら、たしかにサイズが変わっていた。

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       40G   14G   27G  34% /
devtmpfs         15G   60K   15G   1% /dev
tmpfs            15G     0   15G   0% /dev/shm
/dev/xvdc       985G  478G  462G  51% /home

docs.aws.amazon.com

まとめ

今後は気軽(?)にEBSのサイズの拡張ができる。 注意点としては、縮小はできません。縮小するとなると、最初に述べた「デタッチ→アタッチ」の手順しか無さそう。

dev.classmethod.jp

*1:ちゃんと監視入れとけというツッコミがありそうですが、まったくもってその通り

*2:要root権限