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?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-10-11

この記事の概要

稼働率を上げる

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

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

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

サーバー構成

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

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

ロードパランサーとELBとは

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

image.png

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

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

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

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

AMI(Amazon Machine Image)からEC2起動

パブリックサブネット作成

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

スクリーンショット 2022-10-09 23.03.41.png

スクリーンショット 2022-10-09 23.05.10.png

こうして作成されます。

途中で以下のようなエラーが出ました。

CIDR アドレスが既存のサブネット CIDR: 10.0.0.0/20 と重複しています。

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

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

スクリーンショット 2022-10-09 23.09.12.png

下の000はインターネットゲートウェイに接続されています。ルートテーブルIDはpublicの方を選びます。
スクリーンショット 2022-10-09 23.10.34.png

これでパブリックサブネット完成です。
スクリーンショット 2022-10-09 23.12.36.png

AMI作成

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

スクリーンショット 2022-10-09 23.17.18.png

イメージ名を決めてイメージを作成します。
スクリーンショット 2022-10-09 23.19.16.png

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

スクリーンショット 2022-10-09 23.20.29.png

AMIからEC2作成

スクリーンショット 2022-10-09 23.50.57.png

スクリーンショット 2022-10-09 23.51.19.png

スクリーンショット 2022-10-09 23.51.49.png

スクリーンショット 2022-10-09 23.52.19.png

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

ap-northeast-1cとap-northeast-1aの2つを作成します。
そして2つのインスタンスで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

#1番下にこれを書き込みました
echo '<p>sample 1a</p>';

これが終わったらログアウトします。もう一つの1cも同じ方法でやります。

echo '<p>sample 1c</p>';

に変わります。

ELBで負荷分散

ELB作成

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

スクリーンショット 2022-10-10 0.42.59.png

スクリーンショット 2022-10-10 0.44.08.png

スクリーンショット 2022-10-10 0.47.54.png

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

スクリーンショット 2022-10-10 0.50.03.png

スクリーンショット 2022-10-10 0.51.54.png

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

スクリーンショット 2022-10-10 0.55.57.png

スクリーンショット 2022-10-10 1.10.10.png

スクリーンショット 2022-10-10 0.56.54.png

スクリーンショット 2022-10-10 1.00.28.png

スクリーンショット 2022-10-10 1.01.08.png

スクリーンショット 2022-10-10 1.01.21.png

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

スクリーンショット 2022-10-10 1.02.12.png

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

スクリーンショット 2022-10-10 1.30.06.png

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

独自ドメインからELBアクセス

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

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

スクリーンショット 2022-10-10 1.43.23.png

ELBの運用のポイント

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

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

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

資料

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?