構成概要
WEBサービスにおいて高トラフィックのリクエスト処理するために、
の3つのサービスを組み合わせて、負荷に応じてEC2を自動でスケールアウトする構成です。キャンペーンなどの急なトラフィック増加に対して複数のEC2を起動し、ロードバランサーを用いて各仮想サーバに負荷を分散し、トラフィック量に合わせて処理を担当するEC2の増減が可能です。
構成のポイント
- ELB配下にEC2を複数起動
- EC2を新たに起動する時に利用するAMIは事前作成
- EC2数を上限させるトリガーとなる条件(CPU使用率、ネットワーク流量など)を定義しcloudwatchで監視しアラームをAutoScalingへ送信
- アラームを受けたAutoScalingはEC2の増減を制御
ユースケース
トラフィック増減の予測が難しくサービス継続が求められるWEBシステムには、EC2スケールアウト構成パターンはよく用いられます。ElasticBeanstalkを利用すると自動でスケールアウトを行ってくれますが、システム上の制約などによりEC2を利用する場合は、AWSサービスを組み合わせたスケールアウト構成が必要になります。
処理能力を高めるアプローチとしてスケールアップもあるが、コストと拡張性の観点からクラウドではスケールアウト構成を用いるのが一般的です。
留意事項
留意事項 | 内容 |
急激なトラフィック増へは非対応 | 数秒でトラフィックが急激に増大するシステムへの対応は難しいため、事前に増加が見込まれる場合は、あらかじめ余分にEC2を起動するなどの対応が必要になります。 |
AMI管理 | パッチやアップデートが発生した場合は、AMIのメンテナンスも忘れないようにする必要があります。
AutoScalingした際に、違う仮想サーバが起動することになり、障害の原因となります。 |
PoC(Proof of Concept)
想定シナリオ「EC2スケールアウト環境構築手順」について、設定手順を別のページで紹介します。