AWSを使ってロードバランシングを30分でしたことのまとめ
社内のAWS勉強会でサーバーを簡単に立ち上げることが出来たのでそのことをまとめたいと思います。
AWSのアカウントは持ってる前提です。
目標
- EC2でnginxをインストールし3台のサーバーを立ち上げる
- ロードバランサーで3台のサーバーを負荷分散
サーバー(インスタンス)の設定
インスタンスの立ち上げ
AWSマネジメントコンソールにアクセスし、サインインします。
画面左上のEC2をクリック
インスタンスの作成をクリック
今回はAmazon Linuxで作ります。
無料枠のt2.microを選択し、確認と作成をクリック
ウェブサービス用にHTTPを開いておきたいのでセキュリティグループの編集をクリックし、以下の用に設定
作成をクリックするとキーペアを作成するか聞かれるので無ければ作成し、チェックボックスにチェックを入れ、インスタンスを作成します。作成したキーは ~/.ssh 以下に保存しておきます。今回はtarosky-lab.pemを作成しました。
これで一台のサーバーが立ち上がりました。これを三台分繰り返すしインスタンスを表示してみると以下のようになります。
名前は空白になっていると思うのでホバーすると表示される鉛筆マークをクリックし、名前を付けておきます。
nginxのインストール
sshの設定
tarosky-lab-hi1をクリックし、下に表示されるパブリックDNSをコピーします。
今回はec2-user@ec2-52-68-123-128.ap-northeast-1.compute.amazonaws.comです。
cd ~/.ssh
chmod 600 tarosky-lab.pem # 権限の変更
ssh -i tarosky-lab.pem ec2-user@ec2-52-68-123-128.ap-northeast-1.compute.amazonaws.com
# 接続していいか聞かれるのでyes
~/.ssh/configに以下を記述して
Host tarosky-lab
HostName ec2-52-68-123-128.ap-northeast-1.compute.amazonaws.com
User ec2-user
IdentityFile ~/.ssh/tarosky-lab.pem
ssh tarosky-lab
でも接続できます。
nginxのインストール
接続できたら以下のコマンドを打っていきます。
sudo yum -y update # yumのアップデート
sudo yum -y install nginx # nginxのインストール
sudo chkconfig --list | grep nginx # 自動起動するサービスの確認
sudo chkconfig nginx on # nginxを自動起動するサービスにする
sudo service nginx start # nginxを開始
/etc/nginx/nginx.confによるとサーバーのルートフォルダが/usr/share/nginx/htmlになってるようなのでそこにあるindex.htmlを編集します
sudo vi /usr/share/nginx/html/index.html
# 適当に変更
ブラウザからec2-52-68-123-128.ap-northeast-1.compute.amazonaws.comにアクセスしてみると先程編集したindex.htmlが表示されていることが分かります。
これを三台それぞれで行いましょう。サーバーの立ち上げが簡単に出来ました!
ロードバランシングの設定
さて、この三台のサーバーにロードバランサーを付けて負荷分散してみましょう。
ロードバランサーをクリックしロードバランサーの作成をクリックします
ロードバランサー名を付け、次の手順をクリック
セキュリティグループの割り当てを聞かれるので先ほど設定したのと同じようにし、次の手順へ
セキュリティ設定の構成では何もせずに次の手順へ
ヘルスチェックの設定でも何もせずに次の手順へ
追加したいEC2インスタンスを選択し、次の手順へ
タグは必要無いのでそのまま次の手順へ
作成をクリック
数分待つことでロードバランサーが機能します。
DNS名に書かれたアドレスににアクセスし更新ボタンを何度か押すとページが切り替わっていきます。
ロードバランサーが正常に機能していることが分かります!
今回の話は無料枠ですが一応使い終わったインスタンスやロードバランサーなどは削除しておきましょう。
お疲れ様でした!