Microsoft Azure(旧称:Windows Azure)概説(2017年2月版)
まだ知らない人のための最新Microsoft Azure入門
PaaSとIaaSの両方をサポートし、積極的に新機能・新サービスが追加されている、クラウド環境のAzure。多岐に渡る、その最新の全体像をまとめて理解しよう。2017年2月の新名称や追加サービスに対応。
読者の皆さまはMicrosoft Azure(旧称:Windows Azure)をご存じだろうか? もし、まだ知らない、知っているが名前だけ、であれば、ぜひ本稿を参考にオープンで時流の先端に存在するクラウド環境の一端を知っていただければ幸いだ。
また、すでに知っているという皆さまも、日進月歩のクラウドの世界、最新の情報を本稿で確認し、拡充されたサービスをぜひ知っていただきたい。
Microsoft Azure概要
モバイルファースト+クラウドファーストを目指すプラットフォームとして、昨今のAzureはさまざまなサービスが提供されている。
※紛らわしいが、「Application Service」と「App Service」は別の意味の用語として使っているのに注意してほしい。
- コンピューティング(Computing): Virtual Machines/
Virtual Machine Scale Sets/ Container Service/ App Service/ Web Apps/ Mobile Apps/ API Apps/ Logic Apps/ Functions/ Cloud Services/ Batch/ RemoteApp/ Service Fabric - データサービス(Data Service): Storage/
SQL Database/ Redis Cache/ DocumentDB/ Search/ SQL Data Warehouse/ SQL Server Stretch Database/ Azure Analysis Services/ Data Lake Store - アプリケーションサービス(Application Service): HDInsight/
Data Lake Analytics/ Machine Learning/ Event Hubs/ Stream Analytics/ Data Factory/ Media Services/ CDN/ BizTalk Services/ Service Bus/ Backup/ Site Recovery/ Active Directory/ Access Control/ API Management/ Notification Hubs/ Mobile Engagement/ Visual Studio Team Services/ Application Insights/ DevTest Labs/ HockeyApp/ Marketplace/ Scheduler/ Automation/ Log Analytics/ Key Vault/ Data Catalog/ Security Center/ Monitor/ IoT Hub/ Cognitive Services/ Bot Service/ Azure Advisor - ネットワークサービス(Network Service): Virtual Network/
ExpressRoute/ Traffic Manager/ DNS/ Application Gateway
以前に比べ、PaaS/IaaSというくくりで表現されることが多くなっているのが特徴だ。最近の傾向としてはネットワークインフラやIaaS機能が拡充され、エンタープライズに対応してきている。直近の動向としてはPaaSやネットワークインフラの更なる拡張や、IoT(Internet of Things)を意識したデータの一連の流れを制御するためのサービスや取得した大容量のデータを効率的に保管・分析するための機能が出始めている。さらに分析の次の一手として、膨大なデータを基に機械学習されたモデルをすぐに扱える認知系(Cognitive)のサービスも充実してきている。
またモバイルファーストの側面としては、iOSやAndroidなどの多様なプラットフォームや開発言語に対応している。SDKなどの各種ツールもGitHubで公開されており、開発に参加することが可能だ。
Microsoftクラウドインフラストラクチャは、Azureだけに限らず、さまざまなサービスなどを支える部分だ。データセンターやネットワークなどを含め、非常に重要な部分ではあるが、Azureのサービスとしてそのまま提供されるものではないため、本稿では説明を割愛する。
この他、Azureのポータルや仮想マシン、ストレージなどクラウドの基本的な機能を、ユーザーが利用しているデータセンターやオンプレミス上で動かすためのAzure Stackの提供が今後予定されている。その詳細についても本稿では説明を割愛する。
次節以降ではAzureの各サービスについて簡単に説明していく。なお、図の中の絵の意味は、上から順に読むことで理解できるようにしている。
コンピューティング
Virtual Machines(仮想マシン)
Virtual Machinesは、Azure上でWindowsやLinuxを動かすための、いわゆる“IaaS”だ。OSより下のレイヤーの部分はAzure側が提供し、利用者は自由にアプリケーションのインストールや構成を行える。またベースのOSとしてRed Hat Enterprise Linuxもサポートする他、SQL ServerやOracle Javaなど、あらかじめアプリケーションがインストールされたOSイメージ(=VHDファイル)の使用や、利用者自ら構成したOSイメージをアップロードして使用することもできる。
仮想マシンのサイズ(CPUコア数やメモリ容量など)も種類が多く、用途に応じて適切なラインナップ(シリーズ)を選択することが可能だ。昨今では大容量メモリが搭載されたシリーズやGPUが搭載されたシリーズなども提供されている。
Virtual Machine Scale Sets(仮想マシン・スケールセット)
Virtual Machine Scale Setsは、いわゆるIaaSであるVirtual Machinesをテンプレート化し、よりPaaSらしく扱うためのサービスだ。Azureプラットフォームの監視などを行っているAzure Insights(後述)の自動スケール機能などと組み合わせた仮想マシンのオートスケールやネットワークの構成など、自由度の高い仮想マシンをより簡単にスケーラブルにすることが可能だ。また、後述するAzure Container ServiceやAzure Service Fabricなどの基盤としても使用されている。
Container Service
Container Serviceは、コンテナー化されたアプリケーションをホストするためのサービスだ。オープンソースで人気の高いDockerコンテナーを動作させることができる上に、クラスターの管理やオーケストレーターとしてDocker SwarmやDC/OSを選択でき、コンテナーを稼働させる環境を素早く構築できるのが特徴だ。
また関連するサービスとしてAzure Container Registryも提供されている。Azure Container Registryは、オープンソースで提供されているDocker Registry(v2)をベースにした、Azure上でDockerコンテナーイメージを管理できるサービスだ。このサービスを利用することで、プライベートにイメージを管理でき、Azure上のコンテナーを動かすことができる各種サービス(Container ServiceやApp Service、Batch、Service Fabricなど)へ低レイテンシで素早く展開することが可能だ。
- *補足: 執筆時点では、Azure Container Registryはプレビューとなっている。
App Service
App Serviceは、新しい枠組みで複数のサービスをまとめたサービスの総称だ。Web Apps、Mobile Apps、Logic Apps、API Appsの4つのアプリケーション・タイプ(後述)で構成される。またBizTalk Servicesのオンプレミス接続などの機能も一部包含しており、より柔軟に、素早くWebアプリケーションを展開・連携させることができる。
App Serviceは一般的なPaaSとしてインフラ部分を意識せず利用できるが、昨今のサービス拡充により「App Service Environment(App Service環境)」としてAzureのVirtual Networkへの接続や、実行するインスタンス数(マシン数)を利用者が確保し、占有・管理できるサービスも提供されている。
当初はWindows Serverがベースのプラットフォームであったが、アップデートによりLinux上で動作するApp Service on Linuxの提供も始まり、App Service on Linux上でのDockerコンテナーのサポートなども含め、広範囲な目的で利用できるプラットフォームとなっている。
- *補足: 執筆時点では、App Service on LinuxおよびDockerコンテナーサポートはプレビューとなっている。
Web Apps(旧称:Websites)
Web Appsは、Webアプリケーションをホスティングすることに特化したApp Serviceのアプリケーション・タイプだ。現時点ではWindows上で、.NET/PHP/Node.js/Python/JavaといったラインタイムのWebアプリケーションを稼働させることができる。
また自動スケール機能やブラウザー上でのコード編集、GitHubやTFS(Team Foundation Server)といったバージョン管理システムからのアプリケーション配置や、FTPによるファイルベースの配置など、多数の機能が含まれる。
もし標準的なWebアプリケーション、例えばWordPressやUmbracoなどを利用したいのであれば、ギャラリーから選択して簡単に配置することも可能なのが特徴だ。
※「WebDeploy」=Webアプリケーションをパッケージ化して配置できるツールで、「Web配置ツール」とも呼ばれる。
※下のボックス内にある6個の要素は、左からVisual Studio Team ServicesやTeam Foundation Server/Gitリポジトリ/GitHub/Dropbox/Bitbucket/CodePlexを指す。
Mobile Apps(旧称:Mobile Services)
Mobile Appsは、iOSやAndroid、Windows、Windows Phoneなど、さまざまなプラットフォームが利用するバックエンドサーバー機能を提供する“MBaaS”(Mobile Backend as a Service)で、Web Appsと同様にApp Serviceのアプリケーション・タイプの一つだ。.NETやNode.jsでサーバーサイドのデータ処理やWeb APIなどを開発でき、認証やアプリケーションへのPush通知、スケジューラー機能を簡単に利用できる。またWeb Appsと同様に自動スケールなどの機能を有する。
クライアント側の開発も各プラットフォームのネイティブ向けSDKが提供されており、サンプルも含め、すぐに開発を始めることが可能だ。またHTML/JavaScriptやXamarin、Cordova(PhoneGap)にも対応している。
- *補足: Mobile Apps内のPush通知は、実際にはAzure Notification Hubs(後述)を使用している。
API Apps
API Appsは、Web APIをホストすることに特化したApp Serviceのアプリケーション・タイプの一つだ。単にWebアプリケーションとして動作するだけでなく、API情報などのメタデータを公開して、より小さな粒度のマイクロサービスとして展開することで、後述するLogic Appsを使ったサービス間連携が行えるのが特徴だ。
Logic Apps
Logic Appsは、複数のAPI Appsを組み合わせてフローを作成・実行できるApp Serviceのアプリケーション・タイプの一つだ。このフローで使えるのは、開発者が作成したAPI Appsだけではない。単純なHTTPやSMTPといったプロトコルの呼び出しの他に、Office 365やSalesforceなどのSaaSやTwitterといった一般的なサービスへのコネクターがマイクロソフトによって用意されており、これらを使うこともできる。実際にそういったSaaSやサービスを使って処理を実現するには、マイクロソフトが管理しているAPIの一覧から連携したい機能を選び、認証情報などの必要事項を設定するだけだ。
フローの定義そのものはJSON形式だが、GUIのデザイナーを使って簡単にAPI Appsを追加し、処理をつなげていくことができる。
Functions
Functionsはアプリケーションの粒度を他のサービスより小さくし、「関数」(Function)として定義・実行するためのプラットフォームだ。サービスの特性上、仮想マシンや実行基盤を意識しなくてもよいため、昨今ではサーバーレスとして呼ばれる技術に相当するAzure上のサービスになる。
関数へのデータの入力と、呼び出しトリガー、出力は、Functionsのバインディングといった機構を使用する。これにより、Azure BLOB Storage(後述)などのイベントを起点(=トリガー)として呼び出したり定期実行したりでき、入出力においてもデータとの連携部分を意識せず処理そのものに集中できる。
Cloud Services(クラウドサービス)
Cloud Servicesは、仮想マシンとApp Serviceの中間に位置する“PaaS”だ。OSは「Guest OS」と呼ばれる特定時点の状態で固定化されたWindowsをベースとして利用し、利用者はバージョンを指定してクラウドサービス専用にまとめられたアプリケーションパッケージを配置し、サービスを提供する。同じPaaSのApp Serviceと比べて、OSの構成(例えばWindowsコンポーネントの追加など)は可能になっているが、仮想マシンほどの柔軟性はなく、構成などは永続化されずに指定されたGuest OSの状態とアプリケーションパッケージを基に都度構成されるのが大きな違いだ。
Azure Batch
Azure Batchは、大規模な並列およびハイパフォーマンスコンピューティング(HPC)アプリケーションを実行するためのサービスだ。Azure Batchでは、.NET Frameworkで作成した実際の処理を行うタスクを実行するために、コンピューティングリソース(プール)の用意や自動的なスケーリング、定期実行やオンデマンド実行のためのスケジューリングを提供する。また並列処理に必要となるタスクのキューや連携に必要な裏側のサービスも自動的に管理してくれる。
開発者は純粋に並列実行させたいタスクの開発と作業項目(ワークアイテム)に注力でき、その他の実行に必要な基盤を提供してくれるのがAzure Batchの特徴だ。
Azure RemoteApp
Azure RemoteAppは、Officeなどのアプリケーションをリモートで実行するためのサービスだ(例えばスマートフォン上などでOfficeのExcelを使ったりできるということ)。Windows Serverで提供されるリモートデスクトップサービスのRemoteAppをAzureが提供しているとも言える。Azure RemoteAppのクライアントは、Windowsだけでなく、macOS/Mac OS XやiOS、Android、Windows RT、Windows Phone 8.1などがあり、さまざまなプラットフォームで利用できる。
- *補足: 2016年8月にマイクロソフトより、Azure RemoteAppの提供終了がアナウンスされており、現在は新規作成できない。今後はCitrix社が開発中のXenApp “express”の提供が予定されており、利用者はXenApp “express”を利用するか、仮想マシン上でRDS(リモート・デスクトップ・サービス)のテンプレートを基に構築するなど、検討する必要がある。
Service Fabric(サービスファブリック)
Service Fabricは、拡張性や信頼性に優れた、いわゆるマイクロサービス向けのプラットフォームだ。通常の仮想マシンの可用性などに比べ、アプリケーション開発者などが意識しなければならないインフラの課題などを軽減でき、高い可用性を満たすクラスターを構成できる。
アプリケーション開発者はReliable ServicesやReliable Actorsのプログラミングモデルを選択し、サービス開発を行う。執筆時点ではWindowsの他にLinuxにも対応しており、.NETやJavaを使って開発できる。将来的にはコンテナー技術にも対応していく予定なので、利用用途はさらに広がることが想定される。またWindows上で動作するService Fabricのサービス本体も一般提供されているので、ローカル開発環境や他のクラウド上でService Fabricクラスターを自身で構成することも可能だ。
- *補足: 執筆時点ではLinux版のService Fabricは限定的なプレビューとなっている。また同様に、コンテナー技術への対応についてもプレビューとなっている。
データサービス
Storage(ストレージ)
Azure Storageは、BLOB(ブロブ)、Table(テーブル)、Queue(キュー)、Files(ファイル)からなるデータをREST APIで扱うためのストレージサービスだ。
- BLOB: ファイルなどのコンテンツ(=ブロックBLOB)や、仮想マシンのOSイメージ(=VHDファイル)などの大容量ファイル(=ページBLOB)を扱うことができる。また昨今のアップデートにより、追記型BLOB(Append BLOB: BLOBの最後に追記していく)もサポートされるようになっている。
- Table: 一般的なNoSQLのように非構造化データおよび半構造化データを扱うことができる。
- Queue: サービス間での非同期タスクなどを行う際に利用するメッセージングサービスを提供する。
- Files: Azure Storage上のデータをWindowsでの標準的なファイル共有プロトコルであるSMB 3.0プロトコルを使用してファイル共有を行える。
また、BLOBストレージ上のデータのHDDへのエクスポートやHDDからのインポートなどもAzure Import/Export Serviceとして一部地域で開始されている。最近ではオンプレミスに設置するSANであるStorSimpleと連携し、BLOBストレージ上にデータを保護できるサービスも開始された。
通常、Azure StorageはHDD上で動作しているが、より高速なアクセスが可能となるSSD上に構築された「Premium Storage」も利用可能になっており、Virtual MachineのOSおよびデータディスクを保存する領域として利用することもできる。
SQL Database(旧称:SQL Azure)
SQL Databaseは、Azureが提供するSQL ServerをベースとしたRDBMSのサービスだ。利用者は、サーバーの管理にとらわれず、アプリケーションの開発に専念できる。また、使い慣れた開発手法や管理ツールなどはそのまま利用できるなど、基本的なRDBMSとしての機能はSQL Serverと同様だが、マルチテナントであることやサーバーの管理はマイクロソフトが行うため、一部機能やパフォーマンスには制限がかけられているなどの違いがある。
※「TDS」=表形式データストリーム(Tabular Data Stream)。「SSMS」=SQL Server Management Studio。
Redis Cache
Redis Cacheは、Redisを使用したマネージドなオンメモリキャッシュサービスだ。開発者は、AzureのRedis Cacheを使用することでRedisサーバーの管理をAzure側に任せることができる上、データへの高速アクセスをアプリケーションに組み込むことができる。
- *補足: 本稿では説明していない「共有キャッシュサービス(Shared Caching Service)」については、2014年9月1日に終了となり、現在はサポートされていない。また同様に本稿では説明していない「マネージドキャッシュサービス(Managed Cache Service)」についても2016年11月30日にサービス提供が終了された。
DocumentDB
DocumentDBは、ドキュメント指向のNoSQLデータベースを利用できるサービスだ。DocumentDBではJSON形式とJavaScriptをネイティブサポートしており、非構造型データをJSONで扱うことができる。一般的なRDBMSで提供されているようなSQL構文を用いてRESTfulなインターフェース経由でデータを処理できる他、JavaScriptを用いたストアドプロシージャーやユーザー定義関数もサポートする。
Search
Searchは全文検索をするためのサービスだ。開発者が検索対象のデータを追加またはSQL Databaseなどと連携しインポートすれば、インデックスの生成やスコアリングなどを自動的にAzure Search側で行ってくれる。アプリケーションからはREST API経由でキーワード検索やファセット(=複数の付加情報)による絞り込み検索を行えるので、容易にアプリケーションに全文検索や絞り込み、オートコンプリートのような高度な検索機能を追加可能だ。
SQL Data Warehouse
SQL Data Warehouseは、ペタバイト(PB)級のデータを保管できる、クラウド上のデータウェアハウスだ。SQL Serverベースを大量並列展開したアーキテクチャーになっており、利用者はインフラを意識せずにスケールなどを行いながらSQLクエリを発行し、分析を行うことができる。
データのインポート/移行元としてSQL ServerやAzure SQL Databaseの他にBLOB StorageやHDInsight、Azure Data Factoryなどを使用できる。分析にはSQL ServerのOLTP機能やPower BIなども使用できる他、利用しない期間はSQL Data Warehouseを一時停止することでコストを抑えることも可能だ。
Azure Analysis Services
Azure Analysis ServicesはSQL Server Analysis Servicesを基盤とした分析エンジンを提供するサービスだ。SQL Server Analysis Servicesと互換性があり、オンプレミスやAzure上のデータソースを基にSQL Server Data Toolsなどを使用してモデルの作成や分析を行うことができる。またBIツールであるPower BIやSQL Server Reporting Servicesなどと連携させることが可能だ。
- *補足: 執筆時点では、Azure Analysis Servicesはプレビューとなっている。
SQL Server Stretch Database
SQL Server Stretch DatabaseはSQL Server 2016の機能の一つで、コールドデータなど通常アクセスしないデータではあるがオンラインにしておきたい情報を透過的に、一般的には他の方法より低価格でAzure上に拡張し保存することができる機能だ。ローカル上のストレージに退避するなど、一般的なアーカイブやバックアップによる退避とは異なり、Azure上に拡張されたデータは常にオンラインでクエリを実行できる。またAzure上に拡張するデータの選定にはポリシーを使用し、自動的に移行させることが可能だ。
Data Lake Store
Data Lake Storeは、データのサイズや種類、スキーマなどを気にすることなくペタバイト級になるデータでも保管できるハイパースケールなリポジトリだ。主に分析元となるデータをセキュアに、かつ容易に操作するために使用される。
HDFSを使用するアプリケーション(Azure HDInsightやData Lake Analytics、Hadoopなど)やツールからアクセス・分析されることを前提に設計されており、アカウントなどによるサイズ制限はないため、例えばIoTソリューションのデバイス/センサーからの大量のデータを取り込みリアルタイムで分析するなどのケースで活用できる。
アプリケーションサービス
HDInsight
HDInsightは、分散データ処理の定番であるHadoop(MapReduceエンジン)を利用できるサービスだ。クラスターとしてはHadoopだけでなく、HBaseクラスターを使用することも可能だ。利用者は簡単にクラスターを構成し、Javaや.NETを使用して開発を行い、必要なときに必要なだけ処理を行うことができる。
昨今ではHDInsight向けにApache SparkやApache Storm、Microsoft R Serverにも対応している。
Data Lake Analytics
Data Lake AnalyticsはApache YARNをベースとして構築された分散分析用のサービスだ。インフラを気にすることなく動的に性能をスケールさせてジョブを実行できるため、ユーザーはクエリそのものに集中できる。またクエリはSQLをベースとしたU-SQL言語を使用し、Data Lake StoreやAzure BLOB Storage上のデータをソースとして、クエリを実行可能だ。
Machine Learning(機械学習、Azure ML)
Machine Learningは、Azure上で機械学習を行うためのサービスだ。Machine Learningでは、「実験(Experiments)」と呼ばれる単位の中でさまざまな処理を行える。データソースとしては、CSVだけに限らず、SQL DatabaseやAzure Storage、HDInsight上のデータなどを扱うことができ、データの読み込み・抽出、変換や重み付け、評価やR言語を使用した統計解析をブラウザー上のGUIで実行することや、結果をビジュアルで見ることができる。また、作成した実験を保存し、Webサービスとして公開、再利用可能だ。
Event Hubs(イベントハブ)
Event Hubsは、大量のデータを受信し、ストリーミングでコンシューマー(クライアント)に配信できるサービスだ。機能としては、サービスバス・トピックに似ているが、IoTなど、大量のデバイスからのデータの受信などをより効率よく配信できるようになっている。
Stream Analytics
Stream Analyticsは、ストリーミングデータをほぼリアルタイムで分析・処理を行い、出力できるサービスだ。BLOBストレージ上のファイルやEvent Hubsからデータを入力し、SQLに似たStream Analyticsのクエリ言語を用いて処理し、再度、BLOBやEvent Hubsに出力してストリーミングのパイプラインをつなげることができる他、SQL Databaseに保存することも可能だ。
Data Factory
Data Factoryは、データの保存や処理、移動といったパイプラインを構成・実行するためのサービスだ。SQL Databaseや、オンプレミスのSQL Server、StorageやHDInsightなどのデータストアからデータを収集し、Data Factoryのパイプラインの中で日時によるスライスや複数のデータの結合など行った後、最終的にSQL ServerやSQL Databaseのようなデータウェアハウス(DWH)に出力可能だ。Stream Analyticsとは異なり、データの最終的な保存や過去の分析のためのデータ生成に利用できる。
Media Services(メディアサービス)
Media Servicesは、Azure上のリソースを使用して動画のエンコードや配信を行えるサービスだ。多数のエンコード形式に対応しており、1つの動画ソースをPC向けやHTML5、iOSなどのデバイス向けなどに、Azure上でエンコードできる。エンコード後はそのままAzure上で公開・配信することが可能だ(Azureであれば簡単にスケールすることもできる)。またストリーミング配信にも対応しており、セキュア配信として再生中だけでなくアップロード中や保管中のコンテンツを、Microsoft PlayReadyやApple FairPlay Streaming、Widevineを使用したDRM(デジタル著作権管理)やAES暗号化機能を使用して保護することもできる。
昨今ではMedia Analyticsという名称で機械学習を活用した動画コンテンツの分析を行う以下のサービスを提供している(実際にはエンコーダーの一種として扱う)。
- インデクサー: 動画から字幕(キャプション)を生成
- Hyperlapse(ハイパーラプス): 動画の時間を指定倍速に圧縮、主観視点での安定化(振れの補正)
- モーション検知: 動きのあった瞬間や物体の検出
- 顔検出: 動画内の人物の顔検出
- 顔モーション検出: 人物の表情や感情の検出
- 概要作成: 長時間の動画から短いハイライト動画の生成
- ビデオ光学式文字認識: 動画内の文字の認識(OCR)
- コンテンツ・モデレート: 規制対象の動画を検出
- Face Redaction: 動画内の人物にぼかしを挿入
- *補足: 執筆時点では、Media Analyticsの一部機能はプレビューとなっている。
CDN(コンテンツ配信ネットワーク)
CDNはBLOBストレージ上の画像やテキスト、ビデオなどのコンテンツやクラウドサービス上のコンテンツをデータセンターではなく世界45カ所のCDNノード(POPロケーション)に複製し*1、よりクライアントに物理的に近い場所から配信することでパフォーマンスを向上させるためのサービスだ。
なお現在は、AkamaiまたはVerizonの2社のネットワークから選択して利用できる。
- *1 上記の「45カ所」というPOPロケーションの数値は、Verizonの場合の公開されている地域数である。Akamaiは非公開となっている。
BizTalk Services
BizTalk Servicesは、EDI(企業間電子データ交換)を行うためのクラウド型メッセージ交換/ブリッジサービスだ。EDIだけでなく、EAI(エンタープライズアプリケーション統合)機能や、特にAzure App Serviceとオンプレミスのサービスを接続するためのハイブリッド接続(Hybrid Connection)機能などが提供されている。
Service Bus(サービスバス)
Service Busは、サービス間やアプリケーション間でメッセージの配信や接続を行うためのサービスで、複数の機能(具体的には下記の3つ)の総称だ。
- Service Bus Relay(サービスバス・リレー): オンプレミスのアプリケーションと、ネットワーク境界を超えて同期的にメッセージを送受信することが可能だ。またクロスプラットフォームでの動作を前提とした同等機能であるAzure Relayもリリースされている。
- Service Bus Queue(サービスバス・キュー): いわゆる“先入れ先出し”(FIFO)型のメッセージ配信をREST APIやAMQPで行うことができる。Azure StorageのQueueと異なり、AMQPのサポートなど、細かな仕様が異なるので、目的に応じて使い分けることが可能だ。
- Service Bus Topic(サービスバス・トピック): Service Bus Queueと同じメッセージ配信でもパブリッシャー/サブスクライバー形式でメッセージを配信できるため、複数の受信者にメッセージを送ることができる。
Backup
Backupは、Windows ServerやSystem Center Data Protection Manager(SCDPM)に統合されたオフサイトデータ保護サービスだ。Azureバックアップを使用することで、サーバー上のデータをAzureのBLOBストレージ上にバックアップして安全に保護できる。
Site Recovery(サイト復旧、旧称:Hyper-V Recovery Manager)
Site Recoveryは、オンプレミスのHyper-Vサーバー上やSystem Center Virtual Machine Manager(SCVMM)で稼働しているHyper-V仮想マシンを、他の拠点やAzure上に保護できるサービスだ。Site Recoveryを経由することで、他の拠点やAzure上に仮想マシンの状態をレプリケーションし、拠点に障害が発生した際にレプリケーション先で仮想マシンを稼働させ、サービスを継続させることが可能だ。またInMage社のScottテクノロジを使用してVMware環境の保護も可能だ*2。
- *2 マイクロソフトが2014年7月にInMageを買収したことにより、InMageのテクノロジがAzure Site Recoveryサービスに機能統合された。
Azure Active Directory(Azure AD)
Azure Active Directoryは、Office 365でも使用されている認証基盤だ。アカウント管理、他のサービスへのシングルサインオンやOAuth2、SAML 2.0、WS-Federation、OpenID Connectなどオープンな規格を使用した認証連携やMulti-Factor Authentication(多要素認証)といった機能を備える。
なお、オンプレミスなどで使用するWindows ServerのActive Directory Domain Serviceと異なり、LDAPやドメイン参加といった機能は有していないが、関連サービスとしてAzure Active Directory Domain Servicesが提供されている。
またAzure Active Directoryおよびコンシューマーのアイデンティティ・プロバイダー(IdP)であるMicrosoftアカウントやFacebook、Google+といったソーシャルアカウントと認証連携するためのサービスであるAzure Active Directory B2CやAzure Active Directory B2Bも提供されており、ユーザーにとって利用しやすい認証をアプリケーションに組み込むことが可能だ。
その他、関連サービスとして文書ファイル等を保護するAzure Information Protection(旧称 Azure RMS)なども提供されており、認証や情報の保護を集中的に管理することが可能だ。
Access Control(アクセスコントロール)
Access Controlは認証のフェデレーションプロバイダーとして機能し、MicrosoftアカウントやOpenIDなど複数の認証プロバイダーとクレームベース認証に対応したアプリケーションとの橋渡しを行うためのAzure Active Directoryに含まれるサービスだ。アプリケーション開発者は、各認証プロバイダーとの差異を考慮せず、Access Controlとの連携にのみ注力すればよく、利用者に複数の認証オプションを提供できる。
- *補足: 執筆時点ですでに積極的なアップデートは行われておらず、今後、Azure Active Directory B2Cが代替サービスとして主流になることが想定される。
API Management(API管理)
API Managementは、利用者が作成したWeb APIを管理するためのサービスだ。APIの公開の手助けや、レート制限/クォータ、モニタリング/分析などの機能があり、APIの作成に注力しやすくなっている。
Notification Hubs(通知ハブ)
Notification Hubsは、複数のプラットフォーム上の大量のクライアントに短時間でプッシュ通知を送信できるサービスだ。WindowsストアアプリやWindows Phone、iOS、Androidなどのプラットフォームやデバイス固有の処理を意識することなく、通知ハブのAPIを使用することで、簡単に特定端末や全体、またはタグによるセグメント分けされた対象にブロードキャストなプッシュ通知が行える。
※「MPNS」=Windows Phoneアプリ向けのMicrosoftプッシュ通知サービス(Microsoft Push Notification Service)。「WNS」=Windows 8以降およびWindows Phone 8.1以降のアプリ向けのWindowsプッシュ通知サービス(Windows Push Notification Services)。「GCM」=Androidアプリ向けのGoogleクラウドメッセージング(Google Cloud Messaging)。「ADM」=Kindle Fireアプリ向けのAmazonデバイスメッセージング(Amazon Device Messaging)。「APNS」=iOSおよびOS Xアプリ向けのAppleプッシュ通知サービス(Apple Push Notification Service)。
Mobile Engagement
Mobile Engagementは、iOSやAndroid、Windows PhoneやWindowsストアといったプラットフォーム上のアプリケーションの情報を収集し、リアルタイムに近い状態で把握するためのサービスだ。デバイス、利用地域といったユーザーの利用状況だけでなく、アプリケーション上のアクティビティなどを収集・分析し、効果的な通知やキャンペーンを実施することが可能だ。
Visual Studio Team Services (旧称Visual Studio Online)
Visual Studio Team Servicesはソースコード管理やタスク管理、テストの実行、継続的なインテグレーションや継続的なデプロイ、ロードテストなどを行うためのサービスだ。基本的にはMicrosoft Team Foundation Serverがベースとなっており、Azure上でマルチテナントとして提供されている。またアプリケーションのパフォーマンス計測など状況を把握し、アラートを上げる「Application Insights」と呼ばれる機能も含まれる。
Marketplace(マーケットプレース)
Marketplaceは、自身が持っているデータやアプリケーションを公開するためのサービスだ。データ使用量に対する課金やプロモーションなどが行える。
Scheduler(スケジューラー)
Schedulerは、定期的または指定日時にHTTP/HTTPSを使用して他のWebサービスの呼び出しや、Azure StorageのQueueにメッセージを投げることができるサービスだ。アプリケーションのメンテナンスの実行など、指定期間で実施したいタスクを呼び出すのに利用できる。また、Webサービスを用意しなくてもQueueを経由して非同期に処理を依頼することも可能だ。
Automation
Automationは、Azure上でWindows PowerShell Workflow構文で記述されたRunbookをスケジュールに従って実行できるサービスだ。あらかじめAzure PowerShell(=Windows PowerShellを使ってAzureを管理するためのコマンドレットを提供するモジュール)が組み込まれており、例えばオフタイムの仮想マシンの自動停止/開始や定型業務処理などのワークフローを、アプリケーションを作成することなく、自動化することが可能だ。
Log Analytics (旧称: Operational Insights )
Log Analyticsは、Azure上の仮想マシンやサブスクリプションのアクティビティ、オンプレミスのWindowsサーバー、またその上で動作しているSharePointやExchangeといったサーバーアプリケーションやAzureに関連するログを収集し、分析を行うサービスだ。エージェントプログラムやSystem Center Operations Managerと連携し、Azure環境や既存のオンプレミスのシステムの監視や分析を統合的に行うことができる。
Log Analyticsそのものは、Microsoft Operations Management Suite(OMS)の一部であり、OMSはオンプレミスのHyper-VやVMwareの他にOpenStack、Amazon Web Services、Google Compute Engine上のWindowsやLinuxサーバーなどを統合的に管理できる複数のサービスをまとめたスイート・サービスだ。
Key Vault
Key Vaultは、ハードウェアセキュリティモジュール(HSM)のキーを使用し、テキスト形式のパスワードやPFXファイルなどの秘密情報を暗号化して管理できるサービスだ。Key Vaultに秘密情報を集約することで、アプリケーションから利用するパスワードや証明書などの管理を行うタスクを分離し、安全に行うことができる。
IoT Hub
IoT Hubは、デバイスやセンサーから送信される大量のデータを受け取る入り口として使用できるサービスだ。内部ではEvent Hubsを使用しているが、IoT Hubではデバイスからのデータ送信だけでなく、インターネット側からデバイスへのメッセージ送信など双方向に通信できる。通信に使用するプロトコルは、IoTソリューションでよく使用されるMQTTやAMQP、AMQP over WebSockets、HTTPで、セキュリティ面でもデバイス管理やデバイスIDによる認証などが行えるようデザインされている。
Cognitive Services
Cognitive Servicesは、視覚(画像)や音声、言語、検索といった機能に関するAPI群の総称だ。ユーザーは機械学習などを自身で行う必要がなく、Cognitive Servicesで提供されるAPIを使用することで、さまざまなインテリジェンス(知能)をアプリケーションに組み込むことができる。
執筆時点でCognitive Servicesに含まれるAPIは以下の通りだ。
- 【言語系】:
- Language Understanding Intelligent Service(LUIS): テキストから文脈を理解する。
- Text Analytics API: テキストの言語判定やキーフレーズ、話題の抽出、ネガポジ分析を行う。
- Web Language Model API: 言語モデルを使用して単語の自動分割、出現頻度の計算、単語の予測や補完を行う。
- Bing Spell Check API: テキストのスペルチェックを行う。
- 【音声】:
- Bing Speech API: 音声をテキストに、またはテキストから音声に変換する。
- Speaker Recognition API: 音声を使用して話者の認証を行う、話者を識別する。
- Custom Speech Service: 独自の言語・音響モデルを作成・利用でき、アプリに音声認識機能を組み込める。旧称は「Custom Recognition Intelligent Service」(CRIS)と呼ばれていたが改称された。
- 【視覚】:
- Face API: 画像に含まれる人物の顔の検出や分析、タグ付けなどを行う。
- Emotion API: 画像に含まれる人物の顔から感情を検出する。
- Computer Vision API: 画像を分析し、情報を読み取る。
- Content Moderator: 画像を分析し、悪意あるコンテンツかどうか判断する。
- 【検索】:
- Bing Search API: Webで利用されているBingのインデックスなどを利用してWebページや画像、ビデオ、ニュースを検索できる。
- Bing Autosuggest API: テキスト入力時の検索候補の自動表示(オートサジェスト)機能などが利用できる。
- 【知識】:
- Recommendations API: ユーザーに関連する推奨事項等を提案するためのモデルの作成などを行う。
- Academic Knowledge API: Microsoft Academic Graph上の学術論文などの教育コンテンツに対し、自然言語での検索やヒストグラムの計算(例えば著者の年ごとの引用分布など)が行える。
- QnA Maker: FAQやQ&Aデータを基に質問から応答を返すAIエンジンを作成し、利用できる。
- *補足: 執筆時点では、Cognitive ServicesおよびCognitive Servicesに含まれる一部のAPIはプレビューとなっている。
Power BI Embedded
Power BI EmbeddedはWebページやアプリケーションに対話形式のレポートを埋め込むためのサービスだ。開発者は複雑なコードを記述することなく視覚的なレポートを作成し、利用者に提供できる。
オンラインサービスであるPower BIは主にOffice 365を使用している組織内ユーザー向けであるのに対し、Power BI Embeddedは、ISV企業などがダッシュボードやBI機能を組み込んだアプリケーションを提供するためのプラットフォームとなる。
Data Catalog
Data Catalogは組織内のさまざまなユーザーが自社内にあるデータソースを登録・参照するためのカタログ・サービスだ。Azure上のSQL DatabaseやStorage、Data LakeやDocumentDBなどの他、企業内のSQL ServerやOracle、MySQLといった多様なデータソースを登録し、組織内で共有できる。利用者は自社内のデータを注釈やメタデータを使って簡単に検索でき、すぐに接続して利用可能だ。
Security Center
Security Centerは、Azureサブスクリプション内のリソース全体や一部について、セキュリティの状態把握や脅威の検出、予防を行うためのサービスだ。保護する内容をポリシーとして定義して強制や推奨事項の提案を行える他、インシデント発生時にアラートを送信するといったインシデントの管理も可能だ。
スケール時や開発者による仮想マシンの追加時など、あらかじめ策定したポリシーを自動的に適用させることで、OSのパッチ適用状況や脆弱(ぜいじゃく)性の分析、Webアプリケーション・ファイアウォールの導入推奨といったことを実現できる。これによって、アプリケーションまでを含めてシステム全体をセキュアな状態を保てるように促すことができる。
DevTest Labs
DevTest Labsは開発・テスト時の環境を素早く展開・共有するためのサービスだ。開発者はAzure上の仮想マシン数や環境など意識せず、必要なアプリケーションが導入された環境をすぐに利用でき、かつ自動起動や自動シャットダウン機能を使用して無駄なコストを省き、コスト管理や開発環境の管理を容易にできる。
開発者や管理者が用意したカスタムの仮想マシンのイメージが利用できる他、“アーティファクト”と呼ばれる部品を使用することで、簡単な操作で必要なアプリケーションを自動的にインストールして起動させることができる。
HockeyApp
HockeyAppは、iOS/Android/Windowsといったモバイルプラットフォーム上のアプリのクラッシュレポートの収集やユーザーからのフィードバック機能をアプリに提供するサービスだ*3。他にもベータ版の配布、ユーザーメトリックの追跡といったモバイルアプリを継続的にデプロイしていくために必要となる機能をサービスとして提供している。
- *3 HockeyAppは元々ドイツの企業だったが、2014年にマイクロソフトによって買収され、現在はマイクロソフトのサービスとなっている。
Azure Monitor
Azure Monitorはさまざまなログや監視を統合管理できるサービスだ。Azure上のApplication InsightsやLog Analytics、Operations Management Suite上のログやメトリックをまとめて管理できる他、DataDogやsumologicといったサードパーティ製のサービスと連携し、それぞれのサービス上でこれらの情報をまとめて管理することも可能だ。
Azure Insightsと呼ばれる機能も内包しており、Azure上のリソースやアクティビティログを基にしたアラートの定義やアクションの実行、自動スケールなども行うことができる。
- *補足: 執筆時点では、Azure Monitorはプレビューとなっている。
Azure Bot Service
Azure Bot ServiceはMicrosoft Bot Frameworkを使用したBotの開発・提供を行うサービスだ。Azure Bot ServiceではBotの開発・動作環境とチャットなどの入出力を担う部分を提供することで、開発者は応答部分に注力して開発・デバッグを行うことができる。また入出力部分もSkypeやSlack、FacebookメッセンジャーなどのチャットサービスのほかにSMSやWebページへの埋め込みなどに対応し、サービスによる差異を意識せずに設定し提供することも可能だ。
- *補足: 執筆時点では、Azure Bot Serviceはプレビューとなっている。
Azure Advisor
Azure Advisorは利用者が構築したAzure上の仮想マシンやサービスなどについて、Azureポータル上に推奨事項を提示してくれるサービスだ。Advisorは自動的に構成や使用状況などを分析し、コスト削減やパフォーマンス、セキュリティといった観点で改善・向上させる手順や推奨事項を提案するため、利用者は簡単にシステムの改善点の把握と対策を行うことが可能だ。
- *補足: 執筆時点では、Azure Advisorはプレビューとなっている。
ネットワークサービス
Virtual Network(仮想ネットワーク、VNET)
Virtual Networkは、Azure上の仮想マシンやクラウドサービスが利用する内部的なネットワークを提供するサービスだ。仮想ネットワークを使用すると、仮想マシンのインスタンス間の通信を仮想的な内部ネットワーク上で行うことができる。また、L2TP/IPSecを使用した「サイトtoサイトVPN」や、SSTPを使用した「ポイントtoサイトVPN」を構成し、オンプレミス環境やクライアントPCと接続することも可能だ。
ExpressRoute
Azure ExpressRouteは、Azureのデータセンター内のインフラと利用者の間にプライベートな接続を作成できるサービスだ。インターネットVPNとは異なり、「ExpressRoute対応プロバイダーが提供する閉域網」や「プロバイダーの施設」と直接接続を行うことで、より安全で高速なインフラを構築できる。
※「MPLS」=Multi-Protocol Label Switching。
Traffic Manager(トラフィックマネージャー)
Traffic Managerは、ワールドワイドで負荷分散やWebアプリケーションの冗長化を行うことができるサービスだ。複数のAzure上のWeb AppsやMobile Apps、クラウドサービスまたは他のURLを、よりクライアントに近いデータセンターへ振り分けたり、ラウンドロビンで分散させたり、障害が発生した際に、登録した別のデータセンター上のアプリケーションへフェールオーバーしたりできる。
DNS
DNSは、一般的なドメインネームシステム(DNS)をAzure上で提供するサービスだ。一般的なDNSと同様にレコードの管理をREST APIやPowerShell、.NETなどのコードから管理できる。
Application Gateway
Application Gatewayはアプリケーション層(L7)に対応した負荷分散サービスだ。HTTP通信に特化しており、HTTP負荷分散の他、SSLターミネーション(HTTPSで受け付け、暗号化を解除してHTTPでバックエンドに渡す)やセッションベースのCookieアフィニティの提供などを行うことができる。
またModSecurityをベースとしたWAF(Web Application Firewall)機能を追加することでSQLインジェクションなどの攻撃に対しバックエンドのWebアプリケーションを保護することも可能だ。
スイート
Microsoft Azureでは、複数のサービスや製品をまとめて“スイート”として提供している。この節では現状提供されているスイートと、含まれる各サービスの一覧を紹介する。
Cortana Intelligence Suite
Cortana Intelligenceは、ビッグデータなどの大量のデータ処理や分析・予測、可視化などを行うサービスがまとめられており、複数サービスを連携させたソリューションテンプレートも提供されている。
- Data Factory
- Event Hubs
- Data Lake Analytics
- Cognitive Services
- Data Catalog
- Machine Learning
- Stream Analytics
- Power BI Embedded
IoT Suite
IoT Suiteでは、デバイスなどから送信されるデータをストリームで処理するための各種サービスやデバイス管理、機械学習や可視化などを行うサービスが含まれる。
Operations Management Suite
Operations Management Suiteは、Azureやオンプレミス、VMwareや他のクラウド上のシステムやサーバーのログの収集、分析、システムの保護や自動化を行うためのサービスが含まれる。
その他関連サービス
Microsoft Azureでは、Azureブランドとして提供している関連サービスも存在している。
Azure IP Advantage
Azure IP Advantageは知的財産(IP:Intellectual Property)を保護し、パテント・トロールなどからの知財訴訟から利用者を守るサービスだ。Azure IP Advantageを契約していれば、訴訟費用などを無制限でマイクロソフトが補償する。またマイクロソフトがサービス対象として扱う1万件にも及ぶ特許へのアクセスも提供する。
まとめ
Azureがカバーする範囲はオンプレミスからクラウド、インフラからアプリケーション、サービスを超えてすでにインテリジェンスな領域まで広がりを見せている。ぜひ皆さまの利用目的に合致するサービスを見つけて活用していただければ幸いだ。
参考
- Microsoft Azure公式サイト
- Microsoft Azure のインフォグラフィック
- Microsoft Azure 製品一覧
- Microsoft Azure アーキテクチャー ブループリント(英語)
- Microsoft Azure サービスダッシュボード