最近、GoogleはCompute Engine VMsのSuspend/Resume機能の一般提供を発表した。この機能により、顧客はGoogle Cloudのリソース消費をより適切に制御できる。
以前、同社は数年間アルファ版とした後に、Suspend/Resumeをプレビュー版に移行した。Google Compute Engine VMをSuspendすることで、顧客はインスタンスの状態をディスクに保存し、後でResumeするときに中断したところからResumeできるようになる。Suspend状態では、コアまたはRAMのコストは発生しなくなり、インスタンスメモリのストレージに対してのみ発生する。さらに、OSライセンスなどのランニングコストが削減できる場合がある。
ユーザは、Cloud Console、gcloud CLI、APIを使ってインスタンスをSuspendできる。最大60日間インスタンスをSuspendでき、それを超えるとVMが自動的に停止することに注意してください。さらに、GPUインスタンス、120 GBを超えるメモリを備えたインスタンス、E2インスタンス、Confidential VMではSuspend/Resumeが機能しないなどの制限がある。
出典: https://cloud.google.com/blog/products/compute/save-by-suspending-vms-on-google-compute-engine
Suspendの動きとしては、Suspend時にACPI S3信号がインスタンスのオペレーティングシステムに送信される。これにより、他のクラウドプロバイダーの同様の機能と比較して、2つの大きな利点がある。同社のブログ投稿に次のように記載されている。
- Suspendにより、クラウド固有のOSイメージを使用したり、デーモンをインストールすることなく、幅広いOSイメージとの幅広い互換性が得られる。
- ストレージは、Suspendが要求されたときに動的にプロビジョニングされ、インスタンスのブートディスクとは別のものとなる。これは、他のクラウドの実装とは対照的である。他のクラウドでは、インスタンスの状態を保存するためにブートディスクに十分な空き領域があることを自身で確認する必要がある。これにより、VMのランニングコストが増加する場合がある。
他のパブリッククラウドプロバイダーに関して、たとえば、Microsoftはポータルで、あるいは、PowerShellやAzureCLIを介して顧客がVMを停止できるようにしている。その場合、VMの「停止(割り当て解除)」状態で顧客にコストが発生することはない。VMの停止/開始あるいはSuspend/Resumeは、コスト削減につながる可能性がある。Googleのブログ投稿で、BigCommerceのエンジニアリングマネージャのAaron Humerickhouse氏は次のように述べている。
Compute EngineのSuspendとResume機能を利用することで、BigCommerceはCompute Engine主導の開発環境の運用コストを削減できました。各エンジニアは自身の環境の「稼働時間」をカスタマイズできます。これにより、各就業日の終わりにSuspendをトリガーし、翌日の初めにResumeすることができます。仮想マシンインスタンスの使用時間は、環境ごとに平均して1週間あたり168時間から1週間あたり60時間に短縮されます。
最後に、Google Cloud VMはほとんどのリージョンで利用でき、今後さらに増える予定である。