クラウドエンジニアブログ

SQL Database を使用する場合のメリットとは

human05

古林

みなさまこんにちは。クラウドアーキテクトの卵です。

前回の投稿で、コンビニスイーツにハマっていると書きましたが、今はポテトチップスにハマっています。
ポテトチップスはここ数年買わないようにしていたのですが(太るから)、何気なく買った堅めの食感のポテトチップス食べきりサイズ ×4 がとても美味しく、お酒のつまみに…といくつか買ってしまいました。
最近のポテトチップスはいろいろな味・食感が楽しめますね。おやつにも、おつまみにも Good です!
・・・本格的に運動しないとマズいかな。。。


<目次>
  1. はじめに
  2. 推しポイント①:フルマネージドサービス
  3. 推しポイント②:可用性の担保
  4. 推しポイント③:バックアップの自動化
  5. おわりに


1. はじめに

とある案件で初めてお客さまのところへ訪問した際、Azure における PaaS サービスを紹介したところ、とても興味を持たれたようでいろいろとご質問をいただきました。そのお客さまは PaaS サービスの中でもデータベース周りを気にしており、SQL Database に大変興味をお持ちでした。

その際、お客さまに最初に言われた一言が以下の言葉でした。
「SQL Database にした場合、どのようなメリットがありますか?」

私はここぞとばかりに、SQL Database の推しポイント(利点)をお客さまに語ったところ、ぜひ活用したいと前向きに検討する運びとなりました。
データベースを得意(?)とするクラウドアーキテクト(の卵)としては最上の喜びです。

今回は、私が語った SQL Database の推しポイント(利点)についてまとめます。

2. 推しポイント①:フルマネージドサービス

SQL Database は Microsoft Azure における汎用リレーショナルデータベース管理サービスです。もう少し詳しく説明すると、データベースサーバーをクラウドとして提供してくれるサービスとなります。
PaaS サービスですので、SQL コードベースに対するパッチの適用と更新を Azure(Microsoft)がすべてシームレスで処理してくれます。その結果、基になるインフラストラクチャの管理は、ユーザー側ではすべて不要になります。
例えば、OS のパッチ適用だけでなく、SQL Database のパッチ更新も自動で行ってくれます。また、SQL Database はデータベースエンジンのコードを SQL Server と共有しており、SQL Database で新機能をリリース後、SQL Server に対してリリースしているため、最新機能を使いやすいというメリットもあります。

Azure が管理する領域とユーザー側で管理する必要のある領域について、以下の図が分かりやすいかと思います。オンプレミス、IaaS、PaaS の順に、ユーザー管理の部分が少なくなるのが分かります。

<Microsoft 系データベースのマネージド範囲>

Microsoft 系データベースのマネージド範囲

上図にあるように、SQL Database を使用した場合、データ以外の部分は Azure 側でフルマネージドされるため、データの管理だけに集中できます。

3. 推しポイント②:可用性の担保

SQL Database はデータベース作成時以降、データベースあたり3つのレプリカ(1つのプライマリレプリカと2つのセカンダリレプリカ)を常に保持します。各レプリカは、データセンター内で完全に独立した複数の物理サブシステム(サーバーラックやネットワークルーター)に分散された、別々の物理ノードに配置されます。
データはプライマリレプリカに書き込まれた後、セカンダリレプリカに書き込まれます。

プライマリレプリカに障害が発生すると、SQL Database が障害を検知し、セカンダリレプリカへのフェールオーバーを実行します。レプリカが物理的に消失した場合においても、SQL Database によって新たなレプリカが自動的に作成されます。

SQL Database はサービスレベルに関わらず上述の機能を有しているため、最低限の可用性を満たせるように構成されています。
しかし、上述の機能は同じデータセンター内の機能であるため、上述の機能だけでは地域災害または大規模な機能停止が発生した場合には対応できません。

更なる可用性を求める場合、以下の機能を検討します。

<可用性に関する機能>

左右にスクロールしてご覧ください。

機能 概要 注意点
アクティブ geo レプリケーション
  • 同じデータセンターまたは異なるデータセンター(リージョン)内の SQL Database サーバー上に、個々のデータベースの読み取り可能なセカンダリデータベースを作成可能。
  • 同じリージョン内または異なるリージョン内で最大4つのセカンダリをサポートしている。
  • アクティブ geo レプリケーション機能自体は無償だが、セカンダリデータベース分のコストがかかる。
  • マネージドインスタンスはサポート外。(自動フェールオーバーグループを使用)
自動フェールオーバーグループ
  • SQL Database サーバー上のデータベースのグループや、マネージドインスタンスのすべてのデータベースについて、別のリージョンへのレプリケーションおよびフェールオーバーを管理可能。
  • グループ内のすべてのデータベースを別のリージョンの1つのセカンダリサーバーにのみレプリケート可能。
  • フェールオーバーグループ内にあるデータベース用のプライマリサーバーとセカンダリサーバーは両方とも、同一のサブスクリプションである必要がある。
  • 同じまたは異なるリージョンで複数のセカンダリが必要な場合、アクティブ geo レプリケーションを使用する。
ゾーン冗長(Availability Zones)
  • Azure リージョン内の一意の物理的な場所であり、1リージョン内で物理的に分離されているため、データセンターで障害が発生した場合でもアプリケーションとデータを保護できる。
  • 追加のデータベース冗長性は発生しないため、可用性ゾーンを追加料金なしで使用可能。
  • Premium または Business Critical サービスレベルのみ使用可能。
  • Availability Zones と Azure リージョンの組み合わせを使用してアプリケーションアーキテクチャを構築する必要があるが、現状、Availability Zones に日本リージョンは存在しない。


【参考:アクティブ geo レプリケーションを使用して、読み取り可能なセカンダリデータベースを作成します。】
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-active-geo-replication

【参考:自動フェールオーバーグループを使用して、複数のデータベースの透過的な調整されたフェールオーバーを有効にする】
https://docs.microsoft.com/ja-jp/azure/sql-database/sql-database-auto-failover-group

【参考:Azure の Availability Zones の概要】
https://docs.microsoft.com/ja-jp/azure/availability-zones/az-overview

4. 推しポイント③:バックアップの自動化

SQL Database のバックアップは、購入モデルやサービスレベルに関わらず、以下3種類を自動で取得します。これらのバックアップは、いずれもポイントインタイムリストアに使用されます。

<自動バックアップの種類>

  • 完全バックアップ
  • 差分バックアップ
  • トランザクションログバックアップ

SQL Database のバックアップの仕様について以下にまとめます。

<SQL Database のバックアップの仕様>

左右にスクロールしてご覧ください。

自動バックアップの種類 バックアップ頻度 バックアップ期間 バックアップ場所
完全バックアップ 毎週 ※購入モデルとサービスレベルによって異なる。

【vCore モデル】
7日~35日まで保持。
【DTU モデル】
Basic:1週間
Standard、Premium:5週間
・ローカル冗長ストレージ
・geo冗長ストレージ
差分バックアップ 一般的に12時間ごと
トランザクションログバックアップ 通常、5-10分ごと


5. おわりに

以上が「SQL Database にした場合、どのようなメリットがありますか?」というお客さまの問いに答えた内容です。SQL Database を使用するメリットは、主に「ユーザーの運用・保守の手間を解消する」部分にあるのがお分かりいただけたかと思います。
SQL Database の魅力は他にもあるのですが、それはまたの機会に。

皆さんも、SQL Database を活用していきましょう!




次回予告
  • Azure Firewall 作って動かしてみた


【総合】お問い合わせ

ソリューションに関する全般的なお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
clouXion
メールマガジン登録