LINEで現役エンジニアに直接質問してみよう!登録無料

DBサーバーとは?役割と種類から構築方法まで解説

アキ

独学でプログラミングを勉強しながらWeb制作会社で働き、プログラミングのエンジニア講師も勤めた経験がある、アキです。

  • データベースサーバーとは?
  • データベースサーバーはどんな事をしているのか具体的に知りたい
  • データベースサーバーを設置して得られるメリット
  • データベースとアプリケーションは一緒にしちゃだめなのか悩んでいる
  • データベースの導入をどのようにすればいいのかわからない人

このような疑問に答えます。

結論から言うと、データベースサーバーとはWebの3層システムに登場する3サーバーのうちの1つで、Webサーバーが処理した情報を格納する役割があります。

データベースサーバーには、アプリケーションサーバーからしかアクセスを受け付けないようにして、セキュリティを確保します。

データベースサーバーとは?

データベースサーバーとは、Webの3層システムに登場する3サーバーの1つで、「Webサーバー」「アプリケーション(AP)サーバー」「データベース(DB)サーバー」の3つで構成されています。そして、データ保存に特化しています。

「Webサーバー」「アプリケーション(AP)サーバー」「データベース(DB)サーバー」を具体的に解説すると、下記のようになります。

  • Webサーバーは、外部からのアクセスを1番に受け付ける(受付員)
  • APサーバーは、Webサーバーからの情報を処理する(事務員)
  • DBサーバーは、Webサーバーが処理した情報を格納する(金庫管理員)

そして、データベースサーバーは金庫管理員として、データを管理することです。

  • データの新規作成(Create)
  • データの取得(Read)
  • データの更新(Update)
  • データの削除(Delete)

この4操作はデータベースの基本操作とされ、一般的に「CRUD(クラッド)」と呼ばれます。

データベースサーバーは、SQLと呼ばれるデータを操作する言語で操作&管理されます。アプリケーションサーバーでは、この言語が自動生成され、データベースサーバーに送られ、実行されることでデータが管理されているのです。

MEMO
個人のサイトでは、firewallやdockerを使って、1台のサーバーで3種類のサーバーを起動させます。 会社の運営だと、3台のサーバーを分けて運用する場合が多いです。

データベースサーバーの種類

データベースサーバーには、起動するデータベースの種類だけあります。ここでは、代表的なデータベースをいくつか紹介していきます。

データベースは「RDBMS」と「NoSQL」という2種類のデータベースがあります。「RDBMS」は動作が遅いですがデータの関係性が担保でき正確に確実に保存できます。一方、「NoSQL」は処理が非常に高速ですが単純な構造のデータしか保存できません。

RDBMS

  • MySQL
    • 世界で最も有名なデータベースの1つ
  • PostgreSQL
    • 先進的な機能を取り込んでいる高機能なデータベース
  • Oracle
    • 有料がかかるが、速度性能と機能性で大きな信頼性があるデータベースで、基幹システム・経理管理システムなど業務系のシステム開発でよく使われる
  • SQL Srver
    • マイクロソフトが開発するデータベースで、有料だがサポート等により基幹システム・経理管理システムなど業務系のシステム開発でよく使われる
  • IBM DB
  • frontbase

NoSQL

  • MongoDB
    • ドキュメント型のデータベースで、複数のサーバーを連携させてデータを管理します。
  • Redis
    • key-valueストアとも呼ばれ、1つの索引に対して1つの値が結びついています。実際は、list等もっと複雑なデータも保存できますが、一般的には使われません。

データベースサーバーの役割

なぜ、Webの3層システムに則って、データベースサーバーを分けて保存するのでしょうか?それは、独立させたほうが下記のような沢山のメリットがあるからです。

  • SSDやHDD1台に情報入れておくこともできますが、壊れたときにすべて失うので、複数のSSDやHDDで運用することで防げます。
  • また、機器の故障でサービスが停止するのはダメなので、複数台のサーバーで運用することを想定し、管理することもできます。
  • データが多くなってくると、システムが重くなり、反応しなくなってきますが、独立したサーバーならスペックを上げるなどで対処できます。

データベースサーバーは通常外部からアクセスできない

冒頭にもお伝えしたように、データベースはアプリケーションサーバーからのアクセスしか許さないようにするのが良い運用方法です。

データベースには、サービス運営に重要な情報た沢山入っており、データベースの脆弱性が発覚した際には、情報漏えい等大きな影響を受けてしまうためです。

また、社内の人間も情報を持ち出してしまう可能性も考慮して、アプリケーションからでしかアクセスができないようにしましょう。

データベースを運用出来るようになるまでの2つのステップ

最初、データベースサーバーについて教えられても、わからない事だらけだと思います。この解説を聞いても、実際よく理解できない部分もあるのでは無いでしょうか? データベースサーバーを運用できるようになるまでには、2つのステップが必要です。

  1. データベースサーバーを実際に作ってみる
  2. データベースサーバーのホスティングを使ってみる

データベースサーバーを実際に作ってみる

まずはデータベースサーバーを実際に作って、アプリケーションサーバーから使える環境を整備してみましょう。

起動するには、どういう情報が必要か?アプリケーションサーバーからアクセスするには、どういう事を行えばよいか?メモリ量は足りているのか?エラーが発生したときの対処。などなと、実際に触って沢山のわかることがあります。

データベースサーバーのホスティングを使ってみる

データベースサーバーを作ることができたら、AWS RDSやGoogle Cloud SQL等を使ってみましょう。

このようなホスティングには、データベース管理者がよく使う設定が分かりやすいUIで配置されている事がよくあります。 もし、わからない言葉があってそれを調べれば、データベースでよく使われる機能をピンポイントで調べる事ができるので、無駄なく効率よく学習することができます。

まとめ

ここまでで解説したことをまとめます。

  • データベースサーバーはWebの3層システムに登場する3サーバーのうちの1つ
  • データベースサーバーはアプリケーションサーバーからでしかアクセスできないようにする
  • データベースには「RDBMS」と「NoSQL」の2種類あり、その数だけサーバーの種類がある
  • データベースサーバーの役割は、運用管理面で様々なメリットが存在するため
  • データベースを運用出来るようになるには、実際に環境を作る&ホスティングを利用して効率よく学習する
この記事を書いた人

自身がプログラミングを独学で勉強し始めて躓いた経験を元に、これから勉強をする人に向けに「イラスト多めでわかりやすい記事」にこだわって情報を発信しています。

現在はフルスタックエンジニアとしてサービス開発などのお仕事をしています。