ふるてつのぶろぐ

福岡在住のエンジニアです。

写真提供:福岡市

今夜は社内AWSもくもく会 - ELBを利用する

今日すること

こんにちはふるてつです。
今回は社内 AWS もくもく会の内容です。
ELB(Elastic Load Balancer)のおはなしになります。
それぞれ別の AZ に2台の EC2 インスタンスを立てて、ELB を利用してそれら 2台を冗長化構成にしてみます。

2台目の EC2 作成

AMI を作成

これまでに作った EC2 の複製を作ります。
まずは起動中の EC2 から AMI を作成します。
起動中のインスタンスを選択して「アクション」ボタンをクリックし、「イメージ」 ⇒ 「イメージの作成」を選んでいきます。
f:id:tetsufuru:20190417193256p:plain

ポップアップが表示されるので、下記のように「イメージ名」、「イメージの説明」を入力して、「イメージの作成」をクリックします。
「再起動しない」欄は非推奨らしく、チェックはしません。
f:id:tetsufuru:20190417193836p:plain

一旦完了です。 f:id:tetsufuru:20190421223012p:plain

サブネット追加

まず新たにサブネットを作成します。
コピー元の EC2 とは別の AZ にします。
メニューからサブネットの画面を表示して「サブネットの作成」ボタンをクリックします。
f:id:tetsufuru:20190421223300p:plain

「名前タグ」、「VPC」、「AZ」、「IPv4 CIDRブロック」欄には下記を入力します。
VPC 欄はこれまでに使っている VPC を。
アベイラビリティゾーン(AZ)は1つ目のサブネットとは別の AZ(ap-north-east-1C)を設定し、 CIRDブロックは 10.0.1.0/24 を設定します。
(最初に作成したサブネットが 10.0.0.0/24 でしたので次のブロックは 10.0.1 になります) f:id:tetsufuru:20190421223702p:plain

作成したサブネットにルートテーブルの紐づけを追加します。 「ルートテーブルの関連付けの編集」をクリックします。 f:id:tetsufuru:20190424000713p:plain

上記で作っていた Route table に紐づけます。 f:id:tetsufuru:20190424000919p:plain

EC2 を追加

次に上記で作成したサブネットに、AMI をもとに別の EC2 インスタンスを作成します。
まず AMI を選択して「起動」ボタンをクリックします。 f:id:tetsufuru:20190417195713p:plain f:id:tetsufuru:20190424002554p:plain インスタンスウィザード画面が表示されるので、1台目の EC2 と同様の設定をしていきます。 タイプはもちろん無料枠のマイクロにします。 f:id:tetsufuru:20190417195904p:plain

サブネットは上記で作成した 10.0.1.0/24 を選択します。 f:id:tetsufuru:20190424001248p:plain

他は下記のようになります。
以前作成したEC2とほぼ同様になります。
f:id:tetsufuru:20190424001503p:plain f:id:tetsufuru:20190424001549p:plain f:id:tetsufuru:20190424001627p:plain f:id:tetsufuru:20190424002310p:plain 最後にキーペアは既存を選びます。 f:id:tetsufuru:20190424002638p:plain

ELB を作成

ELB 用のセキュリティグループ を作成する

ELB 用のセキュリティグループは HTTP のみ許可します。 f:id:tetsufuru:20190424004559p:plain

ELB を作成する

「メニュー」 ⇒ 「ロードバランサ」でロードバランサ画面を表示し、「ロードバランサの作成」ボタンをクリックします。
f:id:tetsufuru:20190424004731p:plain

下記の画面は一番左の「HTTP」「HTTPS」をクリックします。
f:id:tetsufuru:20190424004918p:plain

f:id:tetsufuru:20190424005119p:plain 以下は手順1の下半分です。 f:id:tetsufuru:20190424005448p:plain

ElB用の新しく作成したセキュリティグループを選択します。
f:id:tetsufuru:20190424005620p:plain

ルーティングの設定「HTTP」80番ポートを使用します。
f:id:tetsufuru:20190424005846p:plain

ターゲットに EC2 インスタンス2台を選択します。
f:id:tetsufuru:20190424010059p:plain

この画面で完了です。
f:id:tetsufuru:20190424010219p:plain

アクセス分散を確認する

片方の EC2 には「Hello World」を表示する index.html
もう片方の EC2 には「Hello Hello World World」を表示する index.html をの http のルートに置きました。

数回アクセスすると下記のように画面が交互に入れ替わるのが分かります。
f:id:tetsufuru:20190424010905p:plain:w500 f:id:tetsufuru:20190424010543p:plain:w500

感想

やっと今回 ELB を試すことができました。
作るまでの手順が多くて手間がかかり、いざ試してみると上記のように文字が変わるだけというわりと地味な結果となりました。
数年前にAzureでも似たようなことをしたこともありましたが、わりとどこも同じような感じなのですねぇ。
それではまた