💸

GCPのプリエンプティブルVMの料金体系が変わるらしい

2021/11/01に公開

と言うか、一部のインスタンスタイプとリージョンではすでに変わってるとのことです。

はじめに

先日、GCPでの新しいVMのオプションであるSpot VMが発表されましたね。

https://cloud.google.com/spot-vms

GCPにはすでに類似の役割を担っているプリエンプティブルVMが存在する訳ですが、何故今更Spot VMが出てきたのでしょうか?
そして、プリエンプティブVMは今後どうなるのでしょうか?

目次

  1. Spot VMとは?
  2. プリエンプティブルVMとの違い
  3. プリエンプティブルVMの料金まで変わる?
  4. Spot VM使ってみた
  5. まとめ・VM運用の将来

1. Spot VMとは?

Spot VMは先日発表されたVMの新しいオプションであり、標準のVMよりも低価格で利用できます。
現在はまだプレビューであり、以下のリージョン・マシンタイプでしか対応していません。

そして、以下のような制限があります

  • GCP側の都合で停止される可能性がある
  • 必ずVMを確保できるわけではない
  • サービスレベル契約の対象外であり、Compute Engine SLA から除外されている
  • 他にもいくつか

基本的にはプリエンプティブルVMと同様の制限があると考えていいでしょう。

2. プリエンプティブルVMとの違い

今回発表されたSpot VMには、従来のプリエンプティブルVMにはない大きな特徴が二つあります。それは、最大起動時間と価格の変動です。

最大起動時間

プリエンプティブルVMの最大起動時間は24時間であり、24時間経過すると強制的に終了されてしまいます。これに対して、Spot VMには起動時間の制限は特にありません。
例えば自分はこれまでGKEでプリエンプティブルVMを利用する際には、起動時間をずらすためにpreemptible-killerのようなOSS使っていましたが、この辺が必要なくなるのは良いですね。

価格の変動

従来のプリエンプティブVMはマシンタイプ/リージョンごとに割引率が固定でしたが、Spot VMは価格が変動します。公式のドキュメントによると、「60%〜91%の割引が適用され、料金は30日に1回まで変更される可能性がある」とのことです。

具体的な料金は以下のページで確認できます。
https://cloud.google.com/compute/vm-instance-pricing
ただし、現状は対応しているリージョンが少ないので、未対応のリージョンの料金は従来のプリエンプティブルVMの料金になっているようです。

3. プリエンプティブルVMの料金まで変わる?

ここからが本題です。
私はSpot VMの発表を見たときに、「これまでのプリエンプティブVMとは別に、新しくSpot VMも選択できるようになる」 と、思っていました。

しかしSpot VMとプリエンプティブVMのドキュメントをよく見てみると、そんなに簡単な話ではなさそうでうす。

プリエンプティブVMのドキュメント(ここ)を見ると、冒頭に以下のような文言が書いてあります。

Preemptible VMs continue to be supported for new and existing VMs, and preemptible VMs now use the same pricing model as Spot VMs.

どうやらプリエンプティブVMの料金モデルはSpot VMの料金モデルと同じになるようです。
つまり、これまで固定の割引率(だったよね?)ではなく、Spot VMと同じく価格が変動するようになります。

4. Spot VM使ってみた

せっかくなので、実際にGKEでSpot VMを使ってみました。
GKEでSpot VMのnode poolを作成するには、gcloud betaコマンドを使用します(GCPのコンソールからは作成できません)。

https://cloud.google.com/kubernetes-engine/docs/how-to/spot-vms#create_a_node_pool_with_enabled

今回は、東京リージョンで対応してるc2-standard-4を使用しました。
実際に発生する料金を観測するために数日間立てっぱなしにしてみましたが、通常のVMと比較して90% offの請求額となっていました(安い!)。

今はプレビュー段階なので上限に近い割引率となっているのだと思われますが、正式公開後にどうなるかのかは未知数ですね・・・

5. まとめ・VM運用の将来

という訳で、Spot VMのファーストインプレッションをお届けしつつプリエンプティブルVMの料金体系が変わる話をしてきましたが、重要なのは以下の点ですね。

  • プリエンプティブルVMの料金体系はSpot VMに準拠するようになる(変動する)
  • Spot VMは基本的にプリエンプティブルVMの上位互換なので、今後はSpot VMを使えばいい

今後GCPでプリエンプティブルVM(とSpot VM)を運用する際には、インスタンスタイプ・リージョンごとに価格の変動を意識する必要が出てくる訳ですね(まあそこまで細かく意識しなくていいかもですが・・・)。

とはいえ価格が変動するという特徴はAWSのSpot instanceと同じなので、AWSと似たようなVM運用をすればいいってだけの話ではあるんですけどね。

個人的にはプリエンプティブルVMのシンプルな料金体系を好ましく思ってたので、この変更は少し残念かな・・・

Discussion