我对亚马逊很新,不是Linux,路由,网络服务/托管。所以请耐心等待我和我的新手AWS问题。
我工作的公司有一个团队正在构建一个他们不希望在内部托管并正在向AWS推送的应用程序。我在AWS中玩过并配置了几个托管服务器,但没有这种复杂性。我了解VPC和EC2并具备S3的工作知识。
我在网上搜索过,但没有详细说明缩放部分的工作原理,我也不是在谈论自动缩放。我很想知道实际的服务器配置是如何工作的。
例如,我们有一个jar文件和属性文件需要部署到服务器才能拥有正在运行的站点。问题是,我在哪里放置这些文件,这样如果我想扩展到另一个更大或更小的资源实例,它会使用那些相同的文件?我的研究似乎指向了EBS"和S3用于此设置,但我不清楚如何...我想问题是,如何配置实例来读取站点文件?
我的问题是假设在任何给定的点上我都有一个实例在运行并读取站点文件,如果我想使用更大的实例或更小的实例,我会关闭当前实例并启动一个新的实例,当然,虽然总是从同一个站点文件中读取..
我的场景可能不是创建可扩展架构的正确方法,所以如果你有更好的建议,那么我的所有耳朵都是如此。这就是我对AWS工作的可扩展方面的理解。并且请记住,我使用向上或向下扩展方法而不是向外扩展,向外扩展建议运行多个实例以平衡实例之间的计算并通过运行实例来增加成本..
清晰度将不胜感激!
答案 0 :(得分:0)
AWS OpsWorks将允许您使用Chef配方(用Ruby编写)在您的需求发生变化时将代码和资源部署到您的服务器。
另一种方法是使用ECS (Elastic Container Service)与Docker将jar文件放入适当大小的容器中。
这两个选项都可以使用Auto Scaling组(在EC2中)进行配置,以根据需要快速调整资源量,并以一致且自动的方式部署代码。
这是它的要点,除此之外的任何内容都将是一个完整的教程,它将严重依赖于您的架构。我建议您阅读一些指南,点击文档并尝试一下。
对于奖励积分,请查看CloudFormation,这样您就可以在代码中配置您的AWS资源/条款,这样您就不需要调整用户界面进行调整或(重新)部署。
答案 1 :(得分:0)
只要您为服务器选择EBS驱动器,就可以停止服务器,更改大小并重新启动它,而不会丢失驱动器上的任何数据。这将允许您为单个服务器添加更多CPU / RAM。
如果您需要更具可扩展性的架构,则应将系统设计为在负载均衡器后面的多个服务器上正常运行。然后,您可以使用Autoscaling Groups或Elastic Beanstalk根据当前系统负载自动向池中添加和删除服务器。