停止并启动在 EC2 和 mysql RDS 上运行 php 的 AWS Elastic Beanstalk

Posted

技术标签:

【中文标题】停止并启动在 EC2 和 mysql RDS 上运行 php 的 AWS Elastic Beanstalk【英文标题】:Stop and Start AWS Elastic Beanstalk which is running php on EC2 and mysql RDS 【发布时间】:2019-09-03 11:34:42 【问题描述】:

我正在使用 AWS 免费套餐,并运行 Elastic Beanstalk,它正在运行 EC2 和 RDS,我正在寻找一种方法来仅在需要时停止和启动环境,我应该从仪表板单独停止 EC2 和 RDS 或者什么会是个好方法吗?

我发现的一个帖子是When I stop and start an ec2 cents os instance , what data do I loose,它说数据不会丢失,但是我如何在需要时停止和启动 EBS?

【问题讨论】:

【参考方案1】:

就 EC2 实例而言,如果您有负载平衡的自动扩展设置,那么您可以使用计划的自动扩展功能按照您喜欢的任何计划将所需的实例数量缩减为零。为此,请转到控制台中环境仪表板的容量部分,然后滚动到底部(“Time-based Scaling”)。在这里,您可以输入两个 cron 表达式,一个用于扩展,一个用于缩小,用于循环模式,该模式将在您喜欢时关闭 EC2 实例。

RDS 实例有点棘手。您可以编写一个 lambda 函数来获取快照,将其关闭,然后将快照恢复到新实例,使用 cron 表达式或CloudWatch Events 中的类似表达式进行调度。类似的方法可以适用于 EC2 实例及其 EBS 卷。

【讨论】:

【参考方案2】:

如果您正在使用 Beanstalk 并尝试从 EC2 控制台停止特定的 EC2 实例,那么 Beanstalk 会自动将其恢复。如果您想停止整个 EBS 环境,那么显然可以使用 Terminate 选项来终止它。您可以将其带回 40 天,之后它将丢失。请记住,您将在 EBS 控制台中看到终止的环境约 1 小时,之后您将只能使用 eb 工具将其恢复,因此请记住记下您的环境 ID,以便稍后使用 $ eb restore ENV_ID 恢复它

【讨论】:

我曾尝试关闭 EC2,如您所说,EBS 将其恢复。如果我终止 EBS 并在几天后恢复,我将不得不使用 Elastic Beanstalk 命令行界面,对吗? 没错。如果您从 EC2 控制台终止实例,Beanstalk 会将其视为已失效并自动恢复另一个实例。

以上是关于停止并启动在 EC2 和 mysql RDS 上运行 php 的 AWS Elastic Beanstalk的主要内容,如果未能解决你的问题,请参考以下文章

Amazon RDS Aurora 与 RDS MySQL 与 EC2 上的 MySQL?

AWS EC2 向 RDS 发送 mysql_query 失败

如何连接nodejs sequelize aws rds mysql数据库和ec2实例

如何用AWS EC2主机连接RDS

RDS 的 phpmyadmin

Amazon RDS 与使用 MySQL 的 EC2 各自的优势/限制是啥? [关闭]