一个JSII构造库来构建AWS Fargate快速自动缩放器

cdk-fargate-fastautlscaler的Python项目详细描述


NPM versionPyPI versionRelease

aws fargate快速自动缩放仪

AWS Fargate Fast Autosaler—一个无服务器的实现,用cdk-fargate-fastautlscaler在几秒钟内触发AWS Fargate自动缩放。在

cdk fargate fargate Fartautlscaler公司

cdk-fargate-fastautlscaler是AWS CDK的aws/jsii构造库。在

通过使用cdk-fargate-fastautoscaler构建AWS CDK堆栈,您可以使用快速自动调整功能创建定制的Fargate工作负载。在

工作原理

在幕后,我们在PHP、NodeJS、Java或Python中的工作负载在单个AWS Fargate任务中使用nginx反向代理运行,该任务公开了用于生成实时连接信息的/nginx_status端点。所有通过ALB到Fargate任务的流量都将在nginx反向代理到达后端服务器之前与nginx建立主动连接。在

我们正在运行一个AWS Step函数状态机,以周期性地调用AWS Lambda函数,并每隔3秒从每个Fargate任务中收集活动连接号,然后在状态机中确定我们的缩放策略,然后使用immediate ecs service update来增加所需的Fargate任务数。在

AWS CDK样品

下面的CDK示例在AWS Fargate中创建一个PHP服务,nginx作为反向代理。在

# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826importaws_cdk.coreascdkimportaws_cdk.aws_ec2asec2fromaws_cdk.aws_ecsimportAwsLogDriver,ContainerImagefromcdk_fargate_fastautlscalerimportFargateFastAutoscalerimportpathaspathapp=cdk.App()env={"region":process.env.CDK_DEFAULT_REGION,"account":process.env.CDK_DEFAULT_ACCOUNT}stack=cdk.Stack(app,"FargateFastAutoscalerDemo",env=env)vpc=ec2.Vpc.from_lookup(stack,"Vpc",is_default=True)FargateFastAutoscaler(stack,"FargateFastAutoscaler",vpc=vpc,# create the backend PHP servicebackend_container={"image":ContainerImage.from_asset(path.join(__dirname,"../../sample/backend/php")),"cpu":0,"logging":AwsLogDriver(stream_prefix="echo-http-req")},# PHP service running on container port 2015backend_container_port_mapping=[{"container_port":2015}])

部署完成后,您将在输出中看到URL:

fargate快速-自动缩放.URL=http://farga-exter-1GW64WGQYNE4O-1567742142.us-west-2.elb.amazonaws.com

打开这个URL,您将看到带有phpinfo的Caddy web服务器欢迎页面。在

如果您在URL中附加/nginx_status并重新加载页面,您将看到以下页面:

启动状态机

转到步骤函数控制台,在状态机上单击start execution。保留execution name和input列不变,再次单击start execution。你的状态机将运行。在场景后面,step函数将调用Lambda函数来从nginx reverse proxy收集每个fargate任务上的Active Connections个数,并确定新的所需fargate任务数量。通常情况下,它只需要不到10秒的就可以开始扩展。在

SNS服务集成

状态机中的SNSScaleOut任务利用直接Amazon SNS服务集成,向您的SNS主题发布通知。启动ServiceScaleOut任务时,您将收到SNS通知。在

指定snsTopic属性来定义自定义SNS主题。如果未定义,则构造将创建一个默认的SNS主题。在

禁用缩放

默认情况下,disableScaleIn设置为true,以防止工作负载扩大。如果希望启用缩放,请将disableScaleIn设置为false。在

许可证摘要

这个示例代码是在MIT-0许可证下提供的。请参见许可证文件。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?