7

起動時にいくつかのアクションを実行するために、beanstalkインスタンスであるアプリケーションサーバーが必要です。通常の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インスタンスに渡すことが可能かどうかを誰かが知っていますか。もしそうなら-あなたは例を提供できますか?

4

2 に答える 2

7

Beanstalk が提供するすべての利点 (Amazon が提供する OS にパッチを当てる必要がないなど) を利用したい場合、これは不可能です。1 つのオプションは、必要なスクリプトを含むカスタム AMI を作成することですが、セキュリティ パッチを使用して OS を自分で管理する必要があります。詳細はこちらをご覧ください

于 2011-12-14T08:37:00.993 に答える