こんにちは。
今回は、「Auto Scaling」について、SAA試験のために未経験者目線で
どのようにして覚えたかということを簡単に紹介したいと思います。
あくまでAWS初心者である私個人のイメージですのでご容赦ください。
Auto Scalingの概要
まずはじめに、Auto Scalingとはどのようなもだったかを確認していきます。
Auto Scalingとは、簡単に言うと、リソースの稼働状況に応じて自動で
スケーリング(EC2の増減)を行なってくれるAWSの代表的なサービスの1つです。
CLFの学習をしてきた方の中には、「Auto Scaling」という1つのサービスで
完結しているようなイメージをお持ちの方もいらっしゃるかと思いますが、
Auto Scalingの基本的な構成は、主に「Auto Scaling」を含む
以下の3つのサービスの組み合わせで成り立っています。
・CloudWatch
・Auto Scaling
・ELB
ここから1つずつ、簡単にAuto Scalingの構成における
各サービスの役割やポイントを確認していきます。
CloudWatch
CloudWatchの役割は主に「リソースの監視」です。
監視対象のリソースが、ユーザーが事前に設定した条件を
一定時間満たした場合にアラートを発報します。
「条件」とは、例えば「CPUの使用率が80%以上になる」などといった内容になります。
Auto Scaling
Auto Scalingの役割は主に「EC2の増減」です。
CloudWatchからのアラートを受けて、EC2を増減します。
どのインスタンスタイプのEC2をどれくらい起動/終了させるかなどを
事前に設定します。
ELB(Elastic Load Balancing)
最後に、Auto Scalingによって増減されたEC2に
トラフィックを振り分ける(負荷分散)のがELBの役割です。
定期的にヘルスチェックを行ないながら、
正常に通信できるEC2にのみトラフィックを振り分けられます。
Auto Scalingで使える機能
次に、Auto Scalingを構成するにあたって
覚えておくべき以下の機能について簡単にご紹介します。
・ターゲット追跡ポリシー
・ライフサイクルフック
ターゲット追跡ポリシー
基本的にAuto Scalingでは、EC2の「最大数」「最小数」を設定し、
条件を満たした場合にその範囲内で増減を行ないますが、
ターゲット追跡ポリシーという機能を有効にすることで、
設定した条件を維持するように自動でスケーリングを行なうようになります。
例えば、ターゲット追跡ポリシーにて「CPU使用率50%」の設定にしておくことで、
常にCPU使用率が50%を保つように自動でスケーリングさせることが可能になります。
CPU使用率が一定数以下でないとパフォーマンスが低下してしまうシステムなどに
適したソリューションとなります。
ライフサイクルフック
Auto ScalingによってEC2がスケールインされる、つまり台数を減らす場合、
デフォルトではEC2は削除されます。EC2が削除されるということは、
スケールインされたEC2からログ等の情報を取り出すことができない、ということになります。
(たとえログ取り出しの処理中でも問答無用でEC2は削除されます。)
そこで、ライフサイクルフックという機能を使うことで、
EC2のスケールイン時に、EC2を「終了」するのではなく一時的に「停止」状態で
残しておくことができるようになります。
この機能を有効にしておくことで、例えば稼働中のアプリケーションで異常が発生し、
ログからトラブルシューティングを行なう必要が生じる場合などでも、
停止したEC2からログを取り出すことが可能です。
まとめ
今回は、Auto Scalingについて簡単に紹介しましたが、このAuto Scalingの構成は、
様々なサービスと組み合わせて用いられることが多く、SAAの学習をしていても
あちらこちらで出くわすことになるので、どのようなものなのか
初めに最低限イメージできているといちいち躓かなくて済むかと思います。
また、実際にAWSを利用する際にも必ずと言っていいほど
耳にする基本的なサービスですので、覚えておいて損はありません。
短いですが、最後まで読んでいただきありがとうございました。