前提・実現したいこと
エンジニア1年目で、個人開発にて、Ruby on Railsの勉強中です。
Ruby on Railsで作成したアプリケーションをAWSにてWebサーバ2台の冗長構成にしたいと思っております。
- AWSのVPC内に2台のEC2インスタンスを作成し、デプロイ。
- お名前.comでドメインを取得後、Route53で設定。
- ロードバランサーを作成。
ここまでは実現できており、ブラウザからアクセスをすると正常に表示されます。
しかし、それぞれのインスタンスにsshで接続し、ログ(log配下のnginx.access.log、production.log)を確認したところ2台ともに同時にログが出力されています。
出力されるログは同じものではなく、2台のWebサーバに同時にアクセスがいきブラウザにレスポンスが返されているように見受けられます。
通常であれば、リクエストに対してどちらか一方のWebサーバからレスポンスを返すもので、ログに関してもレスポンスを返すサーバにのみ出力されるものと認識しております。
質問内容としていは
1.そもそも、そのようなことが起こり得るのか(2台のWebサーバからレスポンスを返す)
2.正しい状態、リクエストがあったら2台のWebサーバのうち1台にのみアクセスがいき、そのサーバでのみlogが出力されるようにするにはどのようにすればよいのか。
の2点になります。
■補足情報
- AWSのVPC内にパブリックサブネットを2つ作成し、それぞれに1つずつEC2インスタンスを作成。
- ロードバランサーのターゲットグループには作成したEC2インスタンスを登録。
- Route53のAレコードにはエイリアスでロードバランサーのAレコードを設定
- EC2のインスタンス内にはnginx、unicornをインストールして使用しています。
- etc/nginx/conf.d配下に「アプリケーション名.conf」を作成し、server.nameにはドメイン名を指定しています。
回答1件
あなたの回答
tips
プレビュー