阅读亚马逊的文档看来 EC2 实例的默认行为是释放当前 IP 地址并在流程中的某个时刻重新分配一个新 IP 地址,具体取决于您使用的是 Classic 还是 VPC:
EC2-Classic:当您停止实例时,我们会释放该实例的公有和私有 IPv4 地址,并在您重新启动实例时分配新的地址。
EC2-VPC:实例在停止和重新启动时会保留其私有 IPv4 地址和任何 IPv6 地址。当您重新启动时,我们会释放公有 IPv4 地址并分配一个新地址。
在我的环境中,如果我能找到一种方法来保留 IP 地址,那就太好了。有人知道使用 EC2 实例执行此操作的方法吗?
答案1
分配弹性 IP到您的实例。该 IP 属于您,直到您释放它为止。停止、启动、终止、重新分配给其他实例,您可以做任何您想做的事情。
弹性 IP 是免费的,但如果它们没有附加到正在运行的实例,则需要花费少量费用。
无法通过停止/启动循环保留自动分配的公共 IP。
答案2
您似乎引用了 AWS 文档的错误部分。请查看此处(来自您的同一链接):
- EC2-Classic:我们会解除与实例关联的任何弹性 IP 地址的关联。您需要为未与实例关联的弹性 IP 地址付费。重新启动实例时,您必须将弹性 IP 地址与实例关联;我们不会自动执行此操作。
- EC2-VPC:实例保留其关联的弹性 IP 地址。您需要为与已停止的实例关联的任何弹性 IP 地址付费。
因此,似乎使用具有弹性 IP 地址的 EC2-VPC 实例您可以停止/重新启动实例并保留分配的公共 IP 地址
答案3
有可能的。
第一步,您需要从 Amazon 分配 IP(换句话说,您需要要求 Amazon 为您提供持久 IP):
分配弹性 IP 地址
打开 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
在导航窗格中,选择网络和安全、弹性 IP。
选择分配弹性 IP 地址。
对于公有 IPv4 地址池,请选择以下之一:
亚马逊的 IPv4 地址池 — 如果您希望从亚马逊的 IPv4 地址池中分配一个 IPv4 地址。
我的公有 IPv4 地址池 — 如果您要从已引入 AWS 账户的 IP 地址池中分配 IPv4 地址。如果您没有任何 IP 地址池,则此选项将被禁用。
客户拥有的 IPv4 地址池 — 如果您想要从本地网络创建的池中分配 IPv4 地址以用于 AWS Outpost。如果您没有 AWS Outpost,则此选项将被禁用。
(可选)添加或删除标签。
[添加标签] 选择添加新标签并执行以下操作:
对于 Key,输入密钥名称。
对于值,输入键值。
[删除标签] 选择标签的键和值右侧的删除。
选择分配。
第二步,您需要选择分配的 IP 并将其与您的实例关联:
将弹性 IP 地址与实例关联
打开 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
在导航窗格中,选择弹性 IP。
选择要关联的弹性 IP 地址,然后选择操作、关联弹性 IP 地址。
对于资源类型,选择实例。
例如,选择要与弹性 IP 地址关联的实例。您还可以输入文本来搜索特定实例。
(可选)对于私有 IP 地址,指定要与弹性 IP 地址关联的私有 IP 地址。
选择关联。
将弹性 IP 地址与网络接口关联
打开 Amazon EC2 控制台https://console.aws.amazon.com/ec2/。
在导航窗格中,选择弹性 IP。
选择要关联的弹性 IP 地址,然后选择操作、关联弹性 IP 地址。
对于资源类型,选择网络接口。
对于网络接口,选择要与弹性 IP 地址关联的网络接口。您还可以输入文本来搜索特定的网络接口。
(可选)对于私有 IP 地址,指定要与弹性 IP 地址关联的私有 IP 地址。
选择关联。