AWSを使ってみる. ( EC2 : EBS, AMI 編 )
前回はAWSでEC2インスタンスを単純に起動するところまででしたが今回はEBS,AMIについて調べてみます。
EBS
EC2で利用できる永続的ストレージです。これを用いるとEC2にディスクデバイスを追加することが可能です。
- 容量の拡縮が数分で完了。
- AZ内で自動的にレプリケート
- 通常のボリュームの他に「プロビジョンド IOPS ボリューム」というものも選択できる。高速なIOPS。ストライピングも可能で更に超高速に。
- S3にスナップショットを保存可能
- スナップショットは共有可能
- EBSを保持している間は課金発生。デバイスアクセス毎に課金発生。
作成してみます。まずはManagement Console の EBS - Volumues を選択して「Create Volume」で作成。容量等を選択してCreateします。
作成したEBSがリストに追加されます。
これをEC2にアタッチするには右クリックしてAttach Volumeを選択しアタッチしたいEC2のIDを選択します。
アタッチが完了するとEC2上の /dev 以下にストレージデバイスが追加されます
$ ls -l /dev/xvd* brw-rw---- 1 root disk 202, 1 2月 24 08:26 2014 /dev/xvda1 brw-rw---- 1 root disk 202, 80 2月 24 08:59 2014 /dev/xvdf $ ls -l /dev/sd* lrwxrwxrwx 1 root root 5 2月 24 08:26 2014 /dev/sda1 -> xvda1 lrwxrwxrwx 1 root root 4 2月 24 08:59 2014 /dev/sdf -> xvdf
※この ln の関係の理由は EBSではデバイス名は、/dev/sd[f-p] の指定しかできず、最近のLinuxカーネルのデバイス名は、/dev/xvd[f-p]だという経緯らしい。
新規ののボリュームを作成した場合はファイルシステムを作成した後にマウントをすれば利用できます
$ sudo mkfs -t ext3 /dev/xvdf $ sudo mount /dev/xvdf /ebs_mount1 $ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 8256952 1222752 6950316 15% / tmpfs 304144 0 304144 0% /dev/shm /dev/xvdf 10321208 154232 9642688 2% /ebs_mount1
再起動したらmountが外れないようにするには /etc/fstab に以下のように追記する
/dev/xvdf /ebs_mount1 ext3 defaults 0 0
EC2をTerminateするときにはEBSボリュームは Delete on Termination の付いてないから残り続けるよと警告でます。
Detachして他のEC2を立ち上げて付け替えても当然うまく行きます。
SnapShot
EBSボリュームはスナップショットをS3にバックアップすることができます。EBSのボリュームを選択して Create Snapshotを選択する(もしくはSnapshotセクションでCreateしてEBSを選択する)だけです。スナップショットを作成しておけばEC2インスタンス作成時にそれを指定してEBSを作成することができます。Snapshotから新しいEBSを作成するので同一Snapshotのボリュームを複数のEC2が利用できることになります。