Amazon ELB を作成し Amazon EC2 への負荷を分散する設定
はじめに
Amazon ELB を作成し Amazon EC2 への負荷を分散する設定をメモします。
ゴール
Amazon ELB に Amazon EC2 のアプリインスタンスが 2つ紐づいた状態で負荷分散されていること。
前提
Amazon EC2 のアプリインスタンスは 1つできているとします(以下、インスタンスA と呼ぶ)。インスタンスのつくりかたはこちら。また、インスタンスA で何らかのサーバが立ち上がっていてブラウザから接続できるとします。
自分のプロジェクトの名前は myproject とします。
インスタンスA がぶらさがった ELB を作成して接続を確認(2013年09月20日更新)
AWS Management Console へ行き Services > EC2 を選択。
左側のメニューの Load Balancers を選択。Create Load Balancer ボタンを押す。
ウィザード「DEFINE LOAD BALANCER」において以下を入力して Continueボタンを押す。
- Load Balancer Name: myproject
ウィザード「CONFIGURE HEALTH CHECK」において以下を入力して Continueボタンを押す。
- Ping Protocol: HTTP
- Ping Port: 80
- Ping Path: ex. /health
- APIを用意しておく。DB 接続を確認できるとベター(ex. ActiveRecord の Model.first を実行する)
- Advanced Options は適宜変更(以下は例)
- Response Timeout: 5 sec
- Health Check Interval: 0.5 min
- Unhealthy Threshold: 2
- Healthy Threshold: 2
ウィザード「ADD EC2 INSTANCES」において、つくったインスタンスを追加する。
ウィザード「REVIEW」において確認して Create ボタンを押す。
つくった ELB を選択して Instances タブを選択。Status が Out of Service となっているが、10分ほど待つと In Service になる(それまではインスタンスの登録状況を見に行くと "Instance registration is still in progress" と表示される)。
In Service になったら ELB の DNS Name の Aレコードのドメインにブラウザからアクセスして、アプリインスタンスに接続できることをログなどで確認。
インスタンスA のイメージからインスタンスB を作成
インスタンスA のイメージを作成
Amazon EC2 コンソールにログイン。Inscance > Actions > Create Image (EBS AMI)。
ダイアログが開くので以下を入力:
- Image Name: ex. "プロジェクト名-日付": myproject-20130402
- no reboot にチェックをつける # ONにすると再起動が走って止まる恐れがあるので注意
OK 押す。しばらく待つ(10分くらいかかる)。