質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Auto Scaling

Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1067閲覧

awsのauto scalingはviewとcssで切り分けて割り振られるか

sdk

総合スコア4

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Auto Scaling

Auto Scalingは、AmazonEC2のインスタンスを自動で調整することで スケーリングを行うサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2021/09/28 10:10

お世話になります。

EC2でrailsアプリをインスタンス3つでauto scalingしています。

アクセスすると以下のインスタンス1 ~ 3のうちどれかにつながるのですが

インスタンス1 > A.html.erb : A.css インスタンス2 > B.html.erb : B.css インスタンス3 > C.html.erb : C.css

1回のアクセスで、html.erbはAに、cssはBにつながる、という事は起こるのでしょうか?
(cssは /public/packs/css にあります)

補足:

インスタンス1でcssを編集し
$ rails assets:precompile をしました。

(インスタンス1 ~ 3にあるrailsの内容はcssの一部以外全て同じです)

アクセスするとたまにcssがnot foundでコンソールエラーが出ます。
(体感的に 1/3 の確率でA.html.erb、 2/3の確率で B または C.css => 5回に1回ぐらいnot foundエラー)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/09/28 11:44

> インスタンス1 ~ 3にあるrailsの内容はcssの一部以外全て同じです なぜそのような状況になっているのでしょうか?
sdk

2021/09/29 04:02

分かりにくかったですね、すみません。 ・インスタンス1をオリジナルとして、これを元にAMIを作成 ・そのAMIでauto scalingでインスタンス2,3を生成 ・ロードバランサのターゲットにインスタンス1 ~ 3が登録 という状態です。 本番がすでに動いている為、またAWSをよく分かっていない為、1をロードバランサのターゲットから外すべきだと思うんですが怖くて実行していません。(本番は2ヶ月で終了し閉じる予定) 本番稼働後に先方から修正依頼があった場合(新規ページを作ってbasic認証掛けるなど、ユーザーがそのページへたどり着けないような作業) この1を修正して本番にupしました。 その際、AMIを作り直して2 ~ 3に反映させればいいのですが、時間が掛かる為しませんでした(先方のOKが出たら全体に反映するつもりでした) というのが経緯です。
guest

回答2

0

ベストアンサー

1回のアクセスで、html.erbはAに、cssはBにつながる、という事は起こるのでしょうか?

それは1回のアクセスではありません。HTTPリクエストはHTMLとCSSなど、ファイルごとに行われますので、HTMLとCSSが同じサーバに繋がるかは、全くの偶然です。

なお、Sticky sessionといって、1ユーザーが接続を続けている限りロードバランサーから同じサーバに振り続ける、という設定はあります(AWS公式)。

投稿2021/09/29 04:12

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sdk

2021/10/01 01:40

理解しました... 確かにファイルごとにリクエストされてますね、、 Sticky session <= 情報ありがとうございます。どうやるのか気になってました。 いつもありがとうございます。
guest

0

html.erbとcssを同一のリクエストで取得しているなら普通そうはならないと思います。
ただ、それぞれを別のリクエストで取得しているなら起こりうるでしょう。
(この辺は実際にどのようなリクエストのやり取りがあるのかをきちんと見たわけではないので、どういう動きが正常なのかは自分からは何も言えません)
これはAutoScalingは関係なく、ELBがどのようにリクエストを振り分けるかというところに関係します。
ELBを使用している前提で書いているのでそうでなければごめんなさい。

not foundになる原因が振り分けのせいかはちょっとそれだけでは何とも言えません。

また、冗長構成の場合静的ファイルは各サーバ上に置かずS3に置いて読み込ませるのも常套手段として使われるので参考にしてみてください。

ちなみに、質問の意図とは恐らく異なるんでしょうが、逆に明示的にパスによってリクエストを振り分けたいのであれば、ALBを使っているならリスナールールで振り分けることができます。

投稿2021/09/28 10:22

yu_1985

総合スコア7588

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sdk

2021/10/01 01:38

ご回答ありがとうございます。静的ファイルはS3に置くのが常套手段なのですね。リスナールールについても調べてみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問