重要度とコスト
サーバーをたてることはお金がかかる?
安全な運用とサーバー数
「安全」とは、「更新を失敗しにくい」「バグを産みにくい」「破壊行為に対して堅牢」「いずれのトラブルにも即時対応できる」というような意味での安全です。
複数のプレビューサーバーがあると大変リッチ ということを前章で言いましたが、安全に関してもサーバー数=安全性は相関があり、つまりは安全性とコストは、トレードオフであると言えます。
しかし、プロジェクトの予算は有限ですので、どのようにコストを削減するかを考えていきます。
要らないかもしれないサーバー
あくまで、弊社の至った結論ですが一番重要度が低いサーバーはプレビューサーバーです。
これは、ローカルサーバーの構築が完璧に成されていることと、開発チーム全員がローカルサーバーを持てることが条件になります。
つまり、コストをかけず運用でカバーすることが出来る唯一のサーバーが、プレビューサーバーであるという考えです。
また、ステージングサーバー は、初回公開までは登場しませんので、プレビューサーバーをプロダクションサーバーと同じ構成にすることを徹底しておき、
「初回制作まではプレビューサーバー」→「納品後はステージングサーバー」
というように、プロジェクト進行によってコストの振り分けと体制を変えていくことも、一つの手であると思います。
必要な時だけサーバーを立ち上げる
運用が安定し、頻繁なコミットが無くなってきた場合、ステージングサーバーや、プレビューサーバーは、使いもしないのにコストを払い続けることになってしまいます。
なので、コスト削減の一つの解として、「使わないときはお金がかからないようにする」という方法があります。
それは、クラウドサービスを利用して、「インスタンスサーバー」や、「コンテナ」といった最新のインフラ技術を利用することです。
クラウドサービスは、不要・必要だけでなくCPUコア数や、メモリの大きさなど、「スケール」でコストを削減することもできます。
サーバーを無限に使える環境でWEB制作する
クラウドサービスの連携でWEBサイトを構築すると、そのようなことも可能です。
例えば、Cloudflare というホスティングサービスを使うと、指定したブランチのコミット一つ一つに、サーバー(正確にはサーバーでは無いわけですが、表現の便宜上…)が用意されます。
これを実現する最大の要点は、端的に言うと、「WordPress(のようなCMS)を辞めること」になります。
CMSの機能とはざっくりと分けると以下のようなものがあるわけですが
- ホスティングサービス
- ビルダーサービス
- ストレージサービス
- ユーザー管理サービス
- その他色々
これらを、それぞれを得意とする業者やツールに託すことによって、最適化をしていくわけです。