问题的解决方法是使用 AWS CDK 中的 Autoscaling Group,可以通过指定最小实例数为1来确保在重新部署时始终有至少一个实例在运行。如果使用的是 AWS Elastic Beanstalk,则可以通过将最小实例数设置为1来解决此问题。
下面给出使用 AWS CDK 中的 Autoscaling Group 的代码示例:
import * as cdk from "aws-cdk-lib";
import {App, Stack, StackProps} from "aws-cdk-lib";
import * as ec2 from "aws-cdk-lib/aws-ec2";
import * as autoscaling from "aws-cdk-lib/aws-autoscaling";
export class MyStack extends Stack {
constructor(scope: cdk.Construct, id: string, props?: StackProps) {
super(scope, id, props);
const vpc = new ec2.Vpc(this, "MyVPC");
const autoScalingGroup = new autoscaling.AutoScalingGroup(
this,
"MyASG",
{
vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.T2, ec2.InstanceSize.SMALL),
machineImage: new ec2.AmazonLinuxImage(),
minCapacity: 1, //设置实例最小数为1
}
);
}
}
const app = new App();
new MyStack(app, "MyStack");
app.synth();
上一篇:AWSCDKapi_endpoint值上的replace方法不按预期工作
下一篇:AWSCDKApplicationLoadBalancedFargateService在每次健康检查后都会不停止,使用Node.js和WebSockets