2016-07-12 21 views
-2

我需要將更新後的文件上傳到單個LB下的多個EC2實例。我的問題是我錯過了一些EC2實例,它打破了我的網頁。 是否有任何工具可以通過單擊將多個文件上傳到多個EC2窗口服務器。亞馬遜AWS - 將文件上傳到單個LB下的多個實例

我會每週或每天更新一次我的文件。我使用Elastic beanstalk,Amazon Code Deploy和Amazon EFS進行了檢查。但是很難使用。任何人請幫助

+0

如何將文件傳輸到您的ec2實例? –

+0

目前我正在使用WinSCP客戶端進行文件上傳。 – Rahmathullah

回答

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將成爲您上傳和刪除圖像的中心目錄。

0

創建包含一些robocopy命令的腳本,並在您想更新服務器上的文件時運行它。類似這樣的:

robocopy Source Destination1 files 
robocopy Source Destination2 files 

您還需要與您的計算機上的用戶共享您要複製到的文件夾。

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 

基本上它是這樣的:

  1. 找出所有連接到負載平衡器
  2. 每個EC2實例的ec2實例,找出PublicIPAddress(假設你已經可以通過scp連接到它們)
  3. r聯合國scp命令到EC2服務器上的某個地方複製1個文件

你也可以複製copy folder如果你需要按很多文件,它可能是更容易

亞馬遜ElasticFileSystem大概現在是最簡單的選項,你將創建您的文件系統並將其附加到連接到Load Balancer的所有ec2實例,並且當您將文件傳輸到EFS時,它將可用於連接EFS的所有ec2實例 (創建EFS的設置並將其安裝到您的ec2實例中,必須完成一次)