47
Auto scaling一年間運用してみた 株式会社gumi 西村

Auto Scalingを一年間運用してみた

Embed Size (px)

DESCRIPTION

gumi study#18

Citation preview

Page 1: Auto Scalingを一年間運用してみた

Auto scalingを 一年間運用してみた

株式会社gumi!

西村 遊

Page 2: Auto Scalingを一年間運用してみた

自己紹介

❖ 西村 遊!

❖ gumi入社してもうすぐ2年!

❖ sysopチーム サーバ構築・運用!

❖ 好きなAWSサービス:AutoScaling

Page 3: Auto Scalingを一年間運用してみた

AutoScaling 実運用で使ってますか?

Page 4: Auto Scalingを一年間運用してみた

gumiで1年間利用してみた結果※構想期間含む

Page 5: Auto Scalingを一年間運用してみた

導入したアプリでの サーバー構築コストはほぼ0

!

障害時の再作成コストも0

Page 6: Auto Scalingを一年間運用してみた

同じ構成のサーバーを作成する 仕事がなくなる!!!

Page 7: Auto Scalingを一年間運用してみた

でも

Page 8: Auto Scalingを一年間運用してみた

大切なのはAutoScalingの 設定ではない

Page 9: Auto Scalingを一年間運用してみた

起動したAMIを どう使える状態にするか

Page 10: Auto Scalingを一年間運用してみた

AutoScalingでサーバー構築コストが

ほぼ0 !

手を触れずにサービスインまで いけるようにAMI+仕組みを作ろう

!

というお話

Page 11: Auto Scalingを一年間運用してみた

目次

❖ 起動からサービスインまでの作り込み!

❖ gumiで運用中の2パターン!

  Scaduled Scale Out!

  Auto Healing!

❖ 実際に運用してみて

Page 12: Auto Scalingを一年間運用してみた

起動からサービスインまでの作り込み

❖ AutoScalingはAMIベース!

!

❖ AMIは取得時点のスナップショットなので、!

更新分をどう持ってくるかを考える!

!

❖ ここを考えないとアプリケーション側で不整合が起こる

Page 13: Auto Scalingを一年間運用してみた
Page 14: Auto Scalingを一年間運用してみた

AutoScalingGroupの設定に!ELBを指定しなければ接続されないが、!

急な削除時に上手く外れてから削除されなかった為、!設定している。

Page 15: Auto Scalingを一年間運用してみた

AMIには!gitからリポジトリ取得!スクリプト起動!までの処理を入れておく

Page 16: Auto Scalingを一年間運用してみた
Page 17: Auto Scalingを一年間運用してみた
Page 18: Auto Scalingを一年間運用してみた

gitサーバー負荷軽減の為

Page 19: Auto Scalingを一年間運用してみた
Page 20: Auto Scalingを一年間運用してみた
Page 21: Auto Scalingを一年間運用してみた

目次

❖ 起動からサービスインまでの作り込み!

❖ gumiで運用中の2パターン!

  Scaduled Scale Out!

  Auto Healing!

❖ 実際に運用してみて

Page 22: Auto Scalingを一年間運用してみた

Scaduled Scale Out

http://aws.clouddesignpattern.org/index.php/CDP:Scheduled_Autoscaling%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

Page 23: Auto Scalingを一年間運用してみた

リクエスト数のパターンは一週間ほぼ同じ。!さすがに深夜帯のアクセス数は少ない。

と を同じ台数にしておくのはもったいなーい

の時間はインスタンスを減らしている

Page 24: Auto Scalingを一年間運用してみた

目次

❖ 起動からサービスインまでの作り込み!

❖ gumiで運用中の2パターン!

  Scaduled Scale Out!

  Auto Healing!

❖ 実際に運用してみて

Page 25: Auto Scalingを一年間運用してみた

Auto healing

❖ AutoScalingGroupではdesired-capacityの数に!

インスタンス台数が調整される。!※desired-capacityは以下の範囲内で設定!

min size =< desired-capacity =< max size

❖ 突然の死があってもインスタンスが再作成される!

❖ spotインスタンスと組み合わせれば、spot価格高騰で削除されても、再作成される

Page 26: Auto Scalingを一年間運用してみた

Auto Healing

ELB配下の一部をspotインスタンスで用意し、Auto scaling Groupは分ける!!spotインスタンスが全滅してもアプリケーション的には耐えられる台数にしておく!!※c1.xlargeをspotインスタンスでたてると$0.192/hなので! オンデマンド価格$0.740/hと比べて3分の1以下

Page 27: Auto Scalingを一年間運用してみた

Auto Healing

spotpriceの高騰で!_人人人人人人_!> 突然の死 <!‾Y^Y^Y^Y^Y‾

Page 28: Auto Scalingを一年間運用してみた

Auto Healing

spotpriceが同額or以下に戻ったら!リクエストが受け付けられ

新たなインスタンスが起動

Page 29: Auto Scalingを一年間運用してみた

Auto Healingもとどおり

Page 30: Auto Scalingを一年間運用してみた

Auto Healing

こっちのグループでも、何らかの理由で!インスタンスが削除されたら同じことが起きる

Page 31: Auto Scalingを一年間運用してみた

!

再作成コスト0

Page 32: Auto Scalingを一年間運用してみた

目次

❖ gumiで運用中の2パターン!

  Scaduled Scale Out!

  Auto Healing!

❖ AMIの作り込み!

❖ 実際に運用してみて

Page 33: Auto Scalingを一年間運用してみた

spot priceの変動は激しい

Page 34: Auto Scalingを一年間運用してみた

どんどん激しくなっている

このときのスパイクは$1.5ぐらい

※EC2 Classicでc1.xlargeインスタンスの場合

Page 35: Auto Scalingを一年間運用してみた

launch configを書き換えて 上限を上げても

※書き換えできないので正確には入れ替え

c1.xlargeの通常価格 $0.74/h!

!spot priceスパイク最大値 $1.5/h!

約2倍で設定している人が多そう。

さすがに3倍なら大丈夫だろう。!$2.3 で設定

Page 36: Auto Scalingを一年間運用してみた

さらに激しく

11月後半からボーダーは$2.3へ

※EC2 Classicでc1.xlargeインスタンスの場合

gumiがボーダーを上げてしまった!?

Page 37: Auto Scalingを一年間運用してみた

頻度も価格も高くなってく※EC2 Classicでc1.xlargeインスタンスの場合

一ヶ月の間に20回以上落ちた…!

Maxが$2.9の時代到来

Page 38: Auto Scalingを一年間運用してみた

その度にAuto Healing

spotpriceが同額or以下に戻ったら!リクエストが受け付けられ

新たなインスタンスが起動

Page 39: Auto Scalingを一年間運用してみた

内部的にはこんな処理が走る

Page 40: Auto Scalingを一年間運用してみた

zone 1cを避ければなんとか

大きく変動があるのは!zone 1cのみ

※EC2 Classicでc1.xlargeインスタンスの場合

Page 41: Auto Scalingを一年間運用してみた

ならなかった

zone 1bも安心できない時代へ

※EC2 Classicでc1.xlargeインスタンスの場合

zone 1cは!更なる高みへ

Page 42: Auto Scalingを一年間運用してみた

spotインスタンス運用の 限界を感じた

priceが戻っては上がりの!繰り返しが発生

※EC2 Classicでc1.xlargeインスタンスの場合

通常の3倍の!価格がかかる

入札価格はいたちごっこ

Page 43: Auto Scalingを一年間運用してみた

❖ スポットインスタンス + AutoScaling構成はやめた!!❖ コストメリットは大きいが、肝心のピーク時に死んでいると困る!!❖ 現在は時間単位のスケーリング(Scaduled Scale Out)のみ

まだまだ価格遷移激しいのでボーダー上げたのは!

gumiではなかった

Page 44: Auto Scalingを一年間運用してみた

まとめ

Page 45: Auto Scalingを一年間運用してみた

AutoScalingでサーバー構築コストが

ほぼ0 !

手を触れずにサービスインまで いけるようにAMI+仕組みを作ろう

Page 46: Auto Scalingを一年間運用してみた

spot priceの価格上昇に

gumiは関与していない! ※多分

一時期設定した価格が上限値となってpriceが変動していたのは偶然です…

Page 47: Auto Scalingを一年間運用してみた

ご清聴ありがとうございました