この記事ではEC2を利用してウェブサイトを公開する方法のフェーズ3として、ELBの作成を行っていきます。
EC2を利用してウェブサイトを公開する方法(モノローグ)
EC2を利用してウェブサイトを公開する方法①VPC作成編
EC2を利用してウェブサイトを公開する方法②EC2作成編
構成図(モノローグと同じものです)
作成するもの
ELB (Elastic Load Balancing)
外部からのアクセス(HTTP/HTTPS)を受け取り、複数のバックエンドサーバー(EC2)へ自動的にアクセスを分散させるロードバランサーです。
本構成では、アプリケーション層で動作する ALB (Application Load Balancer) を使用します。
target group
ELBが「通信を届ける先」をまとめた論理的なグループです。
ELBは直接EC2を見に行くのではなく、このターゲットグループに対して通信を投げます。
S3
高い耐久性とスケーラビリティを備えたオブジェクトストレージサービスです。
「バケット」と呼ばれる入れ物の中に、画像、動画、ログファイルなど、あらゆるデータを無制限に保存できます。※保存容量に対して課金されます。
本構成では、主にALBのアクセスログの保存先として利用します。
構築作業
target group作成
- ウェブサーバーのEC2を対象としたtarget groupを作成
EC2のロードバランシング>ターゲットグループから作成します

ターゲットの種類はインスタンス、任意のターゲットグループ名、プロトコルはHTTP、VPCを指定してください。
その他はそのままで次へ進みます

web1,web2のインスタンを選択して、保留中として以下を含めるを押してください

このように下のターゲットにweb1,web2が登録されたら次へ進みます

確認して問題なさそうなら作成しましょう
ELB作成
-
ELB作成
EC2のロードバランシング>ロードバランサーから作成します

今回はApplication Load Balancerを作成します

任意の名称を入力、ネットワークマッピングでは、VPCを選択して、アベイラビリティーゾーンでaとcのチェックを入れそれぞれPublic Subnetを選択します。

セキュリティグループにweb-test-sg-elbを設定します

リスナーとルーティングでターゲットグループに作成したターゲットグループを設定します。
本来はターゲットグループの維持をオンにするところですが、ターゲットグループの設定の確認を行いたいので一旦オフで作成します。確認後にオンにします。 -
通信テスト
作成したELBのDNS名をコピーします

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

3.ターゲットグループの維持をオンに変更
確認のためにターゲットグループの維持をオフにしていたのでオンにします。
リスナーとルールでHTTP:80選択してリスナーの管理からリスナーの編集をします。

ターゲットグループの維持をオンにするを有効化して保存します

ターゲットグループのほうの設定もONにします
ターゲットグループ属性を編集

維持設定をオンにして、ELBと同じ1時間に設定して保存します

もう一度DNS名にブラウザでアクセスして何度リロードしても表示される画面が変わらなければOKです。
ログの設定
- S3バケット作成

バケット名を入力したら他はデフォルトのまま作成します
※バケット名は全AWS環境でユニークな名前である必要があります。

作成したバケットのアクセス許可からバケットポリシーを編集します。

下記のポリシーを設定してください。
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "logdelivery.elasticloadbalancing.amazonaws.com"
},
"Action": "s3:PutObject",
"Resource": "{作成したバケットのARN}/AWSLogs/{アカウントID}/*"
}
]
}
- ELBにアクセスログの設定を行う
ELBの属性を編集から、モニタリングのアクセスログを有効化します
S3に先ほど作成したバケットを設定したら保存します

作成したS3のバケットを見に行ってAWSLogsというディレクトリが生成されていれば完成です
まとめ
ELBの作成まで完了してこれで本題のEC2を利用してウェブサイトを公開は完了となります。
ここまでがウェブサイトを公開するまでの最小構成となります。
次回以降はDBを使用したい場合のRDSの作成と設定
ドメインを使用したHTTPS通信の紹介をしていきます。

