これから、ブログを初めたい!自分のサーバーを持ちたい!
だけど、レンタルサーバーでは、毎月の利用料が発生してしまいますよね。
無料で使えるサーバーは、ないのだろうか?かと悩んでいませんか。
Googleが提供するクラウドサービスを活用すると、サーバーの性能は低いですが、個人で利用するなら十分に利用価値のあるサーバーを、無料で利用できるようにできます。
この記事では、クラウド環境、つまり、インターネット環境上に、linuxサーバーを無料で立てる方法をご紹介します。
こんにちは!初子です。
この記事では、ときどき、わたしが、優しく解説しますので、初心者にもわかりやすくしています。
よろしくお願いします。
Google Cloud Platform/Google Compute Engineとは
GCP(Google Cloud Platform)は、Google Inc.社が提供する、企業でも個人でも利用できる、クラウドサービスの総称です。
インターネット上に、自作PCを作れるパソコン部品(CPU・メモリ・ディスクなど)が用意されているサービスと考えると良いですね。
わざわざ部品を買いそろえたり、ドライバーで組み立てなくても、サービス提供されている部品を、自由に組み合わせる事で、自分で好きなサーバーを作る事ができるんです。
このGCPで有効にしたサーバー部品の使用量(CPUの性能や、メモリ容量、ネットワーク使用量など)に応じて、利用料金が発生する仕組みになっています。
ところが、利用開始してから1年間つかえる300ドル分の無料クレジットや、ずっと無料で利用できる無料枠が用意されており、その範囲内で利用すると、お金をかけずに自分のサーバーを持つことができます。
ちなみに、Google Compute Engine(GCE)は、Google Cloud Platform(GCP)の一部のサービスで、サーバーの基本セット(CPU,メモリ,DISK,ネットワーク,OS)を提供してくれる、GCPの中心的なサービスです。
Google Cloud Platform(GCP)と、Google Compute Engine(GCE)は、混同してつかわれる事が多いですが、あまり気にしなくて良いですよ。
あくまで、GCPは、GCE+αの総称と考えてくださいね。
Google Cloud Platform(GCP)の無料枠とは
さきほど説明したように、GCPの無料枠には、「有効期限が1年間の無料クレジット」と、「永久無料枠」があります。
無料クレジットは、GCPのどんな利用料に対してもこの無料クレジットが自動適用され、特に手続きをしなくても利用料が発生しません。当然ながら、1年以内に使い切ってしまった場合は、その後は、料金が発生しますし、1年間で使いきれなかったクレジットは、消滅し、2年目以降は料金が発生ます。
この無料枠は、Googleが、GCPを知ってもらうために、無料で提供しているもので、使える性能は、最小限の範囲に限定されていいます。
例えば、 f1-microと呼ばれる、CPU(0.2基分) x 1、メモリ 614MBの、常時起動する仮想サーバー環境(VMインスタンス)が、永久無料で利用できます。
CPU(0.2基分) x 1、メモリ 614MBって、どんな性能かというと、ちょっと古めのパソコン程度と考えると良いと思います。
ただし、多くの皆さんが使っている、Windowsパソコンには、さまざまなアプリがいっぱい入っているため、同じ用途でつかおうとすると、使い物にはなりませんが、特定用途では十分に使えます。
例えば、遊びや、学習用途、それから、アクセス数が少ないウェブサーバーなどには、十分だと思います。
無料枠に関する詳細は、Google社のHPに詳しく掲載されていますが、無料サーバーを作るために必要な、基本的なものを紹介していきましょう。
この範囲内で利用すれば、永久にサーバーを無料で利用する事ができます。
仮想サーバーについては、先ほど説明しましたが、その他の用語を少し解説しますね。
HDD・・・データの保存領域です。OSなどのシステムファイル領域や、写真・ファイルなどを自由に利用できる、ユーザー領域も含まれます。
スナップショット・・・仮想サーバーを一時的に、丸ごとバックアップできる領域です。圧縮されますので、5GBあれば、2~3世代分のバックアップは十分にとれます。
リージョン・・・Googleがサーバーを設置している場所(データセンターの場所)を示します。米国リージョンは、米国にサーバーが設置されています。
ネットワーク下り・・・ウェブサーバーであれば、表示データの転送量です。ウェブサーバーからウェブブラウザーへのデータ量ですので、写真や動画、アクセス数に応じて、容量が不足する可能性があります。
Regional Storage・・・仮想サーバー以外に、さまざまなデータを保存しておく領域です。後ほど説明しますが、課金データの詳細情報を保存できます。
この無料枠で、唯一注意しなければならないのは、「ネットワーク下り」の使用量だと思います。
不特定多数の人に、大量のデータ・写真をダウンロードされると、無料枠を超過してしまう事や、悪質なサーバー攻撃などの被害を受ける可能性があります。これについては、また、後で、防御する設定を紹介します。
無料サーバーの構築方法
Google Cloud Platform(GCP)の利用を開始する手順
GCPの無料サーバーを利用するには、下記の2つの準備が必要です。
- Googleアカウント
- クレジットカード
Androidスマートフォンをもっている人は、既にアカウントをもっていると思いますが、まだ、持っていない人は、アカウントを作成しましょう。下記の手順のながれで、作成してくださいね。
事情によりクレジットカードを持っていない人は、デビットカードでも利用できます。
GCP無料トライアルページにアクセスします。
1年間有効の無料クレジットを得るために、かならず、専用の無料トライアルページから、GCPの利用開始をおこなってください。
Googleアカウントでログインします。
Googleアカウントを入力して、「次へ」を押してください。もし、Googleアカウントを持っていない場合には、「アカウンを作成」を押して、アカウントを作成しましょう。
無料トライアルを開始するための情報を入力します。
利用規約を読んでから、チェックをいれて、「続行」ボタンを押してください。
画面の右側に「無料トライアル期間が終了しても、自動的に請求されることはありません」と記載されていますので、安心ですね。
ただし、逆にいうと、下記の注意点がある事を理解しておきましょう。
アカウントの種類・住所を入力します。
「アカウントの種類」は、「個人」に設定してください。
「住所」は、クレジットカードに登録されているもとの同じ情報を入力しましょう。
氏名・お支払い方法を入力します。
「氏名」と、「お支払い方法」には、クレジットカード番号を入力してください。
「無料トライアルを開始」ボタンで、無料トライアルが開始します。
無料トライアル開始されました。
プロジェクトを作成する
GCPのサービスを利用するには、必ず「プロジェクト」を作成します。
プロジェクトは、1つの課金単位と考えてください。用途によって、どれくらいの利用料がかかっているかを、複数プロジェクトに分割することで、区別できます。
無料枠で利用する範囲は、1つのプロジェクトで十分だと思いますので、なにも考えずに、下記の手順どおりに進めましょうね。
プロジェクトの作成画面を表示します。
上部の青色バーにある「プロジェクトの選択」ボタンを押すと、プロジェクト選択画面がポップアップします。
「新しいプロジェクト」ボタンを押して、プロジェクトを作成していきます。
プロジェクト名を決めて、プロジェクトを作成します。
好きな「プロジェクト名」を入力して、「作成」ボタンを押してください。
プロジェクト名は、後でも変更できますが、プロジェクト名の下に記載されているプロジェクトIDは、GCP側で、世界中でユニークな識別子を、勝手に割り振られてしまいます。
プロジェクトIDは、無料枠の範囲で利用するには、あまり利用する事はないと思いますが、覚えやすいIDを付けておきたい方は、変更しておく必要があります。
無料サーバーを作る手順
これで、ようやく、無料サーバーを作れる状態になりました。
ウェブブラウザーには、下記のダッシュボード画面が表示されていると思います。
このダッシュボード画面を起点として、さまざまな設定をしていきますので、よく覚えておいてください。
左上にあるメニューボタン(以降、GCPコンソールのハンバーガーメニューと呼びます)から、設定を選んでいきます。
今後、いつでもこの画面を表示したい場合には、下記のURLをブックマークしておくと良いですね。
仮想サーバーのインスタンスを作成していきます。
GCPコンソールのハンバーガーメニューの「コンピューティング」カテゴリーから、[Compute Engine]-[VM インスタンス]を選択してください。
はじめて利用する場合には、「Compute Engine を準備しています。1 分以上かかることがあります 」と表示され、しばらく待ちます。
仮想サーバーのインスタンスという難しい言葉をつかってしまいましたが、仮想サーバーは、自宅に設置する箱型のサーバーと対比して、インターネット上にあるサーバーの事をしめすのはおわかりと思います。
仮想サーバーの事を、VM(Virtual Machine)とも呼びます。
インスタンスとは、仮想サーバーを動作させるための仕様・設定に基づき、実際に、実行・処理できる状態にしたものを示します。
VMインスタンスの作成を開始します。
VMインスタンス画面から、「作成」ボタンを押してください。
VMインスタンスの仕様を入力します。
「名前」を入力してください。上記の例では、webserverとしています。
「リージョン」は、「us-west1(オレゴン)」選択してください。オレゴン以外の、アイオワ・サウスカロライナなどのリージョンも、無料枠が適用されますが、それらのリージョンは、日本からの距離が遠いため、一番、日本に近い、西海岸のオレゴンを選択するのがおすすめです。
「マシンタイプ」 は、「f1-micro」を選択してください。f1-micro以外は、無料枠が適用されません。
引き続き、VMインスタンスの仕様を入力します。
「ブートディスク」は、そのままでもかまいませんが、好きなOS・HDD容量に変更もできます。
OSの公式イメージは、Linux(RHEL系、Debian系)や、Windows Serverなどがありますが、無料枠で利用する場合には、プレミアムイメージ以外のものを選びましょう。
使用容量が小さく、最小限の機能がインストールされている状態のOSとして、「Ubuntu 18.04 LTS minimal」がおすすめです。
Ubuntuは、Debian系と呼ばれるLinux OSの1つで、初心者にはわかりやすい機能が備わっているのが特徴です。
このブログでは、今後、「Ubuntu」を前提に、各種コマンドを説明していきますね。
標準のHDD容量は、10GBですが、無料枠は30GBまで拡張できます。ただし、特に必要がなければ、下記の理由で、まずは、10GBで作成する事をおすすめします。
「ファイアウォール」は、ウェブサーバーとして利用する場合には、http/httpsにチェックをいれてください。後で、設定する事も可能ですが、多少、手順が面倒ですので、将来的に利用する可能があるなら、チェックを入れておくことをおすすめします。
ファイアウォールとは、日本語で「防火壁」です。つまり、サーバーへの接続を防御する機能の事をいいます。接続できる通信方法を設定する事で、必要最小限の接続のみを許可する事が可能です。
http/httpsとは、ウェブサーバーの通信方式の名称です。
通信経路が暗号化されたり、正規サーバーであることを証明したりできる通信方式は、httpsと、最後にs(エス)がつきます。
暗号処理は、比較的にサーバー負荷がかかるため、勉強用に使う程度であれば、httpでも良いですが、不特定多数へ公開する場合や、個人情報を扱う場合には、httpsを利用するのが一般的です。
なお、作成画面の右側に「$4.28 の月間予測 これは 1 時間に約 $0.006 です」という表示がありますが、あくまでこれは、無料枠が適用されなかった場合の料金なので、心配しないでください。
仮想サーバーの起動を確認します。
仮想サーバーの作成が完了すると、名前の左にあるアイコンが、緑色に変わります。
ここで、起動に失敗することは、ほぼありませんが、Googleのデータセンターの利用状況が不足している場合は、VMインスタンスの作成や起動に失敗する事があります。その場合には、焦らず、時間をおいて再度、試してみましょう。
また、正常に起動すると、内部IP・外部IPが付与されている事が確認できます。
内部IP・外部IPについて、少し説明しましょうね。
まず、IPとは、IPアドレスの事を示します。IPアドレスは、コンピューターにネットワーク経由で接続する場合の番地の様なものです。
外部IPは、インターネット上に公開される、世界に1つだけの番地です。
内部IPは、このGCPプロジェクト内で1つの番地です。1つのプロジェクト内で、複数の仮想サーバーを作った場合には、この番地を利用して接続できますが、インターネットからは、直接接続する事はできません。
それでは、出来上がった仮想サーバーにログインしてみましょう。
VMサーバーの右側にある、「SSH」ボタンを押してください。
そうすると、別画面がポップアップしてきます。少し時間がかかりますが、30秒程度すると、linuxを利用したことがある人は見慣れた、下記のコマンドプロンプトが表示されます。
SSH(SecureShell)とは、暗号化された通信経路により、サーバーへコマンドを投入できる機能です。
無料サーバーの設定手順(ネットワーク接続制限)
この状態で、最低限のサーバー性能ですが、無料でサーバーを利用できる環境が整いましたが、使っている間に、意図せず、課金されてしまうのではないかと心配ではないでしょうか。
前述もしていますが、このサーバーはインターネット上に公開されているため、自分以外の人により、外部からのアクセスされてしまうと、ネットワーク利用料が発生してしまう可能性があります。
主な対策は、下記の2つです。
- 接続元のIPアドレスを制限して、自分だけがアクセスできるようにする。
- 良く利用される、接続ポート番号を変更して、不正アクセスを防止する。
接続ポート番号とは、あるサーバーに対して、アプリケーションごとに接続を区別するための、入り口です。
英語の「ポート」は、日本語の「港」という意味ですので、サーバーが日本国土であれば、ポートは日本国土に入る入り口として、横浜港・神戸港などのイメージになりますね。
接続ポート番号を変更するとは、横浜港など、だれでも知っている港の場所を閉鎖し、裏横浜港を開港するイメージになり、アクセス数を削減する事ができます。
個人で立てたサーバーは、他人に知られない限り、めったなことでアクセスが来ることがありませんが、中国などからIPアドレスやポート番号を、総当たりで不正攻撃してくることがあり、想定外の課金がされてしまう事があるため、対策されておくことをおすすめします。
接続元IPアドレスの制限方法
サーバーをインターネット上に公開せず、自分だけで楽しむ場合には、自宅のIPアドレスのみに接続許可をあたえることで、想定外の課金を防止する事ができます。
なお、接続元IPアドレスで、サーバーへの接続を制限するには、ISP(インターネット接続プロバイダー)との契約で、固定IPアドレスの契約をしていないと、IPアドレスが変更される可能性があるため、変更のたびに設定変更をする必要があります。
個人でのISPは、特に申請を行わない限り、固定IPアドレスの契約にはなっていません。
マンションなどの集合住宅での契約を行っている場合は、固定IPアドレスでなくても、頻繁にIPアドレスが変更されることはないようです。
固定IPの契約をしていない場合は、インターネットに公開しないウェブサーバーであれば、後述するポート番号の変更でも、想定外の課金をかなり削減する事が可能です。
ファイアウォールの設定メニューを選択します。
GCPコンソールのハンバーガーメニューの「ネットワーキング」カテゴリーから、[VPCネットワーク]-[ファイアウォールルール]を選択してください。
ウェブサーバーのポート番号への接続制限を設定します。
ウェブアクセスの制限を変更する場合には、[default-allow-http]及び、[default-allow-http]をクリックしてください。
自分だけが接続できるように設定します。
「ソースIPの範囲」に、自宅のIPアドレスを設定してください。
自宅のIPアドレスは、「確認くん」を利用すると確認できます。
[0.0.0.0]は、すべての接続を許可する設定です。
接続先ポート番号の制限方法
不正攻撃を受ける代表的なポート番号は、sshのポート番号と、http/httpsのポート番号です。これらのポートを、自分だけが知る番号に変更する事で、不正攻撃を防ぐことができます。
ポート番号は、1024から65535までの番号に変更してください。
まず、sshのポート番号は、標準で22番ですが、2022番に変更してみましょう。
sshサーバーの待ち受けポート番号を変更します。
VMサーバーの起動確認で利用した、コマンドコンソール画面から、下記のコマンドを入力して、ssh機能のポート番号を変更していきます。
$ sudo cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.org
$ sudo sed -i -e "s/#Port 22/Port 2022/g" /etc/ssh/sshd_config
$ sudo systemctl restart ssh
sshポート番号の接続を変更します。
ファイアウォールの設定画面から、sshアクセスの制限を変更する場合には、[default-allow-ssh]をクリックしてください。
sshポート番号の接続を変更します。
「指定したプロトコルとポート」のtcpを、22から2022へ変更して、保存してください。
ssh接続ができるか確認します。
2022へ変更したポート番号を利用して、ssh接続できる事を確認します。
VMインスタンス一覧画面から、SSHボタンのプルダウンリストを開き、「ブラウザ ウィンドウでカスタムポートを開く」を選んでください。
ポップアップ画面が表示されるので、変更したポート番号(2022)を入力してください。
コマンドプロンプトが表示されれば、成功です。
http/httpsも、同様な手順で変更できます。
ウェブサーバーの構築方法は、この記事では、紹介していません。
他の方の情報を参照して、ウェブサーバーのポート番号の変更をおこなってください。
無料サーバーの設定手順(課金情報)
実際に使い始めた際、本当に無料で運用できているのか気になるかと思います。
Googleからの請求は、登録したクレジットカードで、月に1回発生しますが、日々課金データを確認できるので、何か設定変更をした際などは、数日間、その情報を見てチェックすると良いですね。
課金情報の確認方法
課金情報の確認をします。
GCPコンソールのハンバーガーメニューから、[お支払い]を選択してください。
概要画面に、日ごとの課金状態と、右側の下部に「無料トライアルのクレジット」情報が表示されます。課金単位は、それぞれのサービスの使用量に対して、小数点以下の米ドルで決まっているため、クレジットを適用した際に、マイナス計算されてしまいます。
プラス課金されていない事を、確認しておきましょう。
課金情報の詳細ログの保存方法
無料トライアル期間中のGoogleからの課金は、下記の優先順位で計算されます。
- それぞれの、サービス毎に、サービス利用料を計算
- 無料枠のサービス使用に関するサービス利用料に関して、差し引かれる
- 残りのサービス利用料を、無料クレジットを使った、差し引かれる
先ほど説明した、課金情報の確認は、全体の合計値でしたが、これでは、無料枠が適用されたのか、無料クレジットで差し引かれたのか、正確に把握できません。
下記の設定を行う事で、詳細な課金情報を収集でき、無料トライアル期間が終了しても、知らないうちに課金される事を防げます。
課金情報の保存先を作成します。
GCPコンソールのハンバーガーメニューの「ストレージ」カテゴリーから、[Storage]-[ブラウザ]を選択してください。
「ストレージブラウザ」画面の上部にある「バケットを作成」ボタンを押してください。
「バケット名」に、名前を付けてください。ここでは、[myprojectname-billing-storage]とします。
バケット名は、GCPの世界で、唯一の名前をつける必要があります。例えば、自分のプロジェクト名を頭文字につけるなど、わかりやすく、重複しにくい名前をつけると良いでしょう。
なお、公開設定をする場合には、個人情報などにつながる名前(例えば、氏名など)は、やめましょう。
「バケット」とは、データを保存するための「かご」をイメージすると良いですね。
バケットの中には、複数のファイルを格納する事ができます。このバケット単位に、格納されているファイルの容量で、課金されます。
どのデータで課金されているのかわかりやすいように、用途ごとにバケットを作成して、使い分けると良いですね。
「続行」を選択して、次の情報を入力していきます。
課金情報の保存場所を指定します。
Storageに関するの無料枠の条件は、「5 GB の Regional Storage(期間合計、米国リージョンのみ)」です。課金データについては、かなり容量が小さいため、5GBを超過する事をきにする必要はないと思います。
よって、無料枠でデータが保存されるように、「ロケーションタイプ」は、「Region」を選択し、「ロケーション」は、「us-west1(オレゴン)」を選択してください。
それ以外の設定を変更する必要がなければ、「作成」を選択してください。その他、詳細情報を変更したければ、「続行」を選択して入力していきます。
課金情報の出力設定をします。
GCPコンソールのハンバーガーメニューから、[お支払い]-[課金データのエクスポート]を選択します。
「ファイルのエクスポート」から課金ログのエクスポート設定を行います。
「バケット名」には、先ほど作成した、「myprojectname-billing-storage」を指定します。
「レポート接頭辞」には、「billing-report」を指定してください。
「形式」には、「CSV」を指定してください。
「保存」ボタンを押せば、課金情報のエクスポート設定が完了します。
出力された課金情報を確認します。
1日に1回出力されるので、1日待って、課金情報が出力されている事を確認しましょう。
「ストレージブラウザ」から、先ほど作成した「myproject-billing-storageバケット」確認します。
1日に1回、CSVファイルが生成されているのが確認できると思います。
ダウンロードしたい日付のファイルを、右のリストメニューから「ダウンロード」しましょう。
EXCELなどで表示すると、GCPサービス単位に、課金情報を出力されているのがわかると思います。
例えば、
[Regional Storage US]は、無料枠内で利用されているため、Costは、ゼロになっています。[Micro Instance with burstable CPU running in Americas]も、同様です。
[Network Inter Region Egress from Los Angeles to London]は、無料枠外で、課金されていますが、Free Trial Creditにより、マイナスで差し引きされています。
これを、確認すると想定外に課金されているもののサービスが細かく把握できますね。
なお、アメリカと日本の時差の関係で、課金データの出力は、日本時間の0時すぎに3日前の17時から前々日の17時までの課金データが作られます。それにより、1つの課金データファイルに、同じサービスの課金データが、2行出力されるものがありますが、これは日付がまたがるために2行に分割されて出力されています。
課金請求アラートの設定方法
GCPには、万一に備えて、一定額以上の請求額に到達した場合にメールで通知してくれる機能がありますので、設定しておくと、さらに安心です。
課金請求アラートの設定をします。
GCPコンソールのハンバーガーメニューから、[お支払い]を選択してください。
お支払いメニューから、「予算とアラート」を選択し、「予算を作成」ボタンを押してください。
「名前」を設定してください。ここでは、「myprojectname全体の予算アラート」としています。
「次へ」ボタンを押してください。
課金請求アラートの金額を設定をします。
アラート発行条件の金額を設定してください。ここでは、100円としています。
「次へ」ボタンを押してしてください。
課金請求アラートの条件を設定をします。
変更する必要は、ないと思いますが、お好きなしきい値に変更してください。
「終了」ボタンを押してください。これで、設定は完了です。
まとめ
この記事では、無料サーバを作るまでを、詳しく説明しました。
ウェブサーバーとして利用するには、apacheやnginxなどのウェブサーバーアプリケーションのインストールや設定が必要になります。また、ブログ運営する場合には、wordpressなどのアプリケーションも必要です。
GCPでは、これらの代表的なアプリケーションがあらかじめインストールされた状態のVMサーバーを、「カスタムイメージ」とい形で、数多く提供されていますので、これらのイメージを活用すると、さらに、簡単に利用することができますので、色々、試してみると面白いですね。
コメント