2

Rails アプリを AWS に移行し、EB を使用しています。別のインスタンスでデーモンを実行する必要があります (このインスタンスで HTTP 要求を処理したくありません)。

デーモンはアプリのコードベースの一部であり、Web サーバー インスタンスと同じ RDS インスタンスと通信します。可能であれば、レールアプリを追加のインスタンスにデプロイするように EB を構成する方法を知りたいのですが、そのインスタンスをロードバランサーに追加することを省略し、新しいリビジョンが作成された後にそのインスタンスでデーモンを (再) 起動します。配備されました。

EB の外部でこの追加インスタンスを自分で管理することで同じ結果を達成できることはわかっていますが、もっと良い方法があると感じています。私は自分が求めているものを見つけることなく、自分でいくつかの調査を行いました。

また、Web サーバー インスタンスの 1 つでデーモンを実行し、それが HTTP 要求も処理しているという事実を受け入れることもできます。これは今のところ許容できるので、今日私がやっていることです...しかし、そのデーモン専用のインスタンスが必要であり、そのためだけに EB デプロイの利便性を落とす必要がなかったら素晴らしいことです.

Elastic Beanstalk を使用するのはこれが初めてです。AWS の使用経験があります。私の質問が理にかなっていることを願っています。そうでない場合は、意味をなさない理由を指摘する回答が受け入れられます。

ありがとう!

4

2 に答える 2

1

単純ではありませんが、ほとんどの場合、スクリプト ファイルを実行するための.configファイルを提供できます。.ebextensions

展開を高速化するこの例では、いくつかのスクリプトを実行し、データを前後に移動することを示しています。さらに良いことに、著者はシーケンスと展開プロセスについて説明します。

このタイプのコンテナのカスタマイズに着手したところです。/opt/elasticbeanstalk/hooks/appdeploy/preとディレクトリにファイルをドロップする他の人を読んだことがあります。その/opt/elasticbeanstalk/hooks/appdeploy/post多くは、上記のリンク先の投稿を読むことで導き出すことができます。

また、昨日見つけた次のようなcontentyaml ファイルにスクリプトを含めることができることにも注意してください。.config

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_restart_delayed_job.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      . /opt/elasticbeanstalk/support/envvars
      cd $EB_CONFIG_APP_CURRENT
      su -c "RAILS_ENV=production script/delayed_job --pid-dir=$EB_CONFIG_APP_SUPPORT/pids restart" $EB_CONFIG_APP_USER
于 2013-08-14T14:44:18.377 に答える
0

Elastic Beanstalk では、これは通常、同じ EB アプリケーション内のワーカー層環境 (同じコードベース、同じ.eb*ファイル、異なる環境のみ) を使用して実現されます。

以下は、1 つのWeb サーバーと 2 つの特殊なワーカーにデプロイされた Rails アプリケーションの例です。

[yacin@mac my_rails_app (master)]$ eb list -v
Region: us-west-1
Application: my_rails_app
    Environments: 3
        email-workers-production : ['i-xxxxxxx']
        * web-servers-production : ['i-xxxxxx']
        job1-workers-production : ['i-xxxxxxx', 'i-xxxxxx']

ワーカーにはパブリック HTTP インターフェイスがなく、フロントエンドと共有されているキューからジョブをプルします。ワーカーは、同じデータベースにアクセスし、負荷分散と自動スケーリングを使用するように構成できます。

これは非常に柔軟でスケーラブルなアプローチですが、セットアップには多少の作業が必要です。このテーマに関するいくつかのリソースがあります: Amazon Worker Tier ビデオ チュートリアルElastic Beanstalk

于 2015-09-25T17:33:43.207 に答える