Opsworks & Chef - 同じレシピでデプロイされた各アプリをカスタマイズ

Opsworks & Chef - 同じレシピでデプロイされた各アプリをカスタマイズ

Python アプリを AWS インスタンスにデプロイする一連のレシピがあり、うまく動作します。一方には非同期ワーカー コードのインストールが必要で、もう一方にはその必要がないなど、わずかな違いがある 2 つの異なるアプリをデプロイしたいと考えています。どうすればよいでしょうか?

私の考える選択肢は次のとおりです。

  1. OpsWorks で 2 つのアプリを作成し、レシピが特定のタスクを実行するかどうか、またどのように実行するかを決定するために使用できる環境変数をそれぞれに設定します。環境変数
  2. アプリ固有の要件を詳述したファイルをリポジトリに作成します
  3. 各デプロイメントにカスタム JSON を追加します。カスタムJSON

これらのオプションはどれも私にとって理想的とは思えません。何か見落としているのでしょうか?

答え1

オプション 1 と 3 は「実質的に」(大まかに言っていますが) 同じです。基本的には、JSON を介して違いを渡しています。私は個人的に OpsWorks で 2 つの異なるアプリケーションを作成し、使用して成功しましたが、ジュニア リソースが一部の要素を変更できても、パスワードやその他の機密属性にアクセスできない機能にも非常に興味がありました。率直に答えると、オプション 2 が最も不安になります。オプション 1/3 の方が優れていますが、ニーズによって異なります。

関連情報