1

実稼働モードで実行されているubuntuベースのec2インスタンスがいくつかあります。私の問題は、トラフィックが増加するたびに、インスタンスを手動で起動してgithubからコードを更新することです。

ここで、自動スケーリングを構成する必要があります。これにより、APIが新しいインスタンスを起動するたびに、最新のAMIが起動し、ロードバランサーに接続されます。そうでない場合は、手動でコードをプルする必要があります。

ここでもっと明確にするために、私がやろうとしていることです。

  1. インスタンスのスナップショットを定期的に撮り、日常的に言います。
  2. スナップショットからAMIを作成し、保存します。
  3. スナップショットを作成している間、ダウンタイムは発生しないはずです。
  4. 自動スケーリング構成では、最新のAMIを起動し、ロードバランサーに接続する必要があります

親切に私を助けてください

4

1 に答える 1

3

AMIを再構築して定期的に変更する代わりに、起動時および場合によってはその後定期的にコードリポジトリから自動的にプルするAMIを構築します。これは、AMIの唯一の違いがコードであることを前提としています。

たとえば、SVNを使用する場合は、最新の本番ビルドにタグ/最新のタグを付けて、常にそのパスからプルすることができます。これで、起動時に常に最新のコードを持つ単一のAMIができました。5分ごとにcronジョブを実行して、チェックアウトされたタグとリビジョンと、SVNサーバーが最新として報告しているものを確認することもできます。それが変更された場合、それはそれ自体を殺し、自動スケーリングは置換を開始します。または、svnを更新して最新の変更を取得し、チャグを続けます。

ビルドによってインスタンスが正常に機能しなくなることが懸念されますが、ユニットと統合テストでそれをキャッチできるはずです。

これを行う方法?多くのオプションがありますが、OS起動スクリプトを使用するのがおそらく最善です。コードリポジトリへのアクセスを自動化する方法はたくさんあります。それに関して他のStackOverflowの質問があると確信しています。

于 2013-03-11T19:14:09.300 に答える