# EcsOptimizedImage

Construct a Linux or Windows machine image from the latest ECS Optimized AMI published in SSM.

Extends: EcsOptimizedImage
Implements: IMachineImage

- Source: [`aws-ecs/lib/amis.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-ecs/lib/amis.ts#L224)
- Type last changed: v2.96.0 · 13 Sep 2023

## Example

```ts
declare const vpc: ec2.Vpc;

const cluster = new ecs.Cluster(this, 'Cluster', {
  vpc,
});

// Either add default capacity
cluster.addCapacity('DefaultAutoScalingGroupCapacity', {
  instanceType: new ec2.InstanceType("t2.xlarge"),
});

// Or add customized capacity. Be sure to start the Amazon ECS-optimized AMI.
const autoScalingGroup = new autoscaling.AutoScalingGroup(this, 'ASG', {
  vpc,
  instanceType: new ec2.InstanceType('t2.xlarge'),
  machineImage: ecs.EcsOptimizedImage.amazonLinux(),
  // Or use Amazon ECS-Optimized Amazon Linux 2 AMI
  // machineImage: EcsOptimizedImage.amazonLinux2(),
  desiredCapacity: 3,
  // ... other options here ...
});

const capacityProvider = new ecs.AsgCapacityProvider(this, 'AsgCapacityProvider', {
  autoScalingGroup,
});
cluster.addAsgCapacityProvider(capacityProvider);
```

## Methods

- `amazonLinux(options?: EcsOptimizedImageOptions): EcsOptimizedImage // chainable` (static) — Construct an Amazon Linux AMI image from the latest ECS Optimized AMI published in SSM.

- `amazonLinux2(hardwareType?: AmiHardwareType, options?: EcsOptimizedImageOptions): EcsOptimizedImage // chainable` (static) — Construct an Amazon Linux 2 image from the latest ECS Optimized AMI published in SSM.

  **Parameters**

  - `hardwareType` — ECS-optimized AMI variant to use.

- `amazonLinux2023(hardwareType?: AmiHardwareType, options?: EcsOptimizedImageOptions): EcsOptimizedImage // chainable` (static) — Construct an Amazon Linux 2023 image from the latest ECS Optimized AMI published in SSM.

  **Parameters**

  - `hardwareType` — ECS-optimized AMI variant to use.

- `getImage(scope: Construct): MachineImageConfig` — Return the correct image.

- `windows(windowsVersion: WindowsOptimizedVersion, options?: EcsOptimizedImageOptions): EcsOptimizedImage // chainable` (static) — Construct a Windows image from the latest ECS Optimized AMI published in SSM.

  **Parameters**

  - `windowsVersion` — Windows Version to use.
