Writer:佐久森
Azure SQL Databaseの特徴とは?その概要からIoT向けサービス群での位置づけまでを紹介
AzureのIoT向けサービスは、データの接続から格納、整形や分析、データの可視化など、IoTインフラに必要なサービスを提供しています。その中でも、Azure SQL Databaseは「データの蓄積」をフルマネージドで提供しているリレーショナルデータベースです。今回は、Azure SQL Databaseとは何なのか、Azure IoTでの位置づけを確認しながら、その特徴や使い方までを紹介します。
ネクストステップにおすすめ
Azure IoTにおける「Azure SQL Database」の概要と位置づけ
まずは、Azure SQL Databaseが、AzureのIoT向けサービス群でどのような位置づけにあるかを確認していきましょう。ここでは全体像がイメージしやすいように、利用頻度が高いと考えられるサービスを抽出し、一つの例として以下のようにカテゴライズしています。
- デバイス収集・連携:IoT Hub/Data Factory
- データの蓄積:SQL Database/Blob Storage/Cosmos DB/SQL Data Warehouse
- データの処理・分析:Stream Analytics/Databricks/HDInsight
- 機械学習モデル、開発・管理:Cognitive Services/Custom Vision/Machine Learning Studio/DevOps
- データ可視化・実行:Power BI/Power Apps/Dynamics 365/IoT Central
本コラムでは「データの蓄積」のサービスの1つであるAzure SQL Databaseを紹介します。
Azure SQL Databaseの特徴
それでは、 Azure SQL Databaseの特徴を見ていきましょう。
フルマネージドデータベース
Azure SQL Databaseは、フルマネージドデータベースです。
クラウド向けに構築されたデータベースで、フルマネージドやAIによる耐久性の最適化、自動的なスケーリングに対応しています。
フルマネージドデータベースについては、SQL Serverと比較することで、その利点が理解しやすくなります。
例えば、VM上のSQL ServerとAzure SQL Serverを比べると、Azureのフルマネージドデータベースでは利用者の管理負担が大幅に削減できるのです。
VM上のSQL Server | Azure SQL Database | |
---|---|---|
利用者が管理する部分 |
|
|
Azureが管理する部分 |
|
|
スクロールしてご覧ください。
自動的なスケーリング
Azure SQL Database は、AIと機械学習で最大限のパフォーマンスと安定したワークロードを提供します。
サーバーレスコンピューティングで、Azureがマシンリソースの割り当てを動的に行うため、スケーリングの管理コストが削減できます。
Hyperscaleストレージオプション
Hyperscaleストレージオプションを選択することで、従来のクラウドデータベースでの制限事項の多くが取り払われます。
その代表的な例には以下が挙げられます。
- 最大100TBのDBサイズをサポート
- 瞬間的なバックアップ
- 数分でリストア
- 一定時間でスケールアップと必要なくなればスケールダウン
優れた高可用性と耐障害性
Azure SQL Databaseを含むAzureストレージサービスでは、高可用性が保たれています。
高可用性の主な方法としては、3重のバックアップ構造です。
例えば、Azure SQL Databaseにクライアントからの書き込み要求があったら、3つの複製が完了した時点で「書き込み成功」の応答が返ってきます。つまり、3重化されてはじめて処理が完了するフローなのです。
これにより、サービスメンテナンスや障害によってクライアントの作業にダウンタイムが発生することがほとんどありません。
地理的なレプリケーションでのフェールオーバー
地理レプリケーションを設定していれば、フェールオーバー発生時には地理的に離れたデータセンターのデータベースへ、接続先が自動的に切り替わります。
例えば、東日本地域にプライマリのデータベース、西日本にセカンダリのデータベースが設定されている場合、どちらかでデータセンター規模での障害が発生したならば、被害の及ばない離れた場所のデータベースへ切り替わることで、障害からデータ損失を防ぎます。
選べる3つのエディション
データベースサイズについては、以下3つのエディションの選択が可能です。
- Basic:最大2BG
- Standard:最大250GB
- Premium:最大1024GB
それぞれのデータベース最大サイズを超えた場合には、エラーが返されます。このとき、データベースへの挿入・更新・新規オブジェクトの作成などはできません。ただし、すでに格納しているデータの参照は可能です。
バックアップ機能が安価で使える
各エディションには、バックアップ機能も搭載していますので、わざわざ別途バックアップ用のプランにコストをかける必要はありません。
バックアップは、自動的なバックアップとポイントタイム復元、地理冗長バックアップが標準機能として動作可能です。
各エディションでのバックアップ保有期間は以下の通りです。
- Basic:7日間
- Standard:14日間
- Premium:35日間
自動チューニング機能でパフォーマンス向上
データベース自身が持つ自動チューニング機能を使うことで、パフォーマンスが向上します。
クライアントがデータベースを利用するうちに、パフォーマンスの低下が見られた場合、推奨項目としてアドバイスが受けられます。
また、インデックスの削除などのパフォーマンス向上は、自動化することも可能です。自動化した場合は、非効率なインデックスと判断されたものに対して、インデックスの適用が自動的に元に戻されるなどの処理が行われます。
脅威の検出
セキュリティについては、脅威を検出できる機能が搭載されています。
例えば、IDやパスワードを組み合わせて攻撃するパスワードスプレー攻撃や、SQLインジェクションなどの攻撃を自動検出します。
異常を検出した場合、SQL Database自身でもリアルタイムなアラートを通知したり、管理者へのメール通知をしたりすることができます。
その他の特徴
その他にもさまざまな特徴があります。代表的なものを以下に挙げます。
- インメモリー:ワークロードのパフォーマンス向上
- カラムストア(列ストア):クエリパフォーマンスの向上
- SQL Serverとの互換性:SQL ServerとSQL Databaseには互換性がある
- 透過的データ暗号化(TDE):オフラインアクティビティの脅威からの保護
- フルテキストサーチ(検索):文字ベースのデータに対してフルテキストクエリを実行できる
- Elastic Database Pool:データベースがパフォーマンスリソースを必要とするときに確保できるようにする
Azure SQL Databaseの基本的な使い方
それでは、Azure SQL Databaseでスタンダードな単一データベースの作成手順を見ていきましょう。
- Azure portal画面より、「SQL データベース」→「追加」
- 「リソースグループ」の作成
- 「データベース名」を入力
- 「サーバー」→「新規作成」でサーバーを作成
- 「コンピューティングとストレージ」→「データベース構成」
- 「次:ネットワーク」にて、ネットワークを設定
- 「次:追加設定」にて、バックアップの設定
- 「次:タグ」でタグを設定
- 「次:確認および作成」にて構成を確認
- 「作成」にてデプロイが完了
Azure SQL Database以外のAzure Storageについて
「データの蓄積」に利用できるAzure Storageサービスには、データの種類に応じた豊富なストレージが用意されています。そのうちの一つである「Blob Storage」については、以下のコラムにて詳しく紹介していますので参考にしてください。
Blob Storage:Blob Storageとは?AzureのIoT向けサービス群での位置づけや特徴・使い方までを紹介まとめ
Azure SQL Databaseは、IoT向けサービスの中でも「データの蓄積」にカテゴライズされるサービスです。フルマネージドデータベースにより、データベース以外のインフラをAzureサービスに任せることができます。また、自動的なスケーリングや高可用性に優れており、低価格で自動バックアップ機能まで利用できるデータベースサービスです。