Drowsy Dog's Diary

any note, any thought

稼働中 EC2 インスタンスの EBS ボリュームのサイズ変更

| 0 comments

基本だけど、胃を痛めながらやったのでメモ。

稼働中の EC2 インスタンスで EBS(Root Device) のサイズを変更。
基本的に、現在の EBS からスナップショット作成→スナップショットから新規 EBS ボリューム作成 → 新しいボリュームをアタッチして再起動、という流れ。

0.確認

AWS にログインし、コンソールから EC2 インスタンス一覧を表示。
対象インスタンスをクリックし、”Block Devices” を確認。
rootdevice
そのデバイス名(ここでは sda1)をクリックして EBS ID を確認。

1.インスタンス停止

対象インスタンスで稼働中のサービスを停止し、インスタンスを stop する。
インスタンスを選択して”Actions”→”stop”

2.スナップショット作成

サイドバーの “Volumes” をクリックし、ボリューム一覧を表示。
0.で確認した EBS ID のボリュームを選択し、現在アタッチされているボリュームの Zone と Attachment を確認しておく。
zone
#特に設定を変えていなければ /dev/sda1 になっているはず

OK なら “Actions” → “Create Snapshot” を実行。
名前と説明を記入してスナップショットを作成する。
#わかりやすい Description はとても重要。

また、このスナップショットの状態で変更後のインスタンスが立ち上がるのに注意。
たとえば DB 上のメンテナンスフラグが立った状態で立ち上がって欲しいなら、先にそれを行っておく。

3.スナップショットから EBS Volume 作成

サイドバーの “Snapshots” をクリックし、スナップショット一覧を表示。
先ほど作成したスナップショットを選択し、上部ツールバーから”Create Volume”する。
必要なサイズを設定し、2.で確認したのと同じ Availability Zone を選択する。
createVolume
“Yes, Create” で作成。

4.現在の EBS ボリュームをデタッチ

サイドバー “Volumes” をクリックし、対象の EBS を選択して、
“Actions” → “Detach volume”

5.新しい EBS ボリュームをアタッチ

新規に作成したボリューム(State は “available” になっている)を選択して、
“Actions” → “Attach volume”
attachVolume
アタッチする対象インスタンスを選択し、2.で確認したのと同じデバイス(ex: /dev/sda1)を設定する。

6.インスタンスの起動

対象インスタンスを選択し、”Actions” → “Start”
また、Elastic IP を使用しているなら再度 IP アドレスを Associate する。

7. resize2fs コマンドでファイルシステムのサイズ変更を反映

インスタンスを立ち上げただけではまだサイズ変更は反映されていない。

対象インスタンスへ SSH ログインし、

を実行する。

OK!


Author: kazoo

犬はさよならを言わないのだ。

コメントを残す

Required fields are marked *.