Azure リソースの名前付け規則Naming conventions for Azure resources

この記事は、Azure リソースの名前付け規則と制限事項の概要、および名前付け規則に関する推奨事項のベースライン セットを示します。This article is a summary of the naming rules and restrictions for Azure resources and a baseline set of recommendations for naming conventions. これらの推奨事項は、各自のニーズを満たす独自の規則を作るうえでの叩き台として利用できます。You can use these recommendations as a starting point for your own conventions specific to your needs.

Microsoft Azure におけるどのリソースの名前の選択も、以下の理由から重要です。The choice of a name for any resource in Microsoft Azure is important because:

  • 後で名前を変更するのは困難である。It is difficult to change a name later.
  • 名前は、そのリソースの種類の要件を満たす必要がある。Names must meet the requirements of their specific resource type.

一貫性のある名前付け規則を使用することで、リソースが見つけやすくなります。Consistent naming conventions make resources easier to locate. また、ソリューション内のリソースのロールを表すこともできます。They can also indicate the role of a resource in a solution.

名前付け規則で成功を収めるうえで鍵となるのは、アプリケーションおよび組織全体で規則を策定し、準拠していくことです。The key to success with naming conventions is establishing and following them across your applications and organizations.

サブスクリプションへの名前付けNaming subscriptions

Azure サブスクリプションに名前を付ける際、詳細な名前にしておくと、各サブスクリプションのコンテキストと用途がはっきりわかるようになります。When naming Azure subscriptions, verbose names make understanding the context and purpose of each subscription clear. 多数のサブスクリプションが利用される環境で作業する場合は、共通の名前付け規則に従うことで、わかりやすさが増します。When working in an environment with many subscriptions, following a shared naming convention can improve clarity.

サブスクリプションに名前を付ける際に推奨されるパターンは次のとおりです。A recommended pattern for naming subscriptions is:

<Company> <Department (optional)> <Product Line (optional)> <Environment>

  • "Company" は、通常、各サブスクリプションで同じにします。Company would usually be the same for each subscription. ただし、一部の企業には、組織構造内に子会社があります。However, some companies may have child companies within the organizational structure. こうした企業は、中央の IT グループによって管理されている場合があります。These companies may be managed by a central IT group. このような場合は、親会社の名前 (Contoso) と子会社の名前 (Northwind) の両方を指定することで区別できます。In these cases, they could be differentiated by having both the parent company name (Contoso) and child company name (Northwind).
  • "Department" は組織内の名前で、個人グループが含まれます。Department is a name within the organization that contains a group of individuals. 名前空間内でのこの項目は省略してもかまいません。This item within the namespace is optional.
  • "Product Line" は部署内で遂行される職務や製品の個別の名前です。Product line is a specific name for a product or function that is performed from within the department. 一般に、内部向けのサービスやアプリケーションでは省略してもかまいません。This is generally optional for internal-facing services and applications. ただし、簡単に区別および識別できる必要のある外部向けのサービスには使用することを強くお勧めします (課金レコードの明確な区別などのため)。However, it is highly recommended to use for public-facing services that require easy separation and identification (such as for clear separation of billing records).
  • "Environment" は、"Dev"、"QA"、"Prod" など、アプリケーションまたはサービスのデプロイ ライフサイクルを示す名前です。Environment is the name that describes the deployment lifecycle of the applications or services, such as Dev, QA, or Prod.
[会社]Company 学科Department Product Line または ServiceProduct Line or Service 環境Environment フルネームFull Name
ContosoContoso SocialGamingSocialGaming AwesomeServiceAwesomeService ProductionProduction Contoso SocialGaming AwesomeService ProductionContoso SocialGaming AwesomeService Production
ContosoContoso SocialGamingSocialGaming AwesomeServiceAwesomeService DevDev Contoso SocialGaming AwesomeService DevContoso SocialGaming AwesomeService Dev
ContosoContoso ITIT InternalAppsInternalApps ProductionProduction Contoso IT InternalApps ProductionContoso IT InternalApps Production
ContosoContoso ITIT InternalAppsInternalApps DevDev Contoso IT InternalApps DevContoso IT InternalApps Dev

より大規模な企業でサブスクリプションを整理する方法の詳細については、「Azure エンタープライズ スキャフォールディング - 規範的なサブスクリプション ガバナンス」を参照してください。For more information on how to organize subscriptions for larger enterprises, see Azure enterprise scaffold - prescriptive subscription governance.

接辞による明確化Use affixes to avoid ambiguity

Azure のリソースに名前を付けるときは、リソースの種類とコンテキストを識別するために、一般的なプレフィックスまたはサフィックスを使用することをお勧めします。When naming resources in Azure, it is recommended to use common prefixes or suffixes to identify the type and context of the resource. 種類、メタデータ、コンテキストに関する情報はいずれもプログラムで利用できますが、一般的な接辞を適用することで、視覚的に区別しやすくなります。While all the information about type, metadata, context, is available programmatically, applying common affixes simplifies visual identification. 名前付け規則に接辞を導入する場合は、接辞を名前の先頭に付ける (プレフィックス) のか、末尾に付ける (サフィックス) のかを明確に指定することが重要です。When incorporating affixes into your naming convention, it is important to clearly specify whether the affix is at the beginning of the name (prefix) or at the end (suffix).

たとえば、計算エンジンをホストするサービスの名前として考えられる名前を 2 つ、次に示します。For instance, here are two possible names for a service hosting a calculation engine:

  • SvcCalculationEngine (プレフィックス)SvcCalculationEngine (prefix)
  • CalculationEngineSvc (サフィックス)CalculationEngineSvc (suffix)

接辞では、特定のリソースを説明するさまざまな特徴を示すことができます。Affixes can refer to different aspects that describe the particular resources. 一般的に使用される例を次に示します。The following table shows some examples typically used.

特徴Aspect Example メモNotes
環境Environment dev、prod、QAdev, prod, QA リソースの環境を識別Identifies the environment for the resource
LocationLocation uw (米国西部)、ue (米国東部)uw (US West), ue (US East) リソースの展開先のリージョンを識別Identifies the region into which the resource is deployed
インスタンスInstance 1、2、...1, 2, ... 複数の名前付きインスタンスが存在するリソースの場合 (VM や NIC など)。For resources that have more than one named instance such as VMs or NICs.
製品またはサービスProduct or Service serviceservice リソースがサポートする製品、アプリケーション、サービスを識別Identifies the product, application, or service that the resource supports
RoleRole sql、web、messagingsql, web, messaging 関連付けられているリソースのロールを識別Identifies the role of the associated resource

企業またはプロジェクトの特定の名前付け規則を策定する際には、一般的な接辞のセットと接辞の位置 (サフィックスまたはプリフィックス) を選択することが重要です。When developing a specific naming convention for your company or projects, it is important to choose a common set of affixes and their position (suffix or prefix).

名前付け規則と制限事項Naming rules and restrictions

Azure のリソースまたはサービスの種類ごとに、名前付けに関する制限とスコープのセットが強制され、名前付け規則またはパターンはすべて、必須の名前付け規則とスコープに従う必要があります。Each resource or service type in Azure enforces a set of naming restrictions and scope; any naming convention or pattern must adhere to the requisite naming rules and scope. たとえば、VM の名前は DNS 名にマップされますが (このため、Azure 全体で一意である必要があります)、VNET の名前のスコープは、それが作成されたリソース グループに制限されます。For example, while the name of a VM maps to a DNS name (and is thus required to be unique across all of Azure), the name of a VNET is scoped to the Resource Group that it is created within.

一般的に、特殊文字 (- または _) は、名前の先頭または末尾には使用しないでください。In general, avoid having any special characters (- or _) as the first or last character in any name. こうした文字があると、ほとんどの検証規則でエラーが発生します。These characters will cause most validation rules to fail.

全般General

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
リソース グループResource Group サブスクリプションSubscription 1-901-90 大文字と小文字は区別されないCase insensitive こちらに記載されている正規表現と一致している英数字、アンダースコア、かっこ、ハイフン、ピリオド (末尾を除く)、および Unicode 文字。Alphanumeric, underscore, parentheses, hyphen, period (except at end), and Unicode characters that match the regex documented here. <service short name>-<environment>-rg profx-prod-rg
可用性セットAvailability Set リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、アンダースコア、ハイフンAlphanumeric, underscore, and hyphen <service-short-name>-<context>-as profx-sql-as
タグTag 関連付けられたエンティティAssociated Entity 512 (名前)、256 (値)512 (name), 256 (value) 大文字と小文字は区別されないCase insensitive 英数字と特殊文字 (ただし、<>%&\?/ を除く)。Alphanumeric, special characters except <, >, %, &, \, ?, /. 制限事項については、こちらを参照してください。See limitations here. "key" : "value" "department" : "Central IT"
Web アプリWeb App グローバルGlobal 1 ~ 601-60 大文字と小文字は区別されないCase insensitive 英数字とハイフンAlphanumeric and hyphen <app_name>-<source-slot-name> contoso-staging
API ManagementAPI Management グローバルGlobal 1-501-50 大文字と小文字は区別されないCase insensitive 英数字とハイフンAlphanumeric and hyphen <apim-service-name> contoso

ComputeCompute

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
仮想マシンVirtual Machine リソース グループResource Group 1 ~ 15 (Windows)、1 ~ 64 (Linux)1-15 (Windows), 1-64 (Linux) 大文字と小文字は区別されないCase insensitive 英数字とハイフンAlphanumeric and hyphen <name>-<role>-vm<number> profx-sql-vm1
Function AppFunction App グローバルGlobal 1 ~ 601-60 大文字と小文字は区別されないCase insensitive 英数字とハイフンAlphanumeric and hyphen <name>-func calcprofit-func

注意

Azure の仮想マシンには、仮想マシン名とホスト名の 2 つの個別の名前があります。Virtual machines in Azure have two distinct names: virtual machine name, and host name. ポータルで VM を作成するときは、ホスト名と仮想マシン リソース名の両方に同じ名前が使用されます。When you create a VM in the portal, the same name is used for both the host name, and the virtual machine resource name. 上記の制限はホスト名を対象としています。The restrictions above are for the host name. 実際のリソース名の最大文字数は 64 文字です。The actual resource name can have up to 64 characters.

StorageStorage

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
ストレージ アカウント名 (データ)Storage account name (data) グローバルGlobal 3 ~ 243-24 小文字Lowercase 英数字Alphanumeric <globally unique name><number> (ストレージ アカウントの名前付けのために関数を使用して一意の GUID を計算)<globally unique name><number> (use a function to calculate a unique guid for naming storage accounts) profxdata001
ストレージ アカウント名 (ディスク)Storage account name (disks) グローバルGlobal 3 ~ 243-24 小文字Lowercase 英数字Alphanumeric <vm name without hyphens>st<number> profxsql001st0
コンテナー名Container name ストレージ アカウントStorage account 3 ~ 633-63 小文字Lowercase 英数字とハイフンAlphanumeric and hyphen <context> logs
BLOB 名Blob name コンテナーContainer 1 ~ 1,0241-1024 大文字小文字は区別されるCase sensitive 任意の URL 文字Any URL characters <variable based on blob usage> <variable based on blob usage>
キュー名Queue name ストレージ アカウントStorage account 3 ~ 633-63 小文字Lowercase 英数字とハイフンAlphanumeric and hyphen <service short name>-<context>-<num> awesomeservice-messages-001
テーブル名Table name ストレージ アカウントStorage account 3 ~ 633-63 大文字と小文字は区別されないCase insensitive 英数字Alphanumeric <service short name><context> awesomeservicelogs
ファイル名File name ストレージ アカウントStorage account 3 ~ 633-63 小文字Lowercase 英数字Alphanumeric <variable based on blob usage> <variable based on blob usage>
Data Lake StoreData Lake Store グローバルGlobal 3 ~ 243-24 小文字Lowercase 英数字Alphanumeric <name>dls telemetrydls

ネットワークNetworking

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
Virtual Network (VNet)Virtual Network (VNet) リソース グループResource Group 2 ~ 642-64 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <service short name>-vnet profx-vnet
SubnetSubnet 親 VNetParent VNet 2 ~ 802-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <descriptive context> web
ネットワーク インターフェイスNetwork Interface リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <vmname>-nic<num> profx-sql1-vm1-nic1
ネットワーク セキュリティ グループNetwork Security Group リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <service short name>-<context>-nsg profx-app-nsg
ネットワーク セキュリティ グループの規則Network Security Group Rule リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <descriptive context> sql-allow
パブリック IP アドレスPublic IP Address リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <vm or service name>-pip profx-sql1-vm1-pip
Load BalancerLoad Balancer リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <service or role>-lb profx-lb
負荷分散規則の構成Load Balanced Rules Config Load BalancerLoad Balancer 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <descriptive context> http
Azure Application GatewayAzure Application Gateway リソース グループResource Group 1 ~ 801-80 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、アンダースコア、ピリオドAlphanumeric, hyphen, underscore, and period <service or role>-agw profx-agw
Traffic Manager プロファイルTraffic Manager Profile リソース グループResource Group 1 ~ 631-63 大文字と小文字は区別されないCase insensitive 英数字、ハイフン、ピリオドAlphanumeric, hyphen, and period <descriptive context> app1

ContainersContainers

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
Container RegistryContainer Registry グローバルGlobal 5 ~ 505-50 大文字と小文字は区別されないCase insensitive 英数字Alphanumeric <service short name>registry app1registry

Service BusService Bus

エンティティEntity Scope (スコープ)Scope LengthLength 大文字小文字の区別Casing 有効な文字Valid Characters 推奨パターンSuggested Pattern Example
Service Bus 名前空間Service Bus Namespace グローバルGlobal 6-506-50 大文字と小文字は区別されないCase insensitive 英数字、ハイフン。文字で開始する必要があります。詳細については、こちらを参照してください。Alphanumeric, hyphen, must start with a letter; see here for details. <service short name>-bus app1-bus

タグによるリソースの整理Organize resources with tags

Azure Resource Manager では、コンテキストを識別し、自動化を合理化するために、任意のテキスト文字列を使用したエンティティへのタグ付けがサポートされています。The Azure Resource Manager supports tagging entities with arbitrary text strings to identify context and streamline automation. たとえば、"sqlVersion"="sql2014ee" タグでは、SQL Server 2014 Enterprise Edition を実行している VM を識別できます。For example, the tag "sqlVersion"="sql2014ee" could identify VMs running SQL Server 2014 Enterprise Edition. タグは、コンテキストを明確化するために、選択した名前付け規則と共に使用してください。Tags should be used to augment and enhance context along side of the naming conventions chosen.

ヒント

タグには、リソース グループをまたいで適用できるため、異なるデプロイ間でエンティティどうしを関連付けることができるという利点もあります。One other advantage of tags is that tags span resource groups, allowing you to link and correlate entities across disparate deployments.

各リソースまたはリソース グループには、最大で 15 個のタグを設定できます。Each resource or resource group can have a maximum of 15 tags. タグ名は 512 文字まで、タグ値は 256 文字までに制限されます。The tag name is limited to 512 characters, and the tag value is limited to 256 characters.

リソースへのタグ付けの詳細については、タグを使用した Azure リソースの整理に関するページをご覧ください。For more information on resource tagging, refer to Using tags to organize your Azure resources.

一般的なタグ付けの使用例は次のとおりです。Some of the common tagging use cases are:

  • 課金Billing. リソースをグループ化し、課金またはチャージバック コードに関連付けます。Grouping resources and associating them with billing or charge back codes.
  • サービスのコンテキストの識別Service Context Identification. 一般的な操作とグループ化のために、リソース グループ間でリソースのグループを識別します。Identify groups of resources across Resource Groups for common operations and grouping.
  • アクセス制御とセキュリティ コンテキストAccess Control and Security Context. ポートフォリオ、システム、サービス、アプリ、インスタンスなどに基づいて管理者のロールを識別します。Administrative role identification based on portfolio, system, service, app, instance, etc.

ヒント

タグは早い段階から頻繁に設定してください。Tag early, tag often. データを集め終えてから改良を加えるよりも、ベースラインのタグ付けのスキームを設けておいて、徐々に調整していく方が適切です。Better to have a baseline tagging scheme in place and adjust over time rather than having to retrofit after the fact.

以下に、一般的なタグ付けのアプローチの例を示します。An example of some common tagging approaches:

タグ名Tag Name キーKey Example Comment (コメント)Comment
請求先/内部チャージバック IDBill To / Internal Chargeback ID billTobillTo IT-Chargeback-1234 内部 I/O または課金コードAn internal I/O or billing code
オペレーターまたは直接責任者 (DRI)Operator or Directly Responsible Individual (DRI) managedBymanagedBy joe@contoso.com エイリアスまたは電子メール アドレスAlias or email address
プロジェクト名Project Name projectNameprojectName myproject プロジェクトまたは製品ラインの名前Name of the project or product line
プロジェクトのバージョンProject Version projectVersionprojectVersion 3.4 プロジェクトまたは製品ラインのバージョンVersion of the project or product line
環境Environment 環境environment <Production, Staging, QA > 環境の識別子Environmental identifier
レベルTier レベルtier Front End, Back End, Data レベルまたはロール/コンテキストの識別Tier or role/context identification
データ プロファイルData Profile dataProfiledataProfile Public, Confidential, Restricted, Internal リソースに格納されているデータの機密性Sensitivity of data stored in the resource

ヒントとコツTips and tricks

一部のリソースの種類については、名前付けと規則にさらに注意が必要になる場合があります。Some types of resources may require additional care on naming and conventions.

仮想マシンVirtual machines

特に、大規模なトポロジでは、仮想マシンの名前を工夫することで、各マシンのロールと用途の識別が容易になり、スクリプトを作成する際の予測可能性が高まります。Especially in larger topologies, carefully naming virtual machines streamlines identifying the role and purpose of each machine, and enabling more predictable scripting.

ストレージ アカウントとストレージ エンティティStorage accounts and storage entities

ストレージ アカウントには、VM のディスクのサポートと、BLOB、キュー、テーブルへのデータの格納という 2 つの主要な用途があります。There are two primary use cases for storage accounts: backing disks for VMs, and storing data in blobs, queues and tables. VM ディスクに使用されるストレージ アカウントについては、親 VM の名前に関連付けるという名前付け規則に従う必要があります (また、ハイエンド VM SKU 向けに複数のストレージ アカウントが必要になる可能性があるため、数値のサフィックスも適用してください)。Storage accounts used for VM disks should follow the naming convention of associating them with the parent VM name (and with the potential need for multiple storage accounts for high-end VM SKUs, also apply a number suffix).

ヒント

ストレージ アカウントについては、データ用であるか、ディスク用であるかにかかわらず、複数のストレージ アカウントを活用できるような名前付け規則に従う必要があります (つまり、必ず数値のサフィックスを使用してください)。Storage accounts - whether for data or disks - should follow a naming convention that allows for multiple storage accounts to be leveraged (i.e. always using a numeric suffix).

Azure ストレージ アカウントの BLOB データにアクセスするためのカスタム ドメイン名を構成できます。It's possible to configure a custom domain name for accessing blob data in your Azure Storage account. Blob service の既定のエンドポイントは https://<name>.blob.core.windows.netです。The default endpoint for the Blob service is https://<name>.blob.core.windows.net.

しかし、カスタム ドメイン (www.contoso.com など) をストレージ アカウントの BLOB エンドポイントにマップしている場合、ユーザーはそのドメインを使って、ストレージ アカウントの BLOB データにもアクセスできます。But if you map a custom domain (such as www.contoso.com) to the blob endpoint for your storage account, you can also access blob data in your storage account by using that domain. たとえば、カスタム ドメイン名を使用すると、https://mystorage.blob.core.windows.net/mycontainer/myblob に、https://www.contoso.com/mycontainer/myblob としてアクセスできます。For example, with a custom domain name, https://mystorage.blob.core.windows.net/mycontainer/myblob could be accessed as https://www.contoso.com/mycontainer/myblob.

この機能の構成の詳細については、「BLOB ストレージ エンドポイントのカスタム ドメイン名の構成」を参照してください。For more information about configuring this feature, refer to Configure a custom domain name for your Blob storage endpoint.

BLOB、コンテナー、テーブルへの名前付けの詳細については、次の一覧を参照してください。For more information on naming blobs, containers and tables, refer to the following list:

BLOB 名には任意の文字の組み合わせを含めることができますが、URL の予約文字は適切にエスケープする必要があります。A blob name can contain any combination of characters, but reserved URL characters must be properly escaped. BLOB 名の末尾をピリオド (.)、スラッシュ (/)、それらの連続または組み合わせたものにしないでください。Avoid blob names that end with a period (.), a forward slash (/), or a sequence or combination of the two. 通常、スラッシュは、 仮想 ディレクトリの区切り記号です。By convention, the forward slash is the virtual directory separator. BLOB 名では、バックスラッシュ (\) を使わないでください。Do not use a backward slash (\) in a blob name. クライアント API では許容されるものの、正常にハッシュできず、署名が一致しなくなります。The client APIs may allow it, but then fail to hash properly, and the signatures will not match.

ストレージ アカウントまたはコンテナーの名前は、作成後に変更することはできません。It is not possible to modify the name of a storage account or container after it has been created. 新しい名前を使用する場合は、削除したうえで、新たに作成する必要があります。If you want to use a new name, you must delete it and create a new one.

ヒント

新しいサービスまたはアプリケーションの開発に着手する前に、すべてのストレージ アカウントと種類の名前付け規則を策定することをお勧めします。We recommend that you establish a naming convention for all storage accounts and types before embarking on the development of a new service or application.