AWS で Magento ストアを実行しており、ELB の背後で自動スケーリングをセットアップしています。常に少なくとも 2 つの Web サーバーを実行しています。各 Web サーバー インスタンスには、着信要求を処理する前に独自の Varnish Cache サーバーがあります。
問題は、CSS、画像などの静的コンテンツを変更すると、各フロントエンド EC2 インスタンスに SSH 接続し、キャッシュされたオブジェクトを Varnish から禁止する必要があることです。最初に AWS コンソールから手動でインスタンスの IP を取得し、次にインスタンスに SSH で接続する必要があるため、これは非常に面倒です。これには多くの時間がかかり、常に 2 ~ 3 台を超えるサーバーがある場合はあまり効率的ではありません。
Phoenix Media による PageCache 拡張機能のインストールを検討しましたが、そのモジュールの問題は、事前にわからない構成で varnish インスタンスの IP の静的リストを手動で入力する必要があることです。自動スケーリングサーバーが行き来するため、これは私たちの場合には機能しません。
実行中のすべてのフロントエンド サーバーに対して一度にキャッシュの無効化を設定する方法はありますか? デフォルトの VCL ファイルに必要なコードを追加しました。これにより、同じサブネット内の任意のインスタンスからのパージ/禁止が可能になります。すべての管理タスクには専用の EC2 があり、それを使用してすべてのフロントエンド サーバーにキャッシュ無効化リクエストを発行する予定です。
シェル スクリプトを作成し、AWS API を使用してすべてのフロントエンド インスタンスの IP のリストを取得し、それらすべてに禁止コマンドを発行できるのではないかと考えていました。これは機能しますか?セットアップするにはどうすればよいですか?
また、リポジトリからの最新のコードのプル中に変更されたすべてのファイルのキャッシュ無効化を自動化するために何かを行うことはできますか?
これを回避する最も効率的な方法は何でしょうか?