5章インフラストラクチャエンジニアリング

これまでに、サービスレベル定義、リスク分析、そして見える化について紹介してきました。これらはいわばデータベース構築前の準備運動です。ここからいよいよデータベースクラスタ構築の実践例に移ります。本章では、いくつかのホストにおけるデータベース構築例を紹介します。最近の話題であるサーバーレスや DBaaS(Database as a Service)はもちろん、用途に応じたストレージの使い分けについても触れていきます。

5.1 ホスト

これまでにも述べてきた通り、データベースはどこかになんとなく存在しているものでありません。データベースにはきちんとした実体があります。どこかにデータベースを動かすホストが存在するのです。慣習的にそれらは物理サーバーであることが多かったものの、この10年ほどの、めまぐるしいハードウェアおよびソフトウェアの進歩により、仮想サーバー、コンテナ、そして抽象化されたマネージドサービスに至るまで、取りうる選択肢は大幅に拡がっています。ここではそれぞれの長所と短所、そしてその実装はどんなふうになっているのかを比較検討していきましょう。

5.1.1 物理サーバー

物理サーバーを運用する場合、そこで動いているサービスは、OSを通してハードウェアのリソースを100%使用可能です。サービスがまだ始まったばかりの段階では、この点がマイナスに働くこともあります。トラフィックが少なく、リソースが十分に余っている状態も珍しくありません。DBREとしての最初の一歩は、データベースサーバーと、そのほかのサーバーを分離させることです。そのためには、データベースサーバーが必要とするリソースがどれくらいなのかを把握する必要があります。一般的にデータベースサーバーは、CPU、メモリ、ストレージI/Oといったリソースにおいてかなりの割り当てを必要とします。OS上で動作するプロセスは、そのパフォーマンスを左右するのがCPUであったりI/Oであったりするので、複数のプロセスにおいてリソースの奪い合いが起きないように設計する必要があります。そのためには、データベース専用のサーバーを用意することがもっとも適切な方法といえるでしょう。 ...

Get データベースリライアビリティエンジニアリング ―回復力のあるデータベースシステムの設計と運用 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.