[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
だとかなりきつかったので、こちらの手順が出来て非常に助かっております(笑)