コアサーバーからGoogle Cloudに無料枠運用でサーバ移転

コアサーバーの年間契約更新日が近づき、サーバの見直しを色々と検討していく中でGoogle Cloud(GCP) が期間制限なく無料で利用ができることを知ったのをきっかけに、Google Cloudにサーバ移転することにしました。

 

なお、過去にコアサーバーに移転した記事はこちらです。

 

クラウド選定にあたって

サーバ見直しのきっかけとして、Oracle Cloud (OCI) の Cloud Free Tier という半永久的にサービス利用ができるものを知り、トライアルでアカウントを作成したがクラウド移行のきっかけです。
ですが、OCI Free Tier 対象のAmpere A1インスタンスが不足しており作成ができず、GCPでも同様に期間制限無く特定のサービスが無料で使えることを知り、GCPを選定することにしました。
※AWSは無料で使い続けることができないので、今回は対象外としました

 

Google Cloud 構成

GCPの無料枠でできることで当サイト構築を行うため、構成としてはシンプルで1つのVMでミドルウェアを動かしています。

 

OS/ミドルウェア情報

Compute Engine(GCE)を作成後は、nginxとphp-fpmをインストール、docker composeでmariadbとredisを起動させています。

OS/ミドルウェア名用途
UbuntuOS
nginxWebサーバ
php-fpmWordPress利用のため
docker DB, KVS利用のため
docker compose 同上
certbot 無料SSL証明書利用のため

 

環境構築

ポイントとなる点を紹介します。

dockerイメージ

下記の docker-compose.yml を用意し、データ永続化しつつMariaDBとRedisが使えるようにします。
※データ永続化を行わないと、docker compose down を行った場合にDBやRedisのデータが消えてしまうので必ず設定します

 

docker-compose.yml

version: '2'
services:
  mariadb:
    image: mariadb:10.11.2
    volumes:
      - 'mariadb_data:/var/lib/mysql'
    ports:
      - '3306:3306'
    restart: always
    environment:
      - TZ=Asia/Tokyo
      - MARIADB_ROOT_PASSWORD=[rootユーザ用パスワード]
      - MARIADB_USER=[ユーザ名]
      - MARIADB_PASSWORD=[パスワード]
      - MARIADB_DATABASE=[データベース名]
  redis:
    image: redis:latest
    volumes:
      - 'redis_data:/redis/data'
      - './redis.conf:/etc/redis.conf'
    ports:
      - '6379:6379'
    restart: always
    environment:
      - TZ=Asia/Tokyo
volumes:
  mariadb_data:
    driver: local
    name: mariadb_data
  redis_data:
    driver: local
    name: redis_data
説明

OS再起動時のサービス自動起動

9、23行目 restart: always の指定をすることで、OS再起動時も mariadb と redis が自動で起動するようにします。

データ永続化

5~6行目 と 18~20行目 の volumes 指定により mariadb と redis それぞれのデータを永続化するように指定しています。
更に 26行目以降の volumes でボリューム名の定義を行います。

Redis設定ファイルの指定

20行目 './redis.conf:/etc/redis.conf' で redis.conf を指定しています。今回のVMのスペックはそこまで良いものではなくリソースが限られているので、予めRedisの設定ファイルを作成して読み込ませるようにします。
docker-compose.yml と同じ階層に redis.conf を用意します。

 

redis.conf

maxmemory 100MB
maxmemory-policy allkeys-lru

その後は docker compose up -d によるバックグラウンド起動を行います。

 

WordPressの利用

コアサーバーで利用していたDBデータのバックアップとしてmysqldumpを実行してrsync等でGoogle CloudのVMにデータの転送を行います。その後リストアを行えばDBデータの移行は完了です。
その後にも、Wordpress(phpファイル)が入っているディレクトリもVMにデータを転送してあげれば移行は完了です。

 

しばらく運用してみて、やはりGCEのスペックが少し不足しているかネットワークが遅いためか、ページ読み込みが若干もたつくタイミングが出てきます。
無料で使っているので仕方が無いですが、急なアクセス集中などが無い限り耐えられそうなので当面はGCPを利用したいと思います。

 

コメント

* が付いている欄は必須項目です。