LoginSignup
0
0

More than 3 years have passed since last update.

AWSでELB環境を作るための覚書

Last updated at Posted at 2020-12-30

はじめに

EC2を東京リージョンの3つのAZに作って、ロードバランサ(ELB)でアクセスを分散するようにします。

全体概要

下記のツリーのようにオブジェクトを作っていきます。「AAA」は任意の名前に読み替えしてください。

  • VPC AAAvpc01 10.0.0.0/16 Tokyo VPCにインターネット接続を可能にして、3つのAZにそれぞれサブネットを作ります。
    • ルートテーブル AAARouteTable1
    • インターネットゲートウェイ AAAInternetGW1 0.0.0.0/0
    • サブネット
      • AAASubnet1 10.0.0.0/20 AZ:ap-northeast-1a
      • AAASubnet2 10.0.16.0/20 AZ:ap-northeast-2c
      • AAASubnet3 10.0.32.0/20 AZ:ap-northeast-3d
  • EC2 3つのサーバをそれぞれ↑のサブネットに置いて、Load Barancerでつなぎます。
    • AAAnode01@AAASubnet1
      • セキュリティグループ AAASgEC01
        • SSH 22/TCP from 0.0.0.0/0
        • HTTP 80/TCP from 0.0.0.0/0
    • AAAnode02@AAASubnet2
    • AAAnode03@AAASubnet3
    • ロードバランサ AAAELB01
      • ターゲットグループ AAAELBTARG01
        • AAAnode01,AAAnode02,AAAnode03
      • セキュリティグループ AAASgELB01
        • HTTP 80/TCP from 0.0.0.0/0

VPCの作成

  • 東京リージョンでVPC作成画面を開きます。名前とCIDRを入力してVPC作成ボタンを押します。 image.png
  • VPCができます。 image.png

インターネットゲートウェイの作成

  • 名前を入れて作成ボタンを押します。 image.png
  • インターネットゲートウェイができました。このままVPCにアタッチします。 image.png
  • 作成したVPCを選んでインターネットゲートウェイのアタッチボタンを押します。 image.png
  • アタッチされました。 image.png

サブネットの作成

  • サブネット作成画面を開きます。
  • サブネット名、アベイラビリティゾーン(AZ)およびCIDRを入力します。 image.png
  • 新しいサブネットを追加ボタンを押して、次のサブネットの情報を入力します。 image.png
  • もう一回新しいサブネットを追加ボタンを押して、最後のサブネットの情報を入力したら、サブネットを作成ボタンを押します。 image.png
  • Subnetができました。 image.png

ルートテーブルの編集

  • ルートテーブルはVPC作成時に作られるので、これを編集します。 image.png
  • わかりやすいように名前を付けます。 image.png
  • アクションからサブネットの編集を選びます。3つのサブネットを選択して保存ボタンを押します。 image.png
  • ルートの編集画面でインターネットゲートウェイを追加します。 image.png
  • ゲートウェイの追加が完了しました。 image.png

サーバの作成

EC2サーバを3つ作って、ロードバランサをかぶせます。

EC2を作成する(3つのサブネットにそれぞれ一つずつ作ります)

  • EC2のインスタンス画面からインスタンスを起動画面を開きます。Amazon LinuxのX86で選択ボタンを押します。 image.png
  • インスタンスタイプはt2.microを選択して、次のステップに進みます。 image.png
  • VPC、サブネットおよび自動割り当てパブリックIPを指定して、次のステップに進みます。 image.png
  • ストレージはそのままで、次のステップに進みます。 image.png
  • タグの追加で名前だけ付けて、次のステップに進みます。 image.png
  • セキュリティグループに名前を付けて、HTTPを追加して確認と作成ボタンを押します。2つめのEC2サーバを作るときは既存のセキュリティグループとして再利用できます。 image.png
  • 確認画面で確認して起動ボタンを押します。 image.png
  • キーペアを選んでインスタンスの作成を押します。 image.png
  • インスタンスの作成が開始されました。 image.png
  • 作ったEC2でhttpdを立ち上げておきます。
sudo yum install httpd -y
sudo systemctl enable httpd.service
sudo usermod -a -G apache ec2-user
sudo systemctl start httpd
  • この調子でEC2を3つ作ります。 image.png

ロードバランサを作る。

  • ロードバランサの画面でロードバランサの作成画面を開きます。Application Load Balancerの作成ボタンをクリックします。 image.png
  • ロードバランサに名前を付けます。 image.png
  • VPCとアベイラビリティゾーンを選んで次の手順に進みます。 image.png
  • セキュリティグループを作って次の手順に進みます。ここではHTTPだけを通すことにしました。EC2用に作ったセキュリティグループとは別にします。 image.png
  • ターゲットグループに名前を付けます。ターゲットの種類はインスタンスで。 image.png
  • ターゲットグループにターゲットとしてEC2の3つを追加して、次の手順へ進みます。 image.png
  • 確認してロードバランサを作ります。 image.png
  • ロードバランサが完成しました。 image.png

接続テスト

  • 作成したロードバランサを通してEC2に接続できることが確認できました。 image.png
  • EC2のうち、2台を止めても問題なく上記の接続ができました。

おわりに

ロードバランサは負荷分散と、データセンターであるAZを分けることによって災害対策になるということです。改善点が見つかったら少しずつ修正していきたいと思います。

注意点

  • この構成ではロードバランサ経由でなく、EC2に直接インターネットから接続できるようになっているので、完成後にEC2のセキュリティグループでHTTPを閉じるのがよいと思われます。
  • 基本的にAWSの無料枠を使っていろいろ試しているのですが、この試みをした後にELBを動かしっぱなしにしたことにより、料金が発生していました。EC2も若干はみ出しております。気をつけねば。
    • 参考:Application Load Balancer が実行される時間に対して 1 時間単位または 1 時間未満で、また時間ごとのロードバランサーキャパシティーユニット (LCU) 使用量で課金されます。 image.png
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0