みなさまこんにちは。クラウドアーキテクトの卵です。
前回の投稿で、コンビニスイーツにハマっていると書きましたが、今はポテトチップスにハマっています。
ポテトチップスはここ数年買わないようにしていたのですが(太るから)、何気なく買った堅めの食感のポテトチップス食べきりサイズ ×4 がとても美味しく、お酒のつまみに…といくつか買ってしまいました。
最近のポテトチップスはいろいろな味・食感が楽しめますね。おやつにも、おつまみにも Good です!
・・・本格的に運動しないとマズいかな。。。
とある案件で初めてお客さまのところへ訪問した際、Azure における PaaS サービスを紹介したところ、とても興味を持たれたようでいろいろとご質問をいただきました。そのお客さまは PaaS サービスの中でもデータベース周りを気にしており、SQL Database に大変興味をお持ちでした。
その際、お客さまに最初に言われた一言が以下の言葉でした。
「SQL Database にした場合、どのようなメリットがありますか?」
私はここぞとばかりに、SQL Database の推しポイント(利点)をお客さまに語ったところ、ぜひ活用したいと前向きに検討する運びとなりました。
データベースを得意(?)とするクラウドアーキテクト(の卵)としては最上の喜びです。
今回は、私が語った SQL Database の推しポイント(利点)についてまとめます。
SQL Database は Microsoft Azure における汎用リレーショナルデータベース管理サービスです。もう少し詳しく説明すると、データベースサーバーをクラウドとして提供してくれるサービスとなります。
PaaS サービスですので、SQL コードベースに対するパッチの適用と更新を Azure(Microsoft)がすべてシームレスで処理してくれます。その結果、基になるインフラストラクチャの管理は、ユーザー側ではすべて不要になります。
例えば、OS のパッチ適用だけでなく、SQL Database のパッチ更新も自動で行ってくれます。また、SQL Database はデータベースエンジンのコードを SQL Server と共有しており、SQL Database で新機能をリリース後、SQL Server に対してリリースしているため、最新機能を使いやすいというメリットもあります。
Azure が管理する領域とユーザー側で管理する必要のある領域について、以下の図が分かりやすいかと思います。オンプレミス、IaaS、PaaS の順に、ユーザー管理の部分が少なくなるのが分かります。
<Microsoft 系データベースのマネージド範囲>
上図にあるように、SQL Database を使用した場合、データ以外の部分は Azure 側でフルマネージドされるため、データの管理だけに集中できます。
SQL Database はデータベース作成時以降、データベースあたり3つのレプリカ(1つのプライマリレプリカと2つのセカンダリレプリカ)を常に保持します。各レプリカは、データセンター内で完全に独立した複数の物理サブシステム(サーバーラックやネットワークルーター)に分散された、別々の物理ノードに配置されます。
データはプライマリレプリカに書き込まれた後、セカンダリレプリカに書き込まれます。
プライマリレプリカに障害が発生すると、SQL Database が障害を検知し、セカンダリレプリカへのフェールオーバーを実行します。レプリカが物理的に消失した場合においても、SQL Database によって新たなレプリカが自動的に作成されます。
SQL Database はサービスレベルに関わらず上述の機能を有しているため、最低限の可用性を満たせるように構成されています。
しかし、上述の機能は同じデータセンター内の機能であるため、上述の機能だけでは地域災害または大規模な機能停止が発生した場合には対応できません。
更なる可用性を求める場合、以下の機能を検討します。
<可用性に関する機能>
左右にスクロールしてご覧ください。
機能 | 概要 | 注意点 |
---|---|---|
アクティブ geo レプリケーション |
|
|
自動フェールオーバーグループ |
|
|
ゾーン冗長(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
SQL Database のバックアップは、購入モデルやサービスレベルに関わらず、以下3種類を自動で取得します。これらのバックアップは、いずれもポイントインタイムリストアに使用されます。
<自動バックアップの種類>
SQL Database のバックアップの仕様について以下にまとめます。
<SQL Database のバックアップの仕様>
左右にスクロールしてご覧ください。
自動バックアップの種類 | バックアップ頻度 | バックアップ期間 | バックアップ場所 |
---|---|---|---|
完全バックアップ | 毎週 | ※購入モデルとサービスレベルによって異なる。 【vCore モデル】 7日~35日まで保持。 【DTU モデル】 Basic:1週間 Standard、Premium:5週間 |
・ローカル冗長ストレージ ・geo冗長ストレージ |
差分バックアップ | 一般的に12時間ごと | ||
トランザクションログバックアップ | 通常、5-10分ごと |
以上が「SQL Database にした場合、どのようなメリットがありますか?」というお客さまの問いに答えた内容です。SQL Database を使用するメリットは、主に「ユーザーの運用・保守の手間を解消する」部分にあるのがお分かりいただけたかと思います。
SQL Database の魅力は他にもあるのですが、それはまたの機会に。
皆さんも、SQL Database を活用していきましょう!