はじめに──この記事でわかること
AWS SAAに合格するために、インフラ設計の考え方を基礎から学び直しています。
今回取り上げたのは「Auto Scaling Group(ASG)」と「Application Load Balancer(ALB)」を組み合わせたEC2オートスケーリングの仕組みです。
試験に出やすいポイントを整理してみました。
1. EC2スケール問題の背景
- Webアプリにユーザーが集中するとEC2 1台では処理しきれない
- 逆に夜間などアクセスが減るとサーバが多すぎてコストが無駄
そのため、アクセス量に合わせて自動でEC2を増減し、リクエストを負荷分散する仕組みが必要です。
2. ASGとALBの基本
- Auto Scaling Group(ASG): EC2インスタンスをグループ単位で自動増減する機能
- Application Load Balancer(ALB): ユーザーリクエストを稼働中のEC2へ自動分配する負荷分散機能
★ コラム:なぜ「Group」?
Auto Scalingは「自動増減機能」の総称。
複数のEC2をまとめて管理する“まとまり”を扱うため、ASGだけ「Group」が付きます。
3. 仕組みの流れ
- ユーザーがアプリにアクセス
- まずALBにリクエスト到達
- ALBが稼働中のEC2に振り分け
- 負荷上昇時はASGで新規EC2を追加
- アクセス減少時はASGで余剰EC2を削減
- EC2故障時はASGが再補充
★ コラム:ALBなしのASG運用
バッチ処理や内部システムなど、
外部アクセス不要な用途ではALBを使わずASGだけで自動増減するケースもあります。
4. ASG+ALBを組み合わせるメリット
- サーバ台数の手動調整が不要
- 1台故障しても他がカバーする高可用性
- 必要時だけ増減できるのでコスト最適化
5. 想定問題1
【問題1】
あなたの会社のWebサービスは、現在EC2インスタンス1台のみで運用されています。
最近、予想以上にアクセスが急増しており、パフォーマンスが不安定になっています。
今後さらにユーザーが増えることも見込まれています。
この状況で、サービスを自動的にスケーリングして高可用性を保ちつつ、コストも抑えたい場合、どの構成が最適ですか?
- EC2インスタンスを手動で増やし、DNSラウンドロビンで振り分ける
- Auto Scaling GroupとApplication Load Balancerを使い、複数のAZにEC2を展開する
- EC2インスタンスを大型化し、NAT Gatewayを複数立てる
- Auto Scaling GroupのみでEC2を管理し、ALBは使わない
↓↓↓ 正解はこの下にスクロールするとあります。
【正解】2
Auto Scaling GroupとALBでマルチAZ展開がベスト。
ASGだけを使ってALBを使わないパターンもあります。
たとえば、社内バッチ処理や定期タスクなど外部公開不要な用途の場合です。
ただし、Webサービスのように多くのユーザーがアクセスする場合は、ALBと組み合わせるのが一般的です。
6. 想定問題2
【問題2】
Auto Scaling GroupでWebアプリケーションを運用しています。
昼間はアクセスが多いですが、深夜はほぼゼロになります。
夜間のコストをなるべく抑えたい場合、最も適切なアプローチはどれですか?
- スケーリングのしきい値を「CPU使用率20%」に設定する
- 最小インスタンス数を0台に設定し、スケジュールベースのスケーリングも組み合わせる
- ALBのヘルスチェック間隔を短くする
- Auto Scaling Groupの最大台数を減らす
↓↓↓ 正解はこの下にスクロールするとあります。
【正解】2
最小インスタンス数を0台+スケジュール設定
★ コラム:しきい値20%だけでは?
しきい値を下回った場合は台数が減りますが、ASGの最小インスタンス数の設定値以下にはなりません。
夜間に0台にしたい場合は、最小インスタンス数を0にし、さらにスケジュール設定も組み合わせるのが最適です。
★ コラム:ALBのヘルスチェック
ALBはEC2インスタンスに定期的にリクエストを送り、応答が異常なEC2は自動で振り分けから外します。
壊れたサーバにリクエストが飛ばなくなるので、システムの自己回復にもつながります。
まとめ
ASGとALBの組み合わせは、可用性とコスト最適化を両立できる鉄板構成です。
SAA試験でもよく出るので、まずはこの基本パターンをマスターしましょう。
コメント