EC2

Root Device Volume

EBS vs. Instance Store

EBS-backed

  • EBS ボリュームをルートデバイスとして起動する。
  • インスタンスの Stop ができる。この場合は EBS ボリュームは破棄されない。
  • Terminate では、デフォルトの DeleteOnTermination: True なら EBS ボリュームが破棄される。
  • DeleteOnTermination は EC2 Management Console からは、インスタンス作成時にしか指定できない。AWS CLI を使えば、起動中でも変更できる。
  • 永続データは持てるが、Instance store と比較して、I/O 性能に劣る。
  • EBS はネットワークを介するため、スループットはそのトラフィックに依存する。性能がでない場合は EBS-optimized で帯域を確保する必要がある。
  • 永続データを持てるためデータベースサーバに適している。

Instance Store-backed

  • S3 上の AMI から EC2 インスタンス上のルートデバイスにコピーして起動する。
  • インスタンスの Stop はできない。
  • Terminate 時に EC2 上のディスクの全ての内容が破棄される。
  • 永続データは持てないが、EBS よりは I/O 性能が優れている。
  • 永続データを持たない中継サーバやアプリケーションサーバに適している。

Resizing EBS Volumes

EC2 にマウントした EBS ボリュームの容量を拡張する場合、一旦インスタンスを Stop する必要がある。

  • 対象の EC2 インスタンスを Stop
  • EC2 > ELASTIC BLOCK STORE > Volumes より対象の EBS Volume を選択
  • 下部のメッセージペインの Attachement: よりデバイス名を確認しておく。例)/dev/sda1
  • Actions > Detach Volume で対象の EBS Volume を EC2 インスタンスから切り離す
  • Actions > Create Sanpshot で対象の EBS Volume のスナップショットを作成
  • EC2 > ELASTIC BLOCK STORE > Snapshots より作成したスナップショットを選択
  • Actions > Create Volume で希望のサイズを指定して EBS Volume を作成
  • EC2 > ELASTIC BLOCK STORE > Volumes より作成された EBS Volume を選択
  • Actions > Attach Volume で作成した EBS Volume を対象の EC2 インスタンスに接続する。デバイス名には事前に確認しておいた /dev/sda1 を指定
  • 対象の EC2 インスタンスを Start

起動後に resize2fs コマンドで論理ボリュームを拡張する。デバイス名は Management Console 上の表示が /dev/sda1 の場合、/dev/xfda1 のシンボリックリンクの場合がある。

% df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/xvda1     ...
...

% ls -l /dev/sda1
lrwxrwxrwx 1 ...  /dev/sda1 -> xvda1

% resize2fs /dev/xfda1