AWSサービスがなかなか理解できないなぁ..
そのお悩みを解決します!
AWSを学び始めた皆さん。
学習は順調に進んでいますか?
AWSはたくさんサービスがあって、1つ1つのサービスを学ぶのに苦労しますよね。
そこで本記事では「EC2 AutoScaling」について、初心者にわかりやすいよう図解付きで解説していきます。
結論として、このようにまとめることができます。
今はまだ分からなくても全然大丈夫です!
本記事を読んだ後に「EC2 AutoScalingってこういうサービスなんだなぁ」って思ってもらえれば嬉しいです。
またなんとなくEC2 AutoScalingを分かっているつもりの方も「理解できていなかった」と思うポイントが隠されているかもしれません..!
AWSを学んでいる方の参考になれば嬉しいです!それではどうぞ!
EC2 AutoScalingとは
EC2 AutoScalingとは処理負荷に応じてEC2インスタンスの数を自動で増減することができるサービスです。
オンプレミスではサービスの需要を予測し、インフラ環境を準備する必要がありました。そのため、このような課題がありました。
・需要に対して過剰に環境を準備し、コストがかかりすぎてしまった。
・需要が追いつかず、サービスが提供できなくなり、ビジネスチャンスを逃してしまった。
そこで実際のパフォーマンスを維持するように調整してくれるサービスとして、EC2 AutoScalingが登場しました。
メリット
EC2 AutoScalingを使用することで、これらのメリットを受けることができます。
メリット | 詳細 |
---|---|
パフォーマンス効率の向上 | 実際の需要にあったリソースを自動的に維持することで、安定したパフォーマンスでサービスを提供する。 |
信頼性の向上 | 異常があったEC2インスタンスをAutoScalingが検知・削除し、正常なインスタンスを起動できる。 |
コストの最適化 | EC2 AutoScalingの利用には料金がかからず、通常のEC2インスタンスと同様に使用した分だけ料金がかかる。割引料金で利用できるEC2インスタンスの利用も可能。 |
EC2 AutoScalingの設定方法
EC2 AutoScalingを使用するためには、3つの機能が必要となります。
- 起動テンプレートの作成
- Auto Scaling Groupの作成
- Auto Scaling Policyの設定
1つ1つの機能について解説していきますね。
1.起動テンプレートの作成
起動テンプレートはEC2インスタンス起動時に必要な情報を設定する機能です。
ここではAMI、インスタンスタイプ、IPアドレスタイプ、EBSボリューム、適用するセキュリティグループ、ログインに使用するキーペア等を定義します。
基本的にはEC2起動時に定義する内容と同じです。
本記事では分かりやすいように起動テンプレートをお店の店員さんと置き換えています。
店員さんを定義したところで、全体の管理も必要ですよね。
そこで次のAuto Scaling Groupの作成が必要となります。
2.Auto Scaling Groupの作成
Auto Scaling Groupは起動テンプレートで設定されたEC2インスタンスの配置場所と数を設定する機能です。
ここでは起動テンプレート、インスタンスの購入オプション、VPC、サブネット、ヘルスチェック、グループサイズ等を定義します。
この機能でスケーリングの全体管理を行ってくれると思ってもらえればOKです。
本記事ではAuto Scaling Groupをお店の全体管理と置き換えています。
店員さんだけいても、指示する全体管理がないと仕事が回らないですよね。
しかし、どのような状態の時に店員さんの人数を増減するかはまだ決まっていませんね。
そこで次のAuto Scaling Policyの設定が必要となります。
3.Auto Scaling Policyの設定
Auto Scaling PolicyはEC2インスタンスをスケーリングさせる条件を設定する機能です。
このように様々なスケーリング方法があるため、ユースケースに合わせたスケーリング方法を選択しましょう。
スケーリング方法 | 詳細 | ユースケース | |
---|---|---|---|
手動 | グループサイズを手動でスケーリングする | 緊急でインスタンスの増減が必要な場合 | |
スケジュールに基づく | 指定した日付と時刻に自動でスケーリングする | ピークの時間帯が決まっている場合 | |
予測 | 過去のメトリクスを分析し、今後を予測した上でスケーリングする | 朝のみ集中するとパターンが決まっている場合 | |
動的 | 簡易 | 1つのメトリクスを基準にスケーリングする | その時のサービス需要に合わせて柔軟にスケーリングを行いたい場合 |
ステップ | 1つのメトリクスに複数の閾値を設定し、スケーリングする | ||
ターゲット追跡 | 1つのメトリクスに目標値を指定し、スケーリングする |
本記事ではAuto Scaling Policyを店員さんを呼ぶルールと置き換えています。
ルールがあることで適切なスケーリングを実現することができます。
Auto Scaling Policyのベストプラクティスについては、公式のBlackBeltを確認してみて下さい。(14分あたりから紹介しています!)
以上がEC2 AutoScaling使用時の設定方法となります。
EC2 AutoScalingの注意事項
EC2 AutoScalingは大変便利なサービスですが、使用前にあらかじめ知っておいた方が良い注意事項があります。4つお伝えしますね。
①急なアクセス増加(スパイク)には対応できない
EC2 AutoScalingでは急なアクセス増加に対応することができません。
なぜなら、AMIからEC2を作成し起動するところで時間を要するためです。
お店でも急な行列には対応できないですよね。
そのため、急なアクセス増加にはサーバレスサービスといった他のサービスで対応する必要があります。
2020年AWS INNOVATEに参考になる資料がありました。詳細を知りたい方は確認してみて下さいね。
アクセスの急増に耐え得るサーバーレスアプリケーションを作る⽅法
②EC2起動後すぐにサービスが稼働できる状態にしておく
EC2 AutoScalingから起動したEC2は起動後すぐにサービスが稼働できる状態にしておきましょう。
店員さんも事前のレジ研修を受けていないとお仕事できないですよね。
ここでは2021年4月に登場したウォームプールという機能を活用できます。
これはEC2が処理を開始するまでの準備を事前に行うことで、スケールアウトを高速化できる機能です。
ウォームプールについて詳細を知りたい方はこちらのNRI様のブログが参考になるので、確認してみて下さい。
EC2 AutoScaling WarmPool速度検証
③起動中のEC2に変更を行った場合はAMIも変更する
起動中のEC2にパッチの適用や機能のアップデートといった変更を行った場合は、起動テンプレートのAMIの変更も合わせて行いましょう。
なぜなら、AMIが古いままだと新しく起動したEC2が古いバージョンで起動してしまうためです。
店員さんに新しい仕事を覚えてもらったら、他の店員さんにも同じ仕事を覚えてもらう必要がありますよね。
そのためEC2変更後はすぐにAMIを作成し、起動テンプレートの更新も行うようにしましょう。
え、手動で対応しないといけないの?
安心して!自動でできるよ!
EC2 Image Builderというサービスで自動で最新のAMIを使用し、起動テンプレートの更新ができます。詳細はこちらのクラスメソッド様のブログを確認してみてください。
[アップデート] EC2 Image Builder で 起動テンプレートを作成・更新できるようになりました!
④EBSにセッション情報を保持しない
EC2のローカルディスクとなるEBSにはセッション情報(リクエストに依存する情報)は保持しないようにしましょう。
なぜなら、スケーリングによってEC2は急に停止されてしまうことがあるからです。
店員さん同士でも急な欠勤に備えて、お客さんの情報を共有したりする時がありますよね。
そのため、セッション情報は別のサービス(DynamoDB等)で管理するようにしましょう。
以上がEC2 AutoScalingについての解説でした。
最後に冒頭でお見せした図を改めて確認してみましょう。
なんとなくEC2 AutoScalingについて分かって頂けたかなと思います!
まとめ
今回はAWSサービスの中からEC2 AutoScalingについてご紹介しました。
EC2 AutoScalingは実際にハンズオンをすることで理解を深めていくことができるサービスだと思います!
AWS初学者の方は会員制コミュニティ付きの動画で学べるAWS学習オンラインスクールCloudTechがおすすめ!
CloudTechについてはこちらの記事でご紹介しているので、参考にしてみて下さい。
今だけお得に入会できるクーポンコード配布中!
それでは、これからも一緒に学んで、自己価値を高めていきましょう〜!
最後まで、お読み頂きありがとうございました!
参考文献
本記事を作成するにあたり、こちらのブログ記事や本を参考にさせて頂きました!
①AWSエンジニア入門講座――学習ロードマップで体系的に学ぶ
②AWS認定資格 クラウドプラクティショナーの教科書: 合格へ導く虎の巻 CloudTech制作委員会シリーズ
今回解説していないEC2 AutoScalingのベストプラクティス等も詳しく解説されています。
どれもAWS初学者にとって、とても分かりやすい内容になっていますよ!
よかったら参考にしてみて下さい!
コメント