Amazon EC2などで使用できるAWS Auto Scalingとは?
AWS Auto Scalingについて
概要
AWS Auto Scalingは、AmazonがAWSで提供している、需要に応じてインスタンスを自動的に増減させることができるサービスです。加えて、異常なインスタンスやアベイラビリティーゾーンを自動で切り離すことを可能とし、コスト最適化と高可用性を実現することができます。
AWS Auto Scalingの対象
AWS Auto Scalingの対象リソースは以下の通りです。
- EC2
- EC2スポットフリート
- ECS
- DynamoDB
- Aurora
AWS Auto Scalingを使用することで、自動でEC2インスタンスを増減したり(Amazon EC2 Auto Scaling)、ECSサービスの増減、DBのテーブルもしくは読み取り/書き込み容量を増減、Auroraリードレプリカの数を増減します。
※ spot fleet:スポットフリートリクエストで指定した容量ターゲットを満たすように、スポットインスタンスとオンデマンドインスタンスの数を調整して起動する機能
起動設定
どのようなインスタンスを起動するか設定します。主な項目は以下の通りです。
- AMI
- インスタンスタイプ
- キーペア
- セキュリティグループ
- IAMロール
Auto Scalingグループ
EC2インスタンスの自動スケーリングとインスタンス数の維持を可能にします。起動したインスタンスは複数のアベイラビリティーゾーン間で均等にバランシングされます。
スケーリングプラン
- 手動スケーリング
高負荷バッチ処理が予定されているなどの場合に、手動でスケーリングします。インスタンス数の最小最大を設定し、最小値と最大値の間でスケーリングを実施します。 - 動的スケーリング
アクセス予測が困難な場合に、CloudWatchを利用し閾値に基づいてインスタンス数を変動させる場合に利用します。 - スケジュールスケーリング
例えば18時にアクセスが増大する傾向のあるアプリケーションなど、予測可能なサービスの負荷に対応する場合に利用します。
ELB/ヘルスチェックの設定
ELB配下のインスタンスをAuto Scalingの対象とする場合、使用するELBを選択し、さらにヘルスチェックの対象をEC2もしくはELBに設定します。
異常と判断された場合は、該当のインスタンスを削除したうえで新しいインスタンスを起動することでインスタンス数を維持します。これはAuto Healingと呼ばれています。
※ Elastic Load Balancing:アプリケーションへのトラフィックを複数のターゲット (Amazon EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数など) に自動的に分散する機能。
AWS Auto Scalingのメリット
スケーリングを迅速に設定する
AWS Auto Scaling では、単一の直感的なインターフェイスで複数のリソースに対するターゲット使用率レベルを設定できます。他のコンソールに移動することなく、すべてのスケーラブルリソースの平均使用率をすばやく確認できます。例えば、アプリケーションが Amazon EC2 と Amazon DynamoDB を使用している場合、AWS Auto Scaling を使用して、アプリケーション内のすべての EC2 Auto Scaling グループとデータベーステーブルのためのリソースプロビジョニングを管理できます。
スマートなスケーリング判断を行う
AWS Auto Scaling では、異なるリソースのグループが需要の変化に対応する方法を自動化するスケーリングプランを構築できます。可用性、コスト、または両方のバランスを最適化することが可能です。AWS Auto Scaling は、ユーザーの設定に基づいて、すべてのスケーリングポリシーの作成とターゲットの設定を自動的に行います。AWS Auto Scaling はアプリケーションを監視し、需要の変化に応じてリアルタイムでリソースグループの容量を自動的に追加または削除します。
パフォーマンスを自動的に維持する
ワークロードが断続的、予測不可能、または継続的に変化している場合でも、AWS Auto Scaling を使用すれば、最適なアプリケーションのパフォーマンスと可用性を維持できます。AWS Auto Scaling ではアプリケーションを継続的に監視して、アプリケーションが望ましいパフォーマンスレベルで確実に動作します。需要が急増するときは、優れたサービスの品質を維持できるように、AWS Auto Scaling が制約されたリソースの容量を自動的に増加させます。
必要分のみのお支払い
AWS Auto Scaling は、AWS のサービスの消費時における使用率とコスト効率性の最適化に役立ち、実際に必要なリソースの料金のみを支払うことができるようにします。需要が減少すると、AWS Auto Scaling が過剰なリソース容量を自動的に削除するので、過度の支出を避けることができます。AWS Auto Scaling の使用は無料で、AWS 環境のコストの最適化を可能にします。