AWSには、2つのインスタンスで負荷分散されたセットアップがあります。SVNを利用して、かなり頻繁にコードを更新しています。クラスタ内のすべてのインスタンスでコードの変更を更新するのがいかに簡単かを知る必要があります。単純に「スナップショット」を実行して、インスタンスに対して毎回新しいボリュームを作成できますか?...または?...
1 に答える
EBS スナップショットを介した更新は行いません。EBS ボリュームをハードディスクと考えてください。ソフトウェアの更新がある場合、ハードディスクを変更することはありません。
バージョン管理システムにコードがあるため、コードの更新は、(複数の) サーバーにログインしてgit pull
またはsvn update
. これにより、サーバーから最新のコード ファイルが取得されます。アプリケーションの種類によっては、ビルド スクリプトの実行、キャッシュの空化など、後で他のタスクを実行する必要があります。
問題は、この種のセットアップがうまくスケーリングできないことです。サーバーがn 個ある場合、ログインしてこのコマンドをn回実行する必要があります。したがって、ワンステップで使用できるいくつかのリモート管理ツールを検討することは理にかなっています。これらのツールの多くを使用すると、完全な構成管理スタックも得られます。サーバーごとに一連のレシピまたはタスク (インストールされたパッケージ、構成ファイル、最新コードの取得、必要なビルド手順など) を定義します。新しいサーバーを起動すると、その構成の最新バージョンが取得され、それ自体がインストールされます。
一般的な構成管理ツールには、PuppetやSaltなどがあります。どちらのツールにもリモート実行が含まれているため、コード ベースを公開するタスクが簡単になります。マスター サーバーで 1 つのコマンドを実行するだけで、すべてのミニオン / スレーブ サーバーでこのタスクが自動的に実行されます。