[GCE] VMインスタンスからイメージを作成する

ども、takiponeです。

GCE本出ましたね!GCEを触る方が増えることに期待します。

そのGCE本で手順が載っていないオペレーションとして、イメージの作成があります。この記事では、2014年8月3日時点のイメージ作成手順をご紹介します。

イメージとは

その名の通り、VMインスタンスの元となるマシンイメージです。Amazon EC2のAMI(Amazon Machine Image)に相当します。DebianやCentOSなどGoogleがあらかじめ用意しているPublicイメージに加え、ユーザー独自のPrivateイメージを作成しVMインスタンスの新規作成時に利用することができます。

現時点ではVMインスタンスの実行中にそのインスタンスからイメージを作成することはできません。GCEのVMインスタンスは停止状態がないため、VMインスタンスを削除しなければならない点に注意してください。VMインスタンスを定期的に削除するのは難しいので、ディスクバックアップはスナップショットの利用がお奨めです。

作成手順

1. VMインスタンスの削除

イメージを作成するために、対象のVMインスタンスを削除します。デフォルトではVMインスタンスの削除時にブートディスクも一緒に削除されますが、今回はイメージ作成のために残るようにせっていします。

VMインスタンスの詳細画面(Google Developers ConsoleのVMインスタンス一覧からインスタンス名をクリック)にある[ディスク]の「インスタンスを削除する際にブート ディスクを削除する」のチェックをオフにしておきます。

画面上部の[削除]ボタンをクリックすると、「ブートディスク「<インスタンス名>」も削除されます」のチェックがオフになっていることを確認し、[削除]をクリックします。

VMインスタンスが削除されました。画面左のメニューから[イメージ]をクリックしイメージ一覧に[接続先]列が「なし」になっているインスタンス名と同名のブートディスクがあることを確認します。

これで準備OKです。

2. gcutil addimageコマンドの実行

イメージの作成は、gcutil addimageコマンドで実行します。あらかじめgcutilコマンドのセットアップを行い、GCEの操作権限を付与しておきましょう。引数にイメージ名と--source_diskオプションで元となるブートディスクを指定します。必要に応じて、--projectオプション、--zoneオプションも指定しましょう。

$ gcutil addimage org1 --source_disk=org1
INFO: Zone for org1 detected as asia-east1-a.
INFO: Waiting for insert of image org1. Sleeping for 3s.
INFO: Waiting for insert of image org1. Sleeping for 3s.
 : (中略)
Table of resources:

+------+-------------+--------+
| name | deprecation | status |
+------+-------------+--------+
| org1 |             | READY  |
+------+-------------+--------+

Table of operations:

+---------------------------------------------------------+--------+-------------------------------+----------------+
| name                                                    | status | insert-time                   | operation-type |
+---------------------------------------------------------+--------+-------------------------------+----------------+
| operation-1407017741184-4ffacd8a7ec00-73f8b857-9064b5b7 | DONE   | 2014-08-02T15:15:41.403-07:00 | insert         |
+---------------------------------------------------------+--------+-------------------------------+----------------+
$

イメージが作成されたようです。では、VMインスタンスの新規作成を試してみます。

イメージ選択のドロップダウンに作成したイメージが追加されていますね。

まとめ

VMインスタンスのイメージ作成方法をご紹介しました。クラウドではインスタンス作成を手軽に行うことができるので、イメージの活用は本気でGCEを活用するために必須の作業だと思います。イメージに加えて、Startup Scriptsも組み合わせてみたいですね。

余談

実はこの手順、数日前までドキュメントには別の方法(gcimagebundleコマンドによるtar.gzアーカイブの作成)が紹介されていて、最近更新されたものだったようです。gcimagebundleコマンドだとVMインスタンスのマシンパワーが必要で、f1-microだとかなりきつかったので、こちらの手順が出来て非常に助かっております(笑)

参考URL