EC2 HPC Instance Without Placement Group
1
1
low
What does ZopNight detect here?
HPC-class EC2 instances (hpc*, p4d through p6e-gb200, and trn1/trn2 families) running outside any placement group lose the low-latency cluster networking they were bought for. ZopNight fires when the placement_group metadata key is absent, suppresses when a named group exists, and books the finding at $0 as compliance advice.
Signal and threshold
| Field | Value |
|---|---|
| Rule IDs | RC-186 |
| Category | compliance |
| Severity | low |
| Metric | none — pure configuration read |
| Source | ec2_placement_group.go |
Where it applies
HPC families and the absent placement group key
- resource.Status: running
- resource.Metadata: workload_type==hpc OR live InstanceType in the HPC family (hpc* prefix, p4d/p4de/p5/p5e/p5en/p6-b200/p6e-gb200, trn1/trn1n/trn2/trn2u). HPC classification no longer relies on a customer-only Tag, so a stray free-form tag cannot drive the rec. Matching is by exact family token (<family>.), so newer families need their own list entry rather than relying on a shorter prefix (e.g. p5 does not cover p5e/p5en; p6-b200/p6e-gb200 use hyphenated tokens, not a bare p6 prefix).
- resource.Metadata: placement_group key ABSENT or empty string → fires (not in a group); key present with a non-empty group name → suppressed (already in a named placement group). The AWS EC2 discoverer stamps placement_group with the group name only when the instance is in one and omits the key otherwise, matching this absence-based contract end-to-end on live data.
- Known limitation (accepted, no producer work planned): the discoverer’s metadata only carries the placement group’s name, not its strategy, so an HPC instance placed in a spread/partition group (which gives none of the cluster-group latency benefit) is treated as compliant. Real-world incidence is judged effectively nil for a $0 low-severity advisory, so no ec2:DescribePlacementGroups call is added for this.
A compliance finding with no savings claimed
$0 (compliance): CurrentCostUSD/OptimizedCostUSD/SavingsUSD all 0; no savings claimed.
Moving the instance into a cluster group
- Create a cluster placement group
- Stop the instance
- Modify the instance to use the placement group
- Start the instance and verify network performance