[AWS] EBSボリュームを拡張してAmazon Linuxの容量上げる

2019-03-26開発環境系AWS, Linux

EC2上のAmazon Linuxにあるファイルを、Cyberduckで更新するとファイルサイズが0バイトになる事態が発生
ファイルシステムの容量がいっぱいになり、ファイル保存(更新)ができなくなった模様
EBSの容量を増やすことになったため、その手順をメモしておく

スポンサーリンク

EBSとは

Amazon Elastic Block Store ( Amazon EBS ) のこと

EC2 にもインスタンスストアというメモリ領域を持っているが、容量が不足した時とか、サーバー停止してもデータ保持したい時(サーバー停止するとインスタンスストアは初期化される)に、データ容量を増やせるサービス。外付け HDD みたいな感じ
もちろん課金されるが、ストレージ 30 GB、I/O 200 万回、スナップショットストレージ 1 GB は無料枠

以前は、ボリュームの拡張やボリュームタイプの変更には、「インスタンスの停止⇨スナップショット」の作成が必要だったらしいが、 今はインスタンスを起動したまま変更が行える

容量を確認する

SSH でログインし、df -h コマンドで確認
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        987M   60K  987M   1% /dev
tmpfs           997M     0  997M   0% /dev/shm
/dev/xvda1      7.8G  7.7G     0 100% /
/dev/xvda1 がSFTPとかでつないで、ファイル作ったりするとこ

EBS ボリュームを増やす

AWS マネジメントコンソール にログインする

左サイドバーの「ELASTIC BLOCK STORE」の「ボリューム」を選択

AWS ELASTIC BLOCK STORE
AWS ELASTIC BLOCK STORE

対象インスタンスを選択し、画面上部の「アクション」⇨「ボリュームの変更」をクリック

AWS ELB Action
AWS ELB Action

必要なサイズを入力し、「変更」クリック

AWS Modify Volume
AWS Modify Volume

今回は「サイズ」のみ変更 : 8G -> 12G
「汎用 SSD (gp2)」の変更可能サイズ: 1 GB~16 TB の間

*「サイズ」は増やすことはできるが、減らすことはできない


EBS ボリュームタイプも変更することができる

EBS ボリュームタイプ種類
  • 汎用 SSD (gp2) (デフォルト)
  • プロビジョンド IOPS SSD (io1)
  • スループット最適化 HDD (st1)
  • Cold HDD (sc1)

画面下の「説明」タブの「状態」が in-use – completed (100%) になったら完了.ファイルシステムを拡張できる

Amazon Linux の容量を増やす

Amazon Linux AMI release 2018.03 を使用している

lsblk コマンドで、容量が増えていることを確認

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  12G  0 disk
└─xvda1 202:1    0   8G  0 part /

パーティションの拡張

growpart /dev/xvda 1 でパーティションを拡張する
$ sudo growpart /dev/xvda 1
CHANGED: disk=/dev/xvda partition=1: start=4096 old: size=16773086,end=16777182 new: size=25161694,end=25165790
growpart より先に、resize2fs /dev/xvda1 コマンドを実行したがエラーになった.
$ sudo resize2fs /dev/xvda1
resize2fs 1.43.5 (04-Aug-2017)
The filesystem is already 2096635 (4k) blocks long.  Nothing to do!
growpar というパーティションを拡張するコマンドを打たないとファイルシステムの拡張( resize2fs )はできないようだ

ファイルシステムの拡張

resize2fs /dev/xvda1 でパーティションを拡張する
$ sudo resize2fs /dev/xvda1
resize2fs 1.43.5 (04-Aug-2017)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/xvda1 is now 3145211 (4k) blocks long.

容量が増えたことを確認

$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  12G  0 disk
└─xvda1 202:1    0  12G  0 part /

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        987M   60K  987M   1% /dev
tmpfs           997M     0  997M   0% /dev/shm
/dev/xvda1       12G  7.7G  4.0G  67% /

Posted by Agopeanuts