# CfnInstanceGroupConfigProps

Properties for defining a `CfnInstanceGroupConfig`.

Extends: CfnInstanceGroupConfigProps
Used as props by: CfnInstanceGroupConfig

- Source: Generated code
- Type last changed: v2.2.0 · 15 Dec 2021

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_emr as emr } from 'aws-cdk-lib';

declare const configurationProperty_: emr.CfnInstanceGroupConfig.ConfigurationProperty;
const cfnInstanceGroupConfigProps: emr.CfnInstanceGroupConfigProps = {
  instanceCount: 123,
  instanceRole: 'instanceRole',
  instanceType: 'instanceType',
  jobFlowId: 'jobFlowId',

  // the properties below are optional
  autoScalingPolicy: {
    constraints: {
      maxCapacity: 123,
      minCapacity: 123,
    },
    rules: [{
      action: {
        simpleScalingPolicyConfiguration: {
          scalingAdjustment: 123,

          // the properties below are optional
          adjustmentType: 'adjustmentType',
          coolDown: 123,
        },

        // the properties below are optional
        market: 'market',
      },
      name: 'name',
      trigger: {
        cloudWatchAlarmDefinition: {
          comparisonOperator: 'comparisonOperator',
          metricName: 'metricName',
          period: 123,
          threshold: 123,

          // the properties below are optional
          dimensions: [{
            key: 'key',
            value: 'value',
          }],
          evaluationPeriods: 123,
          namespace: 'namespace',
          statistic: 'statistic',
          unit: 'unit',
        },
      },

      // the properties below are optional
      description: 'description',
    }],
  },
  bidPrice: 'bidPrice',
  configurations: [{
    classification: 'classification',
    configurationProperties: {
      configurationPropertiesKey: 'configurationProperties',
    },
    configurations: [configurationProperty_],
  }],
  customAmiId: 'customAmiId',
  ebsConfiguration: {
    ebsBlockDeviceConfigs: [{
      volumeSpecification: {
        sizeInGb: 123,
        volumeType: 'volumeType',

        // the properties below are optional
        iops: 123,
        throughput: 123,
      },

      // the properties below are optional
      volumesPerInstance: 123,
    }],
    ebsOptimized: false,
  },
  market: 'market',
  name: 'name',
};
```

## Properties

- `autoScalingPolicy`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnInstanceGroupConfig.AutoScalingPolicyProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.AutoScalingPolicyProperty.html) — `AutoScalingPolicy` is a subproperty of `InstanceGroupConfig` .

  `AutoScalingPolicy` defines how an instance group dynamically adds and terminates EC2 instances in response to the value of a CloudWatch metric. For more information, see [Using Automatic Scaling in Amazon EMR](https://docs.aws.amazon.com//emr/latest/ManagementGuide/emr-automatic-scaling.html) in the *Amazon EMR Management Guide* .

- `bidPrice`: string — If specified, indicates that the instance group uses Spot Instances.

  This is the maximum price you are willing to pay for Spot Instances. Specify `OnDemandPrice` to set the amount equal to the On-Demand price, or specify an amount in USD.

- `configurations`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnInstanceGroupConfig.ConfigurationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.ConfigurationProperty.html)[] — > Amazon EMR releases 4.x or later.

  The list of configurations supplied for an Amazon EMR cluster instance group. You can specify a separate configuration for each instance group (master, core, and task).

- `customAmiId`: string — The custom AMI ID to use for the provisioned instance group.

- `ebsConfiguration`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnInstanceGroupConfig.EbsConfigurationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_emr.CfnInstanceGroupConfig.EbsConfigurationProperty.html) — `EbsConfiguration` determines the EBS volumes to attach to EMR cluster instances.

- `instanceCount`: number (required) — Target number of instances for the instance group.

- `instanceRole`: string (required) — The role of the instance group in the cluster.

  *Allowed Values* : TASK

- `instanceType`: string (required) — The Amazon EC2 instance type for all instances in the instance group.

- `jobFlowId`: string (required) — The ID of an Amazon EMR cluster that you want to associate this instance group with.

- `market`: string — Market type of the Amazon EC2 instances used to create a cluster node.

- `name`: string — Friendly name given to the instance group.
