Open4

Azure SQL(特にAzure SQL Database)について

しみゆーしみゆー

Azure SQL

  • Azure上でSQL Serverを実行するためのサービス
  • Azure SQLには、Azure SQL Database、Azure SQL Server on VM(仮想マシン上でSQLServerを稼働)、Azure SQL Managed Instanceの3つがある。

Azure SQL Databaseとは

  • Azureがクラウド上でSQL Serverを稼働させ、データベース機能だけを「サービス」として提供しているもの
  • フルマネージドサービスなので、データベースの管理の手間が省ける
  • SQL Serverからハード部分を取り除き、データベースの機能だけをPasSとして提供しているクラウドデータベース
  • MicrosoftのRDBMSであるSQL Serverのエンジンで動くが、100%の互換性はない
    • オンプレからの移行がある場合は、後の2つを選択する必要がある

Azure SQL Server on VMとは

  • 仮想マシン上でSQLServerを稼働させる
    • AzureのSQL Serverを使うのではなく、AzureのVM上に自分でSQL Serverをインストールして使う
  • IaaS型のサービス

Azure SQL Managed Instanceとは

  • Paas型のサービス
  • オンプレのSQL Serverとほぼ100%の互換性を持つ
    • そのため、オンプレからの移行が必要な場合に有力な選択肢となる
しみゆーしみゆー

論理サーバ(SQLサーバ)

  • Azure SQL Databaseを作成する前に、それらデータベースを運用するためのSQLサーバを作成する必要がある。
    • データベース使用には、この論理サーバの作成が必須
  • SQLサーバに対して、リージョンを選択する
  • 作成時、管理者アカウントの設定(ログイン名とパスワード)が必要
  • 1台のSQLサーバに対して、複数のデータベースを作成できる
  • 論理サーバの名前の通り、あくまでも複数のデータベースを管理しやすくするための論理的なコンテナのようなもの。
    • 同じ論理サーバに属するデータベースは、必ずしも物理的に同じ場所に存在する訳ではない
    • DB_aへの高負荷が同じ論理サーバに属するDB_bに影響を与えることはない
しみゆーしみゆー

Azure SQL Databaseの作成

  • 前項の論理サーバ内にデータベースを作成する
  • それぞれのデータベースごとにスペックを指定できる

Azure SQL Databaseの購入モデル

DTUベース

  • DTU:データベーストランザクションユニット
    • CPU、メモリ、IOのリソースの組み合わせで性能の目安値を表したもの
    • CPU、メモリ、IOのリソースの性能をそれぞれ設定しなくて良いため、データベースのスペック設計に不慣れでも分かりやすい
    • 仮想コアベースに比べると、柔軟性は低い
    • DTUの値が高いほど性能が高い(お値段も高い)
    • 最小構成にしたときに仮想コアベースよりも安いため、試験的に始めたいというニーズにはビッタリ

DTU購入モデルのサービスレベル

  • Basic
  • Standard
  • Premium

仮想コアベース

  • プロビジョニング済みとサーバレスの2種類がある
  • プロビジョニング済みは、ハードウェア、仮想コア(CPU)の数、メモリ量、ストレージのサイズなどを事前に決めておく。DTUとは異なり、各リソースごとに性能を設定できる。
    • 1時間単位で課金
    • AzureFunctionsで例えるなら、AppServiceプランのようなものか
  • サーバレスは、実際に使用されるコンピューティングリソースに応じて課金される
    • 1秒単位で課金
    • 基本的にリソース不足にはならず、Azureがよしなにスケールしてくれる従量課金モデル

仮想コア購入モデルのサービスレベル

  • 汎用目的
  • Business Critical
  • Hyper Scale

コンピューティングレベル

  • 仮想コア購入モデル時のみ選択可能
  • 上述した、プロビジョニング済みとサーバレスのいずれかを選択する
  • DTU選択時は、表示されない

ハードウェア構成

  • 仮想コア購入モデル時のみ選択可能
  • DTU選択時は、表示されない
しみゆーしみゆー

SQLエラスティックプール

  • SQLサーバ内に作成できるリソース
  • このプールに対して、スペックを指定できる
  • このプールの中に、データベースを作成できる
    • SQLサーバ内に、CPUなどの性能を共有する枠組みを作るイメージ
  • このプール内に作成されたデータベースは、プールに指定された性能を共有する
    • 性能の指定については、データベースと同様(仮想コアやDTU)
  • 同一SQLサーバ内の複数のデータベースの負荷変動が激しく、データベースごとに性能を指定するのが難しい場合などに使う