EBSブートなAMIイメージで、インスタンスストレージを割り当てる

通常、EBS *1 からブートするAMIイメージでインスタンスを立ち上げると、インスタンスに割り当てられたストレージ(smallの場合150GB)はデバイスとしてアタッチされていません。


せっかくEBSがメインストレージなんだからそれを増やせばいいという話もありますが、僕のような貧乏性はもったいないな〜、あればなにか使えそうなのに〜と感じていました。


というわけで前置きはこのあたりにするとして、下記のようにインスタンスを立ち上げるとストレージを割り当てることができます。

$ ec2run ami-xxxxxxxx -b /dev/sdc=ephemeral0 -k user_key -g user_group


"ami-xxxxxxxx"はEBSブートなAMIイメージです。
ログオンして覗いてみます。

$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             15481840   2212052  12483356  16% /
none                    874032         0    874032   0% /dev/shm


$ mkdir /vol
$ mount /dev/sdc /vol
$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             15481840   2212056  12483352  16% /
none                    874032         0    874032   0% /dev/shm
/dev/sdc             153899044    192072 145889348   1% /vol


ちゃんと150GBのストレージが現れました♪
(ただし、通常smallのルートデバイスとなる10GBの方は割り当てることはできませんでした。)
試していませんが、largeのように複数のストレージが割り当てることができる場合には下のように-bを複数指定できるようです。

$ ec2run ami-xxxxxxxx -b /dev/sdc=ephemeral0 -b /dev/sdd=ephemeral1 -k user_key -g user_group


必要? という話はおいといても適当なテンポラリとしては十分なサイズなので、なにか使い出があるのではないでしょうか。
あとEBSはI/Oリクエストに対しても課金されます。
つまりサーバダウン等で消えちゃってもいいデータをうまく追い出すことができれば、EBSの利用料金をちょっぴりお安くすることができるかもしれません。(検証はしていませんけど)

*1:ELASTIC BLOCK STORE