勉強前イメージ
ある一定の負荷まで行ったら勝手にEC2インスタンス増やしてくれるイメージ
だけど、色々設定あってめんどくさそう・・・
調査
AWS Auto Scaling とは
AWS Auto Scaling というAWSのサービスで、
自動的に容量を増減してパフォーマンスを最適化してくれるシステムです。
アプリケーションの負荷を処理するために適切な数の Amazon EC2 インスタンスを利用できるように準備します。
元々オンプレなどで構築していると来るアクセスの最大を見越して作成しますが、基本的には半分以下のアクセスしか来ないことも往々にしてあります。
また、構築・維持に対するコストもかかり、突発的なアクセス増に耐えることができません。
それを解決してくれるのがAWS Auto Scalingです。
Auto scaling の特徴
いろんなサービスを統合してスケーリングできる
AWS Auto Scalingからいろんなサービスのスケーリングができます
- Amazon EC2
- Amazon EC2 Auto Scalingグループ内で起動・終了を行う
- Amazon EC2スポットフリート
- Amazon EC2スポットフリートの起動・終了を行う
- 中断されているインスタンスを自動的に置き換える
- Amazon ECS
- 負荷の変動に合わせて、Amazon ECSを調整する
- Amazon DynamoDB
- DynamoDBテーブルまたはグローバルセカンダリインデックスで読み書きのキャパシティを調整する
- Amazon Aurora
- Auroraのリードレプリカの数を調整する
リソースの自動検出
AWS Auto Scalingは環境を確認し、使われているスケーラブルなリソースを自動で検出します
組込みスケーリング戦略
予め、最適化の定義がされています。
- パフォーマンスについて
- コストについて
- パフォーマンスとコストのバランスについて
予測スケーリング
予測スケーリングを行うことで、キャパシティを正確に調整することができる。
定期的なスパイクなどのトラフィックを予想し、変動に先立って適切な数のインスタンスを調整します。
完全マネージド型
スケーリングされるリソースに対して、戦略を使用してメトリクスのターゲット値を設定する
また、リソースのスケーリング調整をリガーするAmazon CloudWatchアラームを作成・管理します
スマートスケーリングポリシー
スケーリングされるリソースに対して
- スケーリングの調整を継続的に行い、キャパシティを最適化します
-
ターゲット追跡スケーリングポリシー
によって負荷パターンを学習して、キャパシティの変動を最小限に抑えます
AWS Auto Scaling を使用するメリット
耐障害性の向上
AWS Auto Scaling では、EC2インスタンスに何らかの異常が発生した場合はそのインスタンスを自動的に終了させ、
新たにインスタンスを起動させることで、耐障害性が向上します
可用性の向上
複数のアベイラビリティゾーンを設定できるため、AZでの障害が発生したとしても別のAZでインスタンスを起動できます。
それにより可用性の向上がはかれます
コスト効率の向上
必要な時に、必要な分だけ自動的に追加・削除するため、かかる費用を最低限に抑えることができます。
また突発的に増えたときでもすぐにインスタンスを増やして対応できます
勉強後イメージ
EC2だけじゃなくて、ほかにもサービスが使えるのか・・・
今回はこのサービスがどういうものか調査しただけだけど、ちゃんと設定したらすごそう。
EC2で構築してアクセス量増やしてEC2増えてるとこ見てみたい