适用于 AWS 上 ASAv 的 Auto Scale 解决方案
以下各节介绍 Auto Scale 解决方案的组件如何对 AWS 上的 ASAv 发挥作用。
关于 Auto Scale 解决方案
Cisco 提供 CloudFormation 模板和脚本,用于使用多个 AWS 服务部署 ASAv 防火墙的自动扩展组,包括 Lambda、自动扩展组、弹性负载均衡 (ELB)、Amazon S3 存储桶、SNS 和 CloudWatch。
AWS 中的 ASAv Auto Scale 是完整的无服务器实现(即此功能的自动化不涉及辅助虚拟机),它可以将水平自动扩展功能加入到 AWS 环境中的 ASAv 实例。
ASAv Auto Scale 解决方案是基于 CloudFormation 模板的部署,可提供:
-
完全自动化配置会自动应用于横向扩展 ASAv 实例。
-
对负载均衡器和多可用性区域的支持。
-
对启用和禁用自动扩展功能的支持。
Auto Scale 使用案例
使用案例图中显示了此 ASAv AWS Auto Scale 解决方案的使用案例。由于 AWS 负载均衡器只允许入站发起的连接,因此只允许外部生成的流量通过 Cisco ASAv 防火墙传入内部。
注 |
如前提条件 SSL 服务器证书 中所述,安全端口需要 SSL/TLS 证书。 |
面向互联网的负载均衡器可以是网络负载均衡器或应用程序负载均衡器。在两种情况下,所有 AWS 要求和条件均适用。如使用案例图中所示,虚线右侧是通过 ASAv 模板部署的。左侧完全由用户定义。
注 |
应用程序发起的出站流量将不会经过 ASAv。 |
基于端口的流量分叉是可能的。这可通过 NAT 规则实现。例如,面向互联网的 LB DNS、端口:80 上的流量可以路由到应用程序 1;端口:88 流量可路由到应用程序 2。
Auto Scale 解决方案的工作机制
为了内向扩展和外向扩展 ASAv 实例,一个称为 Auto Scale Manager 的外部实体会监控指标、命令自动扩展组添加或删除 ASAv 实例、并配置 ASAv 实例。
Auto Scale Manager 使用 AWS 无服务器架构进行实施,并且与 AWS 资源 和 ASAv 通信。我们提供 CloudFormation 模板来自动执行 Auto Scale Manager 组件的部署。此模板还用于部署完整解决方案发挥作用所需的其他资源。
注 |
无服务器 Auto Scale 脚本只由 CloudWatch 事件调用,因此它们仅在启动实例时才会运行。 |
Auto Scale 解决方案组件
以下组件构成了 Auto Scale 解决方案。
CloudFormation 模板
CloudFormation 模板用于部署 AWS 中 Auto Scale 解决方案所需的资源。该模板包括以下各项:
-
Auto Scale 组、负载均衡器、安全组和其他各种组件。
-
模板需要用户输入来自定义部署。
注
模板在验证用户输入方面有限制,因此,用户应负责在部署期间验证输入。
Lambda 函数
Auto Scale 解决方案是在 Python 中开发的一组 Lambda 函数,可以通过生命周期钩子、SNS、CloudWatch 事件/警报事件触发。基本功能包括:
-
向实例添加/删除 Gig0/0 和 Gig 0/1 接口。
-
向负载均衡器的目标组注册 Gig0/1 接口。
-
使用 ASA 配置文件配置和部署新的 ASAv。
Lambda 函数以 Python 包的形式交付给客户。
生命周期 Hook
-
生命周期钩子用于获取关于实例的生命周期更改通知。
-
在启动实例时,生命周期钩子用于触发 Lambda 函数,可将接口添加到 ASAv 实例,并将外部接口 IP 注册到目标组。
-
在终止实例时,生命周期钩子用于触发 Lambda 函数,以便从目标组取消注册 ASAv 实例。
Simple Notification Service (SNS)
-
来自 AWS 的 Simple Notification Service (SNS) 用于生成事件。
-
受限于 AWS 中的无服务器 Lambda 函数没有适合的编排器,因此该解决方案使用 SNS 作为一种函数链,以便基于事件来编排 Lambda 函数。