VPSを契約し自分専用のWordPress環境を構築したので、そのメリットやデメリット、構成やその手法を公開します。
今回はWordPress単体の構築というよりは、運用を視野に入れたシステム全体の構築にフォーカスしています。
WordPressは公式のDocker imageを使用します。
独自環境を構築するメリット/デメリット
メリット
- アクセスに制限が無くサーバのリソースをフルに活用できる
- 共有ホスティングのサービスでは月間アクセス数に制限がある場合が多く、自分で建てればその心配がありません
- カスタマイズが自由にできる
- 共有ホスティングのサービスではアクセスできる機能に制限が有り、カスタマイズが制限される場合が有ります
デメリット
- 全て自分で管理する必要がある
- 全て自分で構築、運用する必要が有り、何かトラブルがあった時は自分で対応する必要が有ります
- 小さな環境ではコストが高くなる可能性がある
- 共有ホスティングとは違い、契約したリソースは専用で使用できるため小さな環境ではコストが高くなる可能性が有ります
独自環境を構築するのにおすすめな人/おすすめできない人
おすすめな人
- エンジニアの人
- ある程度の前提知識があり、自力で構築する能力がある人におすすめです
- システムについて学びを得たい人
- 駆け出しエンジニアの人など、システムについての基礎を学ぶためには丁度いい題材です
おすすめ出来ない人
- すぐにサイトを立ち上げたい人
- 慣れていない人だと環境構築だけで数日掛かってしまう事が多いので、すぐに始めたい人にはおすすめできません
- 面倒くさいことは考えたくない人
- サーバの運用はトラブルも多いため、サイトの運用だけ考えたい人はおすすめできません
構築する環境で使用するツールの説明
以上のメリット、デメリットを読んで構築しようと思った人は次へ進んでください。
また、今回の説明ではドメインに関する説明(取得、登録)は含みません。
機会があれば別途記事を書こうと思います。
Dockerとは
まず、今回使用するDockerの説明を簡単に行います。
Dockerとは、一つのサーバに複数のコンテナと呼ばれる仮想環境を構築するためのアプリケーションです。
通常一つのサーバでは一つの環境しか動作させる事ができませんが、このアプリケーションを使用する事で複数の仮想的な環境を動かすことができます。
メリットとしては、コンテナをイメージとして保存し、他のサーバへ移植する事で仮想的な環境を丸ごと移設する事ができます。
詳しく知りたい方はDockerの公式ページに説明があるため、こちらを参照してください。
Docker-composeとは
次に、Docker-composeの説明を簡単に行います。
Docker-composeとは、複数のDockerコンテナをYAMLファイルで定義し、実行するためのアプリケーションです。
NetworkやVolumeなどを定義し、複数のコンテナを所持する一つのサービスを一元的に管理する事ができます。
詳しく出来る事や使い方を知りたい方はこちらを参照してください。
システム構成の説明
構築してはいけないシステム構成
まず、構築するにあたりしてはいけない構成の説明からしていきます。
上の構成であればシンプルで分かりやすく、Docker runするだけで立ち上げる事ができます。
しかし、この構成ではいくつか問題点が有ります。
- 通信が暗号化されない
- 管理画面のログインなど、パスワードを入力する機会が有りますが、それらが暗号化されずにインターネットに流れていきます。
- ※ 通信を暗号化しない事による危険性は機会があれば別の記事で実践を用いた方法で書こうと思います。
- 細かい通信の設定が出来ない
- アクセス制限などの通信に関する設定をWordPressコンテナ内で行うと、環境の再構築やスケーリングの際に柔軟に対応する事ができなくなります。
商用環境における一般的なシステム構成
次に、商用環境でも使用される一般的なシステム構成について説明します。
上の構成は商用環境でもよく使われる構成(LBとApp間にweb serverを挟む場合がある)で、一般的なものです。
しかし、Load BalancerはGCPやAWSなどのクラウドプラットフォームでは一般的ですが、安価なVPSサービスでは提供していない事が多々有ります。
また、提供されていても使用するにはサーバ代よりもコストが高くなるケースが多く、アクセス数が少ないうちにはあまりメリットがありません。
今回採用するシステム構成
今回紹介するシステム構成はこちらとなります。
Let's EncryptとはHTTPSで使用する証明書を無償で
商用環境における一般的なシステム構成と比べて、メリット/デメリットを紹介します。
- メリット
- サーバ1台で運用する事ができ、コストが抑えられます
- HTTPSで使用する証明書はOSSのLet's Encryptを使用する事で、無償で使用できます
- 証明書は自動で更新でき、更新の心配をする必要がありません
- デメリット
- 1台のサーバで完結しているため、柔軟にスケールする事ができません
- 大規模運用には限界があります
また、規模が大きくなった際にもコンテナ化しているため、理想的な環境への移行はスムーズに行う事ができます。
次回
今回は使用するツールの説明や、構築するシステム構成の説明でした。
次回は、構築準備と実際の構築手順、定義したDocker-composeの細かい説明などを行っていきます。