AWS Spot Fleetでインフラ作ったら安すぎたので本当は内緒にしておきたい話
会社で昔発表したやつを汎用的な感じにして残しておきます。
EC2のお値段が性能そのままに8割お安くなりましたという話
Spot Fleet前のAWSのECSでクラスター構成について
- クラスターのEC2インスタンスはオンデマンド(定価)のautoscaling
- Docker化でスケールアップ・インが容易に
- 増強したい場合はautoscalingでクラスタサイズを増やすだけでOK😎
問題点
- Rolling updateなのでデプロイ時に空き容量が必要
- 動的ポートマッピングができなかったので1インスタンスに同じサービスが入れない
- クラスタのインスタンスを多めにしておく必要がある😇
動的ポートマッピング
- AWSの
Application Load Balancer
orNetwork Load Balncer
という新しいタイプのELBならサポートしている - terraform module化して雛形作った
- これで一つのインスタンスに複数のサービスが入れるようになった
EC2インスタンスの価格見直し
- 今はオンデマンド(定価)で買っている
- spotインスタンスというオークションのような形式で割安(約80%OFF)で変える仕組み
- ただしspotインスタンスは入札価格以下になると問答無用でシャットダウン!!
- spot fleetという複数のスポットインスタンスに入札できる仕組みがある
- 死んでもすぐに復活しやすいコンテナにはぴったり!!
spot instanceの仕組み
ここでクイズです。この場合いくらになるでしょう?
こうなります
入札してる価格より低かったらそれを払うだけでよい
おこぼれが減ったら
3番目移行の人は問答無用でシャットダウン
おこぼれがなくなったら
全員シャットダウン!!!
耐障害性を増やすには
- 落ちる時には2分前に通知がくるので5秒ごとに見張るスクリプトを追加
- 落ちたタイミングでコンテナを他のインスタンスに逃す
- ざっくりこんなイメージの処理内容
while sleep 5; do if [ -z $(curl -Isf http://169.254.169.254/latest/meta-data/spot/termination-time)]; then /bin/false else # draining fi done
分散投資
人気がない安定した銘柄に入札
人気銘柄