プログラマでありたい

おっさんになっても、プログラマでありつづけたい

ちょっと内緒にしたいスポットインスタンスの話

 ちょっと内緒にしたいような気がしますが、知っていたら確実に得をするAWS EC2のチップスがスポットインスタンスの活用です。まずスポットインスタンスとは?AWSのインスタンススポットのページを読むと大体解りますが、簡単に説明するとAmazonで余剰のEC2のインスタンスを入札制で大幅に安い値段でを利用する仕組みです。デメリットとしては、スポットインスタンスのインスタンス価格が入札価格を上回った場合、情け容赦なくインスタンスがストップされることです。ということで、Amazonの推奨としては以下のように、通常のインスタンスを補完するような位置づけとなっています。

  1. オプションのタスク
  2. 遅延可能なタスク
  3. コンピューティング能力を追加することで高速化できるタスク
  4. 他の方法ではアクセスできない大量のコンピューティングインスタンスが必要になるタスク


 しかし、制約があるものの圧倒的に安いです。オンデマンドインスタンスとスポットインスタンスの最低入札価格の比較表をみてください。(2013/5/19の東京リージョンでの比較です。)

インスタンス名 スポット
Linux/UNIX 料金
スポット
Windows 料金
オンデマンド
Linux/UNIX 料金
オンデマンド
Windows 料金
スモール(デフォルト) $0.017 $0.035 $0.088 $0.115
ミディアム $0.035 $0.07 $0.175 $0.230
ラージ $0.067 $0.141 $0.350 $0.460
エクストララージ $0.134 $0.282 $0.700 $0.920
第2 世代 エクストララージ $0.148 $0.295 $0.760 $0.980
第2 世代 ダブルエクストララージ $0.295 $0.589 $1.520 $1.960
マイクロ $0.007 $0.015 $0.027 $0.035
ハイメモリ エクストララージ $0.104 $0.172 $0.505 $0.570
ハイメモリ ダブルエクストララージ $0.208 $0.344 $1.010 $1.140
ハイメモリクワドラプルエクストララージ $0.416 $0.688 $2.020 $2.280
ハイ CPU ミディアム $0.048 $0.106 $0.185 $0.285
ハイ CPU エクストララージ $0.192 $0.426 $0.740 $1.140

 見てください。この圧倒的な安さ。1/5くらいの値段です。何とラージインスタンスのスポットインスタンスの方が、スモールインスタンスのオンデマンドの値段より安いのです。使わなければ損ですね。

価格の推移はどうなっているのか?



 スポットインスタンスが安いのは充分理解して頂けたと思いますが、代表的な使い方であるHadoopのバッチ等のシステムなんて無いよという方が9割だと思います。じゃぁちょっと視点を変えて、価格の変動はどれくらいなのでしょうか?価格の推移は、EC2のマネージメントコンソールのSpot RequestsのPricing Historyで確認できます。ここで1ヶ月の推移を見てみましょう。
東京リージョン・マイクロインスタンス・Linux/Unix

東京リージョン・スモールインスタンス・Linux/Unix

東京リージョン・ラージインスタンス・Linux/Unix


 スモールインスタンスは、それなりの上下をしているもののマイクロインスタンスはピクリとも動きません。またラージインスタンスも殆ど変動していません。思った以上に安定した値段で使えますよね。

どう使うのか?



 前段までで、月単位で見ても割と最低入札金額で利用出来ることが解りました。では、どう利用したら良いのでしょうか?日々の開発等の突発的に落ちても問題ないものであれば、普通に使っても全然支障はありません。(保存しておかないと困るものは、別のデータ領域を用意しておきましょう。)また、本番での活用もオートスケールと上手く組み合わせれば、割と上手く行きます。最低1台をオンデマンドインスタンスやリザーブドインスタンスにしておいて、それ以外をスポットインスタンスにするとコストは大幅に削減出来ます。工夫次第で何とでもなりますので、まずは試してみては如何でしょうか?

まとめ



 ということで、スポットインスタンス試してみてはどうですかという話です。米国のリージョンのように、スポットインスタンスの利用者が増えれば値段も上下するようになるので、ちょっと内緒にしておきたい心境もあります。でも、もっと色々な人が使ってベスト・プラクティスが出てくればと思います。どこかでもう少しまともな収支シミュレーションをしてみようかと思います。Let's enjoy!

補足 2013/05/19 14:45



 最大入札価格の説明が抜けているので、ちょっと補足します。我々が入札する価格は、最大入札価格と呼ばれます。この価格は名前の通り、一番多く払う可能性のある価格です。例えば、ラージインスタンスを$0.100で入札していて、スポット価格が$0.067の場合は幾ら払うことになるのでしょう?実は課金されるのは、スポット価格の$0.067になります。つまり、最大入札価格は、払っても良い最大の価格で、落札された場合はスポット価格で利用出来るということです。ということで、オンデマンドとほぼ同じ価格に設定しておけば、ほぼ安定して使え安くもなります。


See Also:
知っているようで知らない、リザーブドインスタンスの話
AWSの複数の請求をまとめる、一括決済(Consolidated Billing)の話


Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

Amazon Web Services パターン別構築・運用ガイド  一番大切な知識と技術が身につく

  • 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2015/03/25
  • メディア: Kindle版
  • この商品を含むブログを見る