Google Compute Engineで「does not have enough resources available」が出てインスタンスを起動できない時の対処方法
はじめに
Google Compute Platform (以降、GCP)でCompute Engine(以降、GCE)上に構築して使用していたインスタンスを起動したところ、起動できずに以下のような内容のメッセージが表示されました。 「The zone 'project/...'does not have enough resources available to fullfill the request. Try a different zone, or try again later.」
この対処方法についてまとめます。なお、結果としてこのエラーそのものを解決はできなかったため、てっとり早く回避する方法をまとめています。
前提と環境
以下の状況で発生しました。
- インスタンスのゾーンを「asia-notheast1-b(東京)」に設定していた。
- インスタンスは1日停止した状態にしていた。
- 何時間か置いて何度か起動を試みるも毎度同じメッセージが表示された。
原因と対処方法
原因
色々と調べてみると、Google Cloud Platform側の問題でリソース不足が原因のようです。すなわち、起動しているインスタンスが物理的な上限に達しているような状況のようです。 公式情報ではないため不明ですが、他の方も東京リージョンを指定している場合に発生しているようでした。 したがって、メッセージにある通りある程度時間を置いて再度起動してうまくいくのを待つか、新しくインスタンスを作成し直すしか無いようです。 私もまずは数時間置いて何度か待って起動を試みましたが、結局同じメッセージが出る繰り返しでした。そこで起動しなくなったインスタンスの中身をそのままに新しくインスタンスを作成し直しました。
対処方法
すでに稼働させていたインスタンスをまっさらな状態から作り直す必要はなく、現在使用している既存のインスタンスのスナップショットを作成し、そこからインスタンスを作成し直すことができます。 作業としては5〜10分程度で完了します。既存のインスタンスのスナップショットから新しいインスタンスを作成すれば、データはそのままです。 私はインスタンスへのSSHアクセスで使用するポート番号等も設定で変更していましたが、これらの設定も再度する必要はもちろんありません。 ここでは、既存のインスタンスのスナップショットを作成し、そのスナップショットから新しくインスタンスを作成する手順をまとめます。
以降の手順は、以下の公式ドキュメントを参考にしています。
既存のインスタンスのスナップショットを作成する
GCPにログインしてCompute Engineの画面から以下のように「スナップショット」を開きます。
以下のように表示されるので「スナップショットを作成」をクリックします。
続いて「ソースディスク」で起動できなくなった既存のインスタンスを選択します。なお、ここで「リージョン」を再度「asis-notrheast1(東京)」に指定していますが、これだと同じ状況が発生する可能性もあるのでもしかしたら別のリージョンが良いかもしれません。私は同じ「asis-notrheast1(東京)」を指定して作成しました。選択したら「作成」をクリックします。
以下のようにスナップショットが作成されます。
後は以下のようにいつも通りインスタンスの作成していき、その中で「ブートディスク」の「変更」をクリックします。
以下のように、「スナップショット」のタブで作成したスナップショットを選択します。
以下のように選択したスナップショットが表示されているを確認できます。これで後はいつも通りインスタンスを作成して完了です。
作成したインスタンスにはこれまで使用していたSSHの秘密鍵とかもそのまま使用できます。データもそのままです。
まとめ
インスタンスを停止してしまうと再起動できないかもしれないリスクはかなりクリティカルになる場合もありそうなので、そのような状況になる前提で構築する必要があるかもしれません。 インスタンスを作り直すとなると最初は面倒くさそうと思いましたが、スナップショットから新しくインスタンスを作成する手間と時間は予想よりはるかに楽でした。 同じ状況に遭遇している方に少しでも参考になれば幸いです。
関連記事
関連記事はまだありません。