簡體   English   中英

如何在 CloudFormation 模板中將數據從 AWS S3 復制到 EC2?

[英]How do I copy data from AWS S3 to EC2 in a CloudFormation template?

我創建了一個 CloudFormation 模板來啟動 AutoScaling 組。 在啟動期間,允許s3:GetObject訪問的策略附加到每個 EC2 實例。 之后,我使用 User Data 安裝 Apache Web 服務器和 PHP,然后更改相關文件夾的設置。 然后,我需要在每個實例中將多個文件從 S3 存儲桶(沒有公共訪問權限)復制到 /var/www/html 文件夾,但是如果不恢復到手動復制或同步CloudFormation 堆棧完成后使用 CLI 生成文件 - 這必須是一個完全自動化的過程。

模板中的用戶數據如下:

"UserData": {
    "Fn::Base64": {
        "Fn::Join": [
            "\n",
            [
                "#!/bin/bash",
                "yum update -y",
                "yum install -y httpd24 php56",
                "service httpd start",
                "chkconfig httpd on",
                "groupadd DMO",
                "usermod -a -G DMO ec2-user",
                "chgrp -R DMO /var/www",
                "chmod 2775 /var/www",
                "find /var/www -type d -exec chmod 2775 {} +",
                "find /var/www -type f -exec chmod 0664 {} +"
            ]
        ]
    }
}

為了堅持您已經在做的事情,您可以從您的用戶數據腳本中運行 AWS CLI:

"UserData": {
    "Fn::Base64": {
        "Fn::Join": [
            "\n",
            [
                "#!/bin/bash",
                "yum update -y",
                "yum install -y httpd24 php56",
                "service httpd start",
                "chkconfig httpd on",
                "groupadd DMO",
                "usermod -a -G DMO ec2-user",
                "chgrp -R DMO /var/www",
                "chmod 2775 /var/www",
                "aws s3 cp s3://MYBUCKET/MYFILE.zip /tmp",
                "unzip -d /var/www /tmp/MYFILE.zip",
                "rm /tmp/MYFILE.zip",
                "find /var/www -type d -exec chmod 2775 {} +",
                "find /var/www -type f -exec chmod 0664 {} +"
            ]
        ]
    }
}

為此,您的 EC2 實例配置文件必須授予從 S3 讀取文件的權限。

另一種方法是使用AWS::CloudFormation::Init :它是一個預定義的元數據鍵,您可以將其附加到EC2::InstanceAutoScaling::LaunchConfiguration資源,它允許您配置包、服務和單個文件(包括從 S3 檢索和解壓縮文件)。

有一個教程在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM