【问题标题】:Attaching ELB to ASG in Private Subnet在私有子网中将 ELB 附加到 ASG
【发布时间】:2018-11-20 13:29:00
【问题描述】:

提前感谢您的宝贵时间。我对 AWS 很陌生,正在尝试设置一个面向云的应用程序来处理 HTTP / HTTPS 请求。

我有一个 域名 (example.com) 附加到弹性负载均衡器 (ELB),我的要求只是将一个 ELB 附加到 AutoScaling 组 (ASG) 这将有 2-5 个 EC2 的最小值 - 最大值。 我最好将由 ASG 创建的 EC2 放置在私有子网中。

我遵循here 提供的解决方案,但正如我在第 5 步中所了解的那样,它用于将 ELB 连接到现有 EC2 实例。但我的要求是将它附加到 ASG,因此无法连接到特定的 EC2 实例。

我现在只关注两个 AZ,并在两个 AZ 中分别创建了一个公共子网和私有子网。创建 ELB 并将其附加到两个公共子网后,我继续进行启动配置和 ASG。在设置 LC 和 ASG 时,我会要求澄清以下选择的含义。

在为 ASG 创建启动配置时,在其中一个步骤(IP 地址类型)中,我有 三个 选项,即:

(1) 如果在默认 VPC/子网中创建新实例,则为新实例提供公共 IP

(2) 新实例始终为公共 IP

(3) 新实例没有公共 IP。

根据我的要求,应该选择以上哪一项?

其他问题

  1. 在创建 ASG 时选择子网时,我应该选择公共子网和私有子网还是仅公共 SN仅私有 SN ?我的猜测是私有子网只是因为我想将 EC2 放在私有 SN 中。

  2. 如果由 ASG 创建的 EC2 将部署在私有 SN 中,那么公有子网中还应该存在什么?

再次感谢您的时间和指导。

6/13 更新

对于我上面发布的问题,我继续选择如下:

  1. 为 ASG 创建启动配置时,IP 地址类型:新实例没有公共 IP。

  2. 在创建 ASG 时选择子网时:仅私有 SN

  3. 我在公有子网中放置了一个 NAT 网关,并更新了私有子网的路由表,以包含从 0.0.0.0/0 到 NAT 的路由

一切正常!!

【问题讨论】:

    标签: amazon-web-services autoscaling elastic-load-balancer private-subnet


    【解决方案1】:

    您可以找到有关附加到自动缩放组 here 的 AWS 文档。您将 ELB 附加到 ASG,或者如果它是应用程序负载均衡器,则将 ALB 的目标组附加到 ASG:

    将负载平衡器附加到组

    • 打开 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

    • 在导航窗格的 Auto Scaling 下,选择 Auto Scaling 群组

    • 选择您的组。

    • 详细信息选项卡上,选择编辑

    执行以下操作之一:

    • [经典负载均衡器] 对于 负载均衡器, 选择您的负载 平衡器。

    • [目标组] 对于目标组,选择您的目标组。

    • 选择保存

    如果您的实例将位于 ELB 之后,则您不需要公共 IP 地址。您还应该在私有子网中启动它们。您的 ELB 将位于公共子网中,并将通信中继到这些私有子网中的实例。还将为 ELB 分配一个 DNS 名称 alias to a custom DNS name of your own

    从上面的文档中,您还可以使用 CLI 附加和分离:

    附加 Classic Load Balancer

    使用以下 attach-load-balancers 命令附加 为您的 Auto Scaling 组指定负载均衡器:

    aws autoscaling attach-load-balancers --auto-scaling-group-name my-asg --load-balancer-names my-lb
    

    附加到目标组

    使用以下 attach-load-balancer-target-groups 命令附加 指定目标组到您的 Auto Scaling 组:

    aws autoscaling attach-load-balancer-target-groups --auto-scaling-group-name my-asg --target-group-arns my-targetgroup-arn
    

    分离 Classic Load Balancer

    使用以下 detach-load-balancers 命令分离负载 如果您不再需要 Auto Scaling 组中的平衡器:

    aws autoscaling detach-load-balancers --auto-scaling-group-name my-asg --load-balancer-names my-lb
    

    分离目标组

    使用以下 detach-load-balancer-target-groups 命令分离 如果您不再需要 Auto Scaling 组中的目标组:

    aws autoscaling detach-load-balancer-target-groups --auto-scaling-group-name my-asg --target-group-arns my-targetgroup-arn
    

    【讨论】:

    • 您好@Brandon,感谢您的回复。对不起,如果我的问题不够清楚。我很擅长将 ASG 连接到 ELB 的步骤。我的困惑更多与在配置 LC 和为 ASG 选择子网时选择 IP 类型有关。如上面提供的更新中所述,我继续并完成了设置。但是即使 ELB 在公共 SN 中,也无法访问私有子网中的私有 IP 实例。然后,我在其中一个公共子网中添加了 NAT 网关,并更新了私有子网的路由表以包含 0.0.0.0/0 到 NAT 的路由。 成功
    猜你喜欢
    • 1970-01-01
    • 2016-12-11
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 2014-04-27
    • 2019-05-17
    • 2019-10-05
    相关资源
    最近更新 更多