オートスケーリングとはawsが提供するサービスで「設定に応じて自動でインスタンスを増減を調整してくれるサービス」程度の認識でした
それ以外にも多くの便利な機能があり、図解を用いてオートスケーリングをわかりやすく解説できればと思います。
主にソリューション アーキテクト向けで勉強した内容をまとめています。
オートスケーリング(Auto Scailing)とは#
awsが提供する アプリケーションを監視しインスタンスへの負荷に応じて自動的に設定したインスタンス数に調節してくれる機能です
- Horizontal Scailing(スケールアウト)により 新しいインスタンスを生成する時に用いられるテンプレートインスタンスの数を増加し処理能力を向上させる
- オートスケーリングの発生条件はCloudwatchで設定できる
- 同じリージョン内で複数のAZ間に横断的にスケーリングが可能
- オートスケーリング自体にコストはかからず、プロビジョンされたインスタンスに対してコストがかかる
※スケールアウトとはインスタンス数を増加させること
起動設定(Launch Configuration)とは#
オートスケーリングで使われる「インスタンス生成元となるデータ」のことです。
この設定でどのようなAMIでどのインスタンスタイプで等を設定します。
- 起動設定とはオートスケーリングで 新しいインスタンスを生成する時に用いられるテンプレートである
- 起動設定にはインスタンスファミリーやインスタンスタイプ、AMIやキーペア、セキュリティグループ等が定義される
オートスケーリングの主要な設定#
オートスケーリングのその他主要な設定をまとめました。
ソリューションアーキテクトの試験でも頻出項目です。
- Instance Protection(インスタンス保護)機能により スケールインによって削除させたくないインスタンスを指定できる
- オートスケーリングにはSpotインスタンス、およびon-demandインスタンスを併用できる
- Cooldown periodとは前のオートスケーリングが実行中の場合に新しくインスタンスを生成/削除するのを防ぐ機能
※スケールインとはより少ないインスタンスでも処理可能と判断した場合に既存のインスタンスを終了させること
ヘルスチェックとは#
例えばインスタンスへの負荷が高い時や逆に余裕があり余分なインスタンスが無いか定期的にチェックするのです。
それがヘルスチェックの役割です
- EC2ステータスチェックか ELBのヘルスチェックによってインスタンスの健康チェックが行われる
- もしもインスタンスがUnhealthyと診断された場合、 オートスケーリングによる置き換えの対象となる
- 先ずは不具合のあるインスタンスを先に終了させ、その後に新しいインスタンスを生成する
- Connection Drainingが有効になっている場合、処理中のリクエストが完了するかタイムアウトになるまでインスタンスを終了させるのを待つ
- 不具合のあるインスタンスの原因調査のため、オートスケーリングを中断させることもできる