一般的なWebシステムのほとんどはDBサーバ(データベースサーバ)を使っています。
本記事では、Webシステムに必須であるDBサーバについて、初心者でも分かるように解説していきます。
私もインフラエンジニア初心者の頃はDBサーバの理解に苦戦しましたが、最近ようやく理解することができましたので、諦めずにここでしっかりと理解していきましょう!
DBサーバとは?役割は?
DBサーバ(データベースサーバ)とは、アプリケーションで使用するデータを保管して操作するためのサーバです。
DBサーバの基本的な役割は以下の4つです。
Create…テータの作成
Read…データの読み出し
Update…データの更新
Delete…テータの削除
データベースの基本機能は、これら4つの頭文字をとって“CRUD(クラッド)”と呼びます。
日常で使用しているシステムでもこの基本機能は使用されています。
例えば、
Create…ユーザ情報の登録
Read…ユーザ情報の表示
Update…ユーザ情報の更新
Delete…ユーザ情報の削除
などです。
これらの機能が使用されているということは、データベースが使用されているからなのです。
ざっくりですが実際のシステムでの処理の流れはこんな感じになります。
- APサーバで実行されているアプリケーションから、DBサーバにデータの操作(CRUD)を要求する
- DBサーバは要求された操作に応じて処理を行い、結果をAPサーバのアプリケーションに返す
基本的にDBサーバは、APサーバからの要求に従って処理を行い、その結果を返すのが一般的なシステムでの流れになります。
DBサーバとAPサーバを分ける理由
実際のWebシステムだと、DBサーバとAPサーバは別々のマシンとして分けられていることが多いです。
DBサーバとAPサーバを分けることで得られるメリットがあるからです。
得られるメリットはいくつかありますが、以下の2つが主なメリットです。
- 負荷を分散
- リスクを分散
それぞれについてもう少し細かく見ていきましょう。
負荷を分散
1つのマシンにたくさんの役割を持たせるとそれだけ処理が多くなります(つまり、CPUやメモリの使用率が上がります)。
本来のマシンのパフォーマンス以上の負荷をかけてしまうと、処理速度にも影響を与えてしまいます。
アプリケーションを動かすAPサーバ、データの補完と操作をするDBサーバとマシンごとに役割を分けることで処理の負荷を分散しているのです。
リスク分散
故障やアクシデントにより、APサーバがダウンしてしまってもDBサーバが分離していれば、影響は少なくなります。
もし1つのマシンがすべての役割を担っていて、ダウンしてしまった場合、そのシステムは全機能使えなくなってしまいます。
複数のシステムから1つのデータベースを利用する場合も多いので、全機能使えなくなるのは、他のシステムにも大きな影響を与えてしまいます。
それぞれ役割ごとにマシンを分けることで、アクシデントの際に最悪のケース(システムの全停止)を避けることができるのです。
DBサーバの種類
DBサーバ(データベースサーバ)には、様々な種類がありますが、大きく分けると以下の2つに分けられます。
RDB(リレーショナルデータベース)
NoSQL(Not only SQL)
それぞれについてもう少し詳しく解説していきます。
RDBとは
RDB(リレーショナルデータベース)とは、“行”と“列”であらわした2次元の表でデータ管理するデータベースです。
エクセルで作った表をイメージしてもらえると分かりやすいと思います。
特徴としては、動作は遅いですがデータの関係性が保たれ正確に保存することができることです。
代表的なRDB
・PostgreSQL(ポストグレスキューエル)
・Mysql(マイエスキューエル)
・MariaDB(マリアデービー)
データベースの種類は他にもたくさんあります。今回紹介した上記3つは無料で使うことができます。
実際に業務やシステムによって変わってきますが、RDBを操作する言語であるSQLが使えれば、どのデータベースでも応用できるので、今回挙げた3つのどれかをまずは学習しましょう。
NoSQLとは
NoSQL(Not only SQL)とは、RDB以外のデータベースのことを指します。
つまり、行や列を使わずにデータを管理しています。
特徴としては、処理は非常に高速なのに対し単純的な構造のデータしか保存できないことです。
代表的なNoSQL
・MongoDB(モンゴデービー)
・Redis(レディス)
NoSQLは大量のデータを高速で処理するシステムなどで使用されています。
一般的なWebシステムでは使われる頻度は低いので、いったんは「そういう種類もあるんだ」と思ってくれるだけで大丈夫です。
まずはRDBをマスターしていきましょう!
DBサーバの環境構築
DBサーバも基本的にLinuxで構築することが実際の現場では多いです。
なので、WebサーバやAPサーバ同様“Linux”で環境構築できるようにしましょう。
DBサーバの環境構築自体はとても簡単にできてしまいます。
“VirtualBox”というソフトを使用することで、簡単にLinux環境を準備することができます
VirtualBoxでLinux環境を準備する手順はこちらをご覧ください。
>>【簡単です】Linux環境を構築する方法【Virtual Box,teraterm】
DBサーバとは?役割は?:まとめ
- DBサーバとは、データを保管し操作するサーバである
- データの操作を“CRUD”と呼ぶ
- 主にAPサーバから利用される
- DBサーバには“RDB”と“NoSQL”がある
- DBサーバにも様々な種類があるがまずは無料で利用できるもので環境構築するのがおすすめ
- DBサーバはLinuxで環境構築するのが一般的である
いかがでしたでしょうか。
DBサーバの基本的な部分は理解できたのではないかと思います。
DBサーバの特徴や役割を理解した後は、“Webサーバ”や“APサーバ”についても確認しておきましょう。
これら3つのサーバの関係性を知ることで、Webシステムの仕組みが理解できてきます!
>>【Webシステムの基本】クライアントサーバシステム&Web3構造の仕組みとは
最後まで読んでいただきありがとうございました。