auth scaling

をするためには AWS - Cloud Design Patternの

を見ておこう

実装

ロードバランサーサービースのELBとマシンイメージAMIを利用する。

サーバの負荷が重くなればクローン用AMIからECインスタンスを起動する。

AWSの ELB + CloudWatch + Auto Scalingの3つのサーバを組み合わせることで、負荷に応じて自動でスケールアウトするシステムを構築する。

手順

  1. ELBを立ち上げて、EC2をその配下に置く
  2. 現在稼働しているEC2からクローン用AMIを作成しておく。
  3. EC2数を増減させるトリガーとなる条件(メトリクス)を定義する。(EC2の平均CPU使用率、ネットワークの流量、セッション数、EBSのレイテンシーなど)
  4. 上記のメトリクスをCloudWatchを使って監視し、一定の条件を満たすとアラームを出す。
  5. アラームを受けた際、Auto ScalingがEC
  6. クローン用EC2は必要に応じてマスターEC2とファイルの同期を行う rsyncとかcapistranoを利用

注意点

マスターEC2がSPOFになっていしまう。

SPOF(Single Point Of Failure)

システム上のあるコンポーネントが異常を来たすと、そのシステム全体が障害に陥ってしまうようなコンポーネントの総称である。

ELB

http://aws.amazon.com/jp/elasticloadbalancing/

注意

AZと ELB

毎のEC2インスタンスは同じにする! http://tech.basicinc.jp/AWS/2013/07/21/aws_elb_point/

HTTPS→HTTPでの場合、アプリケーションでSSL判定するにはX-Forwarded-Proto

ELBのCross-Zone Load Balancingを使うと上記の問題が解決する* http://okochang.hatenablog.jp/entry/2013/11/09/233732

Create an internal load balancer :

http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/UserScenariosForVPC.html Create a Basic Internal Load Balancer in Amazon VPC

ELBを privateか publicか選択して作ることができる。

外部(internet)にELBをだすなら publicで vpc内で外部に出さないのであればprivate(interal)にする

NginxとInternalELBとのDNS名前解決方法

results matching ""

    No results matching ""