Azure とは何か & Azure 全サービスを 3行で

Auzre とは何か

Azure は「アジュール」と発音する、Microsoft が提供するクラウドサービスです。 (海外では「アジャー」「アジュア」と言うそうですが、日本だと「アジュール」で問題ないでしょう)

2010年のサービスイン時は「Windows Azure」だったのですが、 その後のオープンソースへのシフトの結果、「Microsoft Azure」という名称となりました。

2014年2月に、日本リージョンが追加され、東日本 (東京・埼玉)・西日本 の 2リージョンが追加となりました。

当初は PaaS (WebRole 等) 中心だったのですが、その後 IaaS (Virtual Machine) が追加され、 より洗練された PaaS (AppService) も追加され、機械学習や IoT にも手を出し、 どんどん機能拡張が行われています。

当初は「Windows や SQL Server など、自社製品を使ってもらうための Azure」という位置づけだったものを、 Linux や Docker 等、ニーズがあるものならなんでもやる方向にシフトし、 さらに Linux に .NET Core や SQL Server を移植したり、 Windows Subsystem for Linux (旧称: Bash on Windows) を開発したりと、 若干オープンソース界隈の住人に対する人気取りな気はするものの、積極的な攻勢をかけています。

先行する AWS に追いつくため、自らを「チャレンジャー」と位置づけ、 積極的な投資を行った結果、2017年現在では AWS に次ぐ 2番手の位置付けであるようです。

大企業に強い

Azure リージョンは、日本に 2箇所あります (東日本、西日本)。 Azure の準拠法は日本法、合意管轄裁判所は東京地方裁判所です。

大企業であればあるほど、

  • 国外データセンタにデータを保持してはいけない。
  • 災害対策としてデータセンタは複数持たなければいけない。
  • 準拠法は当然日本法であるべき。
といった縛りがあるものですが、長年日本で法人営業をしてきたマイクロソフトはその辺をよくわかっています。

C

Microsoft のクラウドサービスですので、当然ながら C# や Visual Studio との親和性が非常に高いです。 Microsoft 技術で固めたいなら Azure を選んで損はないでしょう。

Azure 全サービスを 3行で

Azure の各サービスを 3行くらいで解説したいのですが、 まだほとんど書けていません。

API Apps
API Apps を使うと REST ベースの Web API を (比較的) 簡単に作成できる。 Active Directory・OAuth などによる認証の統一化、バージョン管理が (比較的) 簡単に可能。 API Apps は、App Service のサービス群のひとつである。
API Management
Academic Knowledge API
Apache Spark for Azure HDInsight
Apache Storm for HDInsight
App Service
Azure における PaaS サービス。アプリをデプロイするだけで、インフラは Azure におまかせ。 環境構築が不要なので、オートスケールも簡単。 対応言語は .NET、.NET Core、Java、Ruby、Node.js、PHP、Python。 App Service はサービスの総称であり、実際は Web AppsWeb App for ContainersMobile AppsAPI Apps という個別サービスが存在する。
Application Gateway
Application Insights
アプリケーションの内部にフォーカスした、運用監視・性能監視・死活監視・通知サービス。 ブラウザで使える SaaS サービス。 例えば App Service について、リクエスト数、レスポンス時間、エラー件数等をグラフで表示し、 異常を検知しやすくする。 ルールを設定しておけば、メール等で通知をすることも可能。 デフォルトでもそこそこ使える状態になっており、サイトスローダウンの場合、 例えば SQL Database に対して発行 SQL 別にクエリ回数やレスポンスタイムを集計するようなことが ブラウザ操作のみで簡単にできる。 また、Analytics というツールがあり、SQL のようなクエリを書くことで、 「この時間帯で、この URL へのリクエストについて、レスポンスタイムの統計をグラフ表示する」 といったことが比較的簡単にできる。
Automation
定形作業を自動化・スケジュール実行する。作業内容は PowerShell で記述する。 実現できることは、 Azure ストレージにファイルを配置 or 取得、 VM の起動・停止・バックアップ、 などなど、ほとんどの Azure 操作を行うことができる。 実行の契機は、Azure Portal での操作・API コール・http リクエスト・Azure アラート・スケジュール (時間/日/週/月/曜日/月末) など。 スケジュールについてはあまり凝った指定はできないが、PowerShell 内部で複雑な判定を行なって、必要なときのみ処理をすればよい。

よりシンプルな仕組みとして、Azure Scheduler がある。

Automation & Control
Azure Active Directory
Azure Active Directory B2C
Azure Active Directory Domain Services
Azure Advisor
Azure Analysis Services
Azure Bot Service
Azure Cosmos DB
NoSQL・スキーマレスなデータベース。旧名は DocumentDB。 Document・key-value・グラフ等、いろいろなデータ形式を扱うことができる。 高速・大量データ可。
Azure Data Box
Azure DNS
DNS サービス。ドメインの Aレコードや PTR レコードなどを設定する。

詳細は こちら

Azure Database for MySQL
マネージドな MySQL サーバ。
Azure Database for PostgreSQL
マネージドな PostgreSQL サーバ。
Azure DevTest Labs
Azure Media Indexer
Azure Media Player
Azure Mobile Apps
Azure Monitor
Azure Resource Manager
Azure Search
Azure Service Health
Backup
Batch
Bing Autosuggest API
検索エンジンでよくある、検索フォームに「くら」まで入力すると「クラウド」「くら寿司」が出て来るサジェスト機能が実現できる。 日本語対応はしているが、2018/1 に確認した限りではサジェスト対象の絞り込みができず、 「おもちゃ限定」「UNIX コマンド限定」「この1500個のリストを対象にサジェストしてほしい」 といったことが全くできないのではなかろうか。

Bing Spell Check API は、Cognitive Services のひとつである。

Bing Entity Search API
Bing Image Search API
Bing News Search API
Bing Speech API
Bing Spell Check API
文章を与えるとスペルミスの指摘と、修正版の提示を行ってくれる。 MS のデモサイトで "I am a doctar." とすると、"I am a doctor." という修正案の提示がなされ、 下記のようにどの部分がスペルミスが疑われるかの詳細情報を得ることができた。
    {
      "offset": 7,
      "token": "doctar",
      "type": "UnknownToken",
      "suggestions": [
        {
          "suggestion": "doctor",
          "score": 1.0
        }
      ]
    }
2018/1 現在、ドキュメントには日本語対応とあるが、デモでは日本語対応している感がないため試していない。

Bing Spell Check API は、Cognitive Services のひとつである。

Bing Video Search API
Bing Web Search API
Bing カスタム検索
Blob Storage
容量無制限のストレージサービス。Azure のストレージといえばこれ。AWS で言うところの S3。 Azure ポータル・専用 SD・や専用API・Azure-CLI のコマンドなどを通じて操作する。 ログファイルやデータファイル保存置き場とするのが一般的。 Blob Storage に配置しておけば Web 上で一般に公開することができるため、 画像ファイルや HTML・CSS 等の置き場所として使うこともできる。 Blob は "Binary Large OBject" の略で、 一般的にはテキストでないサイズが大きめなバイナリデータを指すが、 別にテキストファイルを置いてもいいし、小さなファイルを置いてもよい。 Blob Storage には以下の 3種類がある。
  • ブロック BLOB … いわゆる通常のストレージと思ってよい。
  • 追加 BLOB … オブジェクト (=ファイル) に追記ができる BLOB。ログ記録用と思ってよい。 通常のブロック BLOB ではオブジェクト内容の変更はできない (Amazon S3 でもできない) が、 追加 BLOB であればオブジェクトへの追記ができる。 2015年末あたりから利用可能になった。 使ったことがないのでよくわかっていないが、これまで Azure では Table Storage への出力が一般的であったが、追加 BLOB への出力もできるようになったという理解でよいのか?
  • ページ BLOB … Virtual Machines (仮想マシン) にて OS のディスクイメージとして使用。それ以外の用途で使うことはないと思ってよい (それ以外では使えない、かもしれない)
詳細は
こちら
CDN
Azure の CDN サービス。主に画像等の静的なファイルを配置することで、 レスポンスタイム向上・サーバ負荷軽減が実現できる。下記の3サービスのいずれかを選択する。
  • Azure CDN Standard from Akamai
  • Azure CDN Standard from Verizon
  • Azure CDN Premium from Verizon

詳細は こちら

Channels
Cloud Services
Cloud Shell
ブラウザ上で起動する管理用 OS。 VM を立ち上げたりしなくても、az コマンドや、 Java・Python・PHP・Ruby 等の実行環境、Docker コマンド、SQL Server・MySQL・PostgreSQL クライアントなどを使うことができる。 例えば、インスタンスの起動・停止・インスタンスサイズ変更や、Azure Storage・SQL Database のデータ確認や更新が行える。 bash と Powershell が選択可能。bash の場合、実体は Ubuntu なので、vi・emacs・awk・sh スクリプト等も自由自在。 Cloud Shell が動作するマシンは無償だが、永続化のためにはストレージ (Azure File Storage) をマウントする必要があり、 ストレージ分は有償となる。
Cognitive Services
Cognitive Services は、 マイクロソフトが展開する、視覚・音声・言語・知識・検索に関するサービスの総称。 マイクロソフトが研究・開発した AI を使っている。 具体的には画像認識・顔認識・表情認識・テキストの音声読み上げ・音声からのテキスト起こし・ 翻訳・Web検索・動画検索などなど。 Cognitive とは「認知」という意味の英単語。
  • 視覚 (Vision)
    • Computer Vision API - 画像に写っている「もの」を検出 (例: 道路の向こうに赤い自動車がいる)
    • Face API - 画像から顔を検出、識別、分析、グループ化、タグ付け
    • Content Moderator - 画像・テキスト・動画が不適切でないか判定
    • Emotion API - 画像から顔を認識し、喜怒哀楽などのスコアをつける
    • Custom Vision Service - Vision API をさらに学習させて特定用途向けにカスタマイズ
    • Video Indexer - 動画を分析
  • 音声 (Voice)
    • Translator Speech API - シンプルな REST API 呼び出しでリアルタイムの音声翻訳を簡単に実行
    • Speaker Recognition API - 音声からを使用して個々の話者を識別および認証
    • Bing Speech API - 音声→テキスト、テキスト→音声
    • Custom Speech Service - 話し方、背景ノイズ、ボキャブラリといった音声認識の障壁を打開
  • 言語 (Language)
    • Language Understanding Intelligent Service (LUIS) - 利用者が入力した文字列を、アプリが解釈する Language Understanding Intelligent Service
    • Text Analytics API - センチメントとトピックを簡単に評価して、ユーザーが求めるものを理解
    • Bing Spell Check API - 文章のスペルミスの検知と修正案の提示 Bing Spell Check API
    • Translator Text API - シンプルな REST API 呼び出しで機械翻訳を簡単に実行
    • Web Language Model API - Web 規模のデータで学習した予測言語モデルを活用
    • Linguistic Analysis API - 複雑な言語概念を単純化しテキストを解析しましょう
  • 知識 (Knowledge)
    • Recommendations API - 顧客が欲しい品物を予測して推奨
    • Academic Knowledge API - Microsoft Academic Graph の豊富な教育的コンテンツを利用
    • Knowledge Exploration Service - 自然言語入力による構造化データの対話型検索を実現
    • QnA Maker API - 情報から会話形式のナビゲーションしやすい回答を抽出
    • Entity Linking Intelligence Service API - 名前付きエンティティ認識とあいまいさ排除でアプリのデータ リンクをパワーアップしましょう
    • Custom Decision Service - クラウドべースの文脈に応じた意思決定 API。学習により精度が高まります
  • 検索 (Search)
    • Bing Autosuggest API - 検索フォームに「くら」まで入力すると「クラウド」「くら寿司」が出て来るアレが実現できる。Bing Autosuggest API
    • Bing Image Search API - 画像を検索してさまざまな情報を手に入れましょう
    • Bing News Search API - ニュースを検索して詳しい情報を手に入れましょう
    • Bing Video Search API - ビデオを検索してさまざまな情報を手に入れましょう
    • Bing Web Search API - 何十億もの Web ドキュメントから、より優れた検索結果を得る
    • Bing Custom Search API - 簡単に使用できる、広告なしの商用グレード検索ツールで、お好みの検索結果を得ることができます
    • Bing Entity Search API - Web からエンティティ情報を特定して追加することで、優れたエクスペリエンスを提供します
Computer Vision API
画像に写っている「もの」を検出 (例: 道路の向こうに赤い自動車がいる)。 具体的には、API に対して画像を読み込ませると、 下記のような解析結果が返ってくる。さまざまなタグ、1文で画像を説明するキャプション、成人向けコンテンツの判定と信頼度、わいせつスコア、写真に写っている顔の性別/年齢推定と、顔の範囲。
    "タグ": [
    { "name": "person", "confidence": 0.9976948 },
    { "name": "clothing", "confidence": 0.978219867 },
    { "name": "suit", "confidence": 0.8453893 },
    { "name": "dressed", "confidence": 0.4022209 },
    { "name": "necktie", "confidence": 0.35747987 } ],
    "キャプション": [ { "text": "Hitoshi Matsumoto, Masatoshi Hamada are posing for a picture", "confidence": 0.984688342 } ] }
    成人向けコンテンツ: false
    成人スコア: 0.009529796
    わいせつ性: false
    わいせつスコア: 0.0110129658
    顔	[
    { "age": 40, "gender": "Male", "faceRectangle": { "top": 141, "left": 186, "width": 124, "height": 124 } },
    { "age": 57, "gender": "Male", "faceRectangle": { "top": 86, "left": 20, "width": 121, "height": 121 } }
    ]
その他、下記の機能がある。
  • OCR による画像から印刷された文字の取得。
  • 画像からの手書き文字の取得。
  • サムネイルの生成 (どこを切り出すか)。
Computer Vision API は、
Cognitive Services のひとつである。
Container Instances
Container Registry
Container Service (AKS)
Content Delivery Network
Content Moderator
Content Protection
Custom Decision Service
Custom Speech Service
Custom Vision Service
Data Catalog
Data Factory
Data Lake Analytics
Data Lake Store
Disk Storage
Dynamics 365 for Customer Insights
Emotion API
Encoding
Entity Linking Intelligence Service API
Event Grid
Event Hubs
ExpressRoute
Face API
画像から顔を検出、識別、分析、グループ化、タグ付けができる。

顔の分析結果として、下記のような情報を得ることができる。

  • 顔の位置 (XY座標)
  • 髪情報 (ハゲ度・髪の色)
  • 顔の向き (ピッチ・ロール・ヨー)
  • 性別・年齢
  • 感情 (喜び:信頼度 93.9%、怒り:信頼度 3.7% など)
  • フェイスメイク、リップメイク
  • 目や口が閉じているか
  • アクセサリ (メガネ: 信頼度 99% など)
  • 瞳・鼻・口などのパーツの位置 (XY座標)

具体的なレスポンスの例は下記。

    {
      "faceId": "831a8fb4-3536-41a3-b2a6-d00d0db2ecdc",
      "faceRectangle": {
        "top": 128, "left": 459, "width": 224, "height": 224
      },
      "faceAttributes": {
        "hair": {
          "bald": 0.0,
          "invisible": false,
          "hairColor": [
            {"color": "brown", "confidence": 1.0},
            {"color": "blond", "confidence": 0.69},
          ]
        },
        "smile": 0.939,
        "headPose": {"pitch": 0.0, "roll": -16.9, "yaw": 16.7},
        "gender": "female",
        "age": 23.4,
        "facialHair": {
          "moustache": 0.0, "beard": 0.0, "sideburns": 0.0
        },
        "glasses": "ReadingGlasses",
        "makeup": {
          "eyeMakeup": true, "lipMakeup": true
        },
        "emotion": {"anger": 0.037, "fear": 0.001, "happiness": 0.939},
        "occlusion": {
          "foreheadOccluded": false,
          "eyeOccluded": false,
          "mouthOccluded": false
        },
        "accessories": [{"type": "glasses", "confidence": 0.99}],
        "blur": {"blurLevel": "low", "value": 0.0},
        "exposure": {"exposureLevel": "goodExposure", "value": 0.48},
        "noise": {"noiseLevel": "low", "value": 0.0}
      },
      "faceLandmarks": {
        "pupilLeft": {"x": 504.8, "y": 206.8},
        "pupilRight": {"x": 602.5, "y": 178.4},
        "noseTip": {"x": 593.5, "y": 247.3},
        "mouthLeft": {"x": 529.8, "y": 300.5},
        "mouthRight": {"x": 626.0, "y": 277.3},
        "eyebrowLeftOuter": {"x": 461.0, "y": 186.8},
        "eyebrowLeftInner": {"x": 541.9, "y": 178.9},
      }
    }
  ]

顔検証として、2つの顔写真が同一人物であるかを表す信頼度のスコアを返す。

1つの顔写真を指定し、似ている写真を返す。

Face API は、
Cognitive Services のひとつである。
File Storage
Functions
HDInsight
HockeyApp
Insight & Analytics
IoT Hub
IoT Suite
Key Vault
Knowledge Exploration Service
Language Understanding Intelligent Service
人間がコンピュータに音声や文字列で指示を出すことを考えた場合、 例えば 「電気を付けて」「電気つけて」「ライトをつけて」「明かりをONにして」「明るくして」「蛍光灯を…」「LED を…」「暗い」「見えない」 などと様々な入力がありうる。

音声認識やチャットボットなどのアプリを開発する上で避けては通れない課題であるので、 Language Understanding Intelligent Service (LUIS) としてサービス化したものである。

まずは開発者が、「インテント」と「エンティティ」と定義する。 インテントとは「電気を付ける」「電気を消す」といったアクション (的なもの)。 エンティティとは、「ルームライト」「卓上蛍光灯」など、目的語 (的なもの)。 そして、さまざまな例文、「部屋を電気を付けて」「机の電気を付けて」「部屋を明るく」などを考えて、 どんどん入力していく。LUIS は、どれがインテントでどれがエンティティか推測してくれるが、 間違っていた場合は正しいインテント・エンティティを手で指定する。

こうやっていくと、機械学習でどんどん賢くなっていく、らしいですが、 あまりインテリジェント感は感じられないアプローチではある。

Language Understanding Intelligent Service (LUIS) は、Cognitive Services のひとつである。

Linguistic Analysis API
Live and On-demand Streaming
Load Balancer
Log Analytics
Logic Apps
Machine Learning
Managed Disks
Media Analytics
Media Services
Microsoft Azure Portal
Azure の管理画面のこと。

詳細は こちら

Mobile Apps
Multi-Factor Authentication
Network Watcher
Notification Hubs
Operations Management Suite
Protection & Recovery
QnA Maker API
Queue Storage

詳細は こちら

R Server for HDInsight
Recommendations API
Redis Cache
オンメモリなキャッシュサービスである Redis を、Azure 上で利用可能にしたマネージドサービス。 Standard や Premium プランを使用すると、レプリケーション・データ永続化等の機能が使える。
SAP HANA on Azure (L インスタンス)
Security & Compliance
SQL Data Warehouse
データウェアハウス (DWH) エンジン。DWH とは「データ倉庫」の意味で、数千万件や数億万件の売上データをどーんと突っ込んで、 年齢層や地域層ごとの分析ができたりする。その場その場で切り口を変えても動作するよう、いちいちインデックスなどを張ったりしなくても、 それなりに高速に動くようになっている。 SQL での分析が可能であるが、PowerBI などの BI ツールを用いると非エンジニアでも簡単にレポートを見ることができる。

詳細は こちら

SQL Database
マイクロソフトの RDBMS である SQL Server を Azure に乗っけたもの。

詳細は こちら

SQL Server Stretch Database
Scheduler
定期実行・または一度だけ実行するようなジョブ実行の起点となるアクションを起こす。 具体的には、「任意 URL に http/https リクエストを投げる」「Queue ストレージにキューを突っ込む」「Service Bus キューとトピックを呼び出す」のいずれか。リトライ回数指定が可能。 典型的な使い方は「WebApps にてアプリを構築し、その URL を叩く」「WebJob または Workerロールでキューを監視し、そのキューに Scheduler でキューを突っ込む」等ではなかろうか。 実行頻度は、ある任意時刻を起点として、N分おき/N時間おき/N日おき/Nヶ月おき のいずれか、といったかなりシンプルなものしか指定できない。cron で言うところの "0 9-23 * * *" といったちょっと凝った定義すらできない。 代替品は、Azure Automation か、App Service の Kudu (Internal WebJob Scheduler と呼ぶらしい)。
Security Center
Service Bus

メッセージング・キューサービス。

詳細は こちら

Service Fabric
Site Recovery
Speaker Recognition API
StorSimple
Storage
Azure Storage は、Azure のデータ永続化ストレージ基盤。 自動データ多重化が可能。 この基盤の上に、下記のような個別サービスが乗っかっている。
Stream Analytics
Table Storage
Text Analytics API
Time Series Insights
Traffic Manager
ロードバランサ。フェールオーバー、パフォーマンス、地理、加重ラウンドロビンというルーティング方法が準備されている。 接続先は Azure VM (仮想マシン)、Web Apps、Cloud Services が指定可能。 Traffic Manager の実体は DNS サーバであり、接続先の死活監視を行い、適切な CNAME を返すという動作であるため、 実際のリクエストやレスポンスは Traffic Manager を経由しない。
Translator Speech API
Translator Text API
VPN Gateway
Video API
Video Indexer
Virtual Machine Scale Sets
Virtual Machines
仮想マシン。いわゆる IaaS。 Linux や Windows サーバを立ち上げることができる。

詳細は こちら

Virtual Network
Visual Studio Team Services
Web Apps
Azure が提供する PaaS。環境構築不要で、Web アプリケーションをデプロイするだけで使える。 リモートデスクトップや ssh でログインすることはできない。 Web Apps は、App Service のサービス群のひとつである。
Web Language Model API
メモ: MySQL in-app、Azure IP Advantage、Azure Stack、Azure Information Protection、Azure Cost Management