[GoogleComputeEngine]カスタムイメージを作って見るテスト

こんばんは。
ラチェです。
今回はGCEでカスタムイメージを作る方法を書きたいと思います。

# カスタムイメージってなんなの？

簡単に言うと色々インストールしたのをまとめてパッケージングできるよみたいな感じなのだ！


# カスタムイメージでできること

* 構築済みのサーバをイメージ化してプロジェクト間で共有できる

面倒な初期セットアップ（httpdとかの設定）を簡略化できる。

* 自動アップデート

イメージファミリーを指定することで常にパッケージを最新の状態にできる。
（ここちょっと未検証です。）
自動更新は yum-cron を介して有効化されています。とマニュアルには書いてるのでやってるのかな・・・？（CentOSの場合）

# 作ってみる
まず、GCPにログインを行い左上のメニューから「Compute Engine」を選択します。

<img width="321" alt="スクリーンショット 2016-11-22 18.39.30.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/7d896b5e-8c62-6608-64a8-249049d15444.png">

## インスタンスの作成

「VMインスタンス」を選択し、インスタンスを作成ボタンを押します。

<img width="986" alt="スクリーンショット 2016-11-22 18.40.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/00dc898e-141c-0a1a-5abd-32ed76be85d8.png">

<img width="1269" alt="スクリーンショット 2016-11-22 18.42.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/d04ffc56-0ab6-a163-2980-bb4cda0b6d4f.png">
<img width="1280" alt="スクリーンショット 2016-11-22 18.43.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/98bbfafd-5818-a21a-d058-2838722eca5d.png">

上記のようなものが出てくるので、名前を入力します。
ゾーンは今回は「asia-north-east1-a（東京リージョン）」にしてます。
マシンタイプは、最小限の動作だけ確認できたらいいので、microにしてます。
（ここは、想定されるサーバーにより変更してあげてください。）

ファイアウォール欄のHTTPトラフィックを許可するにチェックを入れます。

その下の「管理、ディスク、ネットワーキング、SSH接続鍵」と書いてあるところのディスクをクリックします。

<img width="484" alt="スクリーンショット 2016-11-22 18.48.38.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/137bce7f-bf57-96c9-4ade-b2d3b11f8bf7.png">

このようなメニューが出てくるので、
「インスタンスを削除する際にブートディスクを削除する」のチェックを外しておきます。
「管理」タブに戻り、作成を押します。
（検証だけで安く済ませたい場合は、プリエンプティブをオンにすると料金８割引で利用できます。ただし、いつVMが停止するかわかりません。）

<img width="501" alt="スクリーンショット 2016-11-22 18.49.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/b290d823-2cc5-b899-30fc-91ebd6a963bd.png">

作成したら、左部分のVMインスタンスを押します。
<img width="757" alt="スクリーンショット 2016-11-22 18.51.34.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/52cd5458-1849-d6b0-8e5b-4437ce8fdf04.png">
こんな感じでVMが作られるのでできるまで少々お待ち下さい。

<img width="1025" alt="a.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/b8c8d5b0-1361-335a-20b1-9c5b2acaa98e.png">

できました。

## サーバの設定

接続タブ以下にあるSSHを押してみてください。
SSHが繋げることを確認したら

```shell-session:CentOs6の場合
sudo yum install httpd-server
sudo service httpd start
sudo chkconfig　on
```
と入力してください。

入力が終わったら、VMインスタンスの外部IPからアクセスします。

<img width="1280" alt="スクリーンショット 2016-11-22 19.02.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/0022daef-7018-3416-db09-4a4daec41c54.png">

こんな感じでテストページが出てきたら成功です。

## カスタムイメージの作成

<img width="1025" alt="a.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/b8c8d5b0-1361-335a-20b1-9c5b2acaa98e.png">

作成したイメージの左側にあるチェックボックスをオンにし、右上のゴミ箱ボタンを押します。
インスタンスが正常に削除されたことを確認後、左側タブから「イメージ」を選択します。

<img width="1280" alt="スクリーンショット 2016-11-22 19.08.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/7323a159-7f1f-3ffd-592f-8b5d84f7cacf.png">

こんな感じでイメージがいっぱい出てきます。
作成者がCentOSとかCoreOSとか入ってるやつはgoogleのデフォルトイメージです。
一番上のは検証で作ったやつなのでお気にになさらず。

と、言うことで、「[+]イメージを作成」ボタンを押します。

<img width="537" alt="スクリーンショット 2016-11-22 19.12.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/0bf58575-4fa5-aedd-1d8a-668922748c8f.png">

* 名前：ディスクの名前
* ファミリー：OSの種類。（任意）今回はCentOS６なのでこちらを指定。
* 説明：カスタムイメージの説明。
* 暗号化：とりあえず自動に・・・
* ソース：今回はディスクに。ちなみにGCSからもインポートできます。
* ソースディスク：先程消したイメージのディスクを指定

入力後、作成を押すとカスタムイメージの作成が行なえます。

## カスタムイメージでインスタンスを作成する。

VMインスタンスに戻り、インスタンスの作成をクリックします。

<img width="1269" alt="スクリーンショット 2016-11-22 18.42.48.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/d04ffc56-0ab6-a163-2980-bb4cda0b6d4f.png">

「ブートディスク」内の変更をクリックします。

<img width="974" alt="スクリーンショット 2016-11-22 19.17.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/60b22e80-c6a9-2d96-be0f-1da488b8879b.png">

カスタムイメージタブをクリックすると、先ほど作成したカスタムイメージが選択できるので、選択を行います。
あとはゾーンやらHTTPトラフィックの設定やらを前書いたのと同じのにしてインスタンスを作成します。

インスタンスの作成後、作成したインスタンスの外部IP欄をクリックし、テストページが見れるか確認を行なってください。

<img width="1025" alt="a.png" src="https://qiita-image-store.s3.amazonaws.com/0/146205/b8c8d5b0-1361-335a-20b1-9c5b2acaa98e.png">

テストページが見れたら、成功です。
検証の場合は、ディスク及びインスタンスの削除を忘れずにお願いします。
お金かかっちゃいます。

https://cloud.google.com/products/calculator/

また、プロジェクトを横断したインスタンスの作成などもできるので、複数プロジェクトを作っている場合はそっちも検証してみてください。

ということで、こんな感じです。