[Az-305] SQL DatabaseやCosmos DBについて整理
勉強元
を勉強していた時のメモ。
SQL
購入オプション
- DTU
仮想コアとストレージ領域の値に応じていくつかのプランに分かれている。
リソースの細かいカスマイズはできず、柔軟性が欠ける。 - 仮想コア
仮想コアを自由に選択することができる。
Azureとしては仮想コアを推奨している。
DTUは具体的に割当たっているリソースが公開されていないこと…厄介だ…
価格としてはDTUのほうが安いのだが、仮想コアだと予約購入が選択できたり、サーバーレスやハイパースケールの選択ができる。
DTU ベースと仮想コアの購入モデルの比較
Always On 可用性グループ
このページが分かりやすかった。SQL Serverを束ねて、仮想的には1台のサーバに見せかけることで、高可用性を保つというもの。
作成方法
以下の3種類。違いもざっくりとは画像に記載の通り。PaaSで高機能を使いたいか、PaaSでクラウドリフトを実現するか、IaaSとしてOSレベルへのアクセスを保持するのか。
SQLデータベースの場合は、クラウドネイティブだったり、サーバの需要が読めない場合などで使われるのだろう。マネージドインスタンスの場合は、記載の通り現行のスペックそのままでクラウドにリフトする場合が想定される。オンプレとの親和性が高いため、純粋なクラウドリフト向きである。
シャーディングとは
Azure SQL Database (PaaSで高機能)に登場する。データを複数ノードに分散させることで、リクエストも分散させることができる。1台のデータベースに格納できるデータの上限を設ける。1つのデータベースへの集中的なアクセスを避けることで、応答時間の改善や、サービスの完全停止を避ける目的がある。
TDEとAlways Encryptedの違い
TDE:データの出し入れ時に、ユーザやアプリケーションが暗号化/復号化を意識せずに済む。既定では新しく作成されるSQLデータベースで全てONになる。データベース全体の暗号化。データベースがメモリに読み込まれたときに、管理者はデータを見ることができてしまう。
AE:アクセス許可がある・無いで完全に二分化される。そのため、データベース管理者で合っても許可がなければデータを閲覧することができない。管理者であっても閲覧してはいけないデータがある場合は、本機能を利用する。
Azure SQL Database の HyperScaleの特徴
100TBのデータサイズをサポートしている。高スループットなど、高いパフォーマンス。高可用性(迅速なスケールアップ・スケールアウト)が特徴になっている。
Always Encrypted
暗号化できる列が選択できるようである。
SQLサーバの監査ポリシーの自動適用範囲
SQLサーバにて監査ポリシーを適用すると、その上に作られる/既存のDBにもポリシーが設定されるらしい。
NoSQL
Azure Cosmos DBとTable Storageの違い
どちらもAzureのNoSQLデータベース。違いとしては、高速読み取り・リージョン分散データ保存・高可用性・高スループットがある。高機能な一方で、Cosmos DBの場合は、デプロイされたタイミングで課金が発生するのは注意となる。コスパを求めるならばTable Storage、ビジネスの中心として高機能性を求めるならばcosmos DBが良いのだろう。
Discussion