AWS Resource Name Generator

Naming-convention-compliant AWS resource identifiers

Ad placeholder (leaderboard)

Names each AWS service will accept

AWS validates resource names differently per service, and a name that is valid for Lambda may be rejected by S3. The AWS Resource Name Generator builds identifiers that satisfy the specific rules for S3 buckets, Lambda functions and RDS instances, so the names you drop into a Terraform module or CloudFormation template pass validation on the first apply.

How it works

The tool keeps a small rule set per service and shapes the name to fit it. For an S3 bucket it lowercases everything, allows only [a-z0-9-], keeps the length between 3 and 63, ensures the first and last characters are alphanumeric, and rejects anything shaped like an IP address. For a Lambda function it allows mixed case with [A-Za-z0-9-_] up to 64 characters and no dots. For an RDS instance it forces a leading letter, allows [a-z0-9-], forbids trailing hyphens and double hyphens, and caps the length at 63.

Each candidate is built from word lists joined by hyphens (or underscores for Lambda), sanitized to the allowed character set, then checked against the service’s constraints before being shown. An optional environment suffix such as -prod is appended within the length limit.

Tips and example

  • S3: acme-analytics-logs — globally namespaced, so confirm availability before real use.
  • Lambda: acme-order-processor or acme_order_processor — underscores allowed, dots not.
  • RDS: acme-orders-db — must start with a letter and must not end with a hyphen.
  • Encode the environment in the name (for example -staging) so resources are easy to identify in the console and in cost reports.
  • All names are synthetic; verify real-world uniqueness and policy compliance before deploying.
Ad placeholder (rectangle)