Skip to content

Distribution ​

The Distribution resource allows you to manage AWS Lightsail Distributions for delivering content with low latency and high transfer speeds.

Minimal Example ​

Create a basic Lightsail distribution with required properties and a few common optional configurations.

ts
import AWS from "alchemy/aws/control";

const minimalDistribution = await AWS.Lightsail.Distribution("myBasicDistribution", {
  Origin: {
    Name: "myOrigin",
    ProtocolPolicy: "https-only",
    Source: "http://myorigin.com"
  },
  DistributionName: "my-basic-distribution",
  BundleId: "small",
  DefaultCacheBehavior: {
    Behavior: "allow",
    CacheBehavior: {
      Caching: {
        DefaultTtl: 300,
        MaxTtl: 86400,
        MinTtl: 60
      }
    }
  },
  IsEnabled: true
});

Advanced Configuration ​

Configure a distribution with detailed caching settings and multiple cache behaviors.

ts
const advancedDistribution = await AWS.Lightsail.Distribution("myAdvancedDistribution", {
  Origin: {
    Name: "myAdvancedOrigin",
    ProtocolPolicy: "http-only",
    Source: "http://myadvancedorigin.com"
  },
  DistributionName: "my-advanced-distribution",
  BundleId: "medium",
  DefaultCacheBehavior: {
    Behavior: "allow",
    CacheBehavior: {
      Caching: {
        DefaultTtl: 600,
        MaxTtl: 172800,
        MinTtl: 300
      }
    }
  },
  CacheBehaviors: [
    {
      Path: "/images/*",
      Behavior: "allow",
      CacheBehavior: {
        Caching: {
          DefaultTtl: 1200,
          MaxTtl: 259200,
          MinTtl: 600
        }
      }
    }
  ],
  IsEnabled: true,
  Tags: [
    { Key: "Environment", Value: "Production" },
    { Key: "Project", Value: "LightsailApp" }
  ],
  CertificateName: "myCertificate"
});

Using Cache Behavior Settings ​

Create a distribution that utilizes cache behavior settings to optimize content delivery.

ts
const cacheSettingsDistribution = await AWS.Lightsail.Distribution("myCacheSettingsDistribution", {
  Origin: {
    Name: "myCacheOrigin",
    ProtocolPolicy: "https-only",
    Source: "http://mycacheorigin.com"
  },
  DistributionName: "my-cache-settings-distribution",
  BundleId: "large",
  DefaultCacheBehavior: {
    Behavior: "allow",
    CacheBehavior: {
      Caching: {
        DefaultTtl: 1200,
        MaxTtl: 604800,
        MinTtl: 300
      }
    }
  },
  CacheBehaviorSettings: {
    Caching: {
      DefaultTtl: 1800,
      MaxTtl: 86400,
      MinTtl: 300
    }
  },
  IsEnabled: true
});