見出し画像

管理者サーバーでデータを守れ!バックエンドのデファクトスタンダード

ブログサイトを構築する場合、記事のデータはどう管理するべきでしょうか?
サーバーの構築方法を誤れば、あなたの書いた記事を誰でも改ざんできたり削除できたりしてしまします。
データを守るためにどのようなサーバー構成でサイトを構築していくべきか。
管理者サーバーを追加して、データを守るデファクトスタンダードを解説します。

はじめに

こんにちは。ナオツです。

前回はブログサイトくらいのライトな用途であれば、Next.jsとVercelを使って無料のフロントエンドサーバーをホスティングできるという話をしました。

今回は、バックエンドの話です。
それでは、ブログサイトで記事データを管理する点に注目したときのバックエンドサーバーの特性をみていきましょう。

ブログ記事データの管理方法

フロントエンドでブログ記事を表示するためには、いくつか方法があります。よくある方法は、

- 記事ファイルをフロントエンドサーバーに直接アップロードする
- 記事データをDBに保存し、バックエンドサーバー経由でアクセスする

などです。

記事ファイルをフロントエンドサーバーにアップロードする方法

記事ファイルは、Markdownというファイル形式で管理することが多いです。

> Markdownとは
HTML文書へ変換できるフォーマットとして、書きやすくて読みやすいプレーンテキスト。
ブログ記事を書いていくときは、Markdownを使って書いていくのが一般的。
>詳しくはこちら

Markdownファイルをフロントエンドサーバーに直接アップロードして読み込み、フロントエンドだけで完結させる、というやり方です。

有名なフレームワークでは、

- Jekyll(Ruby)
- Hugo(Go言語)

などがあります。

このやり方では、下記の問題点があります。

ソースコードと記事データを一緒に管理している。(フロントエンドにバックエンドの役割を持たせてしまっている)

フロントエンドサーバーの役割は、 HTMLを生成すること であり、データを管理すること ではありません。

ブログサイトを立ち上げるだけが目的であれば、それでも良いのかもしれません。

しかし、エンジニアとして企業のシステム開発していく上では、フロントエンドとバックエンドの役割を把握した上でシステムアーキテクテャを考えていくのが一般的です。

サーバーは「役割を限定していく」という考え方を徹底していきましょう。

記事データをDBに保存しバックエンドサーバー経由でアクセスする

一方、役割を分けて記事データをバックエンドで管理していく方法を見ていきましょう。

記事のmarkdownデータをデータベースに登録しておいて、フロントエンドサーバーからバックエンドサーバーにアクセスし、DBから記事データを取得するという方法です。

Webサイトが表示される流れ

この方法のメリットは、

- 記事データをフロントエンドサーバーで管理する必要がないので、バックエンドとの役割分担ができている
- 非公開フラグや下書きフラグなど、記事以外のデータ属性も管理できる

それでは、バックエンドの担当領域についてより詳しく見ていきましょう。

続きはこちら


この記事が気に入ったらサポートをしてみませんか?