Deployment 不使用SSH的AWS部署

Deployment 不使用SSH的AWS部署,deployment,amazon-web-services,ssh,amazon-ec2,webserver,Deployment,Amazon Web Services,Ssh,Amazon Ec2,Webserver,我最近读了一些关于在Ec2实例上设置AWS基础设施w/o启用SSH的文章。我的web应用程序需要一个二进制文件才能运行。那么,如何使用ssh将我的应用程序部署到ec2实例 这是有问题的文章 尽管像文章所说的那样可行,但它需要将服务器视为短暂的服务器。一个很好的例子是web服务,它根据需求进行上下扩展。如果其中一台服务器出现问题,您可以终止您的服务器并启动另一台服务器 通常,您可以使用拉动模型来实现这一点。例如,在启动时,从git/mecurial存储库中提取代码,然后执行脚本来设置实例。该脚本将

我最近读了一些关于在Ec2实例上设置AWS基础设施w/o启用SSH的文章。我的web应用程序需要一个二进制文件才能运行。那么,如何使用ssh将我的应用程序部署到ec2实例

这是有问题的文章


尽管像文章所说的那样可行,但它需要将服务器视为短暂的服务器。一个很好的例子是web服务,它根据需求进行上下扩展。如果其中一台服务器出现问题,您可以终止您的服务器并启动另一台服务器

通常,您可以使用拉动模型来实现这一点。例如,在启动时,从git/mecurial存储库中提取代码,然后执行脚本来设置实例。该脚本将设置确定服务器和应用程序是否正确启动和运行所需的所有监视。如果要使用SSH提取代码,仍然需要一个SSH客户端。(尽管您也可以通过HTTPS进行)

您还可以使用根本不使用ssh的配置管理工具,如Puppet或Chef。基本上,您的节点/服务器将从Puppet master或Chef服务器获取所有应用程序和服务器配置。然后,Puppet代理或Chef客户端将执行所有配置/部署/监视更改,以便应用程序运行

如果您使用此模型,我认为最关键的组件之一是监控。您需要随时了解您的一台服务器是否有问题,如果出现问题,请丢弃该服务器并启动一台新服务器。(如果整个过程实现自动化,效果会更好)


希望这能有所帮助。

尽管像文章所说的那样可行,但它需要将服务器视为短暂的服务器。一个很好的例子是web服务,它根据需求进行上下扩展。如果其中一台服务器出现问题,您可以终止您的服务器并启动另一台服务器

通常,您可以使用拉动模型来实现这一点。例如,在启动时,从git/mecurial存储库中提取代码,然后执行脚本来设置实例。该脚本将设置确定服务器和应用程序是否正确启动和运行所需的所有监视。如果要使用SSH提取代码,仍然需要一个SSH客户端。(尽管您也可以通过HTTPS进行)

您还可以使用根本不使用ssh的配置管理工具,如Puppet或Chef。基本上,您的节点/服务器将从Puppet master或Chef服务器获取所有应用程序和服务器配置。然后,Puppet代理或Chef客户端将执行所有配置/部署/监视更改,以便应用程序运行

如果您使用此模型,我认为最关键的组件之一是监控。您需要随时了解您的一台服务器是否有问题,如果出现问题,请丢弃该服务器并启动一台新服务器。(如果整个过程实现自动化,效果会更好)


希望这有帮助。

肯定有帮助,谢谢。我目前正在使用PythonFabric使用弹性IP将二进制文件推送到ec2服务器。。。。所以我想我是用非自动化的方式做的。我喜欢每个服务器在启动时通过HTTPs从CI服务器提取二进制文件的想法。听起来很不错。我猜python织物不像木偶或厨师那样“成熟”。但是,它也不像看上去那么复杂。布料已经相当成熟了,但它更多地使用了推式模型,而木偶和厨师则使用了拉式模型。如果你也看看其他工具,Ansible和SaltStack也更多地使用推送模型。如果您只想在服务器上使用ssh的“客户端”部分,那么您可以使用fabric从git存储库中执行pull操作。我明白了,因此我将定义一个fabric方法在远程服务器上运行,该方法从CI服务器中提取二进制文件。那可能行得通。在未来,我将需要在ubuntu和windows实例之间部署许多二进制文件,自动化的方式将非常好。现在我在推布是的。我认为CI服务器就是答案。在那种情况下,我不需要木偶、厨师或布料。我可以定义一个脚本,在ubuntu和windows实例启动时提取二进制文件。但如果你喜欢fabric,你也可以使用它。我不知道amazon auto scaling是如何工作的,但我假设它克隆了硬盘驱动器,所有启动守护程序配置都会复制到硬盘驱动器。这对于web服务器来说很好。我还有一个独立的web套接字服务器,所有客户端都可以连接到该服务器。我不能有多个,因为每个都跟踪连接,所以我想我应该增加实例的大小。。。不是真正的故障安全。我想我可以有一个用于web套接字连接的内部负载平衡器。。。。或者将web套接字连接存储在内存中,其他机器可以连接到这些连接……这肯定会有帮助,谢谢。我目前正在使用PythonFabric使用弹性IP将二进制文件推送到ec2服务器。。。。所以我想我是用非自动化的方式做的。我喜欢每个服务器在启动时通过HTTPs从CI服务器提取二进制文件的想法。听起来很不错。我猜python织物不像木偶或厨师那样“成熟”。但是,它也不像看上去那么复杂。布料已经相当成熟了,但它更多地使用了推式模型,而木偶和厨师则使用了拉式模型。如果你也看看其他工具,Ansible和SaltStack也更多地使用推送模型。如果您只想在服务器上使用ssh的“客户端”部分,那么您可以使用fabric从git存储库中执行pull操作。我明白了,因此我将定义一个fabric方法在远程服务器上运行,该方法从CI服务器中提取二进制文件。那可能行得通。在未来,我将需要在ubuntu和windows实例之间部署许多二进制文件,自动化的方式将非常好。现在我在推布是的。我想是一个词