AWS Python SDK - 保证EBS卷和EC实例在同一个可用区

AWS Python SDK - guarantee that EBS volume and EC instance are in the same availability zone

我正在使用 Python SDK (boto3) 编写 AWS 资源设置脚本。我可以创建 ec2 实例:

ec2_resource.create_instances( .... )

和一个块存储卷:

ec2_client.create_volume(..., AvailabilityZone = "eu-north-1a")

如前所述,我可以为块存储指定可用区,但是我不明白如何为 ec2 实例指定可用区;在控制台中查看时,我通常会发现 ec2 实例已在另一个可用区中创建 - 例如“eu-north-1c”,然后 instance.attach_volume() 失败,因为它们不在同一个可用区中。

解决这个问题的正确方法是什么?

希望您使用的是 boto3 而不是过时的 boto 库 ;-)

通过指定启动实例的子网 ID,您隐式设置了可用区,因为每个子网都位于一个可用区中。