概要
AWSを利用する上でスポットリクエストは食わず嫌いで敬遠しがち(経験談)
スポットインスタンスを利用することで利用量は50-70%くらいOFFになるため、開発環境などでは積極的に利用を本当にお奨めする。
実際、EC2の利用料は半額以下になった。
以下は開発環境での作成を想定した手順概要(サービス環境で利用する場合も基本同様)
すべてAWSのGUIから3ステップで出来る
- サーバの構成を一通り設定したAMIを作成
- マネジメントコンソールでEC2->Launch Templates(起動テンプレート)を作成
- マネジメントコンソールでEC2->スポットリクエストを作成 ※起動テンプレートを利用
1.サーバの構成を一通り設定したAMIを作成
ここは各々のサーバにそって、ApacheなりTomcatなりnodejsなり必要なモジュール、設定をひととおりいれてAMIを作成
オンデマンドでEC2を作成する場合と一緒。
一通り作成したらオンデマンドでもバックアップ用にAMIを取得すると思うので取得。
2.マネジメントコンソールでEC2->Launch Templates(起動テンプレート)を作成
EC2->Launch Templatesメニューから起動テンプレート画面を表示
1の手順で取得したAMIをベースに設定
必要あれば、キーペア、ネットワークインタフェース、セキュリティグループ、ストレージボリュームなどを設定。
設定しなければデフォルト値が利用される。
シャットダウン時動作を削除ではなく停止にしたい場合はここで設定。 ※スポットリクエストでは設定できないため注意
3.マネジメントコンソールでEC2->スポットリクエストを作成 ※起動テンプレートを利用
2の手順で作成した起動テンプレートをベースに設定(2を手順を飛ばしてここでAMIを個別に設定も可能)
ここでは空いているEC2インスタンスを入札するということを覚えておけばOK
リクエストタイプ:リクエストと維持を指定すると、スポットインスタンスが入札価格を上回って止まった場合も再入札で再動作するのでおすすめ。
合計ターゲット容量:必要なサーバ台数分
起動テンプレート:2で作成したものを選択
その他、2で設定したものはデフォルト値で表示されるので、EC2を立ち上げるとき同様に設定していく
ロードバランサにも紐付けられるためサービス環境で利用したい場合はここで設定
ポイントは最高価格の設定箇所。「自動入札を使用 (推奨)」でも良いが、
「最高価格を設定する (インスタンス時間当たり)」で価格を設定しておくと、それを上回る入札をしないためコストコントロールがしやすい。「価格設定履歴」ボタンで現在の入札価格がわかるため、そこから超えてほしくない値段を設定する。
大体オンデマンドの半額ぐらいは超えない。
スポットリクエスト完成
ここまでの手順でスポットリクエストが完成する。
しばらくするとスポットリクエストを元にEC2が起動してくる。
あとはお安いEC2を利用し放題。
小さい構成の場合はついめんどくさがってオンデマンドで利用しがち。
構成がある程度固まっていて、数ヶ月以上利用するなら迷わずスポットにすべき。