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 にチェック
gce-3.jpg

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

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

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

Apache セットアップ

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

gce-2.jpg

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

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

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

terminal

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

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

Apache インストール

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

terminal

$ 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 インストール

terminal

# 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 になってしまったらしいので,リンク先から引っ張ってきます.そのときに使うパッケージもインストールしておきます.

terminal

# 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 のパッケージは記事執筆時点の最新バージョンです.インストールするときは公式サイトで確認してください.

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

terminal

# systemctl start mysqld.service

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

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

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

terminal

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

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

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

最後に

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