- 追加された行はこの色です。
- 削除された行はこの色です。
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
→ [[Azure Resource Manager (ARM)]]
-[[戻る>Azure Subscriptionの管理@エンプラ]]
* 目次 [#k4c086fe]
#contents
*概要 [#ed306dc3]
グループ化されたソリューション [[リソース>#c500a780]]をデプロイ、監視、管理する
*モデル [#bd8fe031]
-Azure ソリューションのデプロイと管理における方法
-新旧、2つのモデルがある。
--[[クラシック デプロイ>#i75362db]](旧)
--[[Resource Manager デプロイ>#qf6eca89]](新)
-2つのモデルに互換性はない。
-現在では、[[Resource Manager デプロイ>#qf6eca89]]が推奨される。
**2つのモデル [#i1b65f24]
***クラシック デプロイ(旧) [#i75362db]
-当初からのモデル
-各[[リソース>#c500a780]]が独立して存在
-関連[[リソース>#c500a780]]をまとめてグループ化する方法がない。
-デプロイには、すべての[[リソース>#c500a780]]を正しい順序で
--ポータル経由で個別に作成・削除
--作成・削除するスクリプトを作成して実行
>する必要があった。
-[[タグ>#l6352a6a]]などによって、グループ化された[[リソース>#c500a780]]の監視・請求の管理などができない。
-[[リソース>#c500a780]]に[[アクセス制御>#ba96d852]]を適用できない。
***Resource Manager デプロイ(新) [#qf6eca89]
-2014 年にResource Manager が導入され、[[リソース グループ>#f9664018]]の概念が追加された。
-グループ化されたソリューション [[リソース>#c500a780]]をデプロイ、監視、管理する。
-ソリューションを、[[リソース グループ>#f9664018]]という単位で、
--[[リソース>#c500a780]]が一貫した状態(順序、アクセス制御)で
--ライフサイクル全体で繰り返し
>デプロイできる。
-[[テンプレート>#acb11ff6]]
--スクリプトではなく、[[テンプレート>#acb11ff6]]という、[[宣言型構文>#j9444a15]](JSON)で管理可能。
--ソリューションのインフラストラクチャ全体を 1 つの[[テンプレート>#acb11ff6]]で定義する必要は無い。~
[[リソース>#c500a780]] < [[テンプレート>#acb11ff6]] < [[リソース グループ>#f9664018]] < ソリューションのインフラストラクチャ
-[[タグ>#l6352a6a]]によって、グループ化された[[リソース>#c500a780]]の監視・請求の管理が可能。
-[[リソース グループ>#f9664018]]に属するすべての[[リソース>#c500a780]]に[[アクセス制御>#ba96d852]]を適用できる。
**モデルのサポート [#u4c52516]
***サポートされない。 [#y864d852]
Cloud Services (SaaS)では、新旧、どちらのモデルもサポートされない。
***両方サポートされる。 [#jbd3ef23]
-[[リソース>#c500a780]]
--仮想マシン
--ストレージ アカウント
--仮想ネットワーク
-[[リソース>#c500a780]]作成時のモデルが、
--[[クラシック デプロイ>#i75362db]]の場合、~
クラシック ポータルの操作でそのリソースを操作し続ける必要
--[[Resource Manager デプロイ>#qf6eca89]]の場合、~
Resource Manager ポータルの操作を使用し続ける必要がある。
***Resource Manager がサポートされる。 [#h0915bee]
上記以外の[[リソース>#c500a780]]は、[[Resource Manager デプロイ>#qf6eca89]]のモデルがサポートされる。
*用語 [#c42e14a1]
**リソース [#c500a780]
Azure を通じて管理できる要素。
-リソース
-仮想マシン
-ストレージ アカウント
-仮想ネットワーク
-Web アプリ
-データベース
-データベース サーバー
-サード パーティのサービス
-, etc.
**リソース グループ [#f9664018]
-Azure ソリューションの関連する[[リソース>#c500a780]]を保持するコンテナー。
-リソース グループには(グループとして管理したい)[[リソース>#c500a780]]を格納する。
-[[タグ>#l6352a6a]]を適用することで、[[リソース>#c500a780]]を論理的に整理できる。
-1つの[[リソース>#c500a780]]は1つのリソース グループに所属。
-管理操作のアクセス制御スコープを設定できる。
-プラクティス
--[[サイクル>#be981023]]が別の場合は、リソース グループを分割する。
--[[依存関係>#d69a9c7b]]により、上記で分割したリソース グループ間で連携ができる。
--以下の項目からは自由
---リソース グループへの[[リソース>#c500a780]]追加、削除、移動のタイミング
---リージョン(なお、コンプライアンス上の理由から、データは特定のリージョンに格納)
**リソース プロバイダ [#e403ab83]
-デプロイおよび管理できる[[リソース>#c500a780]]を提供するサービス。
-デプロイされた[[リソース>#c500a780]]を利用するための操作を提供する。
-一般的なリソース プロバイダ
--Microsoft.Compute:仮想マシン
--Microsoft.Storage:ストレージ アカウント
--Microsoft.Web:Web アプリに関連したリソース
--, etc.
-[[リソース>#c500a780]]の種類を表す名前は、
--{resource-provider}/{resource-type} のような形式
**宣言型構文 [#j9444a15]
-一連のプログラミング コマンドを記述しなくても、~
"作成しようとしているもの" を明確に宣言することのできる構文。
-宣言型構文の例
--[[Resource Manager テンプレート>#acb11ff6]]
*機能 [#db07b885]
**テンプレート [#acb11ff6]
-[[リソース>#c500a780]]を一貫性のある形で繰り返しデプロイするための[[宣言型>#j9444a15]]のテンプレート。
-[[リソース グループ>#f9664018]]へのデプロイ対象となる[[リソース>#c500a780]]を定義する JSON ファイル。
-デプロイ対象[[リソース>#c500a780]]間の[[依存関係>#d69a9c7b]]も、このテンプレートによって定義される。
-Resource Manager はテンプレートを解析し、~
その構文を適切な[[リソース プロバイダ>#e403ab83]]の REST API 操作に変換する。
-既存の[[リソース グループ>#f9664018]]のテンプレートの取得
--[[リソース グループ>#f9664018]]の現在の状態をエクスポート
--特定のデプロイに使用されたテンプレートを表示
**タグ [#l6352a6a]
-要件に合わせて[[リソース>#c500a780]]を論理的に分類・整理できる。
--管理:タグを共有する[[リソース>#c500a780]]の視覚化(役割、所属)
--課金:タグを共有する[[リソース>#c500a780]]のコストを表示できる。
-独自のタグ分類法を作成できる。
**依存関係 [#d69a9c7b]
-他の[[リソース>#c500a780]]の機能がないと[[リソース>#c500a780]]を作成できないときに、依存関係を設定する。
-デプロイ後にやり取りするだけの[[リソース>#c500a780]]は(、作成できない訳ではないので)、依存関係を設定しない。
-依存関係を設定することで、
--Resource Manager により、[[リソース>#c500a780]]が依存する順にデプロイされる。
--Resource Manager では、[[テンプレート>#acb11ff6]]の検証中に循環依存関係を識別する。
-依存関係の定義の方法には、
--[[dependsOn 要素>#p40387fb]](明示的な依存関係)
--[[reference 関数>#m240f874]](暗黙的な依存関係)
>がある。
-同じ依存リソースに、[[dependsOn 要素>#p40387fb]]と[[reference 関数>#m240f874]]の両方の要素を使用する必要は無いが、~
不要な依存関係が追加されないように、できる限り、[[reference 関数>#m240f874]]のみを使用する。
--明示的に設定しなくても連鎖的な依存関係になるようにする。
--デプロイの前に値を指定できる場合は、依存関係なしで[[リソース>#c500a780]]をデプロイする。
***dependsOn 要素(明示的) [#p40387fb]
-[[テンプレート>#acb11ff6]]内で使用する明示的な依存関係。
-1 つの[[リソース>#c500a780]]が 1 つ以上の[[リソース>#c500a780]]に依存していることをコンマ区切りリストで定義
-並列でデプロイされないため、デプロイ時間に影響を及ぼす可能性がある。
-子[[リソース>#c500a780]]の定義
--resources プロパティを使用する。
--子[[リソース>#c500a780]]の定義の深さは 5 レベルまで。
***reference 関数(暗黙的) [#m240f874]
-暗黙的な依存関係
-他の JSON の名前と値のペアまたはランタイム リソースからその値を導出する参照式。
-これにより、ある[[リソース>#c500a780]]が別の[[リソース>#c500a780]]に依存することを暗黙的に宣言できる。
***リソース リンク [#i1019d79]
リソースが相互にどのように接続されているかをドキュメント化する。
**アクセス制御 [#ba96d852]
組織に対する特定アクションにアクセスできるユーザをロールベースのアクセス制御 (RBAC)で制御できる。
***ロール定義 [#f6c3255d]
-アクセス許可セットを記述
-4つのプラットフォーム ロール
--所有者~
アクセス権を含めすべてを管理できる。
--共同作業者~
アクセス権以外のすべてを管理できる。
--閲覧者~
すべてを閲覧できるが、変更はできない。
--ユーザー アクセス管理者~
Azure リソースへのユーザー アクセスを管理できます。
-リソース固有ロール
--仮想マシンの共同作業者
---仮想マシンを管理できるが、
---仮想マシンのアクセス許可は設定できない。
---接続先の仮想ネットワークまたはストレージ アカウントの管理はできない。
--ネットワークの共同作業者
---すべてのネットワーク リソースを管理できるが、
---ネットワーク リソースのアクセス許可は設定できない。
--ストレージ アカウントの共同作業者
---ストレージ アカウントを管理できるが、
---ストレージ アカウントのアクセス許可は設定できない。
--SQL Server の共同作業者
---SQL サーバーおよびデータベースを管理できるが、
---そのセキュリティ関連ポリシーは設定できない。
--Web サイトの共同作業者
---Web サイトを管理できるが、
---接続されている Web プランは設定できない。
***ロール割り当て [#dc597603]
-特定のスコープ
--サブスクリプション
--[[リソース グループ>#f9664018]]
--または[[リソース>#c500a780]]
>の ID (ユーザーまたはグループ) に定義を関連付ける。
-この割り当ては、下位のスコープに継承される。
*その他 [#l13b8607]
**管理レイヤー [#v6cff5be]
-Azure PowerShell
-Azure CLI(Azure Command Lines、linux環境などから使う)
-Azure Portal
-REST API
-開発ツール
**サイクル [#be981023]
-ライフ サイクル
-デプロイ サイクル
が別であれな、別の[[リソース グループ>#f9664018]]に含める。
*参考 [#hbf918d8]
-Azure Resource Manager のドキュメント - チュートリアル、API リファレンス~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/
-Azure リソースの複数インスタンスのデプロイ~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-create-multiple
**リソース プロバイダ [#i720155f]
-Azure リソース プロバイダーとリソースの種類~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-supported-services
**テンプレート [#y769210b]
-Azure Resource Manager テンプレートをエクスポートする~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-export-template
-初めての Azure Resource Manager テンプレートを作成する~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-create-first-template
-複雑なソリューション向け Azure テンプレートの設計~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/best-practices-resource-manager-design-templates
-Azure Resource Manager テンプレートのリソースの定義~
https://docs.microsoft.com/ja-jp/azure/templates/
***入れ子/ネスト [#oa7a4ccc]
-Azure デプロイ用のリンク テンプレート(入れ子/ネスト)~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-linked-templates
***タグ [#s959678d]
-論理的に整理するための Azure リソースのタグ付け~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-using-tags
***依存関係 [#md593160]
-Azure リソースのデプロイ順序の設定(依存関係)~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-define-dependencies
-Azure Resource Manager テンプレートの関数 - リソース~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-group-template-functions-resource#reference
**アクセス制御 [#lceb9eab]
-Azure Portal におけるロールベースのアクセス制御~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-control-configure
-Actions と NotActions - Azure ロールベースのアクセス制御 (RBAC)~
https://docs.microsoft.com/ja-jp/azure/active-directory/role-based-access-built-in-roles
**[[Network Security Group (NSG)]] [#u59301ee]
**Resource Manager デプロイとクラシック デプロイ [#d186beef]
-Resource Manager デプロイとクラシック デプロイ~
https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/resource-manager-deployment-model
-クラシック仮想ネットワークを Azure Resource Manager VNet に接続する: ポータル~
https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-connect-different-deployment-models-portal
***移行 [#z716992e]
-プラットフォームでサポートされているクラシックからAzure Resource Manager への
--移行に関する技術的な詳細~
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/migration-classic-resource-manager-deep-dive
--IaaS リソースの移行~
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/migration-classic-resource-manager-overview
---Azure PowerShell を使用して移行~
https://docs.microsoft.com/ja-jp/azure/virtual-machines/windows/migration-classic-resource-manager-ps
---Azure CLI を使用して移行~
https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/migration-classic-resource-manager-cli
----
Tags: [[:インフラストラクチャ]], [[:クラウド]], [[:Azure]]