コアサーバーの年間契約更新日が近づき、サーバの見直しを色々と検討していく中で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/ミドルウェア名 | 用途 |
Ubuntu | OS |
nginx | Webサーバ |
php-fpm | WordPress利用のため |
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を利用したいと思います。
ピンバック: OCI(Oracle Cloud Infrastructure) でWordpressを構築する | Gadgetter ガジェッター