8

自動スケーリングでスクリプトを設定して、カピストラーノ デプロイ階層のコードを更新し、AMI が自動スケーリング イベントで起動されたときにリポジトリからプルして、自動スケーリング マシンで実行されているコミットが非自動スケーリングでのコミットと確実に一致するようにするための一般的な戦略はありますか?インスタンス?

4

2 に答える 2

12

私はこのようなセットアップを少し実行します。起動時にインスタンスが git と対話するように設定しないことにしました。理由は次のとおりです。

  • インスタンスをすばやく起動したい (デプロイ + バンドルのインストールには時間がかかる場合があります)
  • GitHub、rubygems などに依存しないようにインスタンスをスケールアップ/置換したい
  • インスタンスのスケールアップを本当にシンプルにしたい

私がしていることは、デプロイするアプリが /var/www/myapp にあるということです。これは実際には別の EBS ボリュームであり、その場所にマウントされています。xfs_freeze を使用して、マウントされたボリュームの ebs スナップショットを安全に作成できるため、ファイルシステムは xfs です。

デプロイが完了したら、capistrano after hook で /var/www/myapp ボリュームのスナップショットを作成します。次に、自動スケーリング起動構成のブロック デバイス マッピングを更新して、「インスタンスを起動するときに、スナップショットから新しいボリュームを作成し、/dev/sdf にアタッチします。

インスタンスが起動時に行う必要があるのは、/etc/fstab を編集するか、非常に単純な起動時スクリプトを実行して、そのデバイスを /var/www/myapp にマウントすることだけです。Bundler は /var/www/myapp/shared に gem を保存するように設定されているため、gem も処理されます

于 2012-11-09T07:51:42.503 に答える