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?

【AWS構築】ALB+マルチAZのEC2構成ハンズオン

Last updated at Posted at 2025-04-28

構築・確認したいこと

・マルチAZサブネット内のEC2にALBを経由してロードバランシング設定し、トラフィックが分散されていることをテストする
・ヘルスチェックでEC2の死活監視(80番のサービス応答チェック)し、死んでいるサーバーにはトラフィックを投げないことをテストする

構成図イメージ

image.png

前提

・EC2はApache導入して80番ポートでhttp
・EC2のAutoScalingもバランシング対象
・ALBへのアクセスはRoute53のエイリアスレコードを使用

VPC・サブネット・EC2は作成済みとします。

構築

AWS

ターゲットグループ作成

基本的な設定で以下を入力
ターゲットタイプ:インスタンス
ターゲットグループ名:任意の名前
プロトコル、ポート:HTTP/80
VPC:作成したVPC
プロトコルバージョン:HTTP1
image.png

ヘルスチェックで以下を入力
ヘルスチェックプロトコル:HTTP
ヘルスチェックパス:/

ドメインのルートに対してヘルスチェックを行うことを意味しています。
ドメイン内の特定のページにヘルスチェックをかけたい場合はパス指定する

また、ヘルスチェックの詳細設定でヘルスチェック間隔や正常とみなすコードなどを変更できるが今回は変更しない
image.png

次に「ターゲットを登録」画面に移動するのでALBの背後に配置するEC2を選択する。
image.png

ターゲットを確認内に含まれていれば『作成』をクリック
image.png

ALB設定

コンソール画面でEC2サービスを選択し、左ペイン内の『ロードバランサー』をクリック
image.png

image.png

『ロードバランサーの作成』をクリック
ロードバランサータイプで『ApplicationLoadBalancer』

基本的な設定で以下を入力
名前:任意の名前
スキーム:インターネット向け(外部からEC2にアクセスする必要があるため)
IPアドレスタイプ:IPv4
image.png

ネットワークマッピングで以下を入力
VPC:作成したVPC
AZとサブネット:2つのAZを選択

ALBは必ず2つ以上のAZに紐づける必要性があります。

また、ALBは自動スケーリング機能のためにサブネット内のIPアドレスを8個以上使用する。
ALBを紐づけるサブネットにはIPのCIDR設計に余裕を持たせることに注意

セキュリティグループは必要に応じてアタッチする。
image.png

今回は検証のため、デフォルトのものを使用
『作成』をクリック

image.png
↑正常に作成された

EC2のApache構築

⭐2つのサーバーに同様の設定を行う。

対象サーバーにSSH接続を行う。

Apacheをインストールする。

yum install httpd

テスト用のindex.htmlファイルを配置する。

cd /var/www/
touch index.html
vim index.html
index.html
<html>
	<head>
		<title>これはテストです。</title>
	</head>
	<body>
		<p>このページが見えるのはおかしいよ。</p>
	</body>
</html>

Apacheの設定を確認&変更

less ./etc/httpd/conf/httpd.conf | grep Listen

ポートは80指定
image.png

less /etc/httpd/conf/httpd.conf | grep DocumentRoot

ドキュメントルートはデフォルトで、/var/www/html なので/var/wwwに変更
image.png

httpd -tコマンドでApache設定ファイルの構文チェックが可能

http -t

image.png

エラーが発生している場合はエラー文も表示されるので便利
image.png
↑設定ファイルのsyntaxエラー

Apacheを再起動

systemctl restart httpd
systemctl status httpd

image.png
↑activeになっていればよい

EC2のセキュリティグループ設定

EC2のセキュリティグループにはALBからのHTTP/HTTPSトラフィックを許可
ALBのSGを許可するのが一番手っ取り早いかも
(死活監視も失敗する)

確認

死活確認

80番ポートにhttpが起動しているのでALBの死活監視が『healthy』になったことを確認
image.png
(めんどいので1つしかApache設定していないため、片方は異常)

ブラウザでALBのDNSを叩く

ALBの詳細画面にある『DNS名』をコピーしてブラウザのURLに張り付ける
image.png

index.htmlに記載したpタグが表示されているので成功!
image.png

また、何回か更新をしてみるがエラーとなることはなかった。
⇒つまり、異常が表示されているEC2にはトラフィックは分散されていない。

次やりたいこと

・ドメイン取得してALBに紐づけ

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?