Azure SQL Databaseとは?

「Azure SQL Database」は、Microsoftが提供するフルマネージドデータベースサービスです。データベースエンジンやOSの管理はAzure SQL Databaseが完全に行い、データベースの利用に集中できます。高可用性、スケーラビリティ、セキュリティについての機能も備えており、安全にデータの管理が行えます。

Azure SQL Databaseの特徴と利点

Azure SQL Databaseはフルマネージドデータベースサービスで、OSやデータベースエンジンのインストールなしでMicrosoft SQL Databaseを構築できます。以下でAzure SQL Databaseの特徴と利点を紹介します。

  1. フルマネージドサービス:OSやデータベースエンジンのインストールとセットアップが不要で、自動バックアップ、パッチ適用、監視、障害検出などのデータベース管理作業を自動で行ってくれます。つまり、事前の構築などの手間をかけることなくSQL Databaseが利用できるのです
  2. 高可用性・冗長性:ハードウェア、ソフトウェア、ネットワークなどの障害が発生した際に自動フェイルオーバーを行ったり、リージョン間やローカルにレプリカを作成したりなどの可用性の機能があります。さらにデータの破損や削除から保護するために定期的に自動でバックアップを作成する機能もあります。
  3. スケーラビリティ:Hyperscaleによるコンピューティングリソースの迅速なスケールアップ、ダウン、最大100TBのストレージの自動スケーリングやサーバレスの仮想コアモデルによるコンピューティングリソースのスケーリング、Elastic Databaseによる容量、全体のパフォーマンスを調整するためのデータベースの追加または削除などの機能があります。
  4. セキュリティ:Microsoft Defender for SQLによる脆弱性の評価と脅威の検出やデータベースの監査、データの暗号化やIP、仮想ネットワークファイアウォール、認証と承認などの機能があります。
  5. パフォーマンス:データの処理のプランの最適化を行うインテリジェントクエリ処理、テーブルをメモリに保存し最適化することで、ストレージからのIOを減らし、データのアクセスとトランザクションを効率化するインメモリOLTPなどのさまざまな機能を使用して、高速なクエリを実行できます。
  6. コストの最適化:さまざまな性能のプラン、エラスティックプールや自動スケーリングなどの機能を利用してコストを最適化できます。
  7. 開発:Azure SQL DatabaseはPython、Javaなどのさまざまなプログラミング言語を使用して、Azure SQL Databaseにアクセス、クエリの実行を行えます。

Azure Database SQLの購入モデル・料金

Azure Database SQLでは購入モデルによって料金システムが異なるのでまずは購入モデルについてについて紹介していきます。

単一データベースとエラスティックプール

Azure Database SQLは単一データベースかエラスティック プールを選択できます。料金はエラスティックプールの方がおおむね高価になります。
ただし、エラスティックプールは複数のデータベースで共有されるプールのリソースを購入もできます。そのため、単一データベースよりも細かくリソースを配分することが可能で無駄なリソースがある単一データベースを作成しなくてもよくなり、結果的にコスト削減につながる可能性があります。

vCoreとDTU

リソースの量についてvCoreとDTUを選択できます。

vCoreDTU
コンピューティングリソースコア数とメモリ数が明確に決まっている。コア数、メモリ、読み取り、書き込みの組み合わせがDTUという単位にまとめられている。
リソースの選択コンピューティングリソースとストレージリソース別々に選択。DTU数と固定された容量のストレージリソースのセットを選択。ストレージを追加できるプランもある。
購入モデル汎用、Business Critical、Hyperscaleがある。Basic、Standard、Premiumがある。
料金システムコンピューティングリソースとストレージリソースの量によって決まる。リソースのセットによって決まる。


vCoreはコンピューティングとストレージリソースの組み合わせの柔軟性がありますが、DTUはシンプルに構成が決められます。
vCoreとDTUの購入モデルはそれぞれ3種類あります。
vCoreの購入モデルは汎用(はんよう)、Business Critical、Hyperscaleがあり、CPUの性能についてはそれぞれの購入モデルでCPUの性能を選択できます。さらにvCoreにはサーバーレスとプロビジョニング済みの2種類の購入モデルがあり、サーバーレスの場合、自動でコンピューティングリソースをスケーリングし、その使用したリソース分課金され、プロビジョニング済みでは事前に割り当てられたリソース分課金するモデルがあります。最大IOPSはHyperscaleとBusiness Criticalが同じで汎用(はんよう)が一番低いです。HyperscaleとBusiness Criticalの違いにはレプリケーションとストレージサイズなどがあり、Business Criticalは3つのレプリカと1つの読み取りスケールレプリカをもっており、耐障害性に優れています。一方で、Hyperscaleはストレージサイズを最大100TBにスケールアウトでき、膨大なデータ量に対応できます。

DTUの購入モデルはBasic、Standard、Premium があり、CPUの性能が大まかにPremium ,Standard、Basicの順で性能が高くなります(リソースの割りふり状況によって変化する)。最大IOPSやIO待機時間はBasic、Standardは同じですが、Premiumは性能が高いです。

料金

次に料金について紹介していきます。

購入モデルについて紹介した通り、Azure Database SQLは購入モデルが複数あるため、単一データベース、vCore、CPUはStandardのプロビジョニング済み従量課金制料金の一部を以下の表に紹介します。詳細については公式ページをご確認ください。

vCoreメモリ (GB)HyperscaleBusiness Critical汎用
210.2$0.366/時間$1.359/時間$0.505/時間
420.4$0.731/時間$2.718/時間$1.009/時間
630.6$1.096/時間$4.077/時間$1.514/時間
840.8$1.462/時間$5.436/時間$2.018/時間
1051$1.827/時間$6.795/時間$2.522/時間

上記の表からBusiness Critical、汎用(はんよう)、Hyperscaleの順で料金が高くなっています。これはBusiness Criticalはレプリカを持っており、可用性に優れているためです。

上記のコンピューティング以外にもストレージ、バックアップなどによっても料金が発生します。

ストレージ料金
GB/月$0.25
冗長性料金
LRS$0.08/GB/月
ZRS$0.10/GB/月
RA-GRS$0.20/GB/月

このようにさまざまな購入モデルがあることからコストが最適化されたプランを選ぶことができます。

Azure SQL Databaseの使い方

本記事ではAzure SQL Databaseを作成し、SMSS(SQL Server Management Studio)を使用してクエリを実行する簡単な手順を紹介します。

まずはAzure SQL Databaseの作成を行います。

Azureの画面から一番上の検索欄でSQL databaseと入力し、サービスにあるSQL databaseをクリックします。

+作成をクリックします。

リソースグループを選択します。リソースグループがない場合は新規作成をクリックし、リソースグループ名を入力してOKを押します。

データベース名を入力し、サーバーを選択します。サーバーがない場合は新規作成をクリックします。

サーバーがなく、新規作成を押した場合以下のようなページになるのでサーバー名を入力します。

本記事ではMicrosoft Entra専用認証を使用するのでMicrosoft Entra専用認証を使用するをクリックし、管理者の設定をクリックします。

管理者にチェックを入れ、選択をクリックします。

その他、必要な設定を行ったら、確認および作成をクリックします。

作成されるものの確認を行ったら作成をクリックします。

「デプロイが完了しました」と表示されたらAzure SQL Databaseの作成は完了です。

次にサーバーに接続するためのファイアウォールの設定を行います。

リソースに移動をクリックします。

上のタブからサーバーファイアウォールの設定をクリックします。

選択したネットワークをクリックします。

おそらく、クライアントIPv4アドレスの右に現在使用しているネットワークのパブリックIPv4アドレスが表示されているので、クライアントIPv4アドレスの追加をクリックし、開始IPv4アドレスと終了IPv4アドレスに現在のパブリックIPv4アドレスが含まれていることを確認し、保存をクリックします。

以下のような表示が出たら、設定完了です。

次にSMSSのインストールを行います。

ダウンロードページからSMSSをダウンロードします。

セキュリティの警告が出た場合、実行をクリックします。

Installをクリックします。

Setup Completedと表示されたら、Closeをクリックします。

これでSMSSのインストールは完了です。

次にSMSSを使用して実際にクエリを実行してみましょう。

インストールしたSMSSを起動し、Authenticationの項目でMicrosoft Entra Passwordを選択し、Azure SQL databaseを作成した際のServer name、管理者で設定したUser nameとPasswordを入力し、Connectをクリックします。

接続が完了したら、New Queryをクリックします。

左側にエディタが表示されたら、実際にクエリを実行してみましょう。
エディタにクエリを入力し、Executeをクリックすることでクエリを実行できます。

まずはテーブルを作成していきます。
以下のクエリを入力し、Executeをクリックします。

Messagesに以下のように表示されたら成功です。

テーブルの内容の確認は以下のクエリで確認できます。

次に、データを挿入してみましょう。
以下のクエリを実行します。

INSERT INTO TEST (TestID, TestName) VALUES (1, 'first');
INSERT INTO TEST (TestID, TestName) VALUES (2, 'second');


成功したら、Messagesに以下のような表示がされます。

挿入したデータを確認してみましょう。
以下のクエリを実行し、Messagesから挿入したデータを確認できます。

以上でAzure SQL Databaseの作成からクエリの実行まで完了です。OSやデータベースエンジンなどのインストールなしで、データベースの構築ができました。

まとめ

本記事では、Azure SQL Databaseについて紹介しました。Azure SQL Databaseの魅力について理解していただけたでしょうか。
本記事で紹介しきれなかった機能や細かい説明があるので、興味を持っていただけたらぜひ、実際に使用してみてはいかがでしょうか。