# ClusterInstance

Create an RDS Aurora Cluster Instance.

You can create either provisioned or
serverless v2 instances.

Extends: ClusterInstance
Implements: IClusterInstance

- Source: [`aws-rds/lib/aurora-cluster-instance.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-rds/lib/aurora-cluster-instance.ts#L381)
- Type last changed: v2.82.0 · 2 Jun 2023

## Example

```ts
declare const vpc: ec2.Vpc;
const myCluster = new rds.DatabaseCluster(this, 'Database', {
  engine: rds.DatabaseClusterEngine.auroraMysql({ version: rds.AuroraMysqlEngineVersion.VER_2_08_1 }),
  writer: rds.ClusterInstance.provisioned('writer', {
    instanceType: ec2.InstanceType.of(ec2.InstanceClass.R6G, ec2.InstanceSize.XLARGE4),
  }),
  serverlessV2MinCapacity: 6.5,
  serverlessV2MaxCapacity: 64,
  readers: [
    // will be put in promotion tier 1 and will scale with the writer
    rds.ClusterInstance.serverlessV2('reader1', { scaleWithWriter: true }),
    // will be put in promotion tier 2 and will not scale with the writer
    rds.ClusterInstance.serverlessV2('reader2'),
  ],
  vpc,
});
```

## Methods

- `bind(scope: Construct, cluster: IDatabaseCluster, props: ClusterInstanceBindOptions): IAuroraClusterInstance` — Add the ClusterInstance to the cluster.

- `provisioned(id: string, props?: ProvisionedClusterInstanceProps): IClusterInstance` (static) — Add a provisioned instance to the cluster.

  ```ts
  rds.ClusterInstance.provisioned('ClusterInstance', {
    instanceType: ec2.InstanceType.of(ec2.InstanceClass.R6G, ec2.InstanceSize.XLARGE4),
  });
  ```

- `serverlessV2(id: string, props?: ServerlessV2ClusterInstanceProps): IClusterInstance` (static) — Add a serverless v2 instance to the cluster.

  ```ts
  rds.ClusterInstance.serverlessV2('ClusterInstance', {
    scaleWithWriter: true,
  });
  ```
