👌

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

2022/12/13に公開約1,600字

勉強元

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

NoSQL

Azure Cosmos DBとTable Storageの違い

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

Discussion

ログインするとコメントできます