最短1分でGCP(Google Cloud Platform)上でサーバーを構築
このページではGCP(Google Cloud Platform)でサーバーを構築するまでの詳しい手順を多数の画像で解説します。
このページを読めば2台目以降なら1分以内で作成できるようになります!
- GCP(Google Cloud Platform)上にサーバー(VMインスタンス)を導入する
- 外部と内部の固定IPを1つずつ持つ
- リモートログインする(LinuxはSSH、WindowsはRDP)
※RedhatやDebian、SUSE、UbuntuなどのLinux、Windows ServerなどすべてのOSで仮想マシンのインスタンス作成の基本手順に違いはありません。
コンソールのダッシュボードにアクセス
まずはGoogleアカウントを取得してGCPの登録ができているものとします。
コンソールのダッシュボードにアクセスします。
https://console.cloud.google.com/
プロジェクトを新規作成
まずCGP内にサーバー(VMインスタンス)を構築するにはプロジェクトの作成が必要です。プロジェクトは以下にいろいろな機能を追加していくことになります。
ダッシュボード>プロジェクトを作成

任意のプロジェクト名を入力して作成

1~2分かかるかもしれません
新規VMインスタンス設定画面を開く
GCPでサーバーを立ち上げるというのは物理サーバー1台に対して処理をするのではなく、Googleが用意した仮想環境に仮想マシン(VM)のインスタンスを作成するということです。
仮想マシン(VM)を管理するのは「Compute Engine」というメニューを使います。
初めてCompute Engineを選択すると以下のような画面が現れます
有効にしましょう

今作成したプロジェクトを選択した状態で
メニュー>Compute Engine>VMインスタンス

「インスタンスを作成」をクリック

入力フォームが開くので各項目を順番に入力していきます。
初めての人はGCPの専門用語が連発しますのでおそらく意味不明なフォームだと思います。全部を理解して入力しようとすると1日かかってしまいます。補足説明するので安心してください!
1つ1つ説明していきます。

【手順①】インスタンスの名前をつける
作成するインスタンスにつける名前です。英数字とハイフンでわかりやすくつけましょう。

【手順②】リージョンとゾーンを選択する
次にリージョンとゾーンという2つの項目を選択していきます。

【手順②-1】リージョンを選択する
インスタンスが稼働するリージョンを選択します。日本でサービスを展開するならば「東京」か「大阪」を選択します。
データセンターの場所なので、どちらでもかまいません。

【手順②-2】ゾーンを選択する
ゾーンはa,b,cの3つがありますが、データセンターの中の部屋の選択みたいなものなので、どれでもかまいません。

以下、リージョンとゾーンについて補足しますが、必要のない方は飛ばしてください。
GCPのリージョンとゾーンとは何か?

リージョンとは?
リージョンとはインスタンスが稼働するデータセンターが地理的に離れ独立した領域のこと。同じ国に複数あることもありますが、通常は国と国というレベルで距離が離れます。
ゾーンとは?
一方、ゾーンは同じリージョン内において物理的な部屋やネットワーク機器などで独立した領域となります。
例えるならリージョンはホテル、ゾーンはホテルの部屋のようなものです。
リージョンとゾーンを同じもの違うものにした場合のメリット
このリージョンやゾーンの選択の意味は「物理的な距離からくるネットワークスピード」や「災害や事故などによるデータ消失のリスク」を天秤にかけるためです。
例えば複数インスタンス同士の内部通信が多発するなら同じ場所にあった方が高速ですし、逆に離れた場所にデータが複製されている構成の方がデータ消失は防げます。
領域 | 同じものにする | 違うものにする |
リージョン | ○物理的に近いので通信が高速 | ○大災害などでデータセンター全体の被害によるデータ消失のリスクを減らす ×リージョン間通信が有料になることも |
ゾーン | ○物理的に近いので通信が高速 ○ゾーン内通信は無料 | ○データセンター内の物理機器故障などによる障害のリスクを減らす △ゾーン間通信で多少料金がかかる |
また日本国内ユーザーを対象にしているなら、日本にサーバーがあった方が物理的に近い分、ユーザー向けには高速になるといえるでしょう。
日本のリージョンとゾーン
日本でサービスを提供するなら、普通に物理的な距離から日本のリージョンを選びたいですよね。
現在GCPでは東京と大阪の2つのリージョン、それぞれ3つのゾーンを提供しています。
リージョン名 | ゾーン |
asia-northeast1(東京) | a,b,c |
asia-northeast2(大阪) | a,b,c |
【手順③】マシンの構成
VMインスタンスのマシン構成を選択し、スペックを決定していきます。

実はここが超難解かつ、月額料金のほぼを決定する場所なので一番選択に時間がかかることになるでしょう。
以下で、GCPマシンの構成についての説明をしますので目的に最適なものを選んでみてください。
GCPのマシンの構成について
マシンの構成は①マシンファミリー、②シリーズ、③マシンタイプの3階層にわかれています。
①マシンファミリー(Machine Family)

マシンファミリー。マシンのスペック選択の大カテゴリ。これによって次の中カテゴリにあたる「シリーズ」の選択肢が変わる。
マシンファミリー | 説明 |
汎用 (General purpose) | 価格とパフォーマンスのバランスの取れたスペック |
コンピューティング最適化 (Compute-optimized) | CPUコアあたりのパフォーマンスを最高に、コンピューティング負荷の高いゲームサーバー等 |
メモリ最適化 (Memory-optimized) | メモリ処理を最大化する最適化 |
GPU/アクセラレータ最適化 (Accelerator Optimized) | GPUを追加し処理能力を最高レベルにする |
通常は「汎用(General purpose)」でよいでしょう。
あらかじめ処理の負荷や実績などから要望するスペックに合わせて最適化していきましょう。
②シリーズ(Series)

マシンのシリーズ。マシンスペック選択の中カテゴリ。選ぶマシンのシリーズによってシリーズ名も異なり、性能やスペックカスタム上限も異なります。
シリーズ一覧
シリーズ | マシンファミリー | プラットフォーム | スペック | 説明 |
N1 | 汎用 (General purpose) | intel | CPU1~96/メモリ1~624GB | 初代のVMマシン |
N2 | 汎用 (General purpose) | intel | CPU2~96/メモリ2~768GB | N1よりもパフォーマンス20%以上UP。その分少し高価 |
E2 | 汎用 (General purpose) | intel/AMD | CPU2~32/メモリ1~128GB | コスト重視のマシン。性能はN1と同等でコストが30%削減。他のシリーズより選べるスペック上限が低い。ローカルSSD不可 |
N2D | 汎用 (General purpose) | AMD | CPU2~96/メモリ1~768GB | N2のAMDバージョン |
C2 | コンピューティング最適化 (Compute-optimized) | intel | CPU4~60/メモリ16~240GB | N1と比べてパフォーマンス40%UP |
M1 | メモリ最適化 (Memory-optimized) | intel | CPU96/メモリ1433GB | ※ultramemはローカルSSD使えず |
M2 | メモリ最適化 (Memory-optimized) | intel | CPU208~416/メモリ5888~11776GB | ※ultramemはローカルSSD使えず |
A2 | GPU/アクセラレータ最適化 (Accelerator Optimized) | intel | 日本のリージョンでは使用不可 |
こだわりがなければパフォーマンスはそのままでコストが安い「E2」でいいのではないでしょうか?
③マシンタイプ(Machine type)

マシンタイプ。CPUとメモリのスペックを選択します。用意されたセットから選択するかCPU/メモリを個別に数値をカスタマイズすることもできます。
【手順④】ブートディスク
次にOSとバージョン、ブートディスクの種類を選びます。
ブートディスク>変更をクリックします。

オペレーティングシステムとバージョンを選びましょう。

※ここではCentOS7を選んでいますが、ここはインストールしたいOSを適宜選択してください
【手順⑤】ファイアウォール
Webサーバーとして使う場合、HTTP/HTTPS両方の通信をファイアウォールに許可します。両方にチェックをつけます。

【手順⑥】ネットワーク
デフォルトだとネットワークの外部IPは自動で割り当てられインスタンスを再起動するたびに外部IPがかわってしまいます。
再起動しても外部IPが変わらないように静的なIPアドレスを割り当てる設定をします。
固定の外部IPを作成する
とても見づらいですが、隠された詳細の設定があります。
以下の「ネットワーキング」をクリックしましょう。

ペンのアイコンをクリックし、ネットワークインターフェースの設定を開きます。

外部IPのプルダウンをクリックします。

「IPアドレスを作成」を選択

ネットワークの「外部IP」のエフェメラル(一時的なという意味)はインスタンスの再起動ごとにIP変わってしまいます。対して「内部IP」はインスタンスを削除しない限りは変わらないので今回はエフェメラルのまま何も設定しません。
予約するIPアドレスに英字とハイフンで名前をつけて「予約」を押す。

外部IPのところにアドレスが入力されています。
「完了」クリック。

料金を確認
ここまで決定すると画面の右上におおよその月額料金が表示されますので、確認しておきましょう。

以下も参考にしながら、マシンの性能や価格を調整してインスタンスを作成してみてください。
インスタンス作成完了!
ここまでできたら「作成」をクリックしましょう!

インスタンス作成が開始され、1~2分くらいかかります。
おめでとうございます!インストール完了です!
リモートで(SSH/RDP)で接続確認してみる
インストールが終わったら接続確認して終了です!
あと少し頑張ってください。
Linux/Windowsで手順が違います。
Linux系OSをインストールした場合はSSHでログイン
作成後、VMインスタンス一覧画面が表示されるのでそこからSSHをクリック

webブラウザ上でSSHログインした後のコマンドプロンプトが開きます!

Windows系OSをインストールした場合はRPDでログイン
ファイアウォールで通信を通す
サーバーをインストールした時点ではリモートデスクトップによる通信はファイアウォールによって遮断されていますので許可する必要があります。
メニュー>VPCネットワーク>ファイアウォール

全てのインスタンス上に3389番のポート番号を許可します。
(※簡素化するために全てインスタンス対象で進めます)

パスワードを作成
まだログインするユーザーのパスワード設定がされていないのでします。

「設定」をクリック

この後パスワードが表示されるのでコピーして控えておきます。
RDP(リモートデスクトッププロトコル)で接続
インスタンスの詳細画面に戻り「RDP」をクリック

ダイアログが現れたら「RDPファイルダウンロード」をクリック

そのRDPファイルをダウンロードしたら実行するとリモートデスクトップのパスワードを求められるので先ほど控えたパスワードを入力。

以下の画面で「はい」をクリック

これでwindows serverにログインできたはずです!
おめでとうございます!
以上、おつかれさまでした!
コメント