Google Cloud Platformで無料Webサーバを作る

Google Clound Platform (GCP) の Compute Engine (GCE) には無料枠があるので、Apache, MySQL をインストールして Web サーバを作ってみようと思います。

GCP の無料枠

スペック

アカウント作成時に貰える無料トライアル枠とは別に、無料で利用できるリソースがあります。

Always Free と呼ばれていて、今回使う GCE では次のようなインスタンスが利用できます。(ひと月あたり)

  • 1 つの f1-micro VM インスタンス (バージニア州以外の米国リージョン)
  • 30GB の永続ストレージ

詳しくは Always Free の使用制限をご覧ください。

利用資格

Always Free には利用資格がありますが、個人利用レベルで気にすることは一つだけ。アップグレードされた請求先アカウントを持っていることです。

アップグレードされた請求先アカウントとは、大まかにいえば無料トライアルが終了したクレジットカード登録済みのアカウントです。

アップグレードには操作が必要になるので、詳しくはアップグレードの手順をご覧ください。

インスタンス作成

Compute Engine の有効化

では、無料枠を使い切った前提で進めていきます。

まず、GCP のアカウントでログインし、ダッシュボードでプロジェクトを作成します。

その後、左のメニューから Compute Engine を選ぶと、トップページが VM instances になっているはずです。準備が終わると Create が押せるようになります。

設定内容

  • Zone: us- で始まるもの
  • Machine Type: micro
  • Boot disk: CentOS7
  • Firewall: HTTP, HTTPS にチェック

設定が終わるとこのようになります。赤枠のところで正しく設定しないと料金が発生します。

右の料金を見ると、設定がうまくいっていれば青枠のところで Always Free の対象であることを示してくれます。

設定後 Create を押すとインスタンスを作成し始めます。

Apache セットアップ

操作はブラウザの SSH から行いますが、設定すれば PC のソフトウェアも使えます。

SSH を押すとコマンドウィンドウが開きます。

ルートのパスワードを設定する

Apache のインストールの前に GCE をルート権限で操作するためのパスワードを設定します。

$ sudo passwd
Changing password for user root.
New password: ここに入力 (非表示)

間違えずに二回パスワードを入力できたら設定終了です。

Apache インストール

ルートに切り替えて Apache をインストールし、起動します。また、サーバを立ち上げたとき自動で起動するようにします。

$ su
passwd: (非表示)
# yum install httpd
# systemctl start httpd.service
# systemctl enable httpd.service

設定したら、ブラウザ画面の External IP をブラウザに入力してみてください。Apache が起動していれば Testing 123… という画面が表示されます。

ブラウザ上では IP アドレスがリンクになっていますが、これを押すと HTTPS 接続になってしまい、ここでは SSL/TLS に関して何の設定もしてないので表示されません。

MySQL セットアップ

次に MySQL と、一緒に使うことが多い PHP も入れていきます。

PHP インストール

# yum install php php-devel php-mbstring php-mysql php-gd

インストールするものの簡単な説明は以下の通りです。(おそらく)

  • php, php-devel: PHP
  • php-mbstring: マルチバイト対応
  • php-mysql: MySQL の操作に使う
  • php-gd: グラフィックライブラリ (画像を扱うときなど)

MySQL インストール

CentOS7 はデータベースが MariaDB になってしまったらしいので、リンク先から引っ張ってきます。そのときに使うパッケージもインストールしておきます。

# yum install wget
# wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
# yum install mysql-server
# rm mysql57-community-release-el7-11.noarch.rpm

MySQL のパッケージは記事執筆時点の最新バージョンです。インストールするときは公式サイトで確認してください。

インストールが終わったら起動します。

# systemctl start mysqld.service

起動すると自動でパスワードが生成されます。

自動生成パスワードの確認と初期設定

表示してくれないのでログを確認し、そのパスワードを使ってセキュリティの設定をします。

# cat /var/log/mysqld.log | grep 'temporary password'
# mysql_secure_installation

ログで確認したパスワードを入れると新しいパスワードを求められます。途中の選択肢はすべて y で進めます。

これで最低限の LAMP 環境は完成です!(Linux, Apache, MySQL, PHP)

最後に

GCE を使うといっても、コマンドの操作方法は VPS と一緒なので特にひっかかるところもなく、無料枠で気軽に試せるのでいいですね。