hiroohiのメモ

はてななのでITやスタートアップ周りの話(ほとんどが自分への備忘録だけど)を書いています。

EBSからブートしたEC2インスタンスにエフェメラルディスクを起動時に自動マウントする方法

ググってもあまり出てこなかったので。

EC2インスタンスのti.micro以外のインスタンスサイズでは、ephemeral diskという無料で使えるストレージ領域が使えます。この領域はインスタンス停止等出来てしまうので一次領域として使うことが出来ます。
…というの案外知られてないですよね。

このephemeral diskの領域はかなりでかいので、使わない手はないです。
カジュアルなインフラしか使えない使わないポリシーの自分ですので、コマンドを叩かずManagement Consoleだけで使えるようにする方法をメモしときます。
なお、大前提として、Amazon Linuxを使う場合、です。

Management Consoleのウィザードで、Ephemeral Diskを有効にする


EC2インスタンスを起動するときに表示されるウィザードの「Storage Device Configuration」で、右下の「Edit」をクリックします。

タブが選べるようになるので、「Instance Store Volumes」タブを選択し、「Add」をクリックします。Instance StoreとDeviceは特にいじらなくていいです。最初は。
そうすると、下のように追加されます。

後は通常と同じです。
では確認してみましょう。起動したインスタンスsshして、dfコマンドを実行します。

/media/ephemeral0がマウントされていることが確認できました。これで約150GBの一時記憶領域を獲得出来ました!

オートスケール時に自動でマウントされるように設定する

ではオートスケール設定をして、EC2インスタンス自動起動されたときにもephemeral diskが自動マウントされている状態にするにはどうすればよいでしょうか?

…AMIを作成する際にephemeral diskを使う設定をして、そのAMIをオートスケール設定してあるだけで大丈夫でした。カジュアル。

もっとたくさんのephemeral disk使いたい

上記の例はephemeral diskが使えるインスタンスサイズの全てで使えるephemeral0を使う場合です。
LargeとかEx-Largeでは複数のephemeral diskが使えますが、それをマウントする際はInstance Storeプルダウンを変更すれば大丈夫です。
ephemeral diskが二つ使えるLargeでは0,1が使用可能、Ex-Largeでは0,1,2,3の4つが使えます。
LargeインスタンスのときにInstance Storeプルダウンに2を設定しても、smallのときにInstance Storeを1,2,3に設定しても、ephemeral diskはマウントされませんがエラーなくインスタンスは起動します。

まとめ

ということでカジュアルにephemeral diskをマウントして、ログとかキャッシュ等に使ってしまいましょう!