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 をルート権限で操作するためのパスワードを設定します.
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 と一緒なので特にひっかかるところもなく,無料枠で気軽に試せるのでいいですね.