TL;DR - セッション ストレージ用の単純なキャッシュ クラスター (memcache または redis を使用) は、アプリのサーバー (つまり、nginx および php と共に) または独自の個別の ec2 インスタンス (elasticache またはカスタマイズされた ec2 インスタンスなど) に存在する必要がありますか?
現在、Amazon OpsWorks を使用してウェブアプリのインフラストラクチャをセットアップしています。私は、独自の ec2 インスタンスとしてではなく、アプリ層自体にインストールされた memcache インスタンスを介してセッション キャッシュを実装することに傾いています。例えば:
[ Load Balancer ]
/ | \
[ App Layer 1 ] – [ App Layer 2 ] – [ App Layer 3 ] * /w memcache or redis
対。
[ Load Balancer ]
/ | \
[ App Layer 1 ] [ App Layer 2 ] [ App Layer 3 ]
\ | /
[ Cache Server(s) ] * ElastiCache or custom ec2 /w memcache or redis
ここでの長所と短所は何ですか?私には後者の解決策は不必要に思えますが、非常に大きなセッション キャッシュを持つトラフィックの多い Web サイトでこれが必要になる可能性があることは理解できます。
nginx/php アプリ サーバー スタックと一緒に redis や Elasticache を実行したくない理由はありますか? おそらく、自動スケーリングまたはパフォーマンスの監視がより難しくなりますか?