CDP:NFS Replicaパターン

提供:AWS-CloudDesignPattern
2015年4月22日 (水) 04:20時点におけるC9katayama (トーク | 投稿記録)による版
(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内, 検索
寄贈したアーキテクト

共有コンテンツの複製

目次

解決したい課題

 NFSを用いて複数サーバー間でファイル共有している場合、共有するサーバー数が増えアクセス頻度が高くなると、NFS部分のパフォーマンス劣化が無視できなくなる。

クラウドでの解決/パターンの説明

 このパターンは、共有ファイルを保管するNFSのパフォーマンス劣化に対し、特に参照性能を改善する。  各サーバーに仮想ディスクを個別に用意しておき、NFSサーバーの共有ファイルをコピーしておく。そうすれば、各サーバーにとっては、仮想ディスクをNFSの参照専用レプリカとして利用できる。

実装

 各EC2インスタンスの仮想ディスクであるEBSに、NFSサーバーのファイルをコピーしておく。各EC2インスタンスではEBSのファイルを読み取ることで、NFSサーバーにアクセスするよりも高いパフォーマンスで参照できる。

  • EC2上にNFSサーバーを構築し、共有ファイルを配置する。
  • Auto Scalingで起動するEC2(Webサーバー)は、起動時にまずNFSサーバーをマウントし、さらにNFSサーバーの内容をEBSにコピーする。
  • 各EC2上のアプリケーションはEBSを参照先に設定しておく。

構造

6wNg0ISJczU5Pz1m-63945.png

利点

  • NFSサーバー上の共有ファイルを更新すれば、それ以降に起動したEC2ではそのファイルが使われることになる。
  • 各EC2のEBSに共有ファイルが存在するので、NFSサーバーにアクセスする必要がなく、パフォーマンスが問題になりにくい。
  • 例えばNFSサーバーがダウンしたとしても、各EBSにコンテンツがあるのでSPOFにならない。

注意点

  • 共有ファイルを更新する際、NFSサーバー上のファイルを更新するだけでは各EC2に反映されない。rsyncなどを用いて同期をさせる必要がある。

その他

  • ローカルディスクとしてEBSを用いる代わりに、インスタンスストレージ(エフェメラルディスク)と呼ばれるEC2のローカルディスクを利用すると、パフォーマンスを向上させコストを抑えることも可能である。
  • NFSサーバとして、Amazon Elastic File Systemを利用することも可能
個人用ツール
名前空間
変種
操作
CDPメニュー
ツールボックス