我有一个MEAN应用程序,正在使用专用IP在服务器或应用程序之间提供连接。我正在应用程序内部为此使用ec2实例专用IP。
现在,我想在生产环境中使用Auto Scaling。但是使用Auto Scaling组启动ec2实例时,我无法分配预定义的私有IP。
Is there a better way to do this? Perhaps through Launch Configurations?
什么是允许为Auto Scaling组启动的ec2实例分配私有IP的最佳方法?
答案 0 :(得分:0)
Amazon EC2 Auto Scaling通过以下方式调整容量:
启动新实例后,它将收到关联子网的CIDR范围内的私有IP地址。虽然在Amazon EC2中通常可以请求特定的IP地址(通过DHCP保留来完成),但是使用Auto Scaling不可能。而是,每个实例将从子网的CIDR范围接收一个随机地址。
如果您的应用程序确实确实需要一定范围的预定义IP地址,则可以使用弹性IP地址池,并让每个新实例“抢”这些地址之一。但是,引用公共IP地址(而弹性IP地址是公共IP地址)的VPC内的流量收取1c / GB的费用,因为它先流出然后又回到VPC。我不推荐这种方法。
鉴于在任何时候都可以运行数量可变的实例,因此,假设您的应用程序可以处理以下事实:它可能已注册了IP地址但未使用,您可以在其中分配每个IP地址CIDR范围。您甚至可以创建一个较小的子网,因此范围不是很大。
答案 1 :(得分:0)
在 ec2 实例的启动配置中,无法为自动伸缩组保留特定的专用IP。
但是这里有三种可能的解决方法。
请按照私有IP 创建小子网,并在创建 Auto Scaling组时选择它。
创建 ENI(网络接口),并将其分配给您选择的私有IP 地址,在 Auto Scaling启动配置中写入用户数据脚本,该脚本使用 AWS cli工具来发现预先创建的 ENI 并将其附加到 ec2实例。
您还可以尝试使用用户数据向实例主界面添加次要私有IP 地址。