👌

[Az-305] SQL DatabaseやCosmos DBについて整理

2022/12/13に公開

勉強元

https://learn.microsoft.com/ja-jp/training/modules/design-data-storage-solution-for-relational-data/
を勉強していた時のメモ。

SQL

購入オプション

  • DTU
    仮想コアとストレージ領域の値に応じていくつかのプランに分かれている。
    リソースの細かいカスマイズはできず、柔軟性が欠ける。
  • 仮想コア
    仮想コアを自由に選択することができる。

Azureとしては仮想コアを推奨している。
DTUは具体的に割当たっているリソースが公開されていないこと…厄介だ…
価格としてはDTUのほうが安いのだが、仮想コアだと予約購入が選択できたり、サーバーレスやハイパースケールの選択ができる。
DTU ベースと仮想コアの購入モデルの比較

Always On 可用性グループ

このページが分かりやすかった。SQL Serverを束ねて、仮想的には1台のサーバに見せかけることで、高可用性を保つというもの。
https://www.simpletraveler.jp/2022/04/03/sqlserver-alwayson-availabilitygroup-overview/

作成方法

以下の3種類。違いもざっくりとは画像に記載の通り。PaaSで高機能を使いたいか、PaaSでクラウドリフトを実現するか、IaaSとしてOSレベルへのアクセスを保持するのか。

SQLデータベースの場合は、クラウドネイティブだったり、サーバの需要が読めない場合などで使われるのだろう。マネージドインスタンスの場合は、記載の通り現行のスペックそのままでクラウドにリフトする場合が想定される。オンプレとの親和性が高いため、純粋なクラウドリフト向きである。

シャーディングとは

Azure SQL Database (PaaSで高機能)に登場する。データを複数ノードに分散させることで、リクエストも分散させることができる。1台のデータベースに格納できるデータの上限を設ける。1つのデータベースへの集中的なアクセスを避けることで、応答時間の改善や、サービスの完全停止を避ける目的がある。

TDEとAlways Encryptedの違い

TDE:データの出し入れ時に、ユーザやアプリケーションが暗号化/復号化を意識せずに済む。既定では新しく作成されるSQLデータベースで全てONになる。データベース全体の暗号化。データベースがメモリに読み込まれたときに、管理者はデータを見ることができてしまう。
AE:アクセス許可がある・無いで完全に二分化される。そのため、データベース管理者で合っても許可がなければデータを閲覧することができない。管理者であっても閲覧してはいけないデータがある場合は、本機能を利用する。
https://www.acrovision.jp/service/azure/?p=2052

Azure SQL Database の HyperScaleの特徴

100TBのデータサイズをサポートしている。高スループットなど、高いパフォーマンス。高可用性(迅速なスケールアップ・スケールアウト)が特徴になっている。
https://learn.microsoft.com/ja-jp/azure/azure-sql/database/service-tier-hyperscale?view=azuresql

Always Encrypted

暗号化できる列が選択できるようである。
https://learn.microsoft.com/ja-jp/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-ver16

SQLサーバの監査ポリシーの自動適用範囲

SQLサーバにて監査ポリシーを適用すると、その上に作られる/既存のDBにもポリシーが設定されるらしい。

NoSQL

Azure Cosmos DBとTable Storageの違い

どちらもAzureのNoSQLデータベース。違いとしては、高速読み取り・リージョン分散データ保存・高可用性・高スループットがある。高機能な一方で、Cosmos DBの場合は、デプロイされたタイミングで課金が発生するのは注意となる。コスパを求めるならばTable Storage、ビジネスの中心として高機能性を求めるならばcosmos DBが良いのだろう。

Discussion