【问题标题】:What changes after AWS instance is stopped then restartedAWS 实例停止然后重新启动后发生的变化
【发布时间】:2013-06-20 10:44:43
【问题描述】:

我们收到了 AWS 的“计划停用的实例”通知表。 它会影响我们的主要数据库服务器。 根据我所阅读的内容,最简单的方法是停止实例然后重新启动它。

我的理解是它基本上会在物理上重新分配当前实例,这会导致 IP 更改。但是,除此之外,还有什么要改变的。

目前即将退役的实例正在作为我们的主要数据库服务器运行。它由应用程序服务器(具有 20 多个 Web 应用程序)和一个从属数据库服务器实例连接。

应用程序服务器和数据库实例之间的连接字符串使用 AWS 内部计算机名称(即数据源=IP-0A882XXX;用户 ID=用户名;密码=密码;初始目录=dbName;故障转移伙伴=IP-0A80XXX),它应该停止/重启后不可更改。我说的对吗?

还有什么我应该注意的吗?比如安全、防火墙设置等?

如果有人能指点我一份清单,将不胜感激!

【问题讨论】:

    标签: amazon-web-services amazon-ec2


    【解决方案1】:

    停止和启动 EBS 启动 EC2 实例类似于重新启动它,但有以下主要例外:

    • 新的内部和外部 IP 地址(弹性 IP 地址需要重新关联)

    • 临时存储上的文件丢失

    我写了以下文章,其中更详细地列出了所有需要考虑的细节:

    Rebooting vs. Stop/Start of Amazon EC2 Instance - Alestic.com

    您的实例的内部 EC2 DNS 名称与内部 IP 地址相匹配,因此它在停止/启动时发生变化,并且需要在您的应用程序服务器上进行更新。

    您可以使用以下技巧在移动数据库服务器时不必修改客户端:

    • 为内部实例分配弹性 IP

    • 在客户端实例中使用外部弹性 IP DNS 名称。

    EC2 DNS 服务器在从同一区域的另一个 EC2 实例查询时返回该实例的内部 IP 地址。

    我写了以下文章,详细介绍了如何执行此操作以及它的工作原理:

    Using Elastic IP to Identify Internal Instances on Amazon EC2

    【讨论】:

    • 感谢您为我指明了正确的方向。弹性IP有效,但就我而言,我仍然需要更新我的所有连接字符串。幸运的是,有了 EIP,这样的戏剧就不会再发生了。我说的对吗?
    • @D.J:你明白了。这是您设置的一次性转换。
    【解决方案2】:

    我认为我应该把我的最终解决方案放在这里,以帮助像我这样没有首先设置 EIP 的人在处理实例停用时。

    1.在当前实例(principal、mirror、monitor)上启用弹性IP

    2.停止/重启实例(需要根据您自己的服务器基础设施进行其他准备)

    .......使用新设置更新数据实例并重新配置镜像.......

    3.更新应用程序服务器主机文件以使用迁移后获得的新内部 ip 实例指向旧 DNS 名称(注意:这是一个 HACK,但它为我赢得了逐步更新所有 60 多个 Web 应用程序的时间)

    4.有计划地更新网络应用程序。 (在新部署中使用正确的连接字符串更新)

    5.全部更新为新的公共域名后删除主机记录。

    幸运的是,这只是一个过程。

    几个要点:

    EC2 DNS 服务器在从同一区域的另一个 EC2 实例查询时返回该实例的内部 IP 地址。

    • 如果我当时就参与了这个项目,(或未来任何大型企业级项目)我可能会选择 VPC 而不是 EC2 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      • 1970-01-01
      • 2015-10-29
      • 2012-09-11
      • 2020-04-23
      • 1970-01-01
      • 2019-08-03
      相关资源
      最近更新 更多