[Cloud102]#2-1 GCPを始めよう(前半:GCE編)

このコンテンツは「前半」です。「後半」は以下を参照してください。
http://qiita.com/nagahisa/items/a3033b203fa929c8d7ab

# AGENDA
0.はじめに
1.GCP利用開始
2.CGEとは?
3.GCE使ってみる
4.GAEとは?
5.GAE使ってみる

(6.Datastoreとは？)
(7.Datastoreってみる)
(8.Cloud Storageとは?)
(9.Cloud Storage使ってみる)

#0.はじめに
本勉強会コース(Cloud102)はPython Programing初心者コースのつもりでしたが、諸事情あって今回はGCP(Google Cloud Platform)のハンズオンになります。（しかも #0の次が #2だし:stuck_out_tongue_closed_eyes:)
一応、後半(GAE編)でPythonを使うハンズオンもありますので、元々の目標も忘れないでいきましょう！

さて、GCPとはなにか？ですが、これはググるまでもなくGoogleさんのページ見てください。
https://cloud.google.com/
![000.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/baf0c83c-edd4-4ed0-3858-7c3107a33959.jpeg)

今月(2016/11)には日本リージョンもアナウンスされるようなので、今旬なクラウドサービスですね。

今回コンテンツではGCPのIaaS/PaaSのごく基本的な部分について触ってみます。
IaaSの中でも特徴的なマネージドコンテナサービス(GKE)や、GCPの最大の特徴とも言えるデータ分析系サービスについては一切触れませんので、くれぐれも今回でGCPが分かった
気分にはならないように:grin:

#1.GCP利用開始
##(1)アカウント作成
個人利用のGMailアカウント（なければ新たに取得。会社G Suitsアドレスは非推奨）を使って、以下からアカウント登録します。
AWSの時と同様なので簡単だと思いますが、念のためキャプチャも貼っておきます。
・登録開始
![001.png](http://qiita-image-store.s3.amazonaws.com/0/79389/58f54ecf-831b-b70d-fa3c-83b5a722b1eb.png)
・「同意して続行」
![002-edit.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/82cdc12c-9c73-7c5c-9ffb-25e79c73090b.jpeg)
![003.png](http://qiita-image-store.s3.amazonaws.com/0/79389/73871dee-b8dc-4d06-fe89-acd8f46cc150.png)
・住所とクレジットカード情報を入れて「無料試用を開始」
![005.png](http://qiita-image-store.s3.amazonaws.com/0/79389/6fc57428-3bf5-9710-40e8-d576a73b7a18.png)
・出来上がり

GMailも確認
![006.png](http://qiita-image-store.s3.amazonaws.com/0/79389/a01bceb3-95ca-3792-7d14-1d37ea84ad40.png)

##(2)プロジェクト作成
GCPは「プロジェクト」という単位で利用サービスを管理します。
今回は"cp100"というプロジェクトを新規作成して利用します。

・アカウント作成直後は"My First Project"ってのが自動作成されてます。
![010.png](http://qiita-image-store.s3.amazonaws.com/0/79389/ef4f9287-8fb6-d3b2-6afc-ebdfd9782306.png)

・"cp100"プロジェクトを作成します（リージョンはどこでも良いですが、せっかくなんで台湾選んでます）。
![011.png](http://qiita-image-store.s3.amazonaws.com/0/79389/844d5a36-1fb8-bd4f-9d74-ee1469a7ae47.png)

・作成するとダッシュボードにも表示されます。
![012.png](http://qiita-image-store.s3.amazonaws.com/0/79389/c0e61826-17c4-f598-5a48-1daa09a6db76.png)

#2.GCEとは?

まず触ってみるのは他社のIaaSとほぼ同じGCE(Google Compute Engine)です。
料金体系が特徴的で「AWSに比べて安い！」とアピールされています。概要はGoogleさんのページ見てください。
https://cloud.google.com/compute/

個人的には無料で使える"Cloud Shell"ってのがお気に入りですので、本コンテンツでも使います。

# 3.GCE使ってみる

単にVM作成しても面白くないので、LAMPスタックを構築してみます。

##(1)LAMPとは
"Linux + Apache + MySQL + PHP"の造語で、一昔前によく使われた(今でも使われますが)、ソフトウェア構成です。
ちょっと前にはMEANって言うのも流行りました。
https://ja.wikipedia.org/wiki/LAMP_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%90%E3%83%B3%E3%83%89%E3%83%AB)
当然、AWSの時のように Linux VMインスタンス作成して、そのVMにApache, MySQL, PHPをインストールするすれば良いのですが、時間がかかるので、今回は、すでにインストール済みのものを"Cloud Launcher"でデプロイしてみます。
"Cloud Launcher"は使えばわかるので説明は省略します:kissing_smiling_eyes:
ちあみに、今回つかうのはBitmaniのスタックです。
https://bitnami.com/stack/lamp
![020-pre.JPG](https://qiita-image-store.s3.amazonaws.com/0/79389/cd28d236-045d-232e-adf8-491fc7779add.jpeg)

##(2)Cloud Launcherでのデプロイ

Cloud Launcher(https://cloud.google.com/launcher)から、LAMPで検索するとBitnamiが出てくるので、それをデプロイします。

・Cloud Launcherで「LAMP」で検索
・https://cloud.google.com/launcher
![020.png](http://qiita-image-store.s3.amazonaws.com/0/79389/28d57bd7-c8b5-2c02-684a-d2be08b14609.png)
![021.png](http://qiita-image-store.s3.amazonaws.com/0/79389/b7142751-4cc0-8017-2ac8-159399191b0a.png)

・「Bitnami」を選択して設定値確認。設定値はデフォルトのままでも良いし気になればZone修正してもよい。
![025.png](http://qiita-image-store.s3.amazonaws.com/0/79389/2b6295ba-c6ff-b050-576c-a2354dfea5fc.png)
![026.png](http://qiita-image-store.s3.amazonaws.com/0/79389/a59413e3-5b9f-c298-82b8-352825a3b367.png)

・「Compute Engine上で起動」
![023.png](http://qiita-image-store.s3.amazonaws.com/0/79389/6bddacc6-b9e4-35e0-614f-57c3bcccba52.png)

・デプロイ中
![024.png](https://qiita-image-store.s3.amazonaws.com/0/79389/f202aa00-c60c-af51-b508-a610696fe7e1.png)

・出来上がり
![028.png](http://qiita-image-store.s3.amazonaws.com/0/79389/804c678d-e78a-d566-edc8-eaf78350745c.png)

##(3)LAMPスタック動作確認

・トップメニューからGCEメニューに移動
![031.png](http://qiita-image-store.s3.amazonaws.com/0/79389/2430e1a8-2ffd-dade-2505-a02da8689121.png)

・インスタンス情報確認
![032.png](http://qiita-image-store.s3.amazonaws.com/0/79389/f490b4e7-c145-949d-023b-cb75d10fa1ed.png)
![033.png](http://qiita-image-store.s3.amazonaws.com/0/79389/10074bd9-1de3-2574-c8cc-3180f3eef025.png)

・ブラウザでアクセス
![034.png](http://qiita-image-store.s3.amazonaws.com/0/79389/0741215f-1344-5a0a-1deb-e214ce10b209.png)

##(4)VMアクセス確認
デプロイされたVMにSSHアクセスしてみます。

・SSHメニューから「ブラウザウィンドウで開く」
![040.png](http://qiita-image-store.s3.amazonaws.com/0/79389/91c2c1ac-4d94-de02-e58c-7666d3f7db4b.png)

・しばらく待つと
![041.png](http://qiita-image-store.s3.amazonaws.com/0/79389/a73be1f3-84ff-5e63-d2b9-7d6c6be0e896.png)

・はい接続
![042.png](http://qiita-image-store.s3.amazonaws.com/0/79389/b894d3f4-d84a-f8a2-5045-f61de7210fd3.png)

・もちろん他の方法でも接続できます。
![045.png](http://qiita-image-store.s3.amazonaws.com/0/79389/05848167-ba8f-826f-5a28-fa2905dfe42b.png)

・GCPのCLIである"gcloud"コマンドの入力文字列を出してくれるので、これをCloud Shellで実行すればOK。![047.png](https://qiita-image-store.s3.amazonaws.com/0/79389/adaedf53-2337-9bf7-d0b3-2c67aff843ad.png)

・「CLOUD SHELLで実行する」をクリックすると Cloud Shellが立ち上がって、先ほどのコマンドラインが入力されます。
![046.png](http://qiita-image-store.s3.amazonaws.com/0/79389/32dfc8ca-4b06-4a86-2686-a46cc78f9f41.png)

・はい接続
![049.png](https://qiita-image-store.s3.amazonaws.com/0/79389/fbe614b3-3506-4ab0-1d0f-3dc348b641a7.png)

・Cloud Shellとは
Googleページに紹介がありますが、GCP使う開発者が一時的な作業に使うためのVM環境です。軽いし、便利だし、しかも無料！！

https://cloud.google.com/shell/
![049.JPG](http://qiita-image-store.s3.amazonaws.com/0/79389/1ad652fe-7c57-879d-2008-782fd99803eb.jpeg)


##(5)PHP動作確認

・プラウザでphpinfo表示されないことを確認
![050.png](http://qiita-image-store.s3.amazonaws.com/0/79389/2df6f2c5-6c3d-3e08-d8ac-a177393ce42a.png)

・SSH接続したVM画面で以下ファイル操作を行う

```
cd /opt/bitnami
sudo cp docs/phpinfo.php apache2/htdocs
```
![051.png](http://qiita-image-store.s3.amazonaws.com/0/79389/52d6eb7d-bf40-c3ef-1aec-dbf898efddbf.png)

・ブラウザリロードでphpinfo表示確認
![052.png](http://qiita-image-store.s3.amazonaws.com/0/79389/84e6a205-1e8a-31e9-b8ea-1f2d5d04ebfc.png)

##(6)後始末

無償期間はありますが、PHP勉強予定はないので消しておきます。

・GCEのインスタンス表示画面から
![060.png](http://qiita-image-store.s3.amazonaws.com/0/79389/221294f0-3e11-82a6-c752-713f64f4ff8d.png)

・「インスタンス削除（右上のバケツマーク）」
![061.png](http://qiita-image-store.s3.amazonaws.com/0/79389/36d31bd8-9003-d25f-8076-c8ee95d29621.png)

・はい削除完了
![062.png](http://qiita-image-store.s3.amazonaws.com/0/79389/77448c3a-a965-a7cf-3cc2-916ee1e966b9.png)

Enjoy:v: