EBSボリュームの作成
では、まず起動しているインスタンスを確認します。ここでは、インスタンスが稼動している「ロケーション」や「インスタンスID」をメモしておきます。
$ ec2-describe-instances RESERVATION r-0c16c265 xxxxxxxxxxxx default INSTANCE i-e5fa208c ami-2b5fba42 ec2-75-101-198-177.compute-1.amazonaws.com domU-12-31-39-00-A9-73.compute-1.internal running fedora_test 0 m1.small 2008-08-24T11:28:24+0000 us-east-1b aki-a71cf9ce ari-a51cf9cc
上記の例では、インスタンスIDは「i-e5fa208c
」、インスタンスの稼動ロケーションは「us-east-1b
」となります。
次に、EBSボリューム(仮想ディスク)を作成します。今回は試しに5GBのディスクを作成してみることにします。EBSボリュームの作成には、ec2-create-volume
コマンドを使用します。
$ ec2-create-volume -z us-east-1b -s 5 VOLUME vol-5026c339 5 us-east-1b creating 2008-08-24T11:29:52+0000
-z
オプションで、先程メモした稼動ロケーション(上記例ではus-east-1b
)を入力、-s
でディスクのサイズ(単位はギガバイト、上記例では5GB)を入力します。
作成後、ボリュームID(上記例ではvol-5026c339
の部分。ec2-describe-volumes
コマンドでも確認できます)をメモしておきます。
「Amazon EC2」のインスタンスにAttachする
先程作成したEBSボリュームを、既に稼動している「Amazon EC2」のインスタンス(仮想マシン)にAttach(取り付け)します。EBSボリュームのAttachには、ec2-attach-volume
コマンドを使用します。
$ ec2-attach-volume -d /dev/sdc -i i-e5fa208c vol-5026c339 ATTACHMENT vol-5026c339 i-e5fa208c /dev/sdc attaching 2008-08-24T11:31:27+0000
上記例では、-d
オプションでインスタンスにて認識する「デバイス名」を、-i
オプションでどのインスタンスに接続するかを識別するインスタンスID(先程メモしたもの)、最後に先程作ったEBSボリュームを示すボリュームID(先程メモしたもの)を指定しています。
「デバイス名」に関してですが、EC2上で稼動するLinux OSのイメージは「/dev/sda」が使用されています。「/dev/sdb」以降のデバイスは、通常空いているので、任意のデバイス名(「/dev/sdb」「/dev/sdc」「/dev/sdd」…)を指定しておけば問題ありません。
Attachが正常終了すると、表示がattaching
からattached
に変わります(ec2-describe-volumes
コマンドで確認できます)。
なお、「Amazon EC2」インスタンスにAttachするEBSボリュームの稼動ロケーションは、インスタンスの稼動ロケーションと同じにしておく必要があります。インスタンスとEBSボリューム双方の稼動ロケーションが揃っていない場合は、次のようなエラーが発生します。
Client.InvalidVolume.ZoneMismatch: The volume 'vol-5026c339' is not in the same availability zone as instance 'i-25c3194c'