コンテンツにスキップ

リソース命名規則

本サイトは Classmethod Cloud Guidebook (CCG) のデモサイトです

デモサイトのため、実際の内容と相違がある点にご留意ください。
クラスメソッドメンバーズをご契約中のお客様は下記リンクからアクセスください。
Classmethod Cloud Guidebook

AWSアカウント内で共通のリソース命名規則を定義します。

命名規則に含める要素を洗い出し、その後に要素の順番と連結方法を検討します。

命名規則に含める要素の例として、次の内容があります。

  • システム/プロジェクト名
  • 環境名(dev/stg/prodなど)
  • AWSサービス名
  • リージョン名
  • ユーザー/チーム/部門名

各要素の順番は次の点を考慮して決定します。

  • リソース名でポリシー制限する可能性の高いものを前方にします。
    • 例えば、環境単位で操作を制限するポリシーを策定することが多い場合は環境名を先頭にします。
    • ただし、環境やシステムはAWSアカウント単位で分割しておくことが望ましいです。
  • ソートのキーとなる要素を前方にします。
    • 例えば、システム単位でソートすることが多い場合はシステム名を先頭にします。

各要素の連結にはケバブケース(例:aaa-bbb-ccc)を推奨します。 Amazon S3のバケット名には大文字やアンダースコア _ が利用できないためです。 ただし、WebACLはハイフン - を利用できないなどの例外があります。

また、一部のサービスでは次の考慮も必要となります。

  • AP/Web用のインスタンスなど、同じ役割のリソースが複数ある場合は連番を付与を検討します。
    • 0011 などの連番を付与します。
  • Amazon S3のように「グローバルで一意な命名」が必要なリソースには留意します。
    • アカウントIDを付与する方法もあります。しかし、S3バケットの場合は公開することでアカウントIDが外部から見える点に注意が必要です。
  • 一部のサービスでは命名規則に制約があります。
    • 例えば、AWS WAFのログ転送先として指定するKinesis Data FirehoseやS3バケットのリソース名称は、先頭が「aws-waf-logs-」から始まる必要があります。

リファレンス

DevelopersIO

サンプル - 1

各リソースの命名規則は下表に従うこと。

表に存在しないサービスは可能な限り次の命名とすること。

  • 命名規則:{sysname}-{env}-{サービス名}
AWSリソース 命名規則 補足説明
VPC {sysname}-{env}-vpc
Subnet {sysname}-{env}-{nwlayer}-subnetXX XXは連番
Route Table {sysname}-{env}-{nlayer}-rtb
Internet Gateway {sysname}-{env}-igw
ELB {sysname}-{env}-alb/nlb
Target Group {sysname}-{env}-tg
EC2 {sysname}-{env}-{type}-XX XXは連番
IAM Role {sysname}-{env}-{type}-role
Security Group {sysname}-{env}-{type}-sg
RDS {sysname}-{env}-rds
S3 {sysname}-{env}-{use} 複数のアカウントで同じ名称をつける場合は、グローバルで一意な名称にするためにサフィックスに {accountid} もしくは {random} を付与する。ただし、公開するバケットには {accountid} を付与しないこと
変数名 説明
sysname システム名
env dev/stg/prd のいずれか
nwlayer (network layer) public/private/protected のいずれか
type web/app/db 等のサーバ種別
use 利用目的
accountid 12桁のアカウントID
random 8桁の英数字