AWSのElastic Load Balancer(ELB)とAuto Scalingを活用することで、アプリケーションの可用性とスケーラビリティを向上させることができます。本記事では、それぞれの基本概念と設定方法を解説します。
1. ELB(Elastic Load Balancer)とは?
ELBは、複数のEC2インスタンスにトラフィックを分散させることで、負荷を分散しアプリケーションの可用性を向上させるサービスです。
ELBの主な種類
ELBタイプ | 説明 |
---|---|
ALB(Application Load Balancer) | HTTP/HTTPSトラフィックを処理し、パスベースやホストベースのルーティングが可能 |
NLB(Network Load Balancer) | TCP/UDPトラフィックを処理し、高スループット・低レイテンシの負荷分散が可能 |
CLB(Classic Load Balancer) | 旧世代のロードバランサーで、ALB/NLBへの移行が推奨される |
ALBの作成手順(AWSマネジメントコンソール)
- EC2ダッシュボードから「ロードバランサー」を選択
- 「ロードバランサーを作成」をクリックし、Application Load Balancer を選択
- リスナー を設定(例:HTTP 80)
- VPCとサブネット を選択し、パブリックサブネットを指定
- セキュリティグループ を作成し、適切なポートを開放
- ターゲットグループ を作成し、EC2インスタンスを登録
- ELBを作成し、DNS名を取得して動作確認
ELBの作成(AWS CLI)
aws elbv2 create-load-balancer --name MyALB --type application --subnets subnet-12345678 subnet-87654321
2. Auto Scalingとは?
Auto Scalingは、負荷に応じてEC2インスタンスの数を自動で増減させる機能です。これにより、コストの最適化 と 高可用性の確保 が可能になります。
Auto Scalingの主な要素
要素 | 説明 |
---|---|
Auto Scaling Group(ASG) | EC2インスタンスを管理するグループ |
Launch Template | インスタンスの設定(AMI, インスタンスタイプ, セキュリティグループ) |
Scaling Policy | スケーリングの条件(CPU使用率、リクエスト数など) |
Auto Scalingの作成手順(AWSマネジメントコンソール)
- EC2ダッシュボード から「Auto Scalingグループ」を開く
- 「Auto Scalingグループを作成」をクリック
- Launch Template を作成
- AMI(Amazon Machine Image)を選択
- インスタンスタイプを指定(t2.microなど)
- セキュリティグループを設定
- Auto Scaling Group(ASG) を作成
- VPCとサブネットを選択
- 初期インスタンス数を設定(例:2)
- スケーリングポリシーを設定
- CPU使用率が60%を超えたらインスタンスを追加
- CPU使用率が30%未満ならインスタンスを削除
- 設定を保存して作成完了
Auto Scalingの作成(AWS CLI)
aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyASG \\
--launch-template LaunchTemplateName=my-template,Version=1 \\
--min-size 1 --max-size 5 --desired-capacity 2 \\
--vpc-zone-identifier subnet-12345678,subnet-87654321
3. ELB + Auto Scalingの統合
ELBとAuto Scalingを組み合わせることで、負荷が増減しても安定したトラフィック分散を実現できます。
手順
- ターゲットグループをELBに設定
- Auto Scaling Groupが管理するEC2インスタンスをターゲットグループに追加
- Auto Scaling GroupをELBと連携
- Auto Scalingの作成時にターゲットグループを指定
- インスタンスが追加・削除されると、自動的にELBのターゲットグループが更新
- スケーリングポリシーを調整
- リクエスト数やレスポンスタイムに基づいたスケーリング設定を追加
4. まとめ
ELBとAuto Scalingを組み合わせることで、
- 負荷分散(ELB) によりトラフィックを適切に分散
- 自動スケーリング(Auto Scaling) によりリソースを最適化
- 高可用性とコスト最適化 を同時に実現
次のステップでは、「CloudFrontとCDNによる静的コンテンツのキャッシュ戦略」について詳しく解説していきます!