初期投資費用の低さや柔軟性の高さなどから、新しいコンピューターサービスとして注目されているクラウドですが、データベースもクラウド型のものが登場しています。この記事ではMicrosoft のクラウド型データベースAzure SQL Database の概要、SQL Server との違い、料金、使い方について紹介していきます。
Azure SQL Databaseとは?
Azure SQL Databaseは、Microsoft が提供するフルマネージドで提供されるクラウド型のリレーショナルデータベースです。
アップグレードや修正パッチの適用、セキュリティの更新などのメンテナンスが不要になるため、利用者はドメインに関する問題やデータベースの最適化などに集中できます。
Azure SQL Database は、クラウド環境に適合するように構成された最新のSQL Serverデータベースアーキテクチャに基づいており、インフラ環境に障害が起きた場合でも99.99%の可用性を確保するように設計されているのが特徴です。
このアーキテクチャモデルの中のハイパースケールオプションを利用すれば、100TBという容量まで利用可能で、データ容量に関わりなく瞬時にデータのバックアップを取り、数分でリストアできます。また、データベースサイズを自動的にワークロードサイズに応じて拡張したり、縮小したりと柔軟に変更できる機能がついています。
耐障害性については、地理レプリケーションを設定することで、障害発生時に別のリージョンのデータベースに切り替えられるため、データの損失がほとんど発生しないという利点があります。
SQL Serverとの違い
クラウド型のAzure SQL Database とオンプレミスのSQL Server を比較する場合、使い方に違いがあるか、などが気になる点ではないでしょうか。
この2つは操作性については、基本的に大きな差はありませんが、管理方法に違いがあります。それはMicrosoft がメンテナンスや管理をすべて行うAzure SQL Database に対して、SQL Server は、アップグレード、トラブルシュート、バックアップなどの管理をすべて利用者が行わなくてはいけないという点です。
ただ、SQL Server にはオンプレミスのための「保守のワークフローを作成するサービス」「マルチサーバー環境サポート」「ログ管理サポート」「認証サポート」などメンテナンスパッケージが豊富に用意されているため、柔軟性は高いといえます。
Azure SQL Databaseの導入メリット
Azure SQL Databaseを導入することでどのようなメリットがあるのでしょうか。ここでは3つの観点から解説していきます。
バックアップが不要
1つ目が自動データベースバックアップ機能があるためバックアップ作業が不要だということです。Azure SQL Databaseは以下の3つの自動バックアップ機能を備えています。
- 完全バックアップ
- 差分バックアップ
- トランザクションログバックアップ
完全バックアップは、データベース全てのバックアップを行うもので、毎週実施されます。差分バックアップは、前回のバックアップからの変更箇所のみを取るものです。これは12時間または24時間ごとに1回行われます。最後のトランザクションログバックアップは、データベースに発生したトランザクションと加えられた変更をバックアップする機能です。バックアップの間隔は、5分から10分に1回の間隔で行えるのですが、作業損失を抑えるビジネス上の要求に応じて、15分から30分間隔などへ変更も可能です。
このように自動的にバックアップが取られるため、バックアップ作業のコストを削減できるともいえるでしょう。
コストの削減
Azure SQL Databaseは、高いコストパフォーマンスを誇り、他社製品と比べると大幅にコストカットできるというデータもあります。
また組み込みのパフォーマンス監視およびアラートツールがデータベースのパフォーマンスを分析し、現状、または今後の必要性に基づき、スケールアップ、スケールダウンの影響を評価します。
そのほか自動チューニング機能により、パフォーマンスによる問題の発生を低減していきます。データベースのパフォーマンスが継続して向上するように、推奨事項を自動的に適用して検証を行い、もしパフォーマンスが挙がらない場合はもとに戻すという動作を行うのです。
このような機能により、データベースが最適な状態に保たれるため、コストを削減が可能になっています。
可用性の実現
Azure SQL Databaseでは組み込みのAIと高可用性アーキテクチャにより、99.995%のSLA(サービスレベルアグリーメント)を実現しています。SLAとはシステムの稼働などにつき利用者と合意された、サービス提供側が満たすべき要件のことです。
可用性の実現のため、Azure SQL Databaseには「単一データベース」「エラスティックプール」「マネージドインスタンス」の3つのデプロイオプションが用意されています。デプロイオプションとは、広義でAzure SQL Database で選択ができる管理方法の種類というところです。それぞれについて解説します。
まず、単一データベースは、1つのデータベースごとに専用のCPU、メモリ、ストレージが配置されたものになります。複数のデータベースに分ける必要のない、データの作業負荷が予測できる単純なタイプに向く形態です。
エラスティックプールは、複数のデータベースで、CPU、メモリ、ストレージなどのリソースをシェアする形態です。アクセスが集中する時間が一定でない、など作業負荷の予測が難しいデータベースに適しています。コストを抑えるためには、データベースの作業負荷が少ない時間をなるべく少なくすることがコツです。
マネージドインスタンスは、データベースのインスタンス単位でCPU、メモリ、ストレージなどリソースを保持する形態です。SQL Server Enterprise Edition の最新版とほぼ完全な互換性があるため、オンプレミスをクラウド環境に移行する場合に適する形態です。
Azure SQL Databaseの利用料金
Azure SQL Databaseの料金体系は、「vCore」(仮想コア)と「DSU」(データベーストランザクションユニット)という2つの購入モデル別に設定されています。
vCoreは、ワークロードに応じて最適なメモリ、ストレージオプションを提供するモデルです。複数のレプリカを使用し、高い耐障害性を実現しているため、ビジネスアプリケーションなどの使用に適しています。
vCore には「汎用」「ビジネスクリティカル」「ハイパースケール」というオプションがあります。それぞれ、汎用は作業負荷が一般的なデータベース、ビジネスクリティカルは高いスループットとパフォーマンス、耐障害性が求められるデータベース、ハイパースケールは高速バックアップ・復元、スケーリングが求められるデータベースに向くとされます。
DSUは、ストレージの容量を固定し、定額料金で利用できるモデルです。DSUで必要な使用量を算出するためには、DTUの消費量の詳細な情報が得られるクエリパフォーマンス分析情報が役立ちます。DSUモデルの容量変更は最小限の切り替え時間で行えるのですが、その間データベースへの接続が失われる可能性があることに注意が必要です。
DSUには、「Basic」「Standard」「Premium」というオプションプランがあり、それぞれBasicは最大ストレージ2GB、最大DSU数5、Standard最大ストレージ1TB 最大DSU3000、Premium最大ストレージ4TB最大DSU数4000までという制限があります。
それぞれの詳しい価格は以下をご参照ください。
「Azure SQL Database の価格」
https://azure.microsoft.com/ja-jp/pricing/details/azure-sql-database/elastic/
SSMSを使用したAzure SQL Databaseへの接続方法
SSMSは、SQL Server Management Studioの頭文字を取った略語で、Azure SQL Database を含むSQL インフラストラクチャを管理するための統合環境のことです。SSMSのグラフィックツールスクリプトエディタを使用して、SQLサーバーにアクセスするための包括的な環境が用意されています。また、データコンポ―ネントの配置、監視、アップグレード、クエリおよびスクリプトを作成するなどが可能です。
SSMSを利用するためには、SSMSアプリがインストールされていること、またAzure SQL Database 内でデータベースが構成されていること、ファイアウォールがある場合はサーバーと通信するため、1433通信ポートが開かれている必要があります。
またSSMSからAzure SQL Databaseに接続するための、サーバーの種類、データベースサーバー完全名、認証方法、ログインIDとパスワードが必要となります。
サーバー完全名情報は次の手順で取得します。まずAzure portal にログインし、SQL Database をクリックし、ページを移動します。概要ページのサーバー名横に書かれているのが完全なサーバー名になるため、これをコピーしておきましょう。
SSMSからAzure SQL Databaseへの接続方法は、SSMSをインストール後、起動するとサーバーへの接続ウィンドウを表示さるので、ここから行います。もしサーバー接続ウィンドウが開かない場合は、手動でObject Explorer配下のConnect横のプルダウンからDatabase Engine を選択すると表示されます。
ここで、サーバーの種類、サーバー完全名、認証方法を選択、ユーザーIDとパスワードを入力し、接続ボタンをクリックすればAzure SQL Databaseへ接続されます。それぞれの推奨のパラメーターは下記の通りです。
- サーバーの種類:データベースエンジン
- サーバー名:サーバー完全名
- 認証:SQL Server認証
- ユーザー名:サーバー作成時に指定したログインユーザー名
- パスワード:サーバー作成時に指定したログインパスワード
Azure SQL Databaseに接続されたかどうかは、Object Explorer ないの+マークをクリックし、オブジェクトを展開することで確認が可能です。
まとめ
Azure SQL Databaseは、クラウド環境で使用できる高い可用性とコストパフォーマンスを誇るリレーショナルデータベースです。ビジネスの成長でデータベースの重要度が増していく中、Azure SQL Database を活用すれば、さまざまなメリットを得られるでしょう。