问题描述
我创建了一个面向internet的ELB,并为它创建了一个VPC(10.1.0.0/16),两个子网(都在cn-north-1a下,网段分别为10.1.0.0/24(subnet1)和10.1.1.0/24(subnet2)),在subnet1中创建了两个实例用于处理流量,实例中已经安装了httpd并测试能够通过curl获得页面信息,由于是测试所以安全组和ACL是全开放的。我对ELB的理解是将某个可用区如cn-north-1a中的publicsubnet添加到ELB后该可用区的实例都是可以添加到ELB的,只要安全组设置正确,而ELB处理请求将请求转发到实例后实例ELB将不再控制这个请求,这个时候实例将直接与发出请求的客户端通信,所以实例也是需要能够访问internet的,由于中国区还没有NAT服务,所以我在subnet1中也加入了指向internet网关的route,之前创建的两个实例也在创建时自动分配了publicip(不知是不是这么理解)。现在的情况就是:ELB中添加public子网subnet2,subnet1中创建两个带publicip的实例并将实例添加到ELB,为了让实例能连接internet所以在subnet1中也加入了指向IGW的route,所有安全组全开放。最后在浏览器中输入ELB的DNS,能够获取实例的页面,神奇的是并不是每次创建ELB能获取到实例,而且每次即使获取了实例,一段时间后也无法获取了,而我将subnet1也就是两个实例所在的子网加入ELB也无法获取,但是ELB的DNS始终是能够ping通的,实例也始终处于InService,请问这种现象是为什么?
解决方案
解决方案二:
没遇到过这种
解决方案三:
引用1楼xiongshengwu的回复:
没遇到过这种
您好,请问我上面的配置过程有问题吗?就是一个在cn-north-1a中有两个子网,都有指向IGW的route(因为我的理解是ELB中的实例要能够和internet通信但NAT又不能用,我这么做可以吗),其中一个添加到ELB,另一个子网中创建两个实例并添加到ELB。安全组都没问题因为能够ping通ELB,实例也是InService的。