はじめに
AWS CLIでELBを構築する手順です。構成図は以下の通りです。
手順
1.ターゲットグループの作成
設定値の指定
(今回は手順3までの設定値をまとめて定義しています)
## ターゲットグループ名
TARGET_GROUP_NAME="target-cli"
## ターゲットグループのプロトコル
TARGET_GROUP_PROTCOL="HTTP"
## ターゲットグループのポート
TARGET_GROUP_PORT="80"
## ヘルスチェックパス
HEALTH_CHECK_PATH="/wp-includes/images/blank.gif"
## ヘルスチェックポート
HEALTH_CHECK_PORT="80"
## ヘルスチェックプロトコル
HEALTH_CHECK_PROTCOL="HTTP"
## ヘルスチェックの間隔(秒)
HEALTH_CHECK_INTERVAL="30"
## ヘルスチェックのタイムアウト値(秒)
HEALTH_CHECK_TIMEOUT="5"
## 正常と判断する閾値
HEALTHY_THRESHOLD_COUNT="5"
## 異常と判断する閾値
UNHEALTHY_THRESHOLD_COUNT="2"
## ターゲットのタイプ
TARGET_TYPE="instance"
## VPCのID
VPCID="vpc-xxxx "
## ターゲットのインスタンスID
TARGET_ID="i-xxxx"
## ターゲットのポート
TARGET_PORT="80"
## ELBの名前
ELB_NAME="test-elb-cli"
## ELBを作成するサブネットID
SUBNETIDS="subnet-xxxx subnet-xxxx"
## ELBにアタッチするSGID
SGIDS="sg-xxxx"
## ELBのタイプ
ELB_TYPE="application"
## IPアドレスタイプ
IP_ADDRESS_TYPE="ipv4"
処理の実行
-
create-target-group
コマンドを使います。
aws elbv2 create-target-group \
--name ${TARGET_GROUP_NAME} \
--protocol ${TARGET_GROUP_PROTCOL} \
--port ${TARGET_GROUP_PORT} \
--health-check-path ${HEALTH_CHECK_PATH} \
--health-check-protocol ${HEALTH_CHECK_PROTCOL} \
--health-check-port ${HEALTH_CHECK_PORT} \
--health-check-interval-seconds ${HEALTH_CHECK_INTERVAL} \
--health-check-timeout-seconds ${HEALTH_CHECK_TIMEOUT} \
--healthy-threshold-count ${HEALTHY_THRESHOLD_COUNT} \
--unhealthy-threshold-count ${UNHEALTHY_THRESHOLD_COUNT} \
--target-type ${TARGET_TYPE} \
--vpc-id ${VPCID}
実行するオプションコマンドを整理します。
-
--name
ターゲットグループの名前 -
--protocol
トラフィックをターゲットにルーティングする時に使用されるプロトコル設定
ALBの場合、HTTP
とHTTPS
をサポート -
--port
ターゲットがトラフィックを受信するポート設定 -
--health-check-path
ターゲットのヘルスチェックの宛先 -
--health-check-protocol
ロードバランサーがターゲットのヘルスチェックを実行するときに使用するプロトコル -
--health-check-port
ロードバランサーがターゲットのヘルスチェックを実行するときに使用するポート -
--health-check-interval-seconds
個々のターゲットのヘルスチェック間のおおよその時間 (秒単位)
範囲は 5 ~ 300 秒 -
--health-check-timeout-seconds
ターゲットからの応答がない期間 (秒単位) 。ヘルスチェックが失敗したことを表す
範囲は 2 ~ 120 秒 -
--healthy-threshold-count
ターゲットが正常であるとみなされる前に必要な、連続したヘルスチェックの成功回数
範囲は 2 ~ 10 -
--unhealthy-threshold-count
ターゲットが異常であるとみなされるまでに必要な連続ヘルスチェック失敗の回数
範囲は 2 ~ 10 -
--target-type
ターゲット グループにターゲットを登録するときに指定する必要があるターゲットのタイプ
複数のタイプは指定できない
▼instance
インスタンスIDごとにターゲットを登録する※デフォルト値
▼ip
ターゲットをIPアドレスで登録する。
▼lambda
単一の Lambda 関数をターゲットとして登録する
▼alb
ターゲットとしてApplication Load Balancerを1つ登録する -
--vpc-id
VPCの識別子(VPC ID)
2.ターゲットの登録
register-targets
コマンドを使います。
aws elbv2 register-targets \
--targets Id=${TARGET_ID},Port=${TARGET_PORT} \
--target-group-arn $(aws elbv2 describe-target-groups --query "TargetGroups[].TargetGroupArn" --output text --name ${TARGET_GROUP_NAME})
3.ELBの作成
-
create-load-balancer
コマンドを使います。
--ip-address-type
でロード バランサーのサブネットによって使用される IP アドレスのタイプを指定します。指定できる設定値は、ipv4
またはdualstack
(IPv4 および IPv6 アドレスの場合)
aws elbv2 create-load-balancer \
--name ${ELB_NAME} \
--subnets ${SUBETIDS} \
--security-groups ${SGIDS} \
--type ${ELB_TYPE} \
--ip-address-type ${IP_ADDRESS_TYPE} \
--tags Key=Name,Value=${ELB_NAME}
参考ドキュメント
#5 WordPressの初期設定
- AWS CLIでスケーラブルウェブサイトを構築する
- #5 WordPressの初期設定