EC2上のWebサーバをELBで冗長化する方法

# EC2上のWebサーバをELBで冗長化する方法

※本稿は1年前のメモをそのまま利用しているため、情報が古い可能性あります。

## 1. VPC（Virtual Private Cloud）作成

[VPC Dashboard]
　↓
サイドメニュー[Your VPCs]
　↓
[Create VPC]ボタン押下

ポップアップ[Create VPC]
Name tag : TEST_VPC
CIDR block : 10.0.0.0/16
Tenancy :  Default
[Yes, Create]ボタン押下

## 2. IGW（Internet Gateway） 作成

[VPC Dashboard]
　↓
サイドメニュー[Internet Gateways]
　↓
[Create Internet Gateway]ボタン押下

ポップアップ[Create Internet Gateway]
Name tag : test_igw
[Yes, Create]ボタン押下

[Attach to VPC]ボタン押下

ポップアップ[Attach to VPC]
VPC : TEST_VPC
※先ほど作ったVPC（IGWがまだ設定されていない有効なVPCのみ選択可能）
[Yes, Attach]ボタン押下

## 3. Subnet作成
[VPC Dashboard]
　↓
サイドメニュー[Subnets]
　↓
[Create Subnet]ボタン押下

ポップアップ[Create Subnet]
Name tag : test_subnet_1
VPC : TEST_VPC
Availability Zone : ap-northeast-1b
CIDR block : 10.0.1.0/24
[Yes, Create]ボタン押下

[Yes, Create]ボタン押下

※同様に以下を作成
Name tag : test_subnet_2
VPC : TEST_VPC
Availability Zone : ap-northeast-1c
CIDR block : 10.0.2.0/24
[Yes, Create]ボタン押下

## RoutingTable作成
[VPC Dashboard]
　↓
サイドメニュー[Route Tables]
　↓
TEST_VPCのデフォルトのRoutingTable選択

[Routes]タブ
[Edit]ボタン押下
外向きのルーティングとして
0.0.0.0/0 test_igw
を追加


## 4. EC2インスタンス作成

[EC2 Dashboard]
　↓
サイドメニュー[INSTANCES] > [Instances]
　↓
[Launch Instance]ボタン押下

[Step 1: Choose an Amazon Machine Image (AMI)]画面
[Quiq Start]タブ
[Amazon Linux AMI 2014.09.1 (HVM) ]の[Select]ボタン押下
or
[My AMIs]タブ
[用意したイメージ]の[Select]ボタン押下
※HTTPDが自動起動する設定済み

[Step 2: Choose an Instance Type]画面
[Type]カラムが[t2.micro]のチェックボックスをチェック
[Next: Configure Instance Details]ボタン押下

Network : TEST_VPC
Subnet : test_subnet_1 or 2

[Next: Add Storage]ボタン押下

[Step 4: Add Storage]画面
[Next: Tag Instance]ボタン押下

[Step 5: Tag Instance]画面
Key : Name
Value : test_webserv_1
[Next: Configure Security Group]ボタン押下

[Step 6: Configure Security Group]画面
Assign a security group: Create a new security group
Security group name: only_ssh_http
Description: permit only ssh and http ports.

Type: SSH/HTTP
Protcol: TCP
Port Range: 22/80
Source: [Custom IP] 10.0.0.0/16

[Review and Launch]ボタン押下

ポップアップ[Boot from General Purpose (SSD)]
[Continue with Magnetic as the boot volume for this instance.]チェック
[Next]ボタン押下

[Step 7: Review Instance Launch]画面
[Launch]ボタン押下

ポップアップ[Select an existing key pair or create a new key pair]

[Choose an existing key pair] or [Create a new key pair]

Select a key pair: 以前に作成したものを選択

## 5. ELB（Elastic Load Balancer）作成

[EC2 Dashboard]
　↓
サイドメニュー[NETWORK & SECURITY] > [Load Balancers]
　↓
[Create Load Balancer]ボタン押下

ポップアップ[Create Load Balancer]
[1. Define Load Balancer]
Load Balancer Name: test-webserv-lb
Create LB Inside: TEST_VPC
Create an internal load balancer: チェック無し
[Continue]ボタン押下

[2. Configure Health Check]
[Continue]ボタン押下

[3. Select Subnets]
Available Subnetsから「＋」で作成したサブネットを２つとも選択し、Selected Subnetsに移行する事を確認。
[Continue]ボタン押下

[4. Assign Security Groups]

[5. Add EC2 Instances]
test_webserv_1/2を選択
↓
Availability Zone Distribution
に異なるZoneのインスタンスが２つ登録される事を確認。

Enable Cross-Zone Load Balancing: チェック
Enable Connection Draining: チェック 300sec
[Continue]ボタン押下

[6. Add Tags]
Key: Name
Value: TestWebservLB

## 6. check lb
```
% host test-webserv-lb-1415730190.ap-northeast-1.elb.amazonaws.com
test-webserv-lb-1415730190.ap-northeast-1.elb.amazonaws.com has address 54.65.45.46
test-webserv-lb-1415730190.ap-northeast-1.elb.amazonaws.com has address 54.64.7.54
```


## 8. check ssh
```
ssh ec2-user@54.64.193.129 -i Downloads/webservd.pem.txt
ssh ec2-user@54.64.187.97 -i Downloads/webservd.pem.txt
```

## 9. check access webserver
http://test-webserv-lb-1415730190.ap-northeast-1.elb.amazonaws.com

test_webserv_1/2が表示されること確認