サーバー費用を極限まで抑えてみてわかったメリットとデメリット
ここ1年は、担当サービスでも個人的ブログでも「サーバー費用をいかに抑えるか」というのをテーマにやってきました。ある程度結果も出てきたのでメリットデメリットをまとめてみました。
公開日:2019年12月30日
本記事はc0d3man52のブログに掲載された記事を、著者の許諾の上で全文転載しています。
筆者の環境
まず、筆者のサーバー系の環境を書いておきます。
- フロント:Netlify
- バックエンド:GAE / Now.sh
- DB:MySQL on GCE / MongoDB on Atlas
これらは全て無料ですが、月間数万UUを余裕で捌いています。 余力から見ると、あと10倍は捌けると思います。
メリット
サーバー費用を抑える = コンテンツ制作に費用をかけられる
サーバー費用は変動費用でそこまで高価でない(ことが多い)ために、「これくらいならいいか」とそのまま放置しがちですが、Webサイトというのは数ヶ月でなく数年単位で動かすものなので、数年単位で見るとサーバー費用というのはバカになりません。
例えば、個人ブログで月額500円のサーバーをレンタルしていたら、
500(円) x 12(月) x 3(年) = 18,000円
をサーバー費用に費やしています。
このコストは厳密には「お金にならないコスト=よくないコスト」と言えます。
逆に、この部分が0円になれば、浮いたコストで
- コンテンツ作成の人件費当てる
- コンテンツを作成する際のツールに使う
- コンテンツを作成するための知識を得るためのコスト(本や取材)に使える
ことができ、ただの消耗費用だった部分が、新しい価値を生むための良いことストになります。
0円に抑えるのは難しいケースもありますが、それでも低コスト化することで、コンテンツ作成のための費用に回せるケースは多くあるでしょう。
個人的には、Webサイト運営で一番大事なのは「コンテンツの作成」だと思っているので、サーバー費用はなるべく低いに越したことはないと実感しました。
低コスト化 = 採用技術の見直し
低コスト化を突き詰めていくと、プログラムやバックグラウンドの負荷を「なるべく効率よくする」ことにたどり着きます。
これまで自分が作ってきたサイトは、WordPressだったり、フレームワークを使ったPHPサイトだったり、今から見返すとサーバーのパワーを無駄に使っているものばかりだったなと思います。
一番わかりやすい例はWordPressで、WordPress自体は非常に優れたCMSツールだとは思いますが、ここ5,6年WordPressと自作フレームワークを使ってきて思ったのは、
- 動的にコンテンツを配信する必要があるページがどれだけあるのか?
- オンラインでページ管理する必要がどこまであるのか?
- そのプラグインは本当に必要なのか?
ということです。
WordPressは世界中の30%のサイトで採用されているとのことですが、そのほとんどのサイトが「ほぼ静的ページ」を配信するために使っている気がします。ブログなどがいい例ですね。
WordPressのバックエンドはPHP + MySQLで、これらは、ブログレベルでははっきり言ってオーバースペックです。 MySQLは結構サーバーパワーを使いますし、PHP + Apache(Nginx)も同様で、メモリをモリモリ食っていきます。
それなら、ブログレベルであれば、JAMstack的な考え方でサイトを組んでいけば、クライアントサイドのパワーも適度に借りつつ、サーバーに無駄に負荷のかけないWebサイトが作れます。
JAMstackについては、下記のページがわかりやすいです。
JAMstack - クライアントサイドJavaScript、再利用可能なAPI、予めビルドされたマークアップによるモダンなWeb開発アーキテクチャ
JAMstackは新しい概念ですが、技術としてはただの「Javascript + API」で、自分のWebサイトに見合った技術を選ぶのが重要だとわかります。
低コスト化 = 技術の最適化
例えば、MySQL一つをとっても、同じ結果を出すためでも、
- テーブル構造が最適化されているか?
- インデックスがしっかりと貼れているか?
というところを見直すだけで、サーバーのランクを2,3個下げることは可能です。
実際に、自分の担当しているプロジェクトでも、MySQLの最適化をし、フロントをサーバーレスに移行した結果、3コア3GBのVPSから、GCEのAlways無料枠であるf1.smallに移すことができました。
大規模サービスを運営するエンジニアの方は当たり前にやっていることでも、小規模や個人レベルだと「1000円くらいならいいか」と、最適化よりもお金で解決してしまっている気がします。ここをしっかりやることで、コストを抑えつつ、「データベースの最適化をする技術」を身につけることができます。
デメリット
メリットばかり書いてきましたが、デメリットも当然あります。
学習コストが高い
技術力を得られるのはいいですが、それを得るまでには膨大な学習コストがかかります。習得するまでの時間的なコストもそうですし、その間に自分が新しいコンテンツを生み出すことができないことも大きなコストです。
しかし、一度得た技術は今後も使っていけるので、「ただ支払っておしまい」のサーバーコストよりは有意義な気はします。
うまく行くかわからない
サーバー費用を下げようとして時間をかけたのに、結局うまくいかないということは多々あります。自分も現在のローコスト体制にたどり着くまで、1年の期間と、10数個のサーバー移転を繰り返してきました。
ここは、日々勉強としか言えないのですが、コストや時間に制約がある場合は、なかなか踏み出せない部分でもあります。
簡単にですが、サーバー費用を極限まで抑えてみてわかったメリットとデメリットをまとめてみました。
個人的には、この1年実施して売り上げは結構下がりましたが、それを挽回できるくらいの技術を得られたと思っています。 なかなか踏み出せなかった部分ですが、やってみてよかったなぁというのが率直な感想です。
新着ノート
-
Gitlabの2段階認証下でコンテナレジストリにPushする方法
gitlab
公開日:2020年12月23日
-
HUGO
公開日:2020年4月27日
新着コード
-
cURLでCloudflare APIでキャッシュを削除する
cloudflare
公開日:2020年5月1日
-
iOS Safariでselectを含む要素にoverflow-y:scrollすると横にスクロールする時の対応
iOS
公開日:2020年4月15日