CloudFormationでuserDataをBeanStalkインスタンスに渡すにはどうすればよいですか
質問
BeanStarkインスタンスであるApplication Serverが必要なのは、起動時にいくつかのアクションを実行する必要があり、通常のEC2インスタンスが利用できるUserDataプロパティでインスタンスに渡されたBASHスクリプトを実行することを考えました。
通常のEC2インスタンスでこれを行うCloudFormationテンプレートの例をいくつか見つけましたが、BeanStalkでは例はありません。アプリケーションのプロパティフィールドにこれを追加しようとしました。
"MyApp" : {
"Type" : "AWS::ElasticBeanstalk::Application",
"Properties" : {
"Description" : "MyApp description",
"ApplicationVersions" : [{
...
}],
"UserData" : {
"Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash\n",
"touch /tmp/userdata_sucess\n"
]]
}},
...
また、環境の部分に追加しようとしました。
"MyAppEnv" : {
"Type" : "AWS::ElasticBeanstalk::Environment",
"Properties" : {
"ApplicationName" : { "Ref" : "MyApp" },
"Description" : "MyApp environment description",
"UserData" : {
"Fn::Base64" : { "Fn::Join" : ["", [
"#!/bin/bash\n",
"touch /tmp/userdata_sucess\n"
]]
}},
"TemplateName" : "MyAppConfiguration",
"VersionLabel" : "First Cloud version"
}
},
どちらの場合も、スタックを作成しようとすると失敗しました。 CloudFormationを使用して、userDataをBeanStalkインスタンスに渡すことができるかどうかは誰もが知っていますか?もしそうなら - 例を提供できますか。
解決
BeanStalkが提供するすべての利点を持ちたい場合 - Amazonが行っているOSにパッチを当てる必要がないなど、これは不可能です。 1つのオプションは、必要なスクリプトを含めるカスタムAMIを作成することですが、セキュリティパッチでOSを自分で管理する必要があります。続きを読む ここ.
所属していません StackOverflow