エンジニアという仕事柄、Googleの業務用サービスこと「GCP」を触ったりします。
Googleが持つサーバなどを従量課金で使えるのですが、太っ腹なことに「月に●●までならタダ」という無料枠があるんですね。
そこで今回は
- GCPの利用登録
- サーバを立てる
- セキュリティ設定
の3ステップで無料サーバを手に入れる方法をご紹介します。
とはいえ、Linuxというマウスを使わずに白黒画面で操作するサーバなので、正直とっつきにくいです。
ですが、他の無料サーバサービスと違って機能制限がないので、一度用意しちゃえば「パソコンOFFでツール実行」など活用できます。
サーバを作るところまではクリック操作でいけますので、7分ほどお付き合いください。
ちなみに、もし操作が難しければ僕が代行(有料)もできますので、詳しくはココナラをご覧ください。
無料枠をこえると課金されるので注意
はじめに確認しておきたいのが「Always Free」というGCPの永久無料枠です。
GCPには様々なサービスがありますが、個人でサーバを立てる場合は「Compute Engine」というメニューを利用します。
この Compute Engine の永久無料枠がこちら。(2021年8月時点)

上記だとちょっと分かりにくいですが
- 一番スペックの低いサーバ1台を
- 場所はアメリカ(アイオワ・オレゴン・サウスカロライナ)を選んで
- ハードディスクは30GBまで
- バックアップは5GBまで
- 通信は月に1GBまで
の範囲ならずっと無料で使えます。
この中で1番オーバーしそうなのが、月に1GBまでの通信。
Yahoo!のトップページを2,000回くらい表示できる容量ですが、それ以上だと1GBあたり約16円の課金が発生します。(もっとも高い単価で計算)
とはいえ、はじめの90日間は300ドル分のお試し券が付いてくるので、実際に請求されることは珍しいと思います。
それでは、無料枠を確認したところで早速サーバを立てていきましょう。
ステップ1:GCPの利用登録
まずはじめに、GCPの利用登録が必要です。
詳しくはこちらの記事にまとめましたので、利用登録&初期設定までがんばってください。

ステップ2:Compute Engine でサーバを作成
GCPの基本準備が済んだので、次はサーバを立てていきましょう。
▼メニュー(三本線) → Compute Engine をクリックします。

▼作成 をクリックします。

▼サーバのスペック(性能)などを決めます。
ここの設定を間違えると無料枠をオーバーしてしまうので注意してください。

まずは上半分の項目を埋めます。
名前 | 自由に入力 |
リージョン | サーバを立てる場所のこと。 アメリカ(北バージニア以外)を選ぶ必要があり、中でも日本との距離が比較的近い「us-west1(オレゴン)」がオススメです |
ゾーン | どれでもOK |
シリーズ | E2 |
マシンタイプ | もっとも性能の低い「e2-micro」を選びます |
※以前はさらにスペックの低い「f1-micro」というのが無料対象でしたが、2021年8月にすこし性能アップしました。
▼つぎにディスク容量とOSを決めます。変更 をクリックしてください。

↓

オペレーティングシステム | 有料・無料のOSが混ざっています。 ここでは「CentOS」を選びます。 |
バージョン | ここでは「CentOS 7」を選びます。 最新だとネットで調べたときに情報がすくないので、1つ前にしました。 |
ブートディスクの種類 | 「標準の永続ディスク」のままにします |
サイズ | 30GBまで無料枠なので、せっかくならギリギリにします |
ここまで入力したら 選択 をクリックして元の画面にもどります。
つづいて
- HTTP トラフィックを許可する
- HTTPS トラフィックを許可する
にチェックを入れて 管理、セキュリティ、ディスク、ネットワーク、単一テナンシー をクリックします。

▼いくつかタブが出てくるので ネットワーキング を選択して ネットワークインターフェース(default) のところをクリックします。

▼外部IPのところ(エフェメラル) をクリックします。

▼IPアドレスを作成 をクリックします。

▼下のような枠が出てくるので、名前だけ適当に入力して 予約 をクリックします。

ネットワークうんぬんの部分は、WEBブラウザなどからサーバにアクセスするためのIPアドレスを設定しています。
IPアドレスは「持っているけど使っていない」状態だと課金されますが、サーバに割り当てる=使っている状態 なら無料です。
※正確にいうと内部・外部と2種類のIPアドレスがあり、課金対象は外部の方です。
▼一通り設定ができたので、ネットワークインターフェースの 完了 を押して、1番下の 作成 をクリックします。

▼これで無料枠のサーバが立ち上がりました。

▼ためしに接続してみましょう。 SSH をクリックします。

▼サーバに接続できました。Windowsではないのでマウス操作はできませんが、文字でコマンドを打つことでいろいろ操作できます。
※閉じるときは 右上の×マーク で問題ありません。

これでサーバ作成は完了ですが、海外からの不正アクセスが心配なので、最後にセキュリティを設定していきます。
ステップ3:仕上げにセキュリティ設定
サーバはインターネット上にあるので、誰でもアクセスできる状態です。
一応セキュリティがあるので、アクセスされても操作はできませんが、通信費用が発生するので見過ごせません。
そこで、思いっきりアクセスを絞って、自宅からのみ利用可にしちゃいましょう。
「確認くん」で自宅のIPアドレスを調べる
自宅からのみアクセス可にするには、自宅のIPアドレス(インターネット上の住所)を調べる必要があります。
調べ方は簡単で、自宅パソコンで 確認くん を開くだけ。
「あなたのIPアドレス」のところの数字が自宅のIPアドレスです。
ちなみに、このIPアドレスはたまに変わっちゃうのが面倒なところ。
IPアドレスが変わると、このあと紹介する「ファイアウォールの設定」もつど変えないといけないので要注意です。
わが家の場合、普段はぜんぜん変わりませんがルータを再起動すると新しいIPアドレスが振られるので、後述のルール1つ目を再設定しています。
ファイアウォールで自宅のみアクセス可にする
▼左上の三本線からメニューを開いて VPCネットワーク → ファイアウォール をクリックします。

▼ここから3つの「ファイアウォールルール」を作っていきます。
まず1つ目を作るため ファイアウォールルールを作成 をクリックします。

ルール1つ目:自宅のみアクセスを許可する
▼下記のように入力して 作成 をクリックします。

名前 | いちおう命名規則を意識して「original-allow-home-ip」とします |
優先度 | 1000が基準。すこし優先度を高めて 800 とします |
トラフィックの方向 | 上り |
一致したときのアクション | 許可 |
ターゲット | すべてに適用したいので ネットワーク上のすべてのインスタンス を選択 |
ソースフィルタ | IP範囲 |
ソースIPの範囲 | 確認くん で確認した自宅IP(XXX.XXX.XXX.XXX) |
プロトコルとポート | すべて許可 を選択 |
自宅IPはたまに変わってしまうので、そしたらルールを編集して「ソースIPの範囲」を書き換えてください。
ルール2つ目:自宅以外のアクセスをブロックする
▼もう1度 ファイアウォールルールを作成 をクリックして、下記のように入力して 作成 します。

名前 | ここでは「original-deny-all」とします |
優先度 | ルール1より優先度を下げて 900 とします |
トラフィックの方向 | 上り |
一致したときのアクション | 拒否 |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースフィルタ | IP範囲 |
ソースIPの範囲 | 「すべて」を意味する「0.0.0.0/0」とします |
プロトコルとポート | すべて拒否 を選択 |
ルール3つ目:「無料サーバへの接続機能」のアクセスを許可する
ルール1と2で「自宅以外からのアクセスはできない」の設定は済みましたが、実はこの状態だとサーバへの接続ができなくなってしまいます。

原因はルール2によって「SSHというボタンをクリックしてサーバに接続する機能」までブロックしてしまっているからです。
そこで、この機能だけアクセス可とするルールを追加します。
▼もう1度 ファイアウォールルールを作成 をクリックして、下記のように入力して 作成 します。

名前 | 「original-allow-ssh」とします |
優先度 | ルール1と同じ 800 とします |
トラフィックの方向 | 上り |
一致したときのアクション | 許可 |
ターゲット | ネットワーク上のすべてのインスタンス |
ソースフィルタ | IP範囲 |
ソースIPの範囲 | ちょっと大変ですが、下記を1行ずつ貼り付けます 35.190.247.0/24 64.233.160.0/19 66.102.0.0/20 66.249.80.0/20 72.14.192.0/18 74.125.0.0/16 108.177.8.0/21 173.194.0.0/16 209.85.128.0/17 216.58.192.0/19 216.239.32.0/19 172.217.0.0/19 172.217.32.0/20 172.217.128.0/19 172.217.160.0/20 172.217.192.0/19 108.177.96.0/19 35.191.0.0/16 130.211.0.0/22 >>参考記事:GCEのファイアウォールでsshを制限しながら、GCPのブラウザからのsshもできるようにする|Qiita |
プロトコルとポート | 指定したプロトコルとポート tcp にチェックして 22 と入力 |
これでSSHのボタンを押してサーバに接続できるようになりました。
以上で完了です。おつかれさまでした!
まとめ
- GCPの永久無料枠をオーバーしなければ無料でサーバが持てる
- 手順は GCP利用登録 → サーバ立ち上げ → セキュリティ設定 の3ステップ
- 自宅IPはたまに変わるので、ファイアウォールのルール1つ目をつど編集する
スペックは低いですが、無料で機能制限のない個人サーバを持つ方法は数すくないので、ぜひお試しください。
最後まで読んでいただきありがとうございました。
コメント