Azure Resource Manager の概要Azure Resource Manager overview

アプリケーションのインフラストラクチャは通常、仮想マシン、ストレージ アカウント、仮想ネットワーク、Web アプリ、データベース、データベース サーバー、サード パーティのサービスなど、複数のコンポーネントで構成されます。The infrastructure for your application is typically made up of many components – maybe a virtual machine, storage account, and virtual network, or a web app, database, database server, and third-party services. これらのコンポーネントは別々のエンティティではなく、1 つのエンティティの中で互いに関連付けられ相互依存しています。You may not see these components as separate entities, instead you see them as related and interdependent parts of a single entity. これらのコンポーネントを、1 つのグループとしてデプロイ、管理、および監視するのが好ましいです。You want to deploy, manage, and monitor them as a group. Azure Resource Manager を使用すると、ソリューション内の複数のリソースを 1 つのグループとして作業できます。Azure Resource Manager enables you to work with the resources in your solution as a group. ソリューションのこれらすべてのリソースを、1 回の連携した操作でデプロイ、更新、または削除できます。You can deploy, update, or delete all the resources for your solution in a single, coordinated operation. デプロイにはテンプレートを使用しますが、このテンプレートは、テスト、ステージング、運用環境などのさまざまな環境に使用できます。You use a template for deployment and that template can work for different environments such as testing, staging, and production. Resource Manager には、デプロイ後のリソースの管理に役立つ、セキュリティ、監査、タグ付けの機能が用意されています。Resource Manager provides security, auditing, and tagging features to help you manage your resources after deployment.

一貫性のある管理レイヤーConsistent management layer

Resource Manager では、Azure PowerShell、Azure CLI、Azure portal、REST API、およびクライアント SDK を通じてタスクを実行する一貫性のある管理レイヤーを提供します。Resource Manager provides a consistent management layer to perform tasks through Azure PowerShell, Azure CLI, Azure portal, REST API, and client SDKs. Azure portal で利用できるすべての機能は、Azure PowerShell、Azure CLI、Azure REST API、およびクライアント SDK からも利用できます。All capabilities that are available in the Azure portal are also available through Azure PowerShell, Azure CLI, the Azure REST APIs, and client SDKs. API を介して最初にリリースされた機能は、最初のリリースから 180 日以内にポータルに表示されます。Functionality initially released through APIs will be represented in the portal within 180 days of initial release.

自分にとって最適なツールと API を選択してください。これらは同じ機能を備えており、一貫性のある結果を提供します。Choose the tools and APIs that work best for you - they have the same capability and provide consistent results.

次の画像では、すべてのツールが同じ Azure Resource Manager API とやり取りする方法を示します。The following image shows how all the tools interact with the same Azure Resource Manager API. この API は、要求の認証と承認を行う Resource Manager サービスに要求を渡します。The API passes requests to the Resource Manager service, which authenticates and authorizes the requests. 次に Resource Manager は、適切なリソース プロバイダーに要求をルーティングします。Resource Manager then routes the requests to the appropriate resource providers.

Resource Manager の要求モデル

用語集Terminology

Azure Resource Manager には、初めて使う方にとって、あまり馴染みのない用語がいくつか存在します。If you're new to Azure Resource Manager, there are some terms you might not be familiar with.

  • リソース - Azure を通じて管理できる要素。resource - A manageable item that is available through Azure. 一般的なリソースとしては、仮想マシン、ストレージ アカウント、Web アプリ、データベース、仮想ネットワークなどがありますが、他にもさまざまなリソースが存在します。Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more.
  • リソース グループ - Azure ソリューションの関連するリソースを保持するコンテナー。resource group - A container that holds related resources for an Azure solution. リソース グループには、ソリューションのすべてのリソースか、グループとして管理したいリソースのみを含めることができます。The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. 組織のニーズに合わせてリソースをリソース グループに割り当てる方法を指定してください。You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization. リソース グループ」を参照してください。See Resource groups.
  • リソース プロバイダー - Resource Manager を使用してデプロイおよび管理できるリソースを提供するサービスです。resource provider - A service that supplies the resources you can deploy and manage through Resource Manager. 各リソース プロバイダーは、デプロイされたリソースを利用するための操作を提供します。Each resource provider offers operations for working with the resources that are deployed. 一般的なリソース プロバイダーとしては、仮想マシン リソースを提供する Microsoft.Compute や、ストレージ アカウント リソースを提供する Microsoft.Storage、Web アプリに関連したリソースを提供する Microsoft.Web などがあります。Some common resource providers are Microsoft.Compute, which supplies the virtual machine resource, Microsoft.Storage, which supplies the storage account resource, and Microsoft.Web, which supplies resources related to web apps. リソース プロバイダー」を参照してください。See Resource providers.
  • Resource Manager テンプレート - リソース グループへのデプロイ対象となるリソースを定義する JavaScript Object Notation (JSON) ファイルです。Resource Manager template - A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a resource group. デプロイ対象リソース間の依存関係も、このテンプレートによって定義されます。It also defines the dependencies between the deployed resources. このテンプレートを使えば、リソースを一貫性のある形で繰り返しデプロイできます。The template can be used to deploy the resources consistently and repeatedly. テンプレートのデプロイ」を参照してください。See Template deployment.
  • 宣言型構文 - 一連のプログラミング コマンドを記述しなくても、"作成しようとしているもの" を明確に宣言することのできる構文です。declarative syntax - Syntax that lets you state "Here is what I intend to create" without having to write the sequence of programming commands to create it. 宣言型構文の例として、Resource Manager テンプレートがあります。The Resource Manager template is an example of declarative syntax. このファイルで、Azure にデプロイするインフラストラクチャのプロパティを定義します。In the file, you define the properties for the infrastructure to deploy to Azure.

Resource Manager には、いくつかの利点がありますThe benefits of using Resource Manager

リソース マネージャーには、いくつかの利点があります。Resource Manager provides several benefits:

  • ソリューションのリソースを個別に処理するのではなく、すべてのリソースをグループとしてデプロイ、管理、監視できます。You can deploy, manage, and monitor all the resources for your solution as a group, rather than handling these resources individually.
  • ソリューションを開発のライフサイクル全体で繰り返しデプロイできます。また、常にリソースが一貫した状態でデプロイされます。You can repeatedly deploy your solution throughout the development lifecycle and have confidence your resources are deployed in a consistent state.
  • スクリプトではなく宣言型のテンプレートを使用してインフラストラクチャを管理できます。You can manage your infrastructure through declarative templates rather than scripts.
  • 正しい順序でデプロイされるようにリソース間の依存性を定義できます。You can define the dependencies between resources so they're deployed in the correct order.
  • ロールベースのアクセス制御 (RBAC) が管理プラットフォームにネイティブ統合されるため、リソース グループのすべてのサービスにアクセス制御を適用できます。You can apply access control to all services in your resource group because Role-Based Access Control (RBAC) is natively integrated into the management platform.
  • タグをリソースに適用し、サブスクリプションのすべてのリソースを論理的に整理できます。You can apply tags to resources to logically organize all the resources in your subscription.
  • 同じタグを共有するリソース グループのコストを表示することで、組織の課金をわかりやすくすることができます。You can clarify your organization's billing by viewing costs for a group of resources sharing the same tag.

ガイダンスGuidance

次の推奨事項は、ソリューションを操作する際に Resource Manager を最大限に活用するのに役立ちます。The following suggestions help you take full advantage of Resource Manager when working with your solutions.

  1. インフラストラクチャを定義してデプロイする場合は、命令型コマンドではなく、Resource Manager テンプレートにある宣言型構文を使用します。Define and deploy your infrastructure through the declarative syntax in Resource Manager templates, rather than through imperative commands.
  2. デプロイと構成の手順すべてをこのテンプレートで定義します。Define all deployment and configuration steps in the template. ソリューションの設定に手動操作は必要ありません。You should have no manual steps for setting up your solution.
  3. アプリやコンピューターの開始または停止など、リソースの管理には命令型コマンドを実行します。Run imperative commands to manage your resources, such as to start or stop an app or machine.
  4. リソース グループ内の同じライフサイクルでリソースを調整します。Arrange resources with the same lifecycle in a resource group. リソースのその他すべての整理には、タグを使用します。Use tags for all other organizing of resources.

企業が Resource Manager を使用してサブスクリプションを効果的に管理する方法については、「Azure enterprise scaffold - prescriptive subscription governance (Azure エンタープライズ スキャフォールディング - サブスクリプションの規範的な管理)」を参照してください。For guidance on how enterprises can use Resource Manager to effectively manage subscriptions, see Azure enterprise scaffold - prescriptive subscription governance.

グローバル Azure、Azure ソブリン クラウド、Azure Stack で使用できる Resource Manager テンプレートの作成に関する推奨事項については、「クラウドの一貫性のための Azure Resource Manager テンプレートを開発する」をご覧ください。For recommendations on creating Resource Manager templates that you can use across global Azure, Azure sovereign clouds, and Azure Stack, see Develop Azure Resource Manager templates for cloud consistency.

クイック スタートとチュートリアルQuickstarts and tutorials

次のクイック スタートとチュートリアルを使用して、Resource Manager テンプレートの開発方法を学ぶことができます。Use the following quickstarts and tutorials to learn how to develop resource manager templates:

  • クイック スタートQuickstarts

    タイトルTitle 説明Description
    Azure Portal の使用Use the Azure portal ポータルを使用してテンプレートを生成します。また、テンプレートを編集してデプロイするプロセスについて説明しています。Generate a template using the portal, and understand the process of editing and deploying the template.
    Visual Studio Code を使用するUse Visual Studio Code Visual Studio Code を使用してテンプレートを作成および編集します。また、Azure Cloud Shell を使用してテンプレートをデプロイする方法を説明しています。Use Visual Studio Code to create and edit templates, and how to use the Azure Cloud shell to deploy templates.
    Visual Studio を使用するUse Visual Studio Visual Studio を使用してテンプレートを作成、編集、デプロイします。Use Visual Studio to create, edit, and deploy templates.
  • チュートリアルTutorials

    タイトルTitle 説明Description
    テンプレート リファレンスの利用Utilize template reference テンプレートを開発するためにテンプレート リファレンス ドキュメントを利用します。Utilize the template reference documentation to develop templates. このチュートリアルでは、ストレージ アカウントのスキーマを確認し、その情報を使用して、暗号化されたストレージ アカウントを作成します。In the tutorial, you find the storage account schema, and use the information to create an encrypted storage account.
    複数のインスタンスの作成Create multiple instances Azure リソースの複数のインスタンスを作成します。Create multiple instances of Azure resources. このチュートリアルでは、ストレージ アカウントの複数のインスタンスを作成します。In the tutorial, you create multiple instances of storage account.
    リソースのデプロイ順序の設定Set resource deployment order リソースの依存関係を定義します。Define resource dependencies. このチュートリアルでは、仮想ネットワーク、仮想マシン、および依存する Azure リソースを作成します。In the tutorial, you create a virtual network, a virtual machine, and the dependent Azure resources. 依存関係を定義する方法を説明しています。You learn how the dependencies are defined.
    使用条件Use conditions いくつかのパラメーター値に基づいてリソースをデプロイします。Deploy resources based on some parameter values. このチュートリアルでは、新しいストレージ アカウントを作成するか、パラメーターの値に基づいて既存のストレージ アカウントを使用するためのテンプレートを定義します。In the tutorial, you define a template to create a new storage account or use an existing storage account based on the value of a parameter.
    キー コンテナーの統合Integrate key vault Azure Key Vault からシークレット/パスワードを取得します。Retrieve secrets/passwords from Azure Key Vault. このチュートリアルでは、仮想マシンを作成します。In the tutorial, you create a virtual machine. 仮想マシンの管理者のパスワードは、キー コンテナーから取得されます。The virtual machine administrator password is retrieved from a Key Vault.
    リンク済みテンプレートを作成するCreate linked templates テンプレートをモジュール化し、テンプレートから他のテンプレートを呼び出します。Modularize templates, and call other templates from a template. このチュートリアルでは、仮想ネットワーク、仮想マシン、および依存するリソースを作成します。In the tutorial, you create a virtual network, a virtual machine, and the dependent resources. 依存するストレージ アカウントは、リンクされたテンプレートで定義されます。The dependent storage account is defined in a linked template.
    仮想マシン拡張機能のデプロイDeploy virtual machine extensions 拡張機能を使用して、デプロイ後タスクを実行します。Perform post-deployment tasks by using extensions. このチュートリアルでは、仮想マシンに Web サーバーをインストールするために、カスタム スクリプト拡張機能をデプロイします。In the tutorial, you deploy a customer script extension to install web server on the virtual machine.
    SQL 拡張機能のデプロイDeploy SQL extensions 拡張機能を使用して、デプロイ後タスクを実行します。Perform post-deployment tasks by using extensions. このチュートリアルでは、仮想マシンに Web サーバーをインストールするために、カスタム スクリプト拡張機能をデプロイします。In the tutorial, you deploy a customer script extension to install web server on the virtual machine.
    安全なデプロイ プラクティスの使用Use safe deployment practices Azure Deployment Manager を使用します。Use Azure Deployment manager.

これらのチュートリアルは、Resource Manager テンプレート開発の主要な概念について、個別にまたはシリーズとして使用できます。These tutorials can be used individually, or as a series to learn the major Resource Manager template development concepts.

リソース グループResource groups

リソース グループを定義する際、次のような考慮すべき要素があります。There are some important factors to consider when defining your resource group:

  1. グループ内のすべてのリソースで、同じライフサイクルが共有される必要がある。All the resources in your group should share the same lifecycle. そのため、これらのリソースは一緒にデプロイ、更新、削除されます。You deploy, update, and delete them together. データベース サーバーなどの 1 つのリソースが、別のデプロイ サイクル上に存在する必要がある場合は、別のリソース グループに含めなければなりません。If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
  2. 各リソースは、1 つのリソース グループにのみ存在できる。Each resource can only exist in one resource group.
  3. リソースは、いつでもリソース グループに追加したり、削除できる。You can add or remove a resource to a resource group at any time.
  4. あるリソース グループから別のリソース グループへリソースを移動できる。You can move a resource from one resource group to another group. 詳細については、「 新しいリソース グループまたはサブスクリプションへのリソースの移動」を参照してください。For more information, see Move resources to new resource group or subscription.
  5. リソース グループには、別のリージョンに存在するリソースを含めることができる。A resource group can contain resources that reside in different regions.
  6. リソース グループを使用すると、管理操作のアクセス制御のスコープを設定できる。A resource group can be used to scope access control for administrative actions.
  7. リソースは、他のリソース グループ内のリソースとやり取りできる。A resource can interact with resources in other resource groups. このやり取りは、2 つの関連するリソースで同じライフサイクルが共有されていない場合によく見られます (データベースに接続する Web アプリなど)。This interaction is common when the two resources are related but don't share the same lifecycle (for example, web apps connecting to a database).

リソース グループを作成するとき、そのリソース グループの場所を指定する必要があります。When creating a resource group, you need to provide a location for that resource group. "なぜリソース グループに場所が必要なのか。You may be wondering, "Why does a resource group need a location? リソースがリソース グループとは異なる場所に存在してよいとしたら、いったいなぜリソース グループの場所が問題になるのか" と、疑問に思われるかもしれません。And, if the resources can have different locations than the resource group, why does the resource group location matter at all?" リソース グループには、リソースについてのメタデータが格納されます。The resource group stores metadata about the resources. そのため、リソース グループの場所を指定するとき、このメタデータが格納される場所を指定することになります。Therefore, when you specify a location for the resource group, you're specifying where that metadata is stored. コンプライアンス上の理由から、データは特定のリージョンに格納されるようにする必要があります。For compliance reasons, you may need to ensure that your data is stored in a particular region.

リソース プロバイダーResource providers

Azure サービスを扱うための一連のリソースと操作は、それぞれのリソース プロバイダーから得られます。Each resource provider offers a set of resources and operations for working with an Azure service. たとえば、キーとシークレットを格納するためには、 Microsoft.KeyVault リソース プロバイダーを使用します。For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. このリソース プロバイダーには、キー コンテナーを作成するための vaults という名前のリソースの種類が用意されています。This resource provider offers a resource type called vaults for creating the key vault.

リソースの種類を表す名前は、{resource-provider}/{resource-type} のような形式になります。The name of a resource type is in the format: {resource-provider}/{resource-type}. たとえば、キー コンテナーの種類は Microsoft.KeyVault/vaults です。For example, the key vault type is Microsoft.KeyVault/vaults.

リソースのデプロイを始める前に、利用可能なリソース プロバイダーを把握する必要があります。Before getting started with deploying your resources, you should gain an understanding of the available resource providers. リソース プロバイダーとリソースの名前がわかれば、Azure にデプロイするリソースの定義に役立ちます。Knowing the names of resource providers and resources helps you define resources you want to deploy to Azure. また、各リソースの種類の有効な場所と API のバージョンを把握しておく必要があります。Also, you need to know the valid locations and API versions for each resource type. 詳細については、「リソース プロバイダーと種類」を参照してください。For more information, see Resource providers and types.

テンプレートのデプロイTemplate deployment

Resource Manager では、Azure ソリューションのインフラストラクチャと構成を定義する JSON 形式のテンプレートを作成できます。With Resource Manager, you can create a template (in JSON format) that defines the infrastructure and configuration of your Azure solution. テンプレートを使えば、ソリューションをそのライフサイクル全体で繰り返しデプロイできます。また、常にリソースが一貫した状態でデプロイされます。By using a template, you can repeatedly deploy your solution throughout its lifecycle and have confidence your resources are deployed in a consistent state. ポータルからソリューションを作成すると、ソリューションには自動的にデプロイ テンプレートが含まれます。When you create a solution from the portal, the solution automatically includes a deployment template. 最初からテンプレートを作成する必要はありません。はじめにソリューション向けのテンプレートを使用して、それを特定のニーズに合わせてカスタマイズできます。You don't have to create your template from scratch because you can start with the template for your solution and customize it to meet your specific needs. サンプルについては、「クイック スタート: Azure portal を使用した Azure Resource Manager テンプレートの作成とデプロイ」を参照してください。For a sample, see Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal. リソース グループの現在の状態をエクスポートするか、特定のデプロイに使用されたテンプレートを表示することでも、既存のリソース グループのテンプレートを取得できます。You can also retrieve a template for an existing resource group by either exporting the current state of the resource group, or viewing the template used for a particular deployment. エクスポートしたテンプレートを表示すると、テンプレートの構文について理解するのに役立ちます。Viewing the exported template is a helpful way to learn about the template syntax.

テンプレートの形式とその構築方法については、「クイック スタート: Azure portal を使用した Azure Resource Manager テンプレートの作成とデプロイ」を参照してください。To learn about the format of the template and how you construct it, see Quickstart: Create and deploy Azure Resource Manager templates by using the Azure portal. リソースの種類に関して JSON 構文を確認するには、「Define resources in Azure Resource Manager templates (Azure Resource Manager テンプレートのリソースの定義)」を参照してください。To view the JSON syntax for resources types, see Define resources in Azure Resource Manager templates.

Resource Manager は他の要求と同様に、テンプレートを処理します (「一貫性のある管理レイヤー」の画像を参照してください)。Resource Manager processes the template like any other request (see the image for Consistent management layer). Resource Manager はテンプレートを解析し、その構文を適切なリソース プロバイダーの REST API 操作に変換します。It parses the template and converts its syntax into REST API operations for the appropriate resource providers. たとえば、Resource Manager が次のリソース定義を含むテンプレートを受け取ったとします。For example, when Resource Manager receives a template with the following resource definition:

"resources": [
  {
    "apiVersion": "2016-01-01",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {
    }
  }
]

Resource Manager は、この定義を次の REST API 操作に変換し、Microsoft.Storage リソース プロバイダーに送信します。It converts the definition to the following REST API operation, which is sent to the Microsoft.Storage resource provider:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2016-01-01
REQUEST BODY
{
  "location": "westus",
  "properties": {
  }
  "sku": {
    "name": "Standard_LRS"
  },   
  "kind": "Storage"
}

テンプレートとリソース グループをどのように定義するかは、ソリューションの管理方法に応じてユーザーが自由に決定できます。How you define templates and resource groups is entirely up to you and how you want to manage your solution. たとえば、1 つのリソース グループに 1 つのテンプレートで 3 層のアプリケーションをデプロイできます。For example, you can deploy your three tier application through a single template to a single resource group.

3 層のテンプレート

ただし、インフラストラクチャ全体を 1 つのテンプレートで定義する必要はありません。But, you don't have to define your entire infrastructure in a single template. 多くの場合、対象を絞って目的を特化した一連のテンプレートにデプロイの要件を分類することが合理的です。Often, it makes sense to divide your deployment requirements into a set of targeted, purpose-specific templates. これらのテンプレートは、さまざまなソリューションで簡単に再利用できます。You can easily reuse these templates for different solutions. 特定のソリューションをデプロイするには、必要なすべてのテンプレートをリンクするマスター テンプレートを作成します。To deploy a particular solution, you create a master template that links all the required templates. 次の画像は、入れ子になった 3 つのテンプレートを含む親テンプレートを利用して 3 層のソリューションをデプロイする方法を示しています。The following image shows how to deploy a three tier solution through a parent template that includes three nested templates.

入れ子になったテンプレートの層

層ごとに異なるライフサイクルを希望する場合は、3 層を個別のリソース グループにデプロイできます。If you envision your tiers having separate lifecycles, you can deploy your three tiers to separate resource groups. リソースは、他のリソース グループ内のリソースにリンクされることもあります。Notice the resources can still be linked to resources in other resource groups.

テンプレートの層

入れ子になったテンプレートについては、「Azure Resource Manager でのリンクされたテンプレートの使用」を参照してください。For information about nested templates, see Using linked templates with Azure Resource Manager.

依存関係は Azure Resource Manager によって分析され、確実に正しい順序でリソースが作成されます。Azure Resource Manager analyzes dependencies to ensure resources are created in the correct order. リソースが別のリソースの値に依存する場合 (ディスクのストレージ アカウントを必要とする仮想マシンなど) は、依存関係を設定します。If one resource relies on a value from another resource (such as a virtual machine needing a storage account for disks), you set a dependency. 詳細については、「 Azure Resource Manager のテンプレートでの依存関係の定義 」に関するページを参照してください。For more information, see Defining dependencies in Azure Resource Manager templates.

インフラストラクチャの更新にも、テンプレートを使用することができます。You can also use the template for updates to the infrastructure. たとえば、ソリューションにリソースを追加したり、既にデプロイされたリソースに構成ルールを追加したりできます。For example, you can add a resource to your solution and add configuration rules for the resources that are already deployed. テンプレートでリソースの作成を指定した際、そのリソースが既に存在する場合は、Azure Resource Manager では、新しい資産を作成する代わりに更新が実行されます。If the template specifies creating a resource but that resource already exists, Azure Resource Manager performs an update instead of creating a new asset. Azure Resource Manager では、既存の資産が、新しい資産と同じ状態になるよう更新されます。Azure Resource Manager updates the existing asset to the same state as it would be as new.

Resource Manager では、セットアップ時に含まれていなかった特定ソフトウェアのインストールなど、追加の操作が必要なシナリオのための拡張機能を使用できます。Resource Manager provides extensions for scenarios when you need additional operations such as installing particular software that isn't included in the setup. DSC、Chef、または Puppet などの構成管理サービスを既にご利用の場合は、拡張機能を使用すれば、引き続きそのサービスで作業ができます。If you're already using a configuration management service, like DSC, Chef or Puppet, you can continue working with that service by using extensions. 仮想マシンの拡張機能については、「仮想マシンの拡張機能とその機能について」を参照してください。For information about virtual machine extensions, see About virtual machine extensions and features.

最後に、テンプレートは、アプリのソース コードの一部になります。Finally, the template becomes part of the source code for your app. テンプレートはソース コード リポジトリにチェックインして、アプリの変更に合わせて更新できます。You can check it in to your source code repository and update it as your app evolves. テンプレートは Visual Studio から編集できます。You can edit the template through Visual Studio.

テンプレートを定義した後で、リソースを Azure にデプロイできます。After defining your template, you're ready to deploy the resources to Azure. リソースのデプロイに使用するコマンドについては、以下を参照してください。For the commands to deploy the resources, see:

安全なデプロイ プラクティスSafe deployment practices

Azure に複雑なサービスをデプロイするときには、サービスを複数のリージョンにデプロイし、次のステップに進む前に正常性チェックする必要がある場合があります。When deploying a complex service to Azure, you might need to deploy your service to multiple regions, and check its health before proceeding to the next step. サービスの段階的なロールアウトをうまく調整するには、Azure Deployment Manager を使用します。Use Azure Deployment Manager to coordinate a staged rollout of the service. サービスのロールアウトを段階的に行えば、すべてのリージョンにサービスがデプロイされる前に潜在的な問題を見つけることができます。By staging the rollout of your service, you can find potential problems before it has been deployed to all regions. これらの用心が必要でない場合は、前のセクションのデプロイ操作が、より適した選択肢となります。If you don't need these precautions, the deployment operations in the preceding section are the better option.

Deployment Manager は現在、プライベート プレビュー段階にあります。Deployment Manager is currently in private preview.

タグTags

Resource Manager では、管理や課金の要件に合わせてリソースを分類できる、タグ付け機能を使用できます。Resource Manager provides a tagging feature that enables you to categorize resources according to your requirements for managing or billing. リソース グループとリソースが複雑に絡み合っており、これらの資産をわかりやすく視覚化する必要がある場合は、タグを使用してください。Use tags when you have a complex collection of resource groups and resources, and need to visualize those assets in the way that makes the most sense to you. たとえば、組織内で同じロールを果たしている複数リソース、または同じ部門に属している複数リソースにタグを付けることができます。For example, you could tag resources that serve a similar role in your organization or belong to the same department. タグがないと、組織内のユーザーは複数のリソースを作成できるものの、作成したリソースを後で特定して管理することが困難になる場合があります。Without tags, users in your organization can create multiple resources that may be difficult to later identify and manage. たとえば、特定のプロジェクトに関するすべてのリソースを削除したい場合があります。For example, you may wish to delete all the resources for a particular project. これらのリソースに対してプロジェクトに関するタグが設定されていない場合、手動で探す必要があります。If those resources aren't tagged for the project, you have to manually find them. タグ付けは、サブスクリプションの不要なコストを削減するための重要な方法です。Tagging can be an important way for you to reduce unnecessary costs in your subscription.

タグを共有するために、リソースが同じリソース グループ内に格納されている必要はありません。Resources do not need to reside in the same resource group to share a tag. 組織内のユーザーが類似したタグを誤って適用しないよう (「department」の代わりに「dep」など)、組織内のすべてのユーザーが共通のタグを使用できる独自のタグ分類法を作成することができます。You can create your own tag taxonomy to ensure that all users in your organization use common tags rather than users inadvertently applying slightly different tags (such as "dept" instead of "department").

次の例は、仮想マシンに適用されているタグを示しています。The following example shows a tag applied to a virtual machine.

"resources": [    
  {
    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2015-06-15",
    "name": "SimpleWindowsVM",
    "location": "[resourceGroup().location]",
    "tags": {
        "costCenter": "Finance"
    },
    ...
  }
]

サブスクリプションの使用状況レポートにはタグ名と値が含まれます。これにより、タグを使ってコストの計算を分けることができます。The usage report for your subscription includes tag names and values, which enables you to break out costs by tags. タグの詳細については、 タグを使用した Azure リソースの整理を参照してください。For more information about tags, see Using tags to organize your Azure resources.

アクセス制御Access control

Resource Manager を使用すると、組織に対する特定アクションにアクセスできるユーザーを制御できます。Resource Manager enables you to control who has access to specific actions for your organization. Azure Resource Manager では、ロールベースのアクセス制御 (RBAC) が管理プラットフォームにネイティブに統合されているため、そのアクセス制御がリソース グループ内のすべてのサービスに適用されます。It natively integrates role-based access control (RBAC) into the management platform and applies that access control to all services in your resource group.

ロールベースのアクセス制御を使用する場合に理解しておくべき 2 つの主要な概念を次に示します。There are two main concepts to understand when working with role-based access control:

  • ロール定義 - アクセス許可のセットを記述します。多くの割り当てに使用できます。Role definitions - describe a set of permissions and can be used in many assignments.
  • ロールの割り当て - 特定のスコープ (サブスクリプション、リソース グループ、またはリソース) の ID (ユーザーまたはグループ) に定義を関連付けます。Role assignments - associate a definition with an identity (user or group) for a particular scope (subscription, resource group, or resource). この割り当ては、下位のスコープに継承されます。The assignment is inherited by lower scopes.

事前定義されたプラットフォームとリソース固有のロールにユーザーを追加できます。You can add users to pre-defined platform and resource-specific roles. たとえば、事前定義された閲覧者ロール (ユーザーにリソースの表示は許可し、変更は許可しない) を活用できます。For example, you can take advantage of the pre-defined role called Reader that permits users to view resources but not change them. このようなアクセスを必要とする組織内のユーザーを閲覧者ロールに追加し、そのロールをサブスクリプション、リソース グループ、またはリソースに適用します。You add users in your organization that need this type of access to the Reader role and apply the role to the subscription, resource group, or resource.

Azure には、次の 4 つのプラットフォーム ロールがあります。Azure provides the following four platform roles:

  1. 所有者: アクセス権を含めすべてを管理できます。Owner - can manage everything, including access
  2. 共同作業者: アクセス権以外のすべてを管理できますContributor - can manage everything except access
  3. 閲覧者: すべてを閲覧できますが、変更することはできません。Reader - can view everything, but can't make changes
  4. ユーザー アクセス管理者: Azure リソースへのユーザー アクセスを管理できます。User Access Administrator - can manage user access to Azure resources

Azure には、リソースに固有のロールもいくつかあります。Azure also provides several resource-specific roles. 一般的なものは次のとおりです。Some common ones are:

  1. 仮想マシン共同作業者: 仮想マシンを管理できますが、仮想マシンへのアクセスを許可することはできません。接続先の仮想ネットワークまたはストレージ アカウントを管理することもできませんVirtual Machine Contributor - can manage virtual machines but not grant access to them, and can't manage the virtual network or storage account to which they're connected
  2. ネットワークの共同作業者: すべてのネットワーク リソースを管理できますが、それらへのアクセスを許可することはできません。Network Contributor - can manage all network resources, but not grant access to them
  3. ストレージ アカウントの共同作業者: ストレージ アカウントを管理することはできますが、それらへのアクセスを許可することはできません。Storage Account Contributor - Can manage storage accounts, but not grant access to them
  4. SQL Server の共同作業者: SQL サーバーおよびデータベースを管理できますが、そのセキュリティ関連ポリシーは管理できません。SQL Server Contributor - Can manage SQL servers and databases, but not their security-related policies
  5. Web サイト共同作業者: Web サイトを管理できますが、接続されている Web プランは管理できませんWebsite Contributor - Can manage websites, but not the web plans to which they're connected

すべてのロールと許可されるアクションについては、「RBAC: 組み込みのロール」を参照してください。For the full list of roles and permitted actions, see RBAC: Built in Roles. ロールベースのアクセス制御の詳細については、「 Azure のロールベースのアクセス制御」を参照してください。For more information about role-based access control, see Azure Role-based Access Control.

リソースにアクセスするコードまたはスクリプトを実行したいものの、それにユーザーの資格情報は使いたくない場合もあります。In some cases, you want to run code or script that accesses resources, but you don't want to run it under a user’s credentials. その場合は、アプリケーションのサービス プリンシパルと呼ばれる ID を作成して、そのサービス プリンシパルに適切なロールを割り当てることができます。Instead, you want to create an identity called a service principal for the application and assign the appropriate role for the service principal. Resource Manager を利用すれば、アプリケーションの資格情報を作成し、プログラムでアプリケーションの認証を行うことができます。Resource Manager enables you to create credentials for the application and programmatically authenticate the application. サービス プリンシパルの作成の詳細については、次のいずれかのトピックを参照してください。To learn about creating service principals, see one of following topics:

重要なリソースを、ユーザーによって削除または変更されないように、明示的にロックすることもできます。You can also explicitly lock critical resources to prevent users from deleting or modifying them. 詳細については、「Azure Resource Manager によるリソースのロック」を参照してください。For more information, see Lock resources with Azure Resource Manager.

カスタマイズされたポリシーCustomized policies

リソース マネージャーでは、リソースを管理するためにカスタマイズされたポリシーを作成できます。Resource Manager enables you to create customized policies for managing your resources. 多様なシナリオに対応した各種ポリシーを作成できます。The types of policies you create can include diverse scenarios. リソースに対して名前付け規則を適用できるほか、デプロイできるリソースの種類とインスタンスや、特定の種類のリソースをホストできるリージョンを制限できます。You can enforce a naming convention on resources, limit which types and instances of resources can be deployed, or limit which regions can host a type of resource. また、部門別に課金を整理するために、リソースへのタグ値の設定を義務付けることができます。You can require a tag value on resources to organize billing by departments. コストを削減し、サブスクリプション内での一貫性を維持できるようにポリシーを作成します。You create policies to help reduce costs and maintain consistency in your subscription.

作成できるポリシーの種類はほかにも多数あります。There are many more types of policies you can create. 詳細については、「Azure Policy とは」を参照してください。For more information, see What is Azure Policy?.

SDKSDKs

Azure の SDK は、複数の言語とプラットフォームで利用できます。Azure SDKs are available for multiple languages and platforms. これらの言語実装はそれぞれ、エコシステムのパッケージ マネージャーと GitHub を介して入手できます。Each of these language implementations is available through its ecosystem package manager and GitHub.

オープン ソース SDK リポジトリを次に示します。Here are the Open Source SDK repositories.

リソースでこれらの言語を使用する方法については、以下を参照してください。For information about using these languages with your resources, see:

注意

必要な機能が SDK に備わっていない場合は、 Azure REST API を直接呼び出すこともできます。If the SDK doesn't provide the required functionality, you can also call to the Azure REST API directly.

次の手順Next steps

この記事では、Azure Resource Manager を使用して、Azure のリソースをデプロイ、管理、およびアクセス制御する方法について説明しました。In this article, you learned how to use Azure Resource Manager for deployment, management, and access control of resources on Azure. 次の記事に進み、初めての Azure Resource Manager テンプレートを作成する方法について学習してください。Proceed to the next article to learn how to create your first Azure Resource Manager template.