「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>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]]が一貫した状態(順序、[[アクセス制御>#ba96d852]])で --ライフサイクル全体で繰り返し >デプロイできる。 -[[テンプレート>#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つのリソース グループに所属。 -管理操作の[[アクセス制御>#ba96d852]]スコープを設定できる。 -プラクティス --[[サイクル>#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] -[[Role Based Access Control (RBAC)]] *その他 [#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 **[[Role Based Access Control (RBAC)]] [#j93eaab5] **[[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]]