Microsoft の公式大型技術カンファレンス『Microsoft Ignite 2019』が、アメリカで開催されました。
そこで実際にデリバーされた Azure 入門編セッション (英語) を、私が和訳して日本の『Microsoft Ignite The Tour Tokyo』で発表することになったので、その登壇資料をもとにした記事をここに書いて公開します。
また、スライドを和訳したさい、(スペースが空いていれば) なるべく原文も併記するようにしています。
Christina Warren さんによるオリジナルのセッション (英語)『Discovering Microsoft Azure』の動画は こちら で見られます!
→ https://myignite.techcommunity.microsoft.com/sessions/83201
ちなみに、この記事に書いてあることは、
マイクロソフト公式の無料オンライン学習サイト『 Microsoft Learn 』の、
こちらのコースにもよくまとまっているので、
ぜひ自主学習にどうぞ!
→ https://docs.microsoft.com/ja-jp/users/msignite2019
(スライドは こちら)
もくじ
あまりに長くなってしまったので、
前編後編に分けました。
-
前編:「クラウドについて」 (前回の記事)
- 「クラウド コンピューティング」
- 「IaaS」, 「PaaS」, 「SaaS」
- クラウドへの移行
- 「Lift and Shift」
- 「クラウド ネイティブ」
-
後編:「マイクロソフトのクラウド Azure について」(← この記事)
- 「Microsoft Azure」 とは
- Azure のサービスの種類(カテゴリ)
- ID 管理サービス「Azure Active Directory」
- 「リソースグループ」
- 「リソースプロパイダー」
- 「Azure リソースマネージャー」 (ARM)
- 「ARM テンプレート」
- 色々なスペックの仮想マシンのシリーズ
- 「コンテナ」
- 「Windows Server コンテナ」
- 「Hyper-V コンテナ」
- 「サーバーレス」-「Azure Functions」
- アプリのホスティングサービス「Azure App Service」
この記事では、後編の「マイクロソフトのクラウド Azure について」お話しします。
どんなサービスがあるのかな~って。
事前の注意
今回 Microsoft Azure にはこんなサービスがあるよ!~って紹介していますが、
このセッションだと、本当に一部しか触れられていません。(入門編だからかな)
他にも大量の AI サービスとか k8s のとか色々充実してるので、この記事だけではなく、色々他のも見てみてください!(とくに AI サービスについてはこのセッションでは一切触れられていない)
それでは本題に入ります。
Microsoft Azure について
前述の通り、Microsoft Azure (アジュール) とは、
マイクロソフトによる、 クラウド・コンピューティング・プラットフォーム です。
めっちゃ沢山サービスがありますね!ここに載っているのは一部だけで、実際もっとあります。とても巨大なエコシステムです。
Azure の全サービスが気になる方はこちらから!
とくに Azure 初めての方は混乱すると思うので、ここでは基本的な大カテゴリについてお話しします。
Azure のサービスのカテゴリ分け
Azure の提供するサービスは、いくつかのカテゴリに分類されます:
- Compute(コンピューティング)
- Networking(ネットワーク)
- Storage(ストレージ)
それぞれのカテゴリにどんなサービスがあるのか見てみましょう。
1. Azure の Compute (コンピューティング)のサービス
- VM 立てよう Azure Virtual Machines
- Windows と Linux
-
Azure Kubernetes service (AKS)
- ホストされている Kubernetes 環境を管理。
- コンテナー化されたアプリケーションを迅速かつ簡単にデプロイおよび管理できる
- サーバレスのサービス Azure Functions
- イベントドリブンのサーバレスコンピューティング
などなど
2. Azure の Networking(ネットワーク)のサービス
-
Azure Virtual Network
- Azure 上に構築出来る、仮想的なプライベートなネットワーク
- Azure VM を VPN に繋げる
-
Azure Load Balancer
- ロードバランサとは、Web サイトなどへのアクセスを各サーバに振り分けて負荷分散してくれるサービス。
- Azure Load Balancer はクラウドで提供されるロードバランサーで、簡単に負荷分散環境を構築することが可能
-
Azure Traffic Manager
- あるエンドポイントへのアクセスを、Azureリージョン全体に渡りネットワークトラフィックを分散できる
などなど
3. Azure の Storage(ストレージ)のサービス
-
Azure blob storage
- 動画、JSON、画像、IoT データなどのオブジェクトをストアする
-
Azure file storage
- ファイルをシェアするファイルサーバーとして使える
-
Azure table storage
- NoSQL の構造化データをクラウド内に格納するサービス
などなど
Azure Active Directory
Azure Active Directory (Azure AD) は、マルチテナントに対応したクラウドベースの ID およびアクセスの管理サービスです。
- 「認証」と「認可」の機能を提供するサービス
- ID 管理を一箇所にまとめる事ができる
- Azure や Office 365 で使われている
- 組織内のユーザーのすべての ID が含まれる
Azure のポータル画面 portal.azure.com
Azure のポータル画面はこのようになります。
左にメニューがポップアップします。(固定も可能)
左上の「リソースの作成」から (VM やサーバなど) リソースを作っていくことになります。
(セッションでは実際に動かすデモをしました)
どの Azure コンピューティングサービス使えばいい?
Compute service decision tree も和訳しました
覚えておきたい Azure リソース用語
覚えておくと便利な、リソース周りの Azure 用語をいくつかご紹介します。(本当はもっとたくさんあるけど、このセッションでは5つに絞ってご紹介しました)
01「リソース」
「リソース」とは、Azure で利用できる、管理可能なアイテムのこと。
VM (仮想マシン)、Web アプリ、データベースなど。
02「リソースグループ」
「リソースグループ」とは、複数のリソースを入れる箱。
うまくグループ分けして管理すると良い。私はプロジェクトごとに分けてる
03「リソースプロバイダー (Resource provider)」
「リソースプロバイダー (Resource provider)」とは、リソースを管理できるようにする API のようなもの。
よく見るリソースプロパイダーの例としては、以下のものがあります。
-
Microsoft.Compute
- VM のリソースを提供
-
Microsoft.Storage
- storage account のリソースを提供
-
Microsoft.Web
- web アプリに関連するリソースを提供
04「Azure リソースマネージャー (Resource Manager)」 (ARM)
「Azure Resource Manager (リソースマネージャー) 」(ARM)(アーム) は、Azure のデプロイおよび管理サービスです。
すべてのリソースをグループとしてまとめて、構築や管理、デプロイ、監視ができます。
Azure サブスクリプション内のリソースを作成、更新、および削除できる管理レイヤーを提供します。
アクセス制御、ロック、タグなどの管理機能を使用して、デプロイ後にリソースを保護および整理します。
公式ドキュメント: Azure Resource Manager のドキュメント
たとえば、私は普段は Azure ポータル画面でポチポチ Azure のリソース (立てた VM とか) を作成・管理していますが、
これはポータル画面が Azure Resource Manager を叩いているわけです。
一方、世の中は Infrastructure as Code の風潮でして、なんでもコードで管理したい!(便利だからね) ということで、この Azure のリソースを好きにいじれる Azure Resource Manager を CLI から (SDK を介し) 叩くこともできます。(上の図参照)
05「ARM テンプレート」
「ARM テンプレート (Azure Resource Manager Template) 」は、
JSON 形式のテンプレートで、
何のリソースをデプロイするかとかを管理できます。
公式ドキュメント:
→ Azure Resource Manager テンプレートの構造と構文の詳細 | Microsoft docs
ARM テンプレートの構造
ARM テンプレートの構造は、これが大きな枠組みです。
(それぞれの項目に具体的に何を入れるかは 公式ドキュメント を参照のこと。)
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "テンプレートのバージョン (1.0.0.0 など)",
"apiProfile": "",
"parameters": { リソースをデプロイするときにどのような値を入力できるかを指定 },
"variables": { 変数を定義したかったらここで定義する },
"functions": [ テンプレート内で使う独自の関数を定義 ],
"resources": [ デプロイやアップデートする Azure リソースを定義 ],
"outputs": { 出力されるアウトプットを指定。通常はデプロイされたリソースからの値を定義 }
}
Virtual Machine (仮想マシン)
Compute Options – 色々な VM のスペック
Deep Learning などで GPU ぶん回す人用の N シリーズなど。
メモリ 4 TB (テラバイト) の マシンなんてあるの!すごいなあ。
仮想マシンの立て方
当日は Linux (Ubuntu) の仮想マシンを立てるデモをしました。
GUI (Azure ポータル画面ポチポチ) と
Azure CLI (Cloud Shell) での
両方をやりました。
詳しいやり方はこちら → 「クイック スタート:Azure portal で Linux 仮想マシンを作成する」
CLI 版の詳しいやり方はこちら → 「クイック スタート:Azure CLI で Linux 仮想マシンを作成する」
デモ画面のキャプチャ
↓ 立てる VM サイズ選んでるところ
↓ 立てる VM のネットワーク設定を見てるところ
↓ ARM テンプレートも吐き出してくれるので、例えば全く同じ設定の VM を自動で量産することもできる
↓ デプロイ中
↓ Azure CLI で VM 立ててるところ
az vm create \
--resource-group AFUN10_chomado \
--name myVM \
--image UbuntuLTS \
--admin-username azureuser \
--generate-ssh-keys
サーバーレス
サーバーレスとは何か
スライドコピペ。(私の和訳の隣にオリジナルの英語をそのまま残しています)
Azure での サーバーレスのサービス
- Power Automate (以前の Microsoft Flow): 「承認」など、人の絡むアクションが得意。個人の生産性を上げるシステム間連携を作るのによく使われる。交通費の精算や、上長の承認を絡むものなど。 非開発者も開発者も誰でも使えるツール。O365 があれば使える
- Azure Logic Apps: IT部門やエンジニア向け。(Azure 上で動くので、Azure の面倒見れる人がマネージするのが良いため。) 売上データを本社へ連携するとか、商品の注文をどこかに送るとかの処理をノンコーディングで作ることができる。アプリケーションやWebサービスを結合して連携が可能。 Azure のサブスクリプションで作れる
- Azure Functions: 私の恋人。使いまくってる。推し。C# や Python, node.js などのコードを書いて、イベント駆動でローカルやクラウドなどで気軽に実行させられる。
Azure Functions はいいぞ。
スライドコピペ。(私の和訳の隣にオリジナルの英語をそのまま残しています)
アプリのホスティング
Azure App Service
- 私もよく ASP.NET 製の web アプリデプロイしてる。
- 裏側が Windows のも Linux のも使える。
- Web App もしくは Web App for Containers
- Visual Studio Code のエクステンションがある
スライドコピペ。(私の和訳の隣にオリジナルの英語をそのまま残しています)
復習しよう
この記事で書いたことは
マイクロソフト公式の無料オンライン学習サイト『 Microsoft Learn 』の
こちらのコースにもよくまとまっているので、
ぜひ自主学習にどうぞ!
→ https://docs.microsoft.com/ja-jp/users/msignite2019