awsのspot instanceでimmutableinfrastructure
DESCRIPTION
AWSでSpot Instanceに初めて手を出してみた話。TRANSCRIPT
EC2 Spot Instance でImmutable Infrastructure な
deploy 手順
Silbird, Inc.CEO & Infrastructure Engineer
Sho Kaneko @sho49cc
0.デプロイでくまった• サービス稼働中のままでアプリケーションを更新するには、
LB から切り離しながら 1 台ずつ動作確認して LB に組み込む必要がある。
• ELB ちゃん、レスポンスがなかなかブリッ子。 Health Check 依存で Unhealthy にしてもなんか挙動がぁゃ ι ぃ…
• どうにか安全にドカンと deploy 出来ないものかね? • Immutable Infrastructure なる方法がイケてるとかなんとか• でもそれってオンデマンドだとコストで憤死するよね…• Spot Instance 使えばコストも抑えられるんじゃね?• やってみよう!おう!
1.最新資源の AMI を作る• AMI ( AmazonMachineImage )はサーバまるま
るの現在の状態を冷凍保存するようなもの。 Windows の場合レジストリだけは保存できないが、それ以外のすべてが保存されている。
• 100GB の EBS ( ElasticBlockStore… 不揮発性 HDDのようなデータ領域)を取ると 30 分強くらいはかかると思っておくべき。
• 稼働中のままでも取れるけど遅い。一旦 ELB から切り離して Stop してから CreateImage したほうが(たぶん)速い。
1.最新資源の AMI を作る
コレ押したらはじまる
最新資源になっているサーバをターゲットにしないといろいろと無意味なのでターゲットを間違わないこと!
先に InstanceStop しておかないと(たぶん)遅
い
1.最新資源の AMI を作る
コレ押したらはじまるName と description 以外何もいじらずコレで OK
適当に名前つけるサーバ名と日付とか
日本語つかえないので同じでいい
1.最新資源の AMI を作る
Image 作成開始してるので
とじる
1.最新資源の AMI を作る
EC2 コンソールのAMIs を見る
1.最新資源の AMI を作る
すぐ開くとまだPending になってる
← このタイミングで名前つけちゃうのがいいと思う
デフォルトでは名前がついてない
1.最新資源の AMI を作る
すぐ開くとまだPending になってる
EC2 コンソールのSnapshots を見る
← 同じくこのタイミングで名前つけよう
ここの Progress が 100%で
Snapshot 完成→AMI も完成と進む
デフォルトでは名前がついてない
1.最新資源の AMI を作るデキタ!
そのころにはAMI もデキタ!
これで AMI は完成!あとはこの AMI を使って Instance を立てるだけ!
2. Spot Instance を作る• Spot Instance は自分が出してもいいよ、な最大入札額
を指定しておけば、相場がそれ以下の場合に稼働できるサーバ。相場が自分の入札額を上回ったら、稼働中のサーバでも AWS 側から強制撤去される、らしい。
• 元々あいちゃってるサーバを浮かせておくのももったいないから、みたいな仕組みだそうです。
• Pricing History からリージョンと InstanceType ごとの相場履歴グラフが見れる。 2014/2 時点の東京リージョンだと c3 が普及してきたからか、 Spot の c1 はかなりコスパいいように見える。 c3 はオンデマンドと大差ない印象。
2. Spot Instance を作る• 見てみよう
デキタ!
相場の動きをみる
2. Spot Instance を作るOS 選ぶ InstanceType
選ぶAZ 選ぶ
どうやら ap-northeast-1c のほうが 1a より平均的に安いみたい
マウスあわせると詳細みれる
2. Spot Instance を作る押す!
見慣れた EC2 のLaunch Instance 画面
もちろんさっき作った
AMI で Launch します
2. Spot Instance を作る
見慣れた EC2 のInstance Type 選択画面
2. Spot Instance を作る
この Spot Instance を何個つくるか
Pricing History で見た
その Instance の最新の価格
最大入札額最新価格がこれを上回った
らAWS から強制撤去される
オンデマンド価格の 80% くらいを入れとけば精神的には安心。
本当にスケールアウト専用ですぐ消えてもいい、安いのが最強、なら
シビアな価格に設定しても大丈夫、なのかな。相場と用途を考えて臨機応変に。
2. Spot Instance を作る見慣れた EC2 の
シリーズよしなにどうぞ
2. Spot Instance を作る見慣れた EC2 の
最終確認画面ここではこれが Spot なのか見分けられる箇所なさそう
2. Spot Instance を作る
State が active になったら
EC2 インスタンスとして
稼働中
Instance 側からみても同じ
2. Spot Instance を作る
Spot Instance は Stop できない止めるときは即 Terminate しか
ない
3.煮るなり焼くなり
AMI から Launch してるからAMI 作る時のベースを整えてさえいれば、このまま稼働確認取れ次第 ELB に入れるなど。
非常に楽ちん。一気にドバっと台数増やせるのにSpot だからローコスト。ただし凍結する時は凡ミスがないように注意。(凡ミスして 1 台ずつ手入れしてたら効果が半減…)
4.発見• 便利とはいえ頻繁な deploy には向かない。
ケースバイケースで個別 deploy と組み合わせて使うのは大前提。ソーシャルゲームのイベント開始前に台数増やしつつ deploy する時などはピッタリ。
• c3.2xlarge でやりたかったんだけど、まだまだ人気なのかな。オンデマンド: $1.180/h Spot: $0.7083/h ( 2/17 時点)
・ c1.xlarge はお得感アリアリ。今後順次移行していくんだろうけど… オンデマンド: $1.140/h Spot: $0.4260/h ( 2/17 時点)・うまくつかいわけて行けたらコスト圧縮できそう!
タワドラは Powered by AWS!!
http://apps.gree.net/60140