AWS初心者は必ず読むべき！必見！AWSの基本⑧ELBと冗長化

# この記事の概要


# 稼働率を上げる
稼働率を上げるには障害が発生した時の間隔を長くするか、復旧時間を短縮するために```冗長化```します。
システムを増やし、あるシステムで障害が起きても処理を引き継げるようにします。

稼働率を上げるには以下のことをします。

1. 単体の稼働率を上げる
2. 要素を組み合わせて稼働率を上げる
3. 負荷を適切なプロビジョニング(必要に応じてネットワークやコンピュータの設備などのリソースを提供できるよう予測し、準備しておくこと)しておきます。



# サーバー構成
基本的には１台のサーバーでWebとDBを運用し、1台のサーバースペックが足りない場合は、DBを別のサーバーで使います。
Web側の性能などが足りないおsyntax機はWebサーバーを複数使い、冗長化と負荷分散ができます。

そしてマスタレーブ方式を使うことでDBの冗長化をし、DBも冗長化できます。
つまりこれはWebの冗長化と負荷分散、DBの冗長化です。


# ロードパランサーとELBとは
```ロードパランサー```とは***サーバーを複数に分けて、負荷を分散する装置***です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/d5c91e87-2085-e748-7980-7d080c97d59a.png)

> 引用　　https://knowledge.sakura.ad.jp/6274/

```ELB```とは***AWS上でのロードパランサー***のことです。
複数のEC2インスタンスを分けて***負荷分散***し、複数のアベイラビリティゾーンにある複数のEC2インスタンスの中から
正常なもののみに振り分けていくことを```ヘルスチェック```と言います。

***ELB自体もスケーラブル****し、負荷によって自動でスケールイン、スケールアウトします。
そして***アベイラビリティゾーンをまたがる構成***となっています。
ELBを使う時に、１つのリージョンを選び、リージョン内のアベイラビリティゾーンをまたがるように構成できています。
***ELBへの接続ポイントへのアクセスはDNSを使用***します。

⚫︎補足
スケールアップは個々の性能を上げることで、スケールアウトは個々の要素を増やすことです。


# AMI(Amazon Machine Image)からEC2起動

### パブリックサブネット作成
まずはVPCを開いてサブネットを開きます。サブネットを作成していきます。

![スクリーンショット 2022-10-09 23.03.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a55f0996-bdd0-f608-1b82-0891fe84e066.png)


![スクリーンショット 2022-10-09 23.05.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/87bca267-094d-98fa-7505-c05b905e5f70.png)

こうして作成されます。

***途中で以下のようなエラー***が出ました。
> CIDR アドレスが既存のサブネット CIDR: 10.0.0.0/20 と重複しています。

下の記事で解決できました。

https://qiita.com/yuta-ushijima/items/0ea1fa7ded09ca6231c5

下のようにできたらルートテーブルの関連付けの編集をします。

![スクリーンショット 2022-10-09 23.09.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/8b1219d5-ff9e-9196-150d-e8d85dfd3cca.png)

下の000はインターネットゲートウェイに接続されています。ルートテーブルIDはpublicの方を選びます。
![スクリーンショット 2022-10-09 23.10.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/aba61be2-136b-b705-871b-a2c13f9415d3.png)

これでパブリックサブネット完成です。
![スクリーンショット 2022-10-09 23.12.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/e593ba78-264f-cdc5-ab16-e9982f225a15.png)

### AMI作成
EC2に移動します。AMIからイメージを作成します。

![スクリーンショット 2022-10-09 23.17.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/e84f609f-fc89-e7fd-4a02-5c45904e055e.png)

イメージ名を決めてイメージを作成します。
![スクリーンショット 2022-10-09 23.19.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/5e6daa75-a60e-eba9-1b8a-9028f50b0b18.png)

するとAMIでイメージができているのがわかります。利用可能(available)まで待ちましょう。
利用可能になったら選択をして起動ボタンを推します。

![スクリーンショット 2022-10-09 23.20.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/02ede5c9-1eb4-3bb9-d937-6c7300591fda.png)


### AMIからEC2作成

![スクリーンショット 2022-10-09 23.50.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/63af87fc-13ae-fb12-5ba1-fd509c203ddc.png)

![スクリーンショット 2022-10-09 23.51.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/d4c00140-2b93-e50f-199d-84411eca9d0d.png)

![スクリーンショット 2022-10-09 23.51.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/d2ae6412-4564-19b1-44f4-acab53e56f15.png)

![スクリーンショット 2022-10-09 23.52.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a1e670dd-62ef-3e03-aa6a-2a348433bdbb.png)

インスタンスを起動します。

ap-northeast-1cとap-northeast-1aの２つを作成します。
そして２つのインスタンスでSSH接続します。

⚫︎注意
rootでSSH接続すると下みたいになりました。
```
 Downloads % ssh -i "aws-infra-ssh-key.pem" root@ec2-35-76-122-41.ap-northeast-1.compute.amazonaws.com
Please login as the user "ec2-user" rather than the user "root".
```

これで入れました。
```
Downloads % ssh -i ~/Downloads/aws-infra-ssh-key.pem ec2-user@ec2-35-76-122-41.ap-northeast-1.compute.amazonaws.com
```

wordpressに入ります。
```
wordpress$ ls
index.php  #省略

wordpress$ sudo nano index.php

#１番下にこれを書き込みました
echo '<p>sample 1a</p>';
```
これが終わったらログアウトします。もう一つの1cも同じ方法でやります。
```
echo '<p>sample 1c</p>';
```

に変わります。


# ELBで負荷分散
### ELB作成
EC2のロードバランサーを開きます。そしてロードバランサーを作成します。
アプリケーションロードバランサーを選びます。

![スクリーンショット 2022-10-10 0.42.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/6ff718cb-4330-e77c-fa45-b194eb79c6bc.png)

![スクリーンショット 2022-10-10 0.44.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/24c1f35a-4ff5-6ec5-5ae9-22c2423381ff.png)

![スクリーンショット 2022-10-10 0.47.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/e354acbc-4ffc-dcea-df71-56b5eaa1677e.png)

セキュリティグループは新しく作ります。

![スクリーンショット 2022-10-10 0.50.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/a643af08-4028-795d-5f90-36dee5c2ac18.png)

![スクリーンショット 2022-10-10 0.51.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/ca06a0b3-541f-a3ba-c359-287203a2b54b.png)

ターゲットグループを作成していきます。

![スクリーンショット 2022-10-10 0.55.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/c2348042-4a64-5f2c-2bb0-b2025241772c.png)

![スクリーンショット 2022-10-10 1.10.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/06009a8a-ca48-fd09-01b0-c0e6cb884402.png)



![スクリーンショット 2022-10-10 0.56.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/dcd9c1ee-d720-b8fc-e124-8e0868ddc68c.png)


![スクリーンショット 2022-10-10 1.00.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/789c6bda-49ce-f0e3-6c32-315099cce10b.png)

![スクリーンショット 2022-10-10 1.01.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/68023583-fd3d-7413-7890-293cf583866c.png)

![スクリーンショット 2022-10-10 1.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/6b1d6eb0-11de-dcdb-e35c-edf28007aa01.png)

***aws-infra-webの1aと1cを選択***します。そしてターゲットグループを作成します。

![スクリーンショット 2022-10-10 1.02.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/fb8bf184-38b1-2fe1-1e31-08d9ad07210b.png)

ターゲットグループができたらokです。ロードバランサーができたことを確認してください。

![スクリーンショット 2022-10-10 1.30.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/619d13b9-a77c-f8cc-2bcd-0f961476caaf.png)

DNS 名をコピーするとwordpressが表示されます。自分の状況だと都合上wordpressは表示ができないです。


### 独自ドメインからELBアクセス
Route53を開きます。そしてホストゾーンを開きます。
wordpressに入るためのURLから設定していきます。エイリアスをはいにして
エイリアス先はaws-infra-albを選択します。

都合上wordpressは動かせくて申し訳ないのですが、対応お願いします。

![スクリーンショット 2022-10-10 1.43.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1748789/6f456ad1-79a8-555b-262d-8ce410536cb7.png)



# ELBの運用のポイント

1. ```サーバーをアベイラビリティゾーンを跨いで配置```

2. ```Webサーバーをステートレス(状態がない)にする```



この2点が大事みたいです。


# 資料

https://www.udemy.com/course/aws-and-infra/?aEightID=s00000016735001&AID=190908007224&a8=PlQKLlknX1zBDBaq.wzJncu_p1fqzQucJwA5k1yg05hnX1QlC1QHRJzHrD0GZGuAv56JgVQTvlQKjs00000016735001