AWSを用いたLaravelアプリのデプロイ方法・手順【6.WEBサーバーの冗長化】

プログラミング

AWSを用いたLaravelアプリのデプロイ方法・手順【6.WEBサーバーの冗長化】

どうも、えんつかです。

AWSを用いたWEBアプリデプロイ方法の第六段です。
今回は、WEBサーバーの冗長化(ELB)について記載していきます。

なお、前回はDBサーバーの構築方法について記載しました。

本ブログで紹介している手法は、UdemyにてWEBエンジニアのプロが紹介している講座を参考にさせて頂いています。結構、割愛させて頂いている内容がありますので、詳細について学びたい方はUdemyにて学ぶと良いと思います。動画なので学びやすく、レビューも豊富で質の高い教材を選ぶことができます。

Udemyはこちら


AWSを用いたLaravelアプリのデプロイ方法・手順【6.WEBサーバーの冗長化】

WEBサーバーを冗長化すると、サーバーへの負荷分散を行うことができます。その手法について記事にまとめていきます。

WEBサーバーを複数台立ち上げて、実際にAWS上の負荷を分散させる機能としてロードバランサーがあります。これをELB(Elastic Load Balancing)と呼びます。これにより、複数のEC2インスタンスに負荷分散や複数のアベイラビリティーゾーンにまたがって処理ができるようになります。また正常なEC2インスタンスのみに振り分けることもできます。

サブネットの作成(冗長化)

冗長化の為にもう一台サーバーを準備していきます。
サービスのVPC➡︎サブネット➡︎サブネットの作成へと進みます。
以下の通り設定です。
名前タグ:任意(アベイラビリティーが変わるのでわかるようにしましょう)
VPC:すでに作成済みVPC
アベイラビリティーゾーン:1c
IPv4 CIDRブロック:任意(ここでは10.0.11.0/24)
入力したら作成です。

手順AWS_052

次に既に作成済みのインタネットゲートウェイをあてがい、インターネットに接続できるように設定していきます。
以下写真のように、ルートテーブルの関連付けの編集を行ないます。

手順AWS_053

ルートテーブルの編集では、ルートテーブルIDを作成済みVPCを選択することで、自動で作成済みインターネットゲートウェイの設定が反映されます。

AMIの作成

それでは作成したサブネットにEC2を構築していきます。
EC2のダッシュボード➡︎インスタンスへと移動します。
事前に準備していたEC2インスタンスを選択した状態で、以下の写真の通り進めます。

以下を入力して、イメージの作成です。
イメージ名:任意
イメージの説明:任意

手順AWS_056

左側メニューのAMIをクリックし、AMIへ移動します。
作成したAMIを選択して、起動をクリックです。
以下の通り設定していきます。

インスタンスタイプ:t2.micro
インスタンス数:1
ネットワーク:作成済みVPC
サブネット:先程作成した1cを選択
自動割り当てパブリックIP:有効
キャパシティの予約:なし
プライマリIP:任意(10.0.11.10)
次の手順へ

ストレージ:任意(デフォルト)
次の手順へ

タグの追加
キー:Name
値:任意(test-aws-web)

セキュリティグループの設定は、
既存のセキュリティグループを選択するを選択し、以下の通り既に作成したものを選択

キーペアは、既に作成済みのキーペアを選択して作成します。

ロードバランサーの設定

それでは、ロードバランサーの設定を行なっていきます。

EC2ダッシュボードの左側メニュー内のロードバランサー➡︎ロードバランサーの作成を進めていきます。
ロードバランサーの種類:Application Load Balancerを選択

ロードバランサーの設定
名前:任意(test-aws-alb)
スキーム:インターネット向け
IPアドレスタイプ:ipv4
アベイラビリティーゾーン内
VPC:作成済みVPC
アベイラビリティーゾーン 1a:作成済みパブリックIP 1aを選択
アベイラビリティーゾーン 1c:作成済みパブリックIP 1cを選択

セキュリティグループの設定
新しいセキュリティグループを作成する
セキュリティグループ名:任意()
説明:任意()
タイプ:HTTP

ルーティングの設定
以下の写真の通りです。

ターゲットの登録
以下の通り進めます。

以上で完了です。

次にRoute 53でドメイン名を紐づけていきます。
Route 53ダッシュボードへ移動➡︎ホストゾーンへと進めます。

タイプAの値(IPアドレス)が、ELBになるように設定していきます。
タイプAの項目を選択した状態で以下の通り、レコードセットを編集していきます。
タイプ:A – IPv4 address
エイリアス:はい
エイリアス先:ELB Application load Balancerの下の作成したalbを選択
ルーティングポリシー:シンプル
レコードセットの保存を実行します。
これで、タイプAの名前(登録したドメイン名)をブラウザに貼り付けることで、アクセスできるはずです!