【问题标题】:Elastic IP and Autoscaling in AWSAWS 中的弹性 IP 和自动扩展
【发布时间】:2016-10-29 10:48:40
【问题描述】:

我在 Amazon EC2 中部署了一个 Web 服务应用程序,并将一个弹性 IP 地址与其关联。我们的移动设备使用弹性 IP 与此 Web 服务进行交互。现在我想在 EC2 上实现自动缩放。

但我不确定我的单个弹性 IP 在扩展时如何与多个 EC2 实例相关联?这可能吗。请指导。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon


    【解决方案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 密钥

    希望对你有帮助:)

    【讨论】:

      猜你喜欢
      • 2013-08-25
      • 2016-02-14
      • 2012-06-16
      • 2015-05-22
      • 2020-08-23
      • 2018-08-20
      • 2020-05-12
      • 2018-09-15
      • 2013-02-06
      相关资源
      最近更新 更多