Understanding RONIN Tags in AWS: A Comprehensive Guide

Managing cloud resources efficiently requires a robust tagging strategy. RONIN, a platform designed to simplify cloud computing for research, leverages AWS tagging extensively to provide structure, automation, and cost management capabilities. This post dives deep into how RONIN tags work, exploring the different types of tags used for EC2 machines, ParallelCluster deployments, EBS volumes, snapshots, AMIs, and custom tags for enhanced flexibility.
What are Tags?
In AWS, tags are key-value pairs that you assign to your resources. They act as metadata, helping you categorise, filter, search, and report on your resources. RONIN utilises tags to add additional context to resources beyond the standard AWS metadata.
RONIN Tags for EC2 Machines
RONIN applies a comprehensive set of tags to EC2 instances, providing detailed information about each machine. Here's a breakdown of the key tags:
Tag Key | Description | Example Value |
---|---|---|
Name | The user-defined name for the machine. | research-vm |
AWS-ID | The unique instance ID assigned by AWS. | i-0abcdef1234567890 |
os_desc | A detailed description of the operating system. | Ubuntu Server 20.04 LTS |
os | A system keyword representing the OS type (e.g., ubuntu , windows , redhat , opensuse ). | ubuntu |
purchase_order | A project-level code linked to accounting systems like SAP for tracking project expenses. | PO-12345 |
last_modified | Tracks who last modified the machine's state (start/stop) and their action. | username:user@ronin.cloud:stopped |
dns | The prefix for the machine's DNS. | research-vm |
billing_code | An organization-specific code for internal billing and cost allocation. | BILLING-XYZ |
created_by | The user who created the machine. | username:user@ronin.cloud |
image_url | The URL of the image used for the machine's card in the RONIN interface. | img/os/ubuntu.png |
RPID | The unique RONIN Project ID to which the machine belongs. | RPID-123 |
default_uname | The default username for logging into the machine. | ubuntu |
Example Scenario:
A user starts a machine named "analysis-server" in RONIN. The machine uses Ubuntu 20.04 and is part of a project with the purchase order "PO-98765" and billing code "PROJECT-ABC". The following tags would be applied:
Tag Key | Value |
---|---|
Name | analysis-server |
AWS-ID | i-0f1e2d3c4b5a69870 |
os_desc | Ubuntu Server 20.04 LTS |
os | ubuntu |
purchase_order | PO-98765 |
last_modified | username:user@ronin.cloud:started |
dns | analysis-server |
billing_code | PROJECT-ABC |
created_by | username:user@ronin.cloud |
image_url | img/os/ubuntu.png |
RPID | RPID-456 |
default_uname | ubuntu |
RONIN Tags for ParallelCluster Deployments
For ParallelCluster deployments, RONIN employs a combination of AWS ParallelCluster-specific tags and custom RONIN tags to manage and identify cluster components. Here's a look at the key tags:
Tag Key | Description | Example Value |
---|---|---|
Application | System tag identifying the cluster. Format: parallelcluster-RONIN-<RPID>-<name> | parallelcluster-RONIN-RPID-123-mycluster |
RPID | RONIN Project ID. | RPID-123 |
aws:ec2launchtemplate:id | Launch template ID. | lt-09ebe93e85bfcd178 |
aws:cloudformation:logical-id | Defines the node type (MasterServer or ComputeServer). | MasterServer , ComputeServer |
aws:cloudformation:stack-name | Stack name. Format: parallelcluster-RONIN-<RPID>-clustername | parallelcluster-RONIN-RPID-123-mycluster |
os_desc | Operating system description. | Ubuntu Server 18.04 LTS |
last_modified_by | Tracks who last modified the cluster's state (start/stop) and their action. | username:user@ronin.cloud:stopped |
purchase_order | Project-level code for accounting. | 12345 |
os | OS type keyword. | ubuntu |
ClusterName | Cluster name. | mycluster |
aws-parallelcluster-attributes | ParallelCluster attributes (OS, scheduler, version). | ubuntu1804, slurm, 2.6.1 |
aws-parallelcluster-filesystem | Filesystem configuration. | efs=0, multiebs=2, raid=0, fsx=0 |
billing_code | Organization-specific billing code. | BILLING-HPC |
hpc_dns | DNS prefix for the cluster. | mycluster |
image_url | Image URL for the cluster card. | img/os/ubuntu.png |
Name | Name of the cluster. | mycluster |
aws-parallelcluster-networking | Networking configuration. | EFA=NONE |
aws:ec2launchtemplate:version | Launch template version. | 1 |
description | Description of the OS. | Ubuntu Server 18.04 LTS |
aws:cloudformation:stack-id | CloudFormation stack ID. | arn:aws:cloudformation:us-east-1:123456789012:stack/mycluster/abcdefg-1234... |
default_uname | Default username for the cluster. | ubuntu |
created_by | User who created the cluster. | username:user@ronin.cloud |
template_version | CloudFormation template version used for the cluster. | ronin.pcluster.2.6.1.template |
Example Scenario:
A user creates a ParallelCluster named "compute-cluster" under project "RPID-789". The cluster uses Ubuntu 18.04 and the Slurm scheduler. The purchase order is "67890", and the billing code is "HPC-COMPUTE". Here are some example tags that might be applied to the head node:
Tag Key | Value |
---|---|
Application | parallelcluster-RONIN-RPID-789-compute-cluster |
RPID | RPID-789 |
aws:ec2launchtemplate:id | lt-0123456789abcdef0 |
aws:cloudformation:logical-id | MasterServer |
aws:cloudformation:stack-name | parallelcluster-RONIN-RPID-789-compute-cluster |
os_desc | Ubuntu Server 18.04 LTS |
last_modified_by | username:user@ronin.cloud:started |
purchase_order | 67890 |
os | ubuntu |
ClusterName | compute-cluster |
aws-parallelcluster-attributes | ubuntu1804, slurm, 2.6.1 |
billing_code | HPC-COMPUTE |
hpc_dns | compute-cluster |
Name | compute-cluster |
default_uname | ubuntu |
created_by | username:user@ronin.cloud |
template_version | ronin.pcluster.2.6.1.template |
RONIN Tags for EBS Volumes (Drive Storage)
RONIN tags EBS volumes, which it refers to as "drive storage," to provide context and facilitate management. Key tags include:
Tag Key | Description | Example Value |
---|---|---|
dns | The DNS prefix of the machine the volume is attached to (if applicable). | machine-dns |
Name | The user-defined name for the volume. | volume-name |
billing_code | Organization-specific billing code. | BILLING-STORAGE |
os_desc | Operating system description of the machine the volume is or was attached to. | Ubuntu Server 20.04 LTS |
purchase_order | Project-level purchase order code. | PO-54321 |
image_url | Image URL associated with the volume. | img/os/ubuntu.png |
R-META | Metadata about the volume's association with a machine, including root device details. | NAME=machine-name:ID=i-abcdefg:ROOT=/dev/sda1:ROOT_BOOL=true |
RPID | RONIN Project ID. | RPID-987 |
default_uname | Default username for the associated machine. | ubuntu |
description | Description of the volume's purpose. | Data storage volume |
os | OS type keyword. | ubuntu |
AWS-ID | AWS instance ID of the associated machine (if applicable). | i-0fedcba9876543210 |
Example Scenario: A user creates a volume and calls it "data-volume" in project "RPID-999" and later attaches it to the machine "analysis-server", the tags look like this:
Tag Key | Value |
---|---|
dns | analysis-server |
Name | data-volume |
billing_code | STORAGE-DATA |
os_desc | Ubuntu Server 20.04 LTS |
purchase_order | PO-13579 |
image_url | img/os/ubuntu.png |
R-META | NAME=analysis-server:ID=i-0fedcba9876543210:ROOT=/dev/sda1:ROOT_BOOL=true |
RPID | RPID-999 |
default_uname | ubuntu |
description | Primary data storage |
os | ubuntu |
AWS-ID | i-0fedcba9876543210 |
RONIN Tags for Snapshots (Backups)
RONIN tags snapshots, referred to as "backups," with the following key tags:
Tag Key | Description | Example Value |
---|---|---|
dns | DNS prefix of the associated machine or volume. | machine-dns |
description | Description of the snapshot's purpose. | OS backup |
purchase_order | Project-level purchase order code. | PO-24680 |
image_url | Image URL associated with the snapshot. | img/os/ubuntu.png |
package | Indicates if the snapshot is associated with a package (AMI). | true or false |
Name | User-defined name for the snapshot. | snapshot-name |
os | OS type keyword. | ubuntu |
os_desc | Operating system description. | Ubuntu Server 18.04 LTS |
billing_code | Organization-specific billing code. | BACKUP-CODE |
environment | Environment associated with the snapshot (if applicable). | production |
RPID | RONIN Project ID. | RPID-135 |
requestor | User who initiated the snapshot creation. | username:user@ronin.cloud |
AWS-ID | AWS instance ID of the associated machine or volume (if applicable). | i-0abcdef1234567890 |
default_uname | Default username for the associated machine. | ubuntu |
Example Scenario: A user creates a snapshot from a volume attached to "machine-one" and calls it "machine-one-backup" in project "RPID-246", the tags look like this:
Tag Key | Value |
---|---|
dns | machine-one |
description | Backup of machine-one OS volume |
purchase_order | PO-86420 |
image_url | img/os/ubuntu.png |
package | false |
Name | machine-one-backup |
os | ubuntu |
os_desc | Ubuntu Server 20.04 LTS |
billing_code | BKP-STANDARD |
environment | production |
RPID | RPID-246 |
requestor | username:user@ronin.cloud |
AWS-ID | i-0abcdef1234567890 |
default_uname | ubuntu |
RONIN Tags for AMIs (Packages)
RONIN tags AMIs, referred to as "packages," with these important tags:
Tag Key | Description | Example Value |
---|---|---|
default_uname | Default username for instances launched from the AMI. | ubuntu |
RPID | RONIN Project ID. | RPID-864 |
Name | User-defined name for the AMI. | ami-name |
purchase_order | Project-level purchase order code. | PO-75310 |
description | Description of the AMI's purpose or contents. | Custom AMI |
os_desc | Operating system description. | Ubuntu 20.04 LTS |
os | OS type keyword. | ubuntu |
billing_code | Organization-specific billing code. | AMI-CUSTOM |
image_url | Image URL associated with the AMI. | img/os/ubuntu.png |
dns | DNS prefix (if applicable). | ami-dns |
Example Scenario: A user creates an AMI and calls it "custom-ami" in project "RPID-864", the tags look like this:
Tag Key | Value |
---|---|
default_uname | ubuntu |
RPID | RPID-864 |
Name | custom-ami |
purchase_order | PO-75310 |
description | Custom AMI with pre-installed tools |
os_desc | Ubuntu 20.04 LTS |
os | ubuntu |
billing_code | AMI-CUSTOM |
image_url | img/os/ubuntu.png |
dns | custom-ami |
RONIN Tags for S3 Buckets (Object Storage)
RONIN tags object storage buckets, with these important tags:
Tag Key | Description | Example Value |
---|---|---|
RPID | RONIN Project ID. | RPID-864 |
Name | User-defined name for the bucket. | bucketname |
purchase_order | Project-level purchase order code. | PO-75310 |
billing_code | Organization-specific billing code. | AMI-CUSTOM |
created_by | The user who created the bucket. | username:user@ronin.cloud |
empty_bucket_rule | A temporary tag that is applied whilst a bucket is being emptied to instruct whether it will be kept or deleted. | keep/delete |
Example Scenario: A user creates an object storage bucket and calls it "mydata" in project "RPID-864", the tags look like this:
Tag Key | Value |
---|---|
RPID | RPID-864 |
Name | mydata |
purchase_order | PO-75310 |
billing_code | AMI-CUSTOM |
created_by | username:user@ronin.cloud |
empty_bucket_rule | keep |
Custom Tag Mapping: Enhancing Flexibility
RONIN offers custom tag mapping capabilities to further tailor your resource management:
- Static Tags: These tags have a fixed, predefined value applied at the configuration level. They are useful for identifying ALL resources created by automated RONIN processes within an AWS account.
- Session Level Tags: These tags dynamically pull information from a user's session data (e.g., email, user ID) and apply it to resources they create.
- Project Level Tags: These tags leverage existing project-level metadata but allow you to rename them for compatibility with external systems or specific workflows.
Custom Tag Mapping Example:
RONIN's configuration allows you to map custom tag keys to specific data sources using a simple key-value structure. Here's an example of how custom tags might be mapped:
Custom Tag Key | Mapping | Description |
---|---|---|
chart-string | project:billing_code | Maps the "chart-string" tag to the project's billing code. |
requestor-uni | user:email | Maps the "requestor-uni" tag to the user's email address. |
environment | static:production | Assigns a static value of "production" to the "environment" tag, useful for identifying production resources. |
Example Scenario:
When a user creates a resource, and the project's billing code is "PROJECT-BILLING" and the user's email is "user@ronin.cloud", the following custom tags would be applied based on the above mapping:
Tag Key | Value |
---|---|
chart-string | PROJECT-BILLING |
requestor-uni | user@ronin.cloud |
environment | production |
Conclusion
RONIN's comprehensive tagging system empowers users to manage their AWS resources effectively. By understanding the different types of tags – EC2 machine tags, ParallelCluster tags, EBS volume tags, snapshot tags, AMI tags and custom tags – users can gain valuable insights into their infrastructure, automate workflows, track costs, and enforce organisational policies. Leveraging these tagging capabilities is crucial for maximising the benefits of RONIN and streamlining cloud computing for research.