GCEとは　～GCP無料枠を利用して学習～

#GCEとは

GCEとは仮想マシンを提供するサービスです。
一般的に言われるIaaSであり、AWSのEC2やMicroSoftのAzure仮想マシンに相当します。

ブラウザから必要な設定を選択し、クリックして数秒で仮想マシンが起ち上がります。
物理的なハードウェアレイヤーを意識する必要はなく、運用にかかるコストを下げることができます。

GCEの主な特徴は下記の通りです。

- 継続利用割引

GCEの利用料金は主に使用した分に対して課金されます。
詳細については公式ドキュメントの[すべての料金](https://cloud.google.com/compute/all-pricing)をご確認ください。
なかでも他のクラウドサービスと比較して特筆されるのが継続利用割引です。
AWSのEC2では事前に利用期限を確約することで割引を受けることができますが、
GCEでは一定の期間の利用を継続するだけで自動的に割引が適用されます。

- LiveMigration

LiveMigrationとは仮想マシンを稼働したたまま、停止することなく別のハードウェア上に移動する技術です。
これにより、メンテナンス等のGoogle都合による仮想マシンの再起動がなくなります。

#GCEの無料枠

GCEの無料枠は執筆時点では以下の通りになっています。

>・1 つの非プリエンプティブ f1-micro VM インスタンス（1 か月あたり、以下の米国リージョンのうちの 1 つ）:
>　　・オレゴン: us-west1
>　　・アイオワ: us-central1
>　　・サウスカロライナ: us-east1
>・GB の HDD（期間合計）
>・次のリージョンで 5 GB スナップショット ストレージ（期間合計）:
>　　・オレゴン: us-west1
>　　・アイオワ: us-central1
>　　・サウスカロライナ: us-east1
>　　・台湾: asia-east1
>　　・ベルギー: europe-west1
>・1 GB の北米から全リージョン宛ての下りネットワーク（1 か月あたり、中国およびオーストラリアを除く）

詳細は[Google Cloud Platformの無料枠](https://cloud.google.com/free/docs/gcp-free-tier)をご確認ください。


#GCEの作成

GCPの無料枠を活用して、実際にGCEを起動させてみます。
無料枠の条件は公式ドキュメントの[Google Cloud Platformの無料枠](https://cloud.google.com/free/docs/gcp-free-tier)をご確認ください。


GCPのコンソール画面のハンバーガーメニューより「Compute Engine」>「VMインスタンス」をクリックします。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_05_01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/259667d7-2816-c22a-c46f-275caf9a9d5a.jpeg)

「作成」をクリックします。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_07_15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/cacd0151-76eb-7bd7-25aa-8b92542d22fb.jpeg)

任意で「名前」を入力します。
「リージョン」は無料枠で利用可能なものを選択します、今回は「us-west1」としています。
「マシンタイプ」も同じく無料枠対象の「f1-micro」です。
無料枠ではないですが、「マシンタイプ」をカスタムにすればコア数、メモリを自由に設定できます。

リージョンとゾーンについては公式ドキュメントの[リージョンとゾーン](https://cloud.google.com/compute/docs/regions-zones/?hl=ja#available)をご確認ください。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_22_50.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/1905694f-6c11-8edd-0f68-10fff252afa3.jpeg)

「ブートディスク」で希望のOSイメージとを選択します。
標準の永続ディスクの「サイズ(GB)」を無料枠の30(GB)としています。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_14_19.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/83162b7b-1649-dbc2-eb07-405cb2782caa.jpeg)

「ファイアウォール」
チェックをつけると該当のファイアウォールルールが自動で作成されます。
後で変更することも可能なので、今回はHTTPのみチェックしています。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_24_43.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/8526981a-07da-9a5e-03f7-dc8f01a61ec9.jpeg)

「ホストメンテナンス時」は上述のLiveMigrationの設定です。
「VMインスタンスを移行（推奨）」として設定を有効にします。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_26_22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/1ba59f09-73ce-d17c-aca4-4803a16dcd29.jpeg)

「ネットワーク」
「外部IPアドレス」の「エフェメラル」とは一時的に割り当てられるIPアドレスで、再起動の度に割り当てが変わります。
「IPアドレスを作成」にすることでグローバル固定IPアドレスを割り当てることができます。
固定IPアドレスの利用は無料ですが、サーバーを削除して固定IPアドレスがどこにも割り当てられなくなると課金が発生します。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_19 0_09_36.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/6be4bb54-4d6d-6f8f-c5e1-2cf126854b6c.jpeg)

「作成」をクリックして、数十秒待つとインスタンスが作成されます。


![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_18 21_32_59.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/b97b73c2-7e76-272d-78e3-c48e86cecd8b.jpeg)


#ファイアウォール

GCEのファイアウォールでは各インスタンスに対して制御するトラフィックを設定します。
ファイアウォールとして特徴的なのはターゲットタグによる指定が可能な点です。
VMインスタンスにタグを設定することで、そのタグが割り当てられているVMインスタンスへの通信を制御します。

ハンバーガーメニューより「VPCネットワーク」>「ファイアウォール」をクリックします。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_19 23_43_00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/c6baf1e5-9f57-7f36-7bae-2b96bcdbca18.jpeg)

設定されているファイアウォールルールの一覧が確認できます。
「ファイアウォールルールを作成」をクリックします。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_19 23_44_05.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/888f3be2-051e-126f-34e6-00f48dd1e32b.jpeg)

各項目を入力します。
「トラフィックの方向」は「上り」がインターネットからGCPへの通信です。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_20 23_55_42.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/607989ad-5807-707f-b5ef-d2ef7725d473.jpeg)

「ターゲットタグ」はVMインスタンス作成時にはデフォルトで「http-server」が割り当てられています。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_21 0_02_39.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/a7bafa85-6acf-6b51-7315-f8daa3b56caf.jpeg)


「作成」をクリックします。

ファイアウォールのルールが設定されました。

![クラウド コンピューティング サービス  _  Google Cloud - Google Chrome 2019_08_21 0_03_37.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/41ab3c56-304f-640f-1506-35f5c11c4f5a.jpeg)

#※追記：発生する料金

無料枠を活用してVMインスタンスを無料で起てることができました。
しかし、しばらくして確認してみると僅かながら料金が発生していました。
作成したVMインスタンスの下りの通信に対して課金されているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/439091/d5f89b79-bc2b-4d30-f287-6db108255862.png)

通信に対して発生する料金については[ネットワークの料金](https://cloud.google.com/compute/all-pricing?hl=ja#network_pricing)をご確認ください。

大した金額でもなく、無料クレジット枠で補えているので支払いは発生していませんが、気になる方はご留意ください。

なお、この通信の正体は何かというとSSHを利用した外部から攻撃のようです。
詳しくは@hnwさんの記事[GCEのf1-microインスタンスを真にタダで使う方法](https://qiita.com/hnw/items/a4e395d047b382e7dc5f)をご参照ください。

防止策としてはSSHのポート番号を22番から別のものに変更します。
手順は[GCEにSSHで接続する](https://qiita.com/hollyhock-s/items/791b662bbf816df2f784)を参照ください。