2016/8/11リリースALB(Application Load Balancer)を使用してみました。
ALBにはパスなどによって、振り別けるサーバを制御する機能が付いていますので、さっそく試してみます。ワイルドカードでの指定も可能です。
※ ドメインで振り別けることはできません。
やりたいこと
前提として、Movable Typeをインストールした以下2台のEC2があることを想定してます。
DBはRDS。
- mt-web01(master)
- mt-web02(slave)
管理画面操作のアクセスはmt-web01へのみ割り振りたい。
こうすることで、Movable Typeの管理画面から新規作成されたファイルは必ず、mt-web01へ作成させるようにする。
- /mt/*のアクセスはmt-web01のみへアクセスさせる。(管理画面アクセス)
- /mt/mt-static/*のアクセスはmt-web01のみへアクセスさせる。(管理画面アクセス)
通常のアクセス(上記以外)は両方のインスタンス(mt-web01,mt-web02)へ負荷分散させたい。
ALBの作成
[マネージメントコンソールサインイン]⇒[EC2]⇒[ロードバランサー]⇒[ロードバランサーの作成]を押下します。
以下の画面が表示されるので、アプリケーションロードバランサーを選択し、[次へ]を押下します。
1.ロードバランサーの設定
名前:test-albを入力します。
VPCを選択します。
2.セキュリティ設定の構成
特に無し。
3.セキュリティグループの設定
セキュリティーグループを指定します。
4.ルーティングの設定
名前:target01
ヘルスチェックのパス:/healthcheck.txt
5.ターゲットの登録
mt-web01を選択します。
[作成]を押下します。
ロードバランサーが作成されていることを確認します。
ターゲットグループにtarget01が作成されていることを確認します。
続いて、[ターゲットグループ]の作成ボタンを押下し、target02を作成します。
基本作成の内容はtarget01と同じで、5.ターゲットの登録についてのみ、
mt-web01とmt-web02の2つのインスタンスを選択します。
[ロードバランサー]⇒[リスナー]⇒[ルールを追加する]を押下します。
以下のように設定します。
優先順位は後からでも変更できます。
動作確認
アクセスログを確認し、mt-web01のみしかアクセスログが吐かれないことを確認。
新規ファイルを作成し、mt-web01へファイルが生成されることを確認。
あとは、rsync等でコンテンツの同期を取れば、冗長構成になるかと思います。
また、以下のルールでも、正常に動くことを確認済みです。
/aaa/*/ccc/*.jpg
*.jpg
EFS(Elastic File System)東京リージョンが待ち遠しい・・・。