A simple construct to handle automated Cloudfront DNS alias migration with zero downtime
Project description
cdk-cloudfront-associate-alias
A simple construct to handle automated Cloudfront DNS alias migration with zero downtime.
Usage
Usage of this construct is fairly straightforward. Simply pass in the Cloudfront distribution, the Route53 hosted zone, and the alias you want to associate with the distribution.
const customDomain = "example.com";
const hostedZone = route53.HostedZone.fromLookup(this, "HostedZone", {
domainName: DOMAIN_NAME,
});
const targetDistribution =
cloudfront.Distribution.fromDistributionAttributes(
this,
"Distribution",
{
distributionId,
domainName: distributionDomainName,
},
);
new CloudfrontAliasAssociator(
this,
"AliasAssociator",
{
alias: customDomain,
hostedZone,
targetDistribution,
},
);
What this does
This construct will create:
- A TXT record, this is specific to the API call used, and ensures you have ownership of the domain.
- A Custom Resource that makes an
AssociateAlias
API call to Cloudfront. This API specifically is for zero downtime alias migration in Cloudfront. This will work even if the domain isn't pre-associated. - An A and AAAA alias record that points to the (new) Cloudfront distribution.
Use Cases
Notably, this construct can be used to provide Blue/Green style deployments for Cloudfront distributions. This means you can create a new distribution, associate the alias with it and this will result in zero downtime for your users.
You can also use this construct in reverse to rollback your alias to the previous deployment (or any other deployment).
For this use case, I recommend pairing this construct with the cdk-versioned-stack-manager to manage your versioned stacks.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdk-cloudfront-associate-alias-1.0.5.tar.gz
.
File metadata
- Download URL: cdk-cloudfront-associate-alias-1.0.5.tar.gz
- Upload date:
- Size: 32.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48a62a93e7b5ca32ad822fbfe52804f3bb37db3420ccc2ba404931d3f9aed320 |
|
MD5 | dfc7d9399bf6a2e98795482cfad5d6b6 |
|
BLAKE2b-256 | 22ed27bd8ebf00dbd7b22c698aaac321e69fc997f21452e23600c48d7cb37910 |
File details
Details for the file cdk_cloudfront_associate_alias-1.0.5-py3-none-any.whl
.
File metadata
- Download URL: cdk_cloudfront_associate_alias-1.0.5-py3-none-any.whl
- Upload date:
- Size: 31.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.12.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8952c72e562dbbe5be1686e94346d94036d137e1bb6e6cc1d98d9494e5ee999 |
|
MD5 | 59211b6c82069f49097b8b23638f9818 |
|
BLAKE2b-256 | 05ea227035beddfed6c13305a4d0154ce4f19271f2dd4f3f229db8b93ac2e447 |