aws spot instanceを攻めてみた 発表用
TRANSCRIPT
AWS spot instanceを攻めてみた
インスタンスグループ三段撃ちの計
自己紹介
● Taro (ID:naked123)● (株)奇兵隊 所属
自己紹介
山好き
自己紹介
猫好き
自己紹介
● インフラエンジニア○ 15年目
○ CAT4ケーブル作成からクラウドまでなんでも。
自己紹介
● taptrip○ 累計530万ダウンロード
○ Dairy Active User 22万○ 異文化間コミュニケーションを狙った SNS○ 外人の友達が簡単に作れます
agenda1. spot instanceって何?
2. こんな風に使ってみた
3. 結果
4. やってみて困った事
5. まとめ
spot instanceって何?
● AWSの余剰instanceを格安で利用出来る仕組み。
● 変動する価格に入札することで使えます。 入札価格
実際の価格
spot instanceって何?
● 長所○ 安い
■ うまく使えば80% off !!
● 短所○ instance価格が高騰してると instanceが立ち上げられない。
○ instance価格が高騰すると起動中のspot instanceも突然落とされる。
○ instanceの起動時間が遅い。
spot instanceって何?
● 安く使えるinstanceだが、使い所が限られる。
● オススメの使い方は・・・○ やり直しがきくタスク
○ マシンの頭数が必要なタスク
○ 遅延可能なタスク
例)hadoopで大量データ集計など
こんな風につかってみた
● 使い場所は限られるけどコストメリットは魅力。
● コストの大半をAPPとDBが占めているので、ここに使えないものか?
● DBはさすがに怖い・・・
● APPはオートスケールで常に落し上げしている。
● spot instanceの弱点を通常instanceで補う形でAPPに使えないか?
● そうだ、ELBの配下にspotと通常instanceの両方をattachしてみよう!
ということで、こんな構成にしてみました。
こんな風につかってみた
ELBTheInternet
通常instance group
CPU:85%でinstance追加55%でinstance削除
Spot instance group
CPU:80%でinstance追加50%でinstance削除
DB
APP
APPAPP
APPAPP
APPAPP
APPAPP
メインで活躍
緊急時用
※実環境ではもう一つ固定 instanceのgroupもあります
こんな風につかってみた
● APP(c3.large)○ 通常価格:$0.105/h○ 入札価格:$0.10/h <==価格が$0.10までは耐えられる
● spot instanceが普通に購入できるうちは、オートスケールでspot instanceを優先
的に起動して処理に当たらせる。
● spot instanceが購入できなかった場合は、通常instanceを起動してサービスを継
続する。
● spot instance価格が高騰してinstanceが落とされた場合も、オートスケールで通
常instanceを起動させてサービスを継続する。
結果
● 80% offとは行かないまでも50% offくらいになりました。
結果
● 2015/1から10ヶ月ほど運用してみてサービス全断になるような障害は無し。
● マイナートラブルやパフォーマンスに関するトラブルは日々の運用の中で改善して
安定運用に漕ぎ着けた。
やってみて困った事
● インスタンス起動が遅い。○ 通常インスタンスが2,3分で起動するのに10分以上掛かることも。
○ CPU使用率が80%越えた時点でオートスケールが発動したのでは遅い。
○ 追加のスポットインスタンスが起動した頃、他のインスタンスは虫の息。
○ 実際の運用では「CPU使用率70%越え」をトリガーにして早めにオートスケールを発動させるように
した。
やってみて困った事
ELBTheInternet
通常instance group(サブ)
CPU:85%でinstance追加55%でinstance削除
Spot instance group(メイン)
CPU:70%でinstance追加50%でinstance削除
DB
APP
APPAPP
APPAPP
APPAPP
APPAPP
やってみて困った事
● 価格が安定しない○ 価格が高騰し入札価格を超える事も度々あり。
入札価格
やってみて困った事
● spot instance価格が高騰したので、通常instanceの出番○ 通常instanceの出番 = 「緊急事態」
○ 悠長に1台ずつ追加していたのではサービス影響が出てしまう。
○ 実際の運用では一気に 5台ずつ追加する設定にしてサービス影響を最小限にするようにした。
まとめ
● オートスケールと組み合わせる事でspot instanceをAPPサーバとして利用する事
が可能。
● 癖や制限事項を知った上で、適切な設計をしないとサービス影響が出る。
● 仕組みを理解して利用すれば、一歩進んだコストカットが可能。