1

AWS Elastic Beanstalk でアプリケーションを実行しています。アプリケーションには構成ファイルが必要です。これは、ec2 インスタンスで手動でテストするために配置しました。

問題は、オートスケーラーがより多くのインスタンスにスケールアップすることを決定したときに、アプリケーションが新しいインスタンスに構成ファイルを持たないことです。

インスタンスのテンプレートの作成について読みました。構成ファイルをインスタンスに配置すると、新しいインスタンスに複製されます。これには大きな欠点があります。実行時に構成を変更したい場合は、すべてのインスタンスでそれを行わなければならないからです。

それを解決する方法はありますか?

4

4 に答える 4

0

設定ファイルを s3 バケットなどの安全な場所に置くことをお勧めします。機密情報をリポジトリから遠ざけます。

次のようなことを試してください:

# .ebexetensions/safe-config-install.config

files:
  "/tmp/cron-fetch-config.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      for f in /etc/profile.d/*.sh; do source $f; done;

      python -c "import boto;boto.connect_s3().get_bucket('my-private-bucket').get_key('secretfolder/secretfile.xml').get_contents_to_filename('/var/app/current/path/to/config.xml');

container_commands:
  install-config:
    command: python -c "import boto;boto.connect_s3().get_bucket('my-private-bucket').get_key('secretfolder/secretfile.xml').get_contents_to_filename('/var/app/ondeck/path/to/config.xml');

commands:
  setup-cron-for-config:
    command: echo -e "* * * * * root /tmp/cron-fetch-config.sh\n" > /etc/cron.d/my_cron
于 2013-06-30T13:12:39.240 に答える
0

Vadim911 に同意します。DB の方が簡単なソリューションです。

ただし、アプリが環境でセットアップされているときに、これに似たものを使用してそれを行うことができます。

WEB-INF/.ebextensions/commands.config

commands:
  replace-file:
    command: cp .ebextensions/file.xml /folder/file.xml

出典:infoq

于 2013-04-24T10:11:14.823 に答える