2016-05-12 2 views
0

私は弾力のあるbeanstalkサーバー上で動作するノードjsアプリケーションを持っています。サーバーは、負荷が高くなると自動的にスケーリングするように構成されています。私は考えていました、どのようにすべてのインスタンス間で変数を共有できますか? 1つの方法は、それらをdynamodbに保存することですが、より単純な方法ではありませんか?弾力型のbeanstalk - 自動スケールが発生したときにインスタンス間でデータを共有する

答えて

1

"変数"とはどういう意味ですか?セッションデータ?グローバルアプリケーションデータ?

一般に、アプリケーションがAWSの複数のサーバーに分散されている場合、データベース(RDSまたはDynamoDB)またはキャッシュ(ElastiCache)を介してデータを共有し、S3経由でファイルを共有したいとします。

ロードバランサでスティッキセッションを有効にすると、個々のユーザーからのすべての要求が単一のサーバーに送られます。これにより、ユーザーのデータを新しいサーバーに送信することなく、アプリケーションのスケールアウト時にユーザーが突然ログアウトまたはデータ消失することを防止します。長時間実行されるユーザーセッションがある場合、スティッキーセッションはサーバー間で最適な負荷分散を妨げることがあります。

サーバー間でセッションを共有したり、スティッキーセッションが不要になったり、スケールインイベントをより正常に処理したりする場合は、store user sessions in Redis(ElastiCache)を使用できます。

+0

私はグローバルアプリケーションデータを意味しました。これは通常、ユーザーセッションではなく変数に格納するものの種類です。 –

+0

これはまだElastiCacheをお勧めしますか? –

+0

はい、またはデータベースです。 –

関連する問題