这似乎与子网/可用性区域有关,但我是新手使用VPC而且它是在逃避我.
VPC:10.80.0.0/16
子网:10.80.1.0/24(us-east-1b)
子网:10.80.2.0/24(us-east-1a)
所有实例都是Windows Server 2012.
我在我的VPC(10.80.0.0/16)内创建了面向ELB的互联网.从AZ us-east-1a添加了一个实例,它位于子网10.80.2.0/24上.该实例正在运行IIS 7.5,其中应用程序在端口80上运行,而/health.aspx设置为用作ELB运行状况检查.
VPC上的内部流量正常流动(不受限制).我可以从us-east-1b(10.80.1.0/24)中的另一个实例请求此实例的health.aspx.我也可以将文件从一个实例复制到另一个实例.
出站流量不受限制.我可以RDP到实例(当连接到我们的VPN时)并打开浏览器并请求网页并获取它.
ELB说实例是健康的,我可以在IIS日志中看到对health.aspx的请求.ELB和实例都配置了允许80和443的安全组.
但是,如果我尝试通过开放的互联网请求{elb-url} /health.aspx,请求就会超时.同样,使用与实例关联的弹性IP,对{elastic-ip} /health.aspx的请求超时.
我有一个自动缩放策略,可根据整体组 cpu 使用情况缩放我的后端实例。AWS 有一些不同的终止策略可供选择,例如 OldestInstance、OldestLaunchConfiguration、NewestInstance 和 ClosestToNextInstanceHour。
不幸的是,这些都没有帮助解决我的问题。如果我的缩减策略触发器为组设置为低 10%,它最终可能会删除仍然繁忙的实例,而不是选择一个具有空闲 CPU 的实例。
有没有人建议是解决方法?此外,我的后端实例没有使用内部 ELB。
在AWS环境中,向EC2实例添加多个弹性网络接口可以增加网络带宽,这是真的吗?
我正在一个项目中,其中一项任务是为远程VPC中的实例提供AWS ELB服务。AWS ELB位于VPC A中,实例位于VPC B中。我的最初回答是:否,因为ELB是负载均衡器,而不是路由器。文档和与AWS ELB的配合使用表明,不支持或无法配置远程VPC中子网/实例的负载平衡。
我正在检查是否有人尝试过此方案以取得任何成功。
非常感谢您的任何回应或反馈。
amazon-ec2 amazon-web-services amazon-elb amazon-vpc aws-cli
设置ELB时,它会说以下内容:
您必须从至少两个可用区中指定子网,以提高负载均衡器的可用性。
我目前有两个 VPC:
ELB 仅适用于 WebVPC(为 Web 流量提供服务)。我目前每个 VPC 只有一个公共子网和一个私有子网,这意味着我只能从我的 WebVPC 为 ELB 提供一个公共子网。
这是否意味着拥有至少两个公共子网和至少两个私有子网是最佳实践?
我的目标很简单:
允许VPC内的任何实例连接到特定安全组.
允许来源的字段表明:"CIDR,IP或安全组".
有没有办法让我指定一个VPC?
我之所以在VPC中有多个具有不同安全组的实例,但都需要访问我正在创建的安全组.
我可以像这样快速创建一个 VPC:
import boto3 as boto
inst = boto.Session(profile_name='myprofile').resource('ec2')
def createVpc(nid,az='us-west-2'):
'''Create the VPC'''
vpc = inst.create_vpc(CidrBlock = '10.'+str(nid)+'.0.0/16')
vpc.create_tags(
Tags = [ { 'Key': 'Name', 'Value': 'VPC-'+nid }, ]
)
vpc.wait_until_available()
createVpc('111')
Run Code Online (Sandbox Code Playgroud)
如何使用 CidrBlock:10.111.0.0/16或 Name:VPC-111在创建之前检查 VPC已存在?我实际上想在创建任何 AWS 资源之前进行相同的检查,但 VPC 只是一个开始。最好的事物!
编辑:
发现vpcs.filter可用于查询给定的 VPC 标签;例如:
fltr = [{'Name':'tag:Name', 'Values':['VPC-'+str(nid)]}]
list(inst.vpcs.filter(Filters=fltr))
Run Code Online (Sandbox Code Playgroud)
返回这样一个列表对象:[ec2.Vpc(id='vpc-43e56b3b')]。长度为 0(零)的列表很好地表明 VPC 不存在,但想知道是否有更多 boto/aws 检测方法。
我正在尝试在 AWS 中创建具有多个子网的 VPC。我很确定我已经掌握了 CIDR 的概念来屏蔽网络和可用主机。
不幸的是,每当我尝试设计 VPC 时,我都会遇到错误。这是我的 VPC 设计:
错误:
必须是有效的 CIDR 块。你是说 10.0.0.0/16 吗?
然后由于错误,我将我的公共子网分配为 10.0.0.0/16。
然后我继续将我的专用网络创建为 10.0.1.0/16 - 我收到一个错误:
CIDR 块 10.0.1.0/16 与预先存在的 CIDR 块 10.0.0.0/16 重叠
我究竟做错了什么?我只想创建两个专用网络和一个公共网络。
1) 是否可以将单个 Internet 网关附加到 AWS 中的多个 VPC?这样做的优点或缺点是什么?
默认情况下,在 AWS 中创建了一个带有 vpc 的 Internet 网关。我试图了解是否可以将相同的 Internet 网关连接到我将来创建的其他 VPC。
如何删除失败的 VPC 对等连接创建?
在创建 VPC 对等连接时,我提供了无效的 VPC id,并且对等连接创建失败。后来我更正了 VPC id 并可以创建对等连接。现在我正在尝试删除失败的对等连接,但该选项在 AWS 仪表板中显示为灰色。
CLI 不允许我删除它。如何删除失败的 VPC 对等连接?
$ aws ec2 delete-vpc-peering-connection --vpc-peering-connection-id pcx-xxxxxxxx
An error occurred (InvalidStateTransition) when calling the DeleteVpcPeeringConnection operation: Invalid state transition for pcx-xxxxxxxx, attempted to transition from failed to deleting
Run Code Online (Sandbox Code Playgroud) amazon-vpc ×10
amazon-ec2 ×4
amazon-elb ×3
aws-cli ×2
vpc ×2
autoscaling ×1
aws-vpc ×1
boto3 ×1
networking ×1
python-3.x ×1