こんばんは。
ラチェです。
今回はGCEでカスタムイメージを作る方法を書きたいと思います。
カスタムイメージってなんなの?
簡単に言うと色々インストールしたのをまとめてパッケージングできるよみたいな感じなのだ!
カスタムイメージでできること
- 構築済みのサーバをイメージ化してプロジェクト間で共有できる
面倒な初期セットアップ(httpdとかの設定)を簡略化できる。
- 自動アップデート
イメージファミリーを指定することで常にパッケージを最新の状態にできる。
(ここちょっと未検証です。)
自動更新は yum-cron を介して有効化されています。とマニュアルには書いてるのでやってるのかな・・・?(CentOSの場合)
作ってみる
まず、GCPにログインを行い左上のメニューから「Compute Engine」を選択します。
インスタンスの作成
「VMインスタンス」を選択し、インスタンスを作成ボタンを押します。
上記のようなものが出てくるので、名前を入力します。
ゾーンは今回は「asia-north-east1-a(東京リージョン)」にしてます。
マシンタイプは、最小限の動作だけ確認できたらいいので、microにしてます。
(ここは、想定されるサーバーにより変更してあげてください。)
ファイアウォール欄のHTTPトラフィックを許可するにチェックを入れます。
その下の「管理、ディスク、ネットワーキング、SSH接続鍵」と書いてあるところのディスクをクリックします。
このようなメニューが出てくるので、
「インスタンスを削除する際にブートディスクを削除する」のチェックを外しておきます。
「管理」タブに戻り、作成を押します。
(検証だけで安く済ませたい場合は、プリエンプティブをオンにすると料金8割引で利用できます。ただし、いつVMが停止するかわかりません。)
作成したら、左部分のVMインスタンスを押します。
こんな感じでVMが作られるのでできるまで少々お待ち下さい。
できました。
サーバの設定
接続タブ以下にあるSSHを押してみてください。
SSHが繋げることを確認したら
sudo yum install httpd-server
sudo service httpd start
sudo chkconfig on
と入力してください。
入力が終わったら、VMインスタンスの外部IPからアクセスします。
こんな感じでテストページが出てきたら成功です。
カスタムイメージの作成
作成したイメージの左側にあるチェックボックスをオンにし、右上のゴミ箱ボタンを押します。
インスタンスが正常に削除されたことを確認後、左側タブから「イメージ」を選択します。
こんな感じでイメージがいっぱい出てきます。
作成者がCentOSとかCoreOSとか入ってるやつはgoogleのデフォルトイメージです。
一番上のは検証で作ったやつなのでお気にになさらず。
と、言うことで、「[+]イメージを作成」ボタンを押します。
- 名前:ディスクの名前
- ファミリー:OSの種類。(任意)今回はCentOS6なのでこちらを指定。
- 説明:カスタムイメージの説明。
- 暗号化:とりあえず自動に・・・
- ソース:今回はディスクに。ちなみにGCSからもインポートできます。
- ソースディスク:先程消したイメージのディスクを指定
入力後、作成を押すとカスタムイメージの作成が行なえます。
カスタムイメージでインスタンスを作成する。
VMインスタンスに戻り、インスタンスの作成をクリックします。
「ブートディスク」内の変更をクリックします。
カスタムイメージタブをクリックすると、先ほど作成したカスタムイメージが選択できるので、選択を行います。
あとはゾーンやらHTTPトラフィックの設定やらを前書いたのと同じのにしてインスタンスを作成します。
インスタンスの作成後、作成したインスタンスの外部IP欄をクリックし、テストページが見れるか確認を行なってください。
テストページが見れたら、成功です。
検証の場合は、ディスク及びインスタンスの削除を忘れずにお願いします。
お金かかっちゃいます。
また、プロジェクトを横断したインスタンスの作成などもできるので、複数プロジェクトを作っている場合はそっちも検証してみてください。
ということで、こんな感じです。