auth scaling
をするためには AWS - Cloud Design Patternの
を見ておこう
実装
ロードバランサーサービースのELBとマシンイメージAMIを利用する。
サーバの負荷が重くなればクローン用AMIからECインスタンスを起動する。
AWSの ELB + CloudWatch + Auto Scalingの3つのサーバを組み合わせることで、負荷に応じて自動でスケールアウトするシステムを構築する。
手順
- ELBを立ち上げて、EC2をその配下に置く
- 現在稼働しているEC2からクローン用AMIを作成しておく。
- EC2数を増減させるトリガーとなる条件(メトリクス)を定義する。(EC2の平均CPU使用率、ネットワークの流量、セッション数、EBSのレイテンシーなど)
- 上記のメトリクスをCloudWatchを使って監視し、一定の条件を満たすとアラームを出す。
- アラームを受けた際、Auto ScalingがEC
- クローン用EC2は必要に応じてマスターEC2とファイルの同期を行う rsyncとかcapistranoを利用
注意点
マスターEC2がSPOFになっていしまう。
システム上のあるコンポーネントが異常を来たすと、そのシステム全体が障害に陥ってしまうようなコンポーネントの総称である。
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)にする