devops aws django 网站可扩展性:如何在弹性 beantalk 和弹性容器服务 ecs 中完成自动扩展

devops aws django website scalability : how is auto scaling done in elastic beanstalk and elastic container service ecs

我正在开发一个 Django 网站。 在 devops 方面,我正在考虑使用具有自动缩放功能的 aws。我仍然犹豫是否要对我的配置进行竞争,所以我会使用 beantalk(没有容器)或容器服务(有 docker)。该数据库将位于单独服务器上的 aurora 上。 我是 aws 的新手,他们由专家在线提供的帮助不是免费的,所以这是我的问题:

当我与其他托管服务提供商进行比较时,它们的价格取决于服务器的硬件配置。

我猜(因为我还没有访问成本资源管理器)它与亚马逊上的 ec2 实例相同:您为更强大的服务器支付更多费用(cpu 和 ram and/or 存储).

所以我想知道弹性 beantalk 或弹性容器如何实例化新的 ec2 服务器:它们是根据我网站上的需求调用更强大的硬件配置(扩展)还是取决于我的手动配置?还是他们只使用我在初始化时手动设置的相同配置复制 ec2 实例(横向扩展)?

我可以手动更改 cpu、benstalk 或 ecs 的 ec2 实例的 ram 和存储,而无需重新配置吗? 我可以微调自动扩展和自动扩展,哪种扩展更好更便宜(最佳选择)? 非常感谢!

Auto Scaling 组水平扩展,意味着像启动 template/launch 配置中定义的那样生成新实例。 Auto Scaling 组不能垂直缩放。您可以更改启动配置并编辑实例类型和大小,这将替换您在 Auto Scaling 组中的实例。 https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-launch-template.html

对于 ECS,您必须在 EC2 上选择 Fargate 或 ECS。使用 Fargate(无服务器),您可以轻松定义要分配给 运行 的“任务”的资源量 RAM/CPU。使用 ECS EC2,您需要首先创建 ECS 集群(需要为 运行 集群分配 EC2),然后创建一个单独的任务,然后为其分配 RAM 和 CPU。 https://docs.aws.amazon.com/AmazonECS/latest/userguide/task_definition_parameters.html

使用 Beanstalk,您可以轻松定义 RAM/CPU 想要在配置中使用的资源量。 (比 运行 使用负载均衡器设置简单的自动缩放组更容易)。它有一个非常容易玩和调整资源的界面。