データの可用性を担保し処理を最適化
「Azure Storage」「Azure SQL Database」
前回は、クラウド基盤の紹介からステップアップし、クラウドアプリケーション開発の段階に踏み込んだWeb Appsの詳細を説明した。クラウド移行を進めていくユーザーが次のステップとして気になるのが、データの可用性だ。基盤の管理を含めてクラウドベンダー側のサービスを利用する以上、メンテナンス関係でシステムが停止する可能性も想定しておくことが重要となる。上記を踏まえ、データとそれを格納するシステムの冗長性を担保する「Azure Storage」と「Azure SQL Database」の二つを解説する。
多様なデータの運用を最適化
マイクロソフトでは、豊富なデータの管理に対応するストレージサービスを持つ「Azure Storage」と、データを格納するシステムの冗長性とセキュリティを担保する「Azure SQL Database」を提供している。クラウドサービス移行後のデータの可用性を確保し、安定したシステム運用を実現するためのサービスだ。
最初に、多様なデータ運用に対応するクラウドストレージAzure Storageが持つデータ管理機能の有用性を解説する。日本マイクロソフト パートナー事業本部 第一アーキテクト本部 クラウド ソリューション アーキテクトの久保智成氏は「Azure Storageでは大きく分けて『Azure Disk Storage』『Azure Files』『Azure Blob Storage』『Azure Queue Storage』『Azure Table Storage』という五つのコアサービスを提供しています。ビジネスにおいて非常に重要なデータ管理の観点で、さまざまなデータを保管できる点が利点です」と説明する。その概要は以下の通り。
- Azure Disk Storage……Azureの仮想マシンからブロックレベルの仮想ディスクとして使える
- Azure Files……クラウドまたはオンプレミス用のマネージドファイル共有
- Azure Blob Storage……テキストデータやバイナリデータなどの大量の非構造化データを格納できる。階層型のファイルシステムが使える「Azure Data Lake Storage Gen2」機能も追加し、Azureのデータ関連サービスで分析したデータの格納先にも対応
- Azure Queue Storage……アプリケーションコンポーネント間の膨大なメッセージを格納
- Azure Table Storage……非リレーショナル構造化データを格納(スキーマレスのデザインによるキーおよび属性ストア)
Azure Storageは、同じくクラウドストレージのOneDriveと比較すると、その違いが分かりやすい。「OneDriveはユーザーの個人利用とビジネスコラボレーションを目的としています。利用する領域をレイヤーとして見た場合、OneDriveが該当する領域はIaaSやPaaSではなくSaaSであり、利用対象はヒトです。それに対し、Azure Storageの利用領域となるレイヤーはIaaS、PaaSで、システムを対象として利用するものになります。Azure Storageは、アプリケーションやシステム内のデータ利用のためのソリューションとして提案できます」(久保氏)
Azure Storageは、データを扱う全てのシチュエーションでの管理運用をサポートする。その中でも、一番の強みはやはり五つのコアサービスを備えている点だ。Azure Storageの提案ポイントとして久保氏は「用途は一つに限られません。ファイルサーバーをAzure Filesに代替したりデータ置き場としてAzure Blob Storageを使ったり、構造化データを格納してクエリを実行できるようにAzure Table Storageを使ったり、データ分析関連サービスで利用するデータ用バックエンドとして用いるなど、ニーズに合わせてコアサービスをカスタマイズすれば多様なデータ運用に対応します」と語った。上記を踏まえ、用途に合ったストレージを導入して継続的に運用しやすいシステムを整備すれば、社内のデータを常時最適化できるのだ。
「さらに、用途に応じてエンタープライズグレードのネットワークストレージである Azure NetApp Files や、改ざん防止のためのサービスなどもあり、どのようなワークロードでも対応するサービスがあります」 (久保氏)
冗長構成でシステム中断を回避
蓄積したデータを整理・統合し、高い検索性でデータ管理が可能なストレージサービスであるAzure Storage。その機能を基盤に利用したDBサービスで、トランザクションの制御、スキーマ定義などDBMSの機能や、修正プログラムの適用、バックアップ、冗長構成、監視などのデータベース管理機能を自動で処理するのが「Azure SQL Database」だ。
同製品の概要や開発背景について、同社 パートナー事業本部 クラウド ソリューション アーキテクトの西村栄次氏はこう説明する。「パッケージ製品として提供していたSQL ServerをPaaSのDB化したソリューションがAzure SQL Databaseです。一件のデータを複数の項目を持つ行とし、行単位でデータを格納していくリレーショナルデータベース(RDB)方式を採用しています。Azure SQL Databaseは、サービスを立ち上げたらテーブルやインデックスを作成することですぐにでもDBを使えるため、システムの運用準備に手間をかけず容易に使い始められます」
また、データのセキュリティやシステムの可用性をカバーする機能も備えるという。「セキュリティに関しては、データや通信の暗号化をはじめ、データをマスキングする機能やアプリケーションによる特別な実装なしでユーザーごとに参照データを制御する行レベルのセキュリティ機能などを標準で備えています。また、可用性にも優れており、ゾーン増長やジオ冗長に対応しています。追加設定をすることで、万が一、プライマリのシステムに何かしらの障害が発生した際には、冗長したセカンダリのDBに自動で切り替わる『自動フェイルオーバー』の機能を利用可能です。これにより、システムを止めない仕組みを構築できます」(西村氏)
可用性を高める機能を説明した上で、西村氏は「どのDBもクラウドである以上、瞬断も含めて落ちることを考慮しておく必要があります」とも指摘する。「例えば、パッチの適用やメンテナンスの時などでは、基盤をクラウドベンダーが管理しているためオンプレと比較してアンコントローラブルな瞬断が発生しやすい点があります。クラウドアプリケーションを構築する際も、落ちないことを前提に作るのではなく、Azure SQL Databaseなどによってシステム障害の影響範囲を最小限にとどめる考え方が重要です」(西村氏)