AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 933561
Accepted
jdog
jdog
Asked: 2018-10-02 19:53:16 +0800 CST2018-10-02 19:53:16 +0800 CST 2018-10-02 19:53:16 +0800 CST

AWS 自动扩展共享 Wordpress Web 服务器 - AMI 与用户脚本

  • 772

我有一个共享的 Wordpress 托管服务器,上面有大约 50 个站点,它是通过 Ansible 完全配置的。

我试图在两者之间找到一个好的界限

a) 每次添加站点或更改配置时更新 AMI,例如这会影响虚拟主机和 PHP 池文件

b) 使用自定义启动脚本运行其中一些配置更改,并在实例接收来自负载均衡器的流量之前在启动时给予更多时间

目前只有一个实例,可能暂时不需要自动伸缩来应对流量的巨大变化。相反,如果实例在数小时内失败,则需要使用 Auto Scaling 来自动替换实例。

根据我目前良好成本管理的规模,我最好在晚上运行一个 c5.large,并在白天安排 2 个 c5.large 的自动缩放,这将使我以相同的成本获得多可用区可靠性的额外好处单个 c5.xlarge

我计划使用 EFS 共享所有 Wordpress 文件,并可能使用 Redis 进行共享会话管理,但这不是这个问题的主题。

我对解决方案 a) 的担忧是,每次添加新站点、创建临时站点或需要任何其他配置更改时,我都需要创建一个新实例、进行更改、创建一个 AMI 并将 AMI 轮换到我的自动缩放中团体。即使完全自动化,我预计这需要很长时间才能达到可接受的周转速度。

相反,我可以在少数实例上进行这些更改并以编程方式更新 AMI。然后它只会被使用 - 在失败场景中或 - 当正在完成恢复测试时或 - 当在测试堆栈上测试开发时

这是管理共享主机环境的好方法吗?

amazon-web-services
  • 1 1 个回答
  • 217 Views

1 个回答

  • Voted
  1. Best Answer
    MLu
    2018-10-02T20:38:03+08:002018-10-02T20:38:03+08:00

    我计划使用 EFS 共享所有 Wordpress 文件,并可能使用 Redis 进行共享会话管理,但这不是这个问题的主题。

    嗯,可惜了。我正要建议您应该将所有配置和用户数据从实例卸载到持久的共享存储,并将实例纯粹用作无状态 Web 服务器 - 易于扩展,易于替换。从本地存储到 EFS 的转换很容易(实际上并不是重新构建系统,只是将一些目录移动到 EFS)并且可以在很少停机的情况下完成。

    然后,所有 Apache / Nginx / PHP 和 Wordpress 配置文件以及上传的用户媒体文件将存储在共享文件系统上,实例将从那里进行自我配置。


    无论如何,如果您立即放弃最佳和明显的解决方案,我们就会提出一些劣质的选择。我有一个 CloudFormation 模板,它可以做一些接近你想要的事情:

    • EC2 实例位于min=1/max=1的AutoScaling 组中。即,如果它死了,它会自动重新启动。
    • 每天晚上,Lambda 都会创建实例的快照作为新的 AMI,并使用新的 AMI ID更新ASG 启动配置。即如果实例在第二天死亡,它将从昨晚的快照中启动。

    这适用于不经常更改的实例。例如,我们的 CMS 拥有数据库中的所有数据以及 EFS 上的所有应用程序配置和用户文件,并且实例上只有一些包和系统配置文件不时更新,但不经常更新。

    可能这样的事情对你有用吗?然而,实现这一点的努力很可能比首先迁移到 EFS 更高,结果也没有那么好和弹性。

    希望有帮助:)

    • 2

相关问题

  • 与 AWS 中的其他系统相比,CentOS 报告的总内存较低

  • 如何在 Amazon Linux 服务器上升级到 Java 1.8?

  • 了解 Amazon AWS 使用数据

  • 亚马逊提供的负载均衡服务体验如何?

  • ELB 中现有节点的 AWS 自动缩放问题

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve