明確に定義された名前付けとタグ付け戦略は、効果的な Azure クラウド ガバナンスとセキュリティの基盤となります。 これらの規則を使用すると、影響を受けるリソースをすばやく特定することで、Azure リソースのインベントリの維持、コストの追跡と割り当て、インシデントへの対応を行うことができます。 名前付けとタグ付けの戦略を早期に定義して、環境全体の一貫性と明確さを確保します。 この記事では、名前付け規則を作成するための推奨事項を示します。 タグ付けのガイダンスについては、「 タグ付け戦略を定義する」を参照してください。
名前付け規則を使用する理由
Azure の名前付け規則は、Azure リソースに名前を割り当てるために使用される標準化された形式です。 これにより、長さの要件、有効な文字、スコープの一意性など、Azure の名前付け規則が明確になり、一貫性が確保されます。 名前付け規則は、すべての環境の要件を満たす名前付け規則がないため、特定のニーズに合わせて調整する必要があります。
Azure のリソース名について
Azure リソース名は、Web アプリ、データベース、ストレージ アカウントなど、Azure リソースの特定のインスタンスに割り当てられた識別子です。 一貫した名前付け規則を確立するには、Azure のしくみを理解する必要があります。 次のことを知っておく必要があります。
名前の永続性について理解します。 作成後に Azure リソース名を変更することはできません。 名前に一定の情報のみを含めます。 タグを使用して他の詳細をキャプチャします。
Azure の名前付け規則について説明します。 すべての Azure リソースには名前付け規則があります。 すべての Azure リソース名が同じパターンに従うことができるわけではありません。 使用しているリソースの種類の制限事項を理解していることを確認します。 Azure 名は、次の 3 つの一般的な原則に従う必要があります。
- 名前は、Azure リソースのスコープ内で一意である必要があります (リソースによって異なります)。
- 名前は長さの要件を満たす必要があります (リソースによって異なります)。
- 名前には有効な文字のみを含めることができます (リソースによって異なります)。
Azure 名のスコープについて説明します。 Azure リソース名は、定義されたスコープ内で一意である必要があります。 各リソースの種類には、名前を一意にする必要がある場所を決定する特定のスコープ レベルがあります。 これらのスコープ レベルを理解することで、適切な名前付け規則が保証され、競合が回避されます。
Scope 説明 例 グローバル Azure 全体で一意です。 このスコープは、パブリック IP エンドポイントを持つ PaaS リソースに適用されます。その名前は、初期の既定のパブリック DNS 名として機能するためです。 たとえば、 app-navigator-prod-001.azurewebsites.net
という名前の Web アプリはグローバルに一意である必要があります。リソース グループ リソース グループ内で一意です。 同じグループ内のリソースは同じ名前を共有できませんが、同じ名前を異なるリソース グループに存在させることができます。 たとえば、 vnet-prod-westus-001
という名前の仮想ネットワークは複数のリソース グループに存在できますが、1 つのリソース グループ内に 1 回だけ存在できます。資源 親リソース内で一意です。 競合を回避するには、別のリソース内に入れ子になったリソースに一意の名前を付ける必要があります。 たとえば、セグメントの重複を防ぐために、仮想ネットワーク内のサブネットには一意の名前が必要です。
名前付けコンポーネントの選択
名前付け規則を作成するときは、リソース名でキャプチャする重要な情報を特定します。 リソースの種類ごとに異なる情報が関連し、確立されているすべての名前付けコンポーネントをリソースの種類ごとに使用できるわけではありません。 デプロイされたリソースに関連する情報を認識するために、従いやすく簡潔で便利な、環境の標準的な名前付け規則を確立します。 次の一覧に、リソース名を作成するときに役立つ名前付けコンポーネントの例を示します。
名前付けコンポーネント | 説明 |
---|---|
組織 | 組織の最上位レベルの名前。通常はトップ管理グループとして、または小規模な組織では名前付け規則の一部として使用されます。 例: contoso |
事業部または部署 | サブスクリプションまたはリソースが属するワークロードを所有する会社の最上位部門。 小規模な組織では、このコンポーネントは 1 つの企業の最上位レベルの組織要素を表す場合があります。 例: fin 、mktg 、product 、it 、corp |
リソースの種類 | Azure リソースまたは資産の種類を表す省略形。 このコンポーネントは、多くの場合、名前のプレフィックスまたはサフィックスです。 詳細については、「Azure リソースの種類推奨される省略形」を参照してください。 例: rg 、vm |
ワークロード、アプリケーション、またはプロジェクト | リソースが含まれるワークロード、アプリケーション、またはプロジェクトの名前。 例: navigator 、emissions 、sharepoint 、hadoop |
環境 | リソースがサポートするワークロードの開発ライフサイクルのステージ。 例: prod 、dev 、qa 、stage 、test |
リージョン | リソースがデプロイされているリージョンまたはクラウド プロバイダー。 例: westus 、eastus2 、westeu 、usva 、ustx |
インスタンス | 同じ名前付け規則と名前付けコンポーネントを持つ他のリソースと区別するために、特定のリソースのインスタンス数。 例、01 、001 |
名前付け規則を作成する
名前付け規則を作成するときに、リソース名に反映する重要な情報を特定します。 リソースの種類ごとに異なる情報が関連します。
コンポーネントの順序を標準化します。 名前付けコンポーネントを定義するだけでなく、名前付けコンポーネントが一覧表示される順序も考慮する必要があります。
区切り記号を使用するかどうか選択します。 読みやすさを向上させるには、ハイフン
-
を使用して名前付けコンポーネントを区切ります。 ただし、Azure 内のすべてのリソースで区切り記号を使用できるわけではありません。 すべての Azure リソース名で絶対整合性が必要な場合は、ハイフンを使用しないでください。 多くのお客様にとって、区切り記号を使用する利点は、名前付け規則の一部の不整合を上回ります。省略形を使用します。 Azure リソースの省略形を使用して、リソース名を長さの制限内に保持します。
Azure Naming Tool を使用する: Azure Naming Tool は、Azure リソースの名前を生成するのに役立つツールです。 好みの名前付け規則を使用するようにツールを構成すると、Azure リソースの名前が生成されます。 詳細については、「Azure Naming Tool」を参照してください。
VM の名前付けの一貫性を検討してください。 Azure で VM を使用している場合は、Azure 内の VM 名が VM の許可された NetBIOS 名よりも長くなる可能性がある場合でも、名前の一貫性を保つことをお勧めします。 詳細およびその他の制限については、「Active Directory のコンピューター、ドメイン、サイト、OU の名前付け規則 - コンピューター名を参照してください。
Azure リソース名の例
名前付け規則を定義するときは、次の例を検討してください。 これらの例は、この記事で説明する名前付けコンポーネントと考慮事項に基づいています。
AI と機械学習
資産の種類 | Scope | 書式と例 |
---|---|---|
Azure AI Search | グローバル | srch-<ワークロード、アプリケーション、またはプロジェクト>-<環境> srch-navigator-prod srch-emissions-dev |
Azure OpenAI サービス | リソース グループ | oai-<ワークロード、アプリケーション、またはプロジェクト>-<環境> oai-navigator-prod oai-emissions-dev |
Azure Machine Learning ワークスペース | リソース グループ | mlw-<ワークロード、アプリケーション、またはプロジェクト>-<環境> mlw-navigator-prod mlw-emissions-dev |
Analytics と IoT
資産の種類 | Scope | 書式と例 |
---|---|---|
Azure Analysis Services | グローバル | as<アプリ名><環境> asnavigatorprod asemissionsdev |
Azureデータファクトリー | グローバル | adf-<ワークロード、アプリケーション、またはプロジェクト>-<環境> adf-navigator-prod adf-emissions-dev |
Data Lake Storage アカウント | グローバル | dls<ワークロード、アプリケーション、またはプロジェクト><環境> dlsnavigatorprod dlsemissionsdev |
IoT ハブ | グローバル | iot-<ワークロード、アプリケーション、またはプロジェクト>-<環境> iot-navigator-prod iot-emissions-dev |
コンピューティングと Web
資産の種類 | Scope | 書式と例 |
---|---|---|
仮想マシン | リソース グループ | vm-<ワークロード、アプリケーション、またはプロジェクト>-<環境>-<###> vm-sql-test-001 vm-hadoop-prod-001 vm-sharepoint-dev-001 |
Web アプリ | グローバル | app-<ワークロード、アプリケーション、またはプロジェクト>-<環境>-<###>.azurewebsites.net app-navigator-prod-001.azurewebsites.net app-accountlookup-dev-001.azurewebsites.net |
関数アプリ | グローバル | func-<ワークロード、アプリケーション、またはプロジェクト>-<環境>-<###>.azurewebsites.net func-navigator-prod-001.azurewebsites.net func-accountlookup-dev-001.azurewebsites.net |
データベース
資産の種類 | Scope | 書式と例 |
---|---|---|
Azure SQL データベース | Azure SQL Server | sqldb-<ワークロード、アプリケーション、またはプロジェクト>-<環境> sqldb-users-prod sqldb-users-dev |
Azure Cosmos DB データベース | グローバル | cosmos-<ワークロード、アプリケーション、またはプロジェクト>-<環境> cosmos-navigator-prod cosmos-emissions-dev |
Azure Cache for Redis インスタンス | グローバル | redis-<ワークロード、アプリケーション、またはプロジェクト>-<環境> redis-navigator-prod redis-emissions-dev |
統合
資産の種類 | Scope | 書式と例 |
---|---|---|
API管理サービス インスタンス | グローバル | apim-<アプリまたはサービス名> apim-navigator-prod |
Service Bus 名前空間 | グローバル | sbns-<ワークロード、アプリケーション、またはプロジェクト>-<環境>.servicebus.windows.net sbns-navigator-prod.servicebus.windows.net sbns-emissions-dev.servicebus.windows.net |
Service Bus キュー | Service Bus | sbq-<ワークロード、アプリケーション、またはプロジェクト> sbq-navigator |
Service Bus トピック | Service Bus | sbt-<ワークロード、アプリケーション、またはプロジェクト> sbt-navigator |
管理とガバナンス
資産の種類 | Scope | 書式と例 |
---|---|---|
管理グループ | 事業単位および/または 環境 |
mg-<事業単位>[-<環境>] mg-mktg mg-hr mg-corp-prod mg-fin-client |
サブスクリプション | アカウント/エンタープライズ契約 | <事業単位>-<サブスクリプションの目的>-<###> mktg-prod-001 corp-shared-001 fin-client-001 |
リソース グループ | 予約 | rg-<アプリまたはサービスの名前>-<サブスクリプションの目的>-<###> rg-mktgsharepoint-prod-001 rg-acctlookupsvc-shared-001 rg-ad-dir-services-shared-001 |
ネットワーク
資産の種類 | Scope | 書式と例 |
---|---|---|
仮想ネットワーク | リソース グループ | vnet-<サブスクリプション目的>-<地域>-<###> vnet-shared-eastus2-001 vnet-prod-westus-001 vnet-client-eastus2-001 |
サブネット | 仮想ネットワーク | snet-<サブスクリプションの目的>-<地域>-<###> snet-shared-eastus2-001 snet-prod-westus-001 snet-client-eastus2-001 |
ネットワーク インターフェイス (NIC) | リソース グループ | nic-<##>-<VM 名>-<サブスクリプションの目的>-<###> nic-01-dc1-shared-001 nic-02-vmhadoop1-prod-001 nic-02-vmtest1-client-001 |
パブリック IP アドレス | リソース グループ | pip-<VM 名またはアプリ名>-<環境>-<リージョン>-<###> pip-dc1-shared-eastus2-001 pip-hadoop-prod-westus-001 |
ロード バランサー (外部) | リソース グループ | lbe-<アプリ名またはロール>-<環境>-<###> lbe-navigator-prod-001 lbe-sharepoint-dev-001 |
ネットワーク セキュリティ グループ (NSG) | サブネットまたは NIC | nsg-<ポリシー名またはアプリ名>-<###> nsg-weballow-001 nsg-rdpallow-001 nsg-sqlallow-001 nsg-dnsblocked-001 |
ローカル ネットワーク ゲートウェイ | 仮想ゲートウェイ | lgw-<サブスクリプションの目的>-<リージョン>-<###> lgw-shared-eastus2-001 lgw-prod-westus-001 lgw-client-eastus2-001 |
仮想ネットワーク ゲートウェイ | 仮想ネットワーク | vgw-<サブスクリプションの目的>-<リージョン>-<###> vgw-shared-eastus2-001 vgw-prod-westus-001 vgw-client-eastus2-001 |
VPN 接続 | リソース グループ | vcn-<サブスクリプション 1 の目的>>-<リージョン 1>-to-<サブスクリプション 2 の目的>>-<リージョン 2>- vcn-shared-eastus2-to-shared-westus vcn-prod-eastus2-to-prod-westus |
ルート テーブル | リソース グループ | rt-<ルートテーブル名> rt-navigator rt-sharepoint |
DNS ラベル | グローバル | <VM の DNS A レコード>.<リージョン>.cloudapp.azure.com dc1.westus.cloudapp.azure.com web1.eastus2.cloudapp.azure.com |
セキュリティ
資産の種類 | Scope | 書式と例 |
---|---|---|
マネージド ID | リソース グループ | id-<アプリまたはサービス名>-<環境>-<リージョン名>-<###> id-appcn-keda-prod-eastus2-001 |
Storage
資産の種類 | Scope | 書式と例 |
---|---|---|
ストレージ アカウント (一般的な使用) | グローバル | <ワークロード、アプリケーション、またはプロジェクト><###> stnavigatordata001 stemissionsoutput001 |
Azure StorSimple | グローバル | ssimp<ワークロード、アプリケーション、またはプロジェクト><環境> ssimpnavigatorprod ssimpemissionsdev |
Azure Container Registry | グローバル | cr<ワークロード、アプリケーション、またはプロジェクト><環境><###> crnavigatorprod001 |
次の手順
次の手順として、タグ付け戦略を定義することをお勧めします。