オンプレでサーバ立てて… な~んてもう古いですよね。私がバリバリ開発していた頃はそれが主流でしたが、今やサーバを立てると言ったら、クラウド上が当たり前な時代。そんなわけで、おじさんSE、apt-get upgradeしまーす!
そんなわけで、次の2大サービスのどちらかを使うことが当たり前になってきています。
- Google Cloud Platform (GCP) … Googleが提供するクラウドサービス
- Amazon Web Service (AWS) … amazon.comが提供するクラウドサービス

今回は、GCPで仮想マシンを立ち上げてみます
- Googleのアカウントを持っていない方は先にGoogleアカウントの作成をしてください(無料)
- 利用可能なクレジットカードを準備してください(無料枠内で使えば請求はされませんのでご安心ください)
サービス開始登録
GCPの管理画面を開いて、Googleアカウントでログインしてください。

無料トライアルに登録してください。

国を選択し、利用規約にチェックして続行してください。

アカウントの種類は「個人」でOKです。
個人情報を入力してください。
取り敢えずのお試しだから…と適当な情報を入力する癖のある人は気をつけてください。
この後、クレジットカードの登録がありますので、やり直しになってしまいます(←私w)

クレジットカード情報を入力してください。
無料枠内で使う分には請求されませんので、気をつけて使えば大丈夫です。
Googleさんが、$300チャージしてくれますので、とりあえず3万円分ぐらいは使えますし、残りいくらって管理画面上に表示してくれますので、そこを気をつけて見ていれば大丈夫です。
私自身が結構クレジットカードの登録という時点でハードルが高くてなかなか登録に踏み切れなかった結果、時代の流れに取り残されそうになってしまったので、ここは皆さんの背中を押したいと思います。

この道を行けばどうなるものか、危ぶむなかれ。危ぶめば道はなし。踏み出せばその一足が道となり、その一足が道となる。迷わず行けよ。行けばわかるさ。
アントニオ猪木
仮想マシン作成

GCPの管理画面に入りました。
左のメニューからスタートガイドを選択すると、画面中央に「Compute Engineを試す」というメニューが出てきますので、クリックします。
これがGoogle Cloud Eompute(GCE)というもので、クラウド上に仮想マシンを作る機能です。
Hyper-Vでを使ったことのある方は、GCEはHyper-Vだと思ってもらえればイメージが湧きやすいと思います。Hyper-Vでは使うリソースがローカルのパソコンのリソース(CPU、メモリ、ディスク等)だったのに対して、GCEはGoogleのデータセンター内のサーバーのリソースを使います。
GCEでは仮想マシンのことを「インスタンス」と呼びます。Hyper-Vでは、仮想マシンと呼んでいたものです。

画面右側がチュートリアルのガイドになりますので、開始ボタンをクリックしてください。

赤枠内は自動で生成されていますので、変更してもよいですし、そのままでもOKです(後から変更可能)。
決まったら、プロジェクトを作成ボタンを押します。

画面の左側の作成ボタンをクリックしてください。

画面右側のガイドを進めると、Compute Engineに移動と表示されるので、押してみてください。どこを押せばいいのか教えてくれます。

こんな感じでフォーカスを当ててくれます。
最初、この左、中央、右の画面の構成が分かりにくく、次どこ!?状態でしたが、右側のガイドでやったところまで次へボタンを押したら教えてくれました。

いよいよインスタンスの作成です。作成ボタンを押してください。

vCPUコア数とメモリを選択してください。右側にこの構成だといくら掛かるというのが表示されていますので安心ですね。
ちなみに一年間の無料トライアル中は、Googleさんから$300もらえたので、残り32,204円残ってます♪
お試しで作るなら、最小構成のf1-microを選択してください。これなら一月500円くらいですし、720時間分はそもそも無料ですので、一年で見ると実質無料です。
無料枠が気になる方は、こちらで詳しく確認できます。

- アイオワリージョンのf1-microを1つ使うならほぼタダ。
- アジア圏件への通信はわずかに通信量がかかる
- 2020年1月から外部IPが1つ300円/月程度掛かるとのこと
ということで、初年度は約3万円分はGoogleさんから頂いているので細かいところはあまり気にしなくてよさそう。次年度以降は最低構成でも月1,000円程度はかかってしまいそう。
外部IPの有料化はイタイです…(T_T)
ちなみに最強構成はこれでした。vCPUが160個、メモリが3.75TBってもはや次元が違いますな。まぁ、お値段も別次元ですけど。一ヶ月で1,387,000円って… 一瞬で無料枠が蒸発して死亡確定ですので、ここのスペックの選択は気をつけてくださいね


OSイメージは好きなものを選択してください。
今回はとりあえず、サーバ用でよく使われるLinuxのCentOSをチョイスしました。どれがよいかわからない方はCentOSにしておきましょう。この後の説明はCentOSベースですので。

AWSだとファイアウォールのルールを追加しないとHTTPのポート開かないんですが、GCPではチェックボックスにチェックつけるだけでポートが開きますので簡単ですね。これで80番と443番を開けますので、HTTPとHTTPS、つまりWebサーバの立ち上げが可能になります。

他にもいろいろオプションがありますが、推奨設定のままで作成ボタンを押します。

VMインスタンス画面の一覧に今作成したマシンが表示されます。
右上の列プルダウンを押して、マシンタイプが表示されるようにしておくと良いと思います。
マシンタイプがvCPU1個、0.6GBならf10microなので無料で使えます。万が一、ここが違う場合は有料になってしまうかも知れないので確認して、間違えていた場合はインタンスを削除してください。

さて、インスタンスは作ったけど、ここからどうするのでしょうか?
次のアクションがわからなくなった時は、右側のガイドを次ボタンで進めてください。次はCloud Shellを使って、インスタンスに接続します。

Cloud Shellに接続すると、ブラウザ内にコマンドを打ち込むエリアを表示されます。TeraTermとかPuTTYとか入れなくてもブラウザだけでLinuxのコマンド操作ができてしまうんですね。これは便利です。
gcloud compute ssh --zone us-central1-a centos-01

Cloud Shellはまだ先程作成したCentOSのインスタンスではないので、sshを使って接続します。
–zone オプションでゾーン名を指定し、その後にインスタンス名を指定します。どちらもVMインスタンス一覧画面に表示されています。

初めてアクセスする場合は、sshキーが無いので、作成します。
ちなみに次のようなエラーが出ることがありますが、キーの生成にちょっと時間がかかるみたいなので、少し時間が経ってからリトライしてください。


[ユーザ名@インスタンス名 ~] $
のプロンプトが表示されれば、インスタンスの中で動いているLinuxにsshでログインできました。

動作確認
これでクラウド上にLinuxのサーバが完成して動き始めました。せっかくなので今作ったLinuxサーバでWebサーバを動かして、ブラウザで表示してみましょう。

Webサーバでブラウザからリクエストを受けた際に”Hello, World!”を返却するindex.html ファイルを生成します。
ちなみにガイドには打ち込むコマンドが表示されます。ただ、” (ダブルクォート)でくくってあっって、そのまま実行するとエラーになったので、’ (シングルクォート)にしました。
$ echo 'Hello, world!' > index.html

突貫でコンテンツが出来たら、後は簡易Webサーバを起動してください。
上の画面のように表示されればWebサーバが動き始めました。
$ sudo python -m SimpleHTTPServer 80
これは、root権限でPythonを使って簡易Webサーバを80番ポートで起動して、というコマンドです。
インスタンスには、外部IPアドレスが割り振られていますので、ブラウザで表示できるか確認してください。

おぉぉ、さっき突貫で作成したindex.htmlの内容が表示されました。

Hello, world! と表示されない場合は、次の二つの原因が考えられます。
- Webサーバ(SimpleHTTPServer)が起動していない
- 80番ポートが開いていない
切り分けのため、CentOSのシェルでWebサーバが動作しているか確認します。
$ curl -sS http://localhost
これでHello, world! が表示されればWebサーバは起動しているので、80番ポートが開いてない可能性が高いです。
VMインスタンス一覧から対象のインスタンスの詳細画面を開いて、ファイアウォールの設定を確認してください。
クラウドいいですね。これだけでどこからでもアクセスできる自分専用のLinux環境が出来てしまうんですからね。自宅サーバ立ててWebやFTPサーバを動かしていた頃を思い出しましたが、信じられないっす。

お疲れ様でした!
コメント