我需要将更新的文件上传到单个LB下的多个ec2 instace。我的问题是我错过了一些ec2实例,它打破了我的网页。 是否有任何工具可以通过一次单击将多个文件上载到多个EC2 Windows服务器。
我会每周或每天更新一次我的文件。我查看了Elastic beanstalk,Amazon Code Deploy和Amazon EFS。但是很难用。有人请帮忙
答案 0 :(得分:2)
我建议使用AWS S3和AWS CLI。您可以做的是在所有EC2实例上安装AWS CLI。在AWS S3中创建一个存储桶。
使用以下语法在每个EC2实例上启动Cron作业。
aws s3 sync s3://bucket-name/folder-on-bucket /path/to/local/folder
因此,当您将新图像上传到S3存储桶时,所有图像都将自动与负载均衡器后面的所有EC2实例同步。此外,AWS s3将成为您上传和删除图像的中心目录。
答案 1 :(得分:1)
你可以利用AWS CLI,你可以运行像
这样的东西aws elb describe-load-balancers --load-balancer-name <name_of_your_lb> --query LoadBalancerDescriptions[].Instances --output text |\
xargs -I {} aws ec2 describe-instances --instance-id {} --query Reservations[].Instances[].PublicIpAddress |\
xargs -I {} scp <name_of_your_file> <your_username>@{}:/some/remote/directory
基本上是这样的:
PublicIPAddress
(据说你可以通过scp连接到它们)scp
命令在ec2服务器上的某处复制1个文件如果您需要推送多个文件,也可以复制copy folder,这可能会更容易
Amazon ElasticFileSystem现在可能是最简单的选项,您可以创建文件系统并将其附加到连接到Load Balancer的所有ec2实例,当您将文件传输到EFS时,它将可用于所有连接EFS的ec2实例 (创建EFS并将其安装到ec2实例的设置必须只进行一次)
答案 2 :(得分:0)
创建包含一些robocopy命令的脚本,并在要更新服务器上的文件时运行它。像这样:
robocopy Source Destination1 files
robocopy Source Destination2 files
您还需要与计算机上的用户共享要复制的文件夹。