200msを実現するインフラ

インフラ、サーバ構築を考える上で、必要なのって、

【リクエストに対して、高速、確実にレスポンスを返す】

っていう考え方だと思ってます。

オペレーションとかもそうなんですけど、

バックエンド部分、パフォーマンスとかも考えるから、

多岐にわたるんですよね。

今まで自分が関わってきた、ざっくりとした構成ですけど、

こんな感じ(台数は案件によって、だいぶ変わるかな・・・)

 

  • ロードバランサ

AWSのELBでリバースプロキシに振り分けたりする

  • リバースプロキシ

静的ファイル(画像とかCSSとか・・・)をリバースプロキシで返して、

mod_proxy_balancerを使って、キャッシュサーバに振り分ける

  • キャッシュ

Varnishでページキャッシュサーバとして構築する

  • アプリケーション

Railsのアプリケーションの場合、NginxとUnicornで動作させることが多い。

Apacheだけの時とかもありますけど・・・

  • データベース

Mysqlを使用して、2台のマスタに複数台のスレーブを構築して、

レプリケーションさせる。

Railsのアプリケーションでは、ActiveRecordのact_as_readonlyableプラグインを使用して、更新系のクエリは、マスタにアクセスして、参照系はスレーブで動作させる

 

 こんな感じで構築してますとかあれば、

教えてください。業務に取り入れます。