AWS 中的弹性 IP 和自动扩展
Posted
技术标签:
【中文标题】AWS 中的弹性 IP 和自动扩展【英文标题】:Elastic IP and Autoscaling in AWS 【发布时间】:2016-10-29 10:48:40 【问题描述】:我在 Amazon EC2 中部署了一个 Web 服务应用程序,并将一个弹性 IP 地址与其关联。我们的移动设备使用弹性 IP 与此 Web 服务进行交互。现在我想在 EC2 上实现自动缩放。
但我不确定我的单个弹性 IP 在扩展时如何与多个 EC2 实例相关联?这可能吗。请指导。
【问题讨论】:
【参考方案1】:弹性 IP 地址只与单个 EC2 实例相关联。
如果您想开始自动扩展您的应用程序,那么您需要在您的 EC2 实例前面放置一个负载均衡器。这可以是 AWS Elastic Load Balancer 或其他。
用户将连接到负载均衡器,负载均衡器会将请求转发到底层 EC2 实例。
假设您使用弹性负载均衡器,您需要删除弹性 IP 地址,因为 ELB 无法使用它们。相反,您将为 ELB 创建一个 CNAME(或别名,如果您的 DNS 使用 Route 53)。
【讨论】:
好的。谢谢马特。我会这样尝试。 马特,一个问题,对于负载均衡器,我需要预设数量的实例始终运行正确吗?它不能帮助我根据需要扩大规模,而且还会让我付出代价。在那种情况下,我们会在哪些情况下使用自动缩放功能? 我认为答案是将负载均衡器附加到自动缩放组。 您可以将任何单个 EC2 实例挂接到负载均衡器后面,也可以将 Auto Scaling 组放在 ELB 后面,或者两者都可以。您可以将 Auto Scaling 组的最小值设置为 1,这样您总是有 1,然后当您需要扩展时,您可以增加 Auto Scaling 组所需的大小和最大大小。 再次感谢马特。【参考方案2】:不,那是不可能的。您可能需要使用弹性负载均衡器。
【讨论】:
感谢马克您的意见。【参考方案3】:使用 EC2 和自动扩展,您需要在 EC2 中使用 user data
将弹性 IP 自动附加到 EC2 实例以进行自动扩展
#!/bin/bash
aws configure set aws_access_key_id "XYZ..."
aws configure set aws_secret_access_key "ABC..."
aws configure set region "ap-..."
aws ec2 associate-address --instance-id "$(curl -X GET "http://169.254.169.254/latest/meta-data/instance-id")" --public-ip your_elastic_IP
注意:您应该创建新用户,并且 IAM 只有权限关联地址才能创建/获取 aws 密钥
希望对你有帮助:)
【讨论】:
以上是关于AWS 中的弹性 IP 和自动扩展的主要内容,如果未能解决你的问题,请参考以下文章