止まらないシステムの作り方：クラウド時代のデータベースHA/DR戦略


## データベースの高可用性とディザスタリカバリを再考する

こんにちは。インサイトテクノロジーの須貝です。

「システムが落ちた!?」  
そんな状況がビジネスに与える影響、考えたことはありますか？売上や信頼だけでなく、「復旧までに何時間かかるの？」とか「データ、どれくらい失った？」といった現実的な問題も山積みになりますよね。  

こんな最悪の事態を防ぐために重要なのが、**高可用性(HA)** と **災害復旧(DR)**。でも、それだけじゃありません。HAとDRの設計には、 **RTO（どれだけ早く復旧できる？）** と **RPO（どれだけデータを守れる？）** もセットで考える必要があります。  

この記事では、そんなHA、DR、RTO、RPOをどう理解し、クラウドを活用してベストな戦略を作るかを一緒に見ていきましょう！

---

## HAとDR、RTOとRPOってなに？

最初に、これらのキーワードを簡単に説明します。

- **HA（High Availability : 高可用性）**  
  ざっくり言うと、「システムが止まらない仕組み」です。例えば、障害が起きてもバックアップのサーバーに自動的に切り替わるようになっていれば、ユーザーには何も気づかれずにサービスを続けられます。

- **DR（Disaster Recovery : 災害復旧）**  
  こちらは、「もしシステムが止まっちゃったら、どうやって元に戻す？」という仕組みです。バックアップからデータを復旧したり、別の場所でシステムを立ち上げたりして、できるだけ早く正常状態に戻します。

そして、HAとDRの設計に欠かせないのが以下の2つの指標です。
- **RTO（Recovery Time Objective : 復旧時間目標）**: 障害発生から復旧するまでの許容時間。「どれくらい早く復旧できるか」がカギ。  
- **RPO（Recovery Point Objective : 復旧点目標）**: データ損失の許容範囲。「どこまでデータを守れるか」が重要です。

これらをまとめると、こんな感じになります👇

---

### HA、DR、RTO、RPOの関係性

| **要素**      | **目的**                                 | **測定指標**            | **技術例**                      | **ポイント**                                |
|---------------|------------------------------------------|-------------------------|-----------------------------------|--------------------------------------------|
| **HA**       | 止まらないサービスを提供すること          | 稼働率（例: 99.99%）     | クラスタリング、フェイルオーバー | 障害が起きてもユーザーは気づかないのが理想 |
| **DR**       | 障害後に早くデータやサービスを復旧する     | RTO（時間）、RPO（量）   | バックアップ、レプリケーション  | いざという時に安心感を提供                 |
| **RTO**      | 復旧までの時間を短くする                  | 時間（分、時間）         | フェイルオーバー、自動リカバリ   | 早ければ早いほど良いけど、コストに注意！   |
| **RPO**      | 許容できるデータ損失を減らす              | データ量（秒、分、時間） | 同期レプリケーション、ログ転送   | データ損失ゼロを目指すなら、ちょっとお金がかかります |

---

## データベースごとの特徴とHA/DRのポイント

では次に、代表的なデータベース3つについて、それぞれの得意分野とHA/DR機能を見てみましょう。

### Oracle  

Oracleは、大企業やミッションクリティカルなシステムにピッタリ。トラブルが許されない業界でよく選ばれています。  
- **HAの強み**: Real Application Clusters (RAC)を使えば、障害時に自動的に切り替わり、止まらないシステムを実現。しかも高パフォーマンス化も実現！  
- **DRの強み**: Data Guardが障害発生時もスピーディーにデータを守ります。ですが、一部Oracleのエディションにより使用制限アリ。

---

### SQL Server    

Microsoft製品との相性が抜群なので、Windows環境で特に便利です。中規模から大規模システムに最適。  
- **HAの強み**: Always On Availability Groupsでデータを複数のレプリカに同期して安心。  
- **DRの強み**: Log Shippingを使えば、トランザクションログを転送してデータを守ります。

---

### PostgreSQL  
  

オープンソースのPostgreSQLは、コストを抑えつつ自由度の高い運用ができるのが魅力。  
- **HAの強み**: Streaming Replicationでリアルタイムにデータを同期。  
- **DRの強み**: Point-in-Time Recovery (PITR)で好きなタイミングにデータを復旧。

---

## クラウド利用とハイブリッド戦略

クラウドのHA/DR、どんなメリットがあるのでしょう？

### クラウドの強み
- **リソースを簡単に増やせる！**  
  クラウドなら、必要な分だけすぐにリソースを拡張可能。
  
- **高可用性が手軽に実現**  
  マルチAZ構成やリージョン間レプリケーションなど、クラウドならではの便利機能が満載。

- **運用がラクラク**  
  マネージドサービスなら、バックアップや更新作業の手間が激減します。

---

### 注意点
もちろん、クラウドにはデメリットも。
- **コスト増に注意**  
  データ転送や追加オプションで予想外の費用がかさむことも。
  
- **ベンダーロックイン**  
  特定のクラウドに依存しすぎると、移行時のコストが大変。

- **パフォーマンスのばらつき**  
  ネットワークやストレージ性能が影響を受ける場合があります。

---

### ハイブリッド戦略でいいとこ取り
クラウドとオンプレミスを組み合わせた「ハイブリッド戦略」も注目です！  
たとえば、重要なデータはオンプレミスで安全に保管し、可用性が求められる部分はクラウドでスケーラブルに運用する、といった組み合わせが可能です。

---

## 最後に

HAとDRはシステム運用の両輪。その重要性をしっかり理解して、RTOやRPOを基に戦略を練ることで、より強固なシステムを作ることができます。  

クラウドやハイブリッド戦略を活用して、止まらない、そして復旧も早いシステムを目指しましょう！  

次回はOracle環境におけるDRの具体的なツールや事例を交えて、さらに深掘りしていきたいと思います！お楽しみに！

---