0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

EC2を利用してウェブサイトを公開する方法③ELB作成編

0
Posted at

この記事ではEC2を利用してウェブサイトを公開する方法のフェーズ3として、ELBの作成を行っていきます。
EC2を利用してウェブサイトを公開する方法(モノローグ)
EC2を利用してウェブサイトを公開する方法①VPC作成編
EC2を利用してウェブサイトを公開する方法②EC2作成編

構成図(モノローグと同じものです)

EC2ウェブサイト公開最低構成.drawio.png

作成するもの

ELB (Elastic Load Balancing)

外部からのアクセス(HTTP/HTTPS)を受け取り、複数のバックエンドサーバー(EC2)へ自動的にアクセスを分散させるロードバランサーです。
本構成では、アプリケーション層で動作する ALB (Application Load Balancer) を使用します。

target group

ELBが「通信を届ける先」をまとめた論理的なグループです。
ELBは直接EC2を見に行くのではなく、このターゲットグループに対して通信を投げます。

S3

高い耐久性とスケーラビリティを備えたオブジェクトストレージサービスです。
「バケット」と呼ばれる入れ物の中に、画像、動画、ログファイルなど、あらゆるデータを無制限に保存できます。※保存容量に対して課金されます。
本構成では、主にALBのアクセスログの保存先として利用します。

構築作業

target group作成

  1. ウェブサーバーのEC2を対象としたtarget groupを作成
    EC2のロードバランシング>ターゲットグループから作成します
    image.png
    ターゲットの種類はインスタンス、任意のターゲットグループ名、プロトコルはHTTP、VPCを指定してください。
    その他はそのままで次へ進みます
    image.png
    web1,web2のインスタンを選択して、保留中として以下を含めるを押してください
    image.png
    このように下のターゲットにweb1,web2が登録されたら次へ進みます
    image.png
    確認して問題なさそうなら作成しましょう
    image.png

ELB作成

  1. ELB作成
    EC2のロードバランシング>ロードバランサーから作成します
    image.png
    今回はApplication Load Balancerを作成します
    image.png
    任意の名称を入力、ネットワークマッピングでは、VPCを選択して、アベイラビリティーゾーンでaとcのチェックを入れそれぞれPublic Subnetを選択します。
    image.png
    セキュリティグループにweb-test-sg-elbを設定します
    image.png
    リスナーとルーティングでターゲットグループに作成したターゲットグループを設定します。
    本来はターゲットグループの維持をオンにするところですが、ターゲットグループの設定の確認を行いたいので一旦オフで作成します。確認後にオンにします。

  2. 通信テスト
    作成したELBのDNS名をコピーします
    image.png
    任意のブラウザでコピーしたDNS名をURLに入力するとwebサーバに設定した画面が見れるはずです。
    リロードを繰り返すとtest1とtest2が切り替わると思います。これでELBで2つのEC2にトラフィックを分散していることが確認できます。
    image.png

3.ターゲットグループの維持をオンに変更
確認のためにターゲットグループの維持をオフにしていたのでオンにします。
リスナーとルールでHTTP:80選択してリスナーの管理からリスナーの編集をします。
image.png
ターゲットグループの維持をオンにするを有効化して保存します
image.png
ターゲットグループのほうの設定もONにします
ターゲットグループ属性を編集
image.png
維持設定をオンにして、ELBと同じ1時間に設定して保存します
image.png

もう一度DNS名にブラウザでアクセスして何度リロードしても表示される画面が変わらなければOKです。

ログの設定

  1. S3バケット作成
    image.png
    バケット名を入力したら他はデフォルトのまま作成します
    ※バケット名は全AWS環境でユニークな名前である必要があります。
    image.png
    作成したバケットのアクセス許可からバケットポリシーを編集します。
    image.png
    下記のポリシーを設定してください。
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "{作成したバケットのARN}/AWSLogs/{アカウントID}/*"
    }
  ]
}

記載したら保存してください
image.png

  1. ELBにアクセスログの設定を行う
    ELBの属性を編集から、モニタリングのアクセスログを有効化します
    S3に先ほど作成したバケットを設定したら保存します
    image.png
    作成したS3のバケットを見に行ってAWSLogsというディレクトリが生成されていれば完成です
    image.png

まとめ

ELBの作成まで完了してこれで本題のEC2を利用してウェブサイトを公開は完了となります。
ここまでがウェブサイトを公開するまでの最小構成となります。
次回以降はDBを使用したい場合のRDSの作成と設定
ドメインを使用したHTTPS通信の紹介をしていきます。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?