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

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

ただいまの
回答率

90.49%

  • AWS(Amazon Web Services)

    2069questions

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

AWS 複数のEC2 + goofysでS3バケットをマウントしたときの問題点。

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 341

oyaji_sj_hi

score 4

複数のEC2 + goofysでS3バケットをマウントしたときの問題点を見つけたので、
ここに書き残します。

EC2で2台のWEBサーバーを構築、ALBにて負荷分散。
2台のEC2は同じS3上の領域をマウント(goofysでS3バケットをマウント)

WEBサーバーのDocumentRootをgoofys上に設置

問題発覚

2台のWEBサーバーをWEB_A WEB_Bとする。

1.ある利用者がパソコンのWEBブラウザでWEB_A経由でサイト閲覧して、ファイル更新(画像ファイルの更新ファイル名は元のまま)を行う。

2.別の利用者がパソコンのWEBブラウザでWEB_B経由でサイト閲覧して、1で更新されたファイル閲覧を行う。

  1. 1で更新したはずのファイルが元のまま。

  2. 数日経過後調査すると、WEB_A経由でサイト閲覧すると更新後のファイルが表示される。
    WEB_B経由でサイト閲覧すると更新前のファイルが表示される。

という状況。

いろいろ調べて、どうやらページキャッシュというものらしいと判明

echo 3 > /proc/sys/vm/drop_caches

のコマンドをたたくと解消されると判明。

独自にシェルプログラムを書いて自動実行する等、何らかの対策が必要となる。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

+1

Amazon EFSというサービスが、7月からTokyoリージョンで利用できるようになります。

これにより、現時点でのS3を使ったファイルストレージやストレージマウントの方法は、
ベストプラクティスでは無くなってしまいます。

以下をご一読ください。

Amazon EFS 公式イントロダクション
Amazon EFS 公式ドキュメント

S3は、バケット以下を(フォルダもファイルも)すべてオブジェクトとして扱っています。
デリミタでファイルとフォルダを区別しているだけですので、
S3をストレージとしてマウントさせる方法はあまり良い使い方ではありません。

S3は、Simple Storage Serviceの頭文字をとってS3と呼んでいますが、
アーキテクチャとして3拠点のストレージをミラーリングしている意味もあります。

S3にファイルを置くと、必ずファイルsyncが走って他の2箇所のストレージに対してクローンするので
同期完了まで時間が多少かかるので、連続処理などには向いていないというデメリットがあります。
削除アクションを行った場合は、3拠点のストレージが全て削除されるまで待って完了となります。

ちなみにecho 3 > /proc/sys/vm/drop_cachesは、
意図的にOSが持っているLinuxのメモリキャッシュも削除するので
Linuxの処理速度が落ちると思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/20 15:14

    ありがとうございます。
    そもそも「全部日本国内でやれ」と上に言われたのが、s3を無理くりマウントして使用し始めたきっかけでした。
    今後はEFSを推奨していきます。

    キャンセル

+1

複数のユーザーから同じデータを更新する時はファイルではなくデータベースを使います。
データベースさわったこと無い新人向けトランザクション入門

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/20 15:16

    コメントありがとうございます。
    ちょっとした画像掲示板的なサイトでDBは使わない方針なのです。

    キャンセル

0

一応解決済みですが、もっと良いやり方があればご指摘下さい。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.49%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    サーバ用Linuxとはよく聞きますが、apacheとなにが違うのですか?

    こんにちは サーバ用Linuxと、apacheとではなにが違うのですか? 両方とも、サーバではないのでしょうか? どういうことでしょう・・・m(__)m 唐突な質問ですみませ

  • 受付中

    HTML5のAudio要素をJsで再生。スマホだと再生されない。

    Webサイトで、ボタンを押すと音声が再生されるようにしています。 HTML5のAudio要素をJavascriptで制御しています。 複数の音声ファイルを使用した場合、PCでは再

  • 受付中

    HTMLファイルとJSPファイル

    HTMLファイルとJSPファイルに関して疑問がございますので、ご質問いたします。 よろしければ、ご回答いただければ幸いでございます。 1 HTMLファイルの出力の仕組みなの

  • 解決済

    スクリプトの配置について

    スクリプトの配置についてお聞きしたいです。 サーバー側、クライアント側にスクリプトを置くというのがあまりイメージわきません。 サーバー、クライアントのイメージはわくんですが、〜

  • 受付中

    開発中の独自ドメインにアクセスできません

    Railsで作ったWebアプリをAWSのec2へデプロイしています。 nginx, unicorn設定をwebブラウザで独自ドメインにアクセスして確認しながらやっていました。

  • 解決済

    携帯専用のアプリ開発について

    webサイトを作るとなると一人ではかなり時間がかかるので、まずは携帯のアプリを作ろうと思います。 而して、ドットインストールにあるようにandoroid studioのほかになん

  • 解決済

    Angularはなぜローカルで動かないのか?

    初歩的な質問です。なぜ、Angularはローカルで動かないのでしょうか? 一般的なJSはjsを書いてブラウザに突っ込めば動きます。しかし、Angularはローカル開発の時点で

  • 受付中

    githubの表示が乱れる

    chromeでgithubのWEBページにアクセスしたところ githubが乱れてしまいました。 申し訳ありませんが、原因および解決方法をご存知の方がいらっしゃいましたら ご教授い

同じタグがついた質問を見る

  • AWS(Amazon Web Services)

    2069questions

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