keisyuのブログ

最近めっきりエンジニアリングしなくなった厄年のおじさんがIT技術をリハビリするブログ。

AWSを使ってみる. ( EC2 : EBS, AMI 編 )

前回はAWSでEC2インスタンスを単純に起動するところまででしたが今回はEBS,AMIについて調べてみます。

EBS

EC2で利用できる永続的ストレージです。これを用いるとEC2にディスクデバイスを追加することが可能です。

  • 容量の拡縮が数分で完了。
  • AZ内で自動的にレプリケート
  • 通常のボリュームの他に「プロビジョンド IOPS ボリューム」というものも選択できる。高速なIOPS。ストライピングも可能で更に超高速に。
  • S3にスナップショットを保存可能
  • スナップショットは共有可能
  • EBSを保持している間は課金発生。デバイスアクセス毎に課金発生。

作成してみます。まずはManagement Console の EBS - Volumues を選択して「Create Volume」で作成。容量等を選択してCreateします。
f:id:keisyu:20140224180306j:plain:w300
作成したEBSがリストに追加されます。
f:id:keisyu:20140224180419j:plain:w300
これをEC2にアタッチするには右クリックしてAttach Volumeを選択しアタッチしたいEC2のIDを選択します。
f:id:keisyu:20140224180426j:plain:w300
アタッチが完了するとEC2上の /dev 以下にストレージデバイスが追加されます

$ ls -l /dev/xvd*
brw-rw---- 1 root disk 202,  1  224 08:26 2014 /dev/xvda1
brw-rw---- 1 root disk 202, 80  224 08:59 2014 /dev/xvdf
$ ls -l /dev/sd*
lrwxrwxrwx 1 root root 5  224 08:26 2014 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root 4  224 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が利用できることになります。
f:id:keisyu:20140224192111j:plain:w300

AMI

EBSは追加ストレージに関する機能でしたがAMIは起動ディスクに対してMachine Imageを作成することができます。EC2を起動するときに最初に選択する今までOS等を選んでいたものもパブリックなAMIです。このAMIから個人でカスタマイズしたEC2インスタンスに関する起動イメージをAMIとして作成することができます。作成されたAMIから新しいEC2インスタンスを起動することでカスタマイズした同一の構成のEC2インスタンスを簡単に作成することができます。

AMIの作成

AMI化したいEC2インスタンスを構築しStopで停止します。EC2のマネージメント小ソールから該当のインスタンスを選択して「Create Image」 を選択します。
f:id:keisyu:20140224222820j:plain:w300
AMIsの項目に作成したAMIがリストされます。しばらくするとステータスがavailableになって利用可能になります。
f:id:keisyu:20140225012643j:plain:w300
これで、EC2のインスタンス作成時にMyAMIsから選択でき自分で作った構成のマシンが起動可能になります。
f:id:keisyu:20140225012828j:plain:w300