MENU
オンライン講座開催中

AWS ALB(Application Load Balancer)を作成してEC2に振り分ける方法【入門】

AWS ALB(Application Load Balancer)を作成してEC2に振り分ける方法【入門】

AWS ALB(Application Load Balancer)を使って、複数のEC2インスタンスにトラフィックを振り分ける構成を作りました。今回は学習目的でEC2を2台用意してALBの基本的な動作を確認するまでの手順をまとめます。

目次

ALB(Application Load Balancer)とは

ALBは複数のEC2インスタンスにトラフィックを振り分ける仕組みです。1台が落ちても別の1台が応答するため、サイトが止まりにくくなります。

ユーザー
 ↓
ALB(ロードバランサー)
 ↓    ↓
EC2-1  EC2-2

ELBの種類

種類用途
ALB(Application Load Balancer)HTTP/HTTPS・Webアプリ向け(一般的なWebサイトはこれ)
NLB(Network Load Balancer)TCP・超高速通信向け
GLB(Gateway Load Balancer)セキュリティアプライアンス向け

作業の流れ

  1. EC2インスタンスを2台用意する
  2. ターゲットグループを作成してEC2を登録する
  3. ALBを作成してターゲットグループに紐付ける
  4. ALB用セキュリティグループを設定する
  5. 動作確認

ターゲットグループの作成

ALBを作る前に、トラフィックを受け取るEC2インスタンスをまとめた「ターゲットグループ」を先に作成します。

  1. EC2コンソール → 左メニュー「ターゲットグループ」
  2. 「ターゲットグループの作成」をクリック
  3. 以下の通りに設定する
項目設定値
ターゲットタイプインスタンス
ターゲットグループ名charakatsu-tg
プロトコルHTTP
ポート80
VPCデフォルト

「次へ」でターゲットの登録画面に進み、2台のEC2インスタンスにチェックを入れて「保留中として以下を含める」→「ターゲットグループの作成」をクリックします。

ALBの作成

  1. EC2コンソール → 左メニュー「ロードバランサー」
  2. 「ロードバランサーの作成」→「Application Load Balancer」の「作成」
  3. 以下の通りに設定する
項目設定値
名前charakatsu-alb
スキームインターネット向け
IPアドレスタイプIPv4
アベイラビリティーゾーンap-northeast-1a・ap-northeast-1c(2つ選択必須)
リスナーHTTP:80 → charakatsu-tg

ALBは最低2つのアベイラビリティーゾーンを選択する必要があります。1つだけだとエラーになるので注意してください。

ALB用セキュリティグループの作成

デフォルトのセキュリティグループはHTTP/HTTPSのインバウンドルールがないため、ALB専用のセキュリティグループを作成します。

  1. EC2コンソール → セキュリティグループ → 「セキュリティグループを作成」
  2. 名前:charakatsu-alb-sg
  3. インバウンドルールを追加:
タイププロトコルポートソース
HTTPTCP800.0.0.0/0
HTTPSTCP4430.0.0.0/0

作成後、ALBのセキュリティタブから「編集」→ defaultを削除してcharakatsu-alb-sgに変更します。

動作確認

ALBのDNS名にブラウザでアクセスして確認します。DNS名はALBの詳細画面に表示されています。

http://[ALBのDNS名].ap-northeast-1.elb.amazonaws.com

サイトが表示されればALBが正常にトラフィックをEC2に振り分けられています。

学習後のインスタンス停止

学習目的で作成したEC2インスタンスは、起動したままにしておくと料金がかかります。使わないインスタンスは停止しておきましょう。

  1. EC2コンソール → インスタンス一覧
  2. 停止したいインスタンスにチェック
  3. 「インスタンスの状態」→「インスタンスを停止」

停止したインスタンスはターゲットグループ上で自動的に「unused」になります。特別な操作は不要です。

実際の運用パターン

ALBを使った実際の運用には主に2つのパターンがあります。

パターンA:常時2台起動(固定冗長化)

2台のEC2を常に起動した状態でALBに登録しておきます。1台が落ちても即座にもう1台が対応するため、ダウンタイムをほぼゼロにできます。コストは2倍かかりますが、本番サイトでよく使われる構成です。

ユーザー
 ↓
ALB
 ↓    ↓
EC2-1  EC2-2
(常時起動)(常時起動)

パターンB:Auto Scalingと組み合わせる(推奨)

普段は1台で運用し、アクセスが増えたら自動でEC2を増やし、減ったら自動で戻す仕組みです。コスト効率が良く、実務では最もよく使われる構成です。次のステップで学ぶAuto Scalingを組み合わせることで実現できます。

通常時:
ユーザー → ALB → EC2-1(1台)

アクセス増加時:
ユーザー → ALB → EC2-1
               → EC2-2(自動追加)
               → EC2-3(自動追加)
パターンA(固定冗長化)パターンB(Auto Scaling)
コスト常時2台分かかる必要な時だけ増える
対応速度即座に切り替わる起動に数分かかる
管理のしやすさシンプル設定が必要
向いているケース常に高可用性が必要な本番環境アクセスの波がある一般的なWebサイト

まとめ

作成したリソース役割
charakatsu-albALB本体。トラフィックを受け取って振り分ける
charakatsu-tgターゲットグループ。振り分け先のEC2をまとめる
charakatsu-alb-sgALB用セキュリティグループ。HTTP/HTTPSを許可

次のステップとしてAuto Scalingを組み合わせることで、アクセス増加時にEC2を自動で増やす「高可用性構成」を構築できます。

目次