EC2でローカルインスタンスかEBSのどちらを選ぶべきか
AmazonEC2上で新しくサーバを立てようかと思っているのですが、自分が古い考えなのか、インスタンスのルートデバイスをローカルインスタンスとEBSのどちらを選ぼうか迷っています。
ぶっちゃけ、お金と機能によるんですよね。
ということで自分メモとして、ローカルインスタンスとEBSを利用した時の機能比較・料金比較をメモっておきます。
機能面
ざっと思い当たる部分で書きだすとこんな感じ。
| 項目 | ローカル | EBS |
|---|---|---|
| インスタンスを途中停止 | できない | できる |
| データ保持 | システムエラー等でインスタンスが止まったらデータが消える | ほぼ永続的に保持される |
| スナップショット | とれない | とれる |
| インスタンスのコピー | コマンドラインでS3にバックアップ、AMIを登録後、起動する(Launch More Like Thisでも可能?) | 管理画面から簡単に可能(Create Image) |
| その他 | - | インスタンスを停止して、small->largeといったレベル変更が可能 |
一番大きいのはEBSはデータが保持されること。最近トラブルないけれど、ローカルインスタンスでの運用当初は1~2週間くらいに1回、どこかのインスタンスが障害を起こして、バックアップから復旧していました。保持されれば、障害となったインスタンスからEBSを外し、スナップショットを取っておいた別のAMIから再起動・再接続、なんていうこともすぐにできるんでしょうなぁ。
例えばデータベースなんてEBSに守ってもらえれば、インスタンスがイっちゃっても、EBSをつけかえればすぐに復旧できるし。
機能面ではローカルインスタンスにぜんぜんメリットがないなぁ・・・。
料金面
次に料金面。東京リージョン、スモールインスタンスでの利用を見込んだ比較です。
| 項目 | ローカル | EBS |
|---|---|---|
| インスタンス使用料 | 1時間$0.1 | 1時間$0.1 |
| EBS使用料 | - | 1GBあたり$0.12 100万アクセスごとに$0.12 |
例えばひと月30日間フル稼働させた場合・・、ローカルインスタンスでは
- 使用料$0.1×24時間×30日=$72=7,200円
この金額のみとなります。それに対してEBSを120GB使った場合、
- 使用料$0.1×24時間×30日=$72
- EBS$0.12×120GB=$14.4
- アクセス$0.12×毎秒50回×60秒×60分×24時間×30日÷100万アクセス=$15.56
- 合計$72+$14.4+$15.56=$102=10,200円
EBSアクセス頻度を毎秒50回としていますが、ApacheログだったりDB書き込みだったり、データを書き換えただけで1回とカウントするのでこんなもんなのかなぁと。
ということで金額面で言えばEBSを利用すると20~40%コストアップするわけです。これはけっこう大きいですよね?
信頼性と拡張性を備えたEBSを利用するか、料金を抑えたローカルインスタンスを利用するか。目的に合ったタイプを検討したほうがよいのかも知れません。
やべ・・・自分も迷ってきた・・・。