# PlacementGroupProps

Props for a PlacementGroup.

Extends: PlacementGroupProps
Used as props by: PlacementGroup

- Source: [`aws-ec2/lib/placement-group.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ec2/lib/placement-group.ts#L59)
- Type last changed: v2.74.0 · 13 Apr 2023

## Example

```ts
declare const instanceType: ec2.InstanceType;

const pg = new ec2.PlacementGroup(this, 'test-pg', {
  strategy: ec2.PlacementGroupStrategy.SPREAD,
});

new ec2.Instance(this, 'Instance', {
  vpc,
  instanceType,
  machineImage: ec2.MachineImage.latestAmazonLinux2023(),
  placementGroup: pg,
});
```

## Properties

- `partitions`: number = 0 — The number of partitions.

  Valid only when Strategy is set to partition.

- `placementGroupName`: string = generated by CFN — the name of this placement group.

- `spreadLevel`: [PlacementGroupSpreadLevel](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.PlacementGroupSpreadLevel.html) = no spread level — Places instances on distinct hardware.

  Spread placement groups are recommended for applications
  that have a small number of critical instances that should be kept separate from each other.
  Launching instances in a spread level placement group reduces the risk of simultaneous failures
  that might occur when instances share the same equipment.
  Spread level placement groups provide access to distinct hardware,
  and are therefore suitable for mixing instance types or launching instances over time.
  If you start or launch an instance in a spread placement group and there is insufficient
  unique hardware to fulfill the request, the request fails. Amazon EC2 makes more distinct hardware
  available over time, so you can try your request again later.
  Placement groups can spread instances across racks or hosts.
  You can use host level spread placement groups only with AWS Outposts.

- `strategy`: [PlacementGroupStrategy](/cdk/api/v2/docs/aws-cdk-lib.aws_ec2.PlacementGroupStrategy.html) = `PlacementGroupStrategy.PARTITION` if `partitions` is defined, `CLUSTER` otherwise — Which strategy to use when launching instances.

  **Default:** `PlacementGroupStrategy.PARTITION` if `partitions` is defined, `CLUSTER` otherwise
