内部CLBをAWSCLIで作成する方法

内部CLBをBashから作成する方法を備忘録として残します。

1、事前準備


以下のサイトを参照してAWSCLIをBashで利用できるように設定します。

AWS CLI バージョン 2 のインストール、更新、アンインストール

また、AWS環境の操作が必要な認証情報を設定してください。

アタッチ対象のEC2は作成済みの想定です。

2、AWSCLIを使用したCLBの作成


以下の手順を実行して内部向けCLBを作成します。

■作成に必要なパラメータの設定

LOAD_BALANCER_NAME=""
        TAGS_VALUE=""
        SUBNETS_ID="subnet- subnet-"
      INSTANCES_ID="i-"
           SG_NAME=""
            VPC_ID="vpc-"

■CLBにアタッチするためのSG作成

SG_ID=`aws ec2 create-security-group \
--description ${SG_NAME} \
--group-name ${SG_NAME} \
--vpc-id ${VPC_ID} \
| jq -r '.GroupId'`

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-security-group.html

■SGへNameタグの設定

aws ec2 create-tags --resources ${SG_ID} --tags "Key=Name,Value=${SG_NAME}"

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-tags.html

■CLB用SGルール設定

aws ec2 authorize-security-group-ingress --group-id ${SG_ID} --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs=[{"GroupId=sg-,Description=''"}]
aws ec2 authorize-security-group-ingress --group-id ${SG_ID} --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,IpRanges='[{CidrIp=123.123.123.0/24,Description="NY office"}]'

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/authorize-security-group-ingress.html

■CLB用SGルール設定確認

aws ec2 describe-security-groups --group-ids ${SG_ID}

■CLBをアタッチするEC2のインバウンドへ追加

aws ec2 authorize-security-group-ingress --group-id sg-<対象EC2のSGID> --ip-permissions IpProtocol=tcp,FromPort=80,ToPort=80,UserIdGroupPairs=[{"GroupId=$SG_ID,Description=''"}]

■内部向けCLB作成

aws elb create-load-balancer \
--load-balancer-name ${LOAD_BALANCER_NAME} \
--listeners Protocol=HTTP,LoadBalancerPort=80,InstanceProtocol=HTTP,InstancePort=80 \
--subnets ${SUBNETS_ID} \
--scheme internal \
--security-groups ${SG_ID} \
--tags "Key=Name,Value=${TAGS_VALUE}"

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/create-load-balancer.html

■クロスゾーン負荷分散有効化

aws elb modify-load-balancer-attributes \
--load-balancer-name ${LOAD_BALANCER_NAME} \
--load-balancer-attributes "{\"CrossZoneLoadBalancing\":{\"Enabled\":true}}"

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/modify-load-balancer-attributes.html

■ヘルスチェック設定

aws elb configure-health-check \
--load-balancer-name ${LOAD_BALANCER_NAME} \
--health-check Target=HTTP:80/healthcheck.php,Interval=30,UnhealthyThreshold=2,HealthyThreshold=5,Timeout=5

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/configure-health-check.html

■EC2インスタンス設定

aws elb register-instances-with-load-balancer \
--load-balancer-name ${LOAD_BALANCER_NAME} \
--instances ${INSTANCES_ID}

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/elb/register-instances-with-load-balancer.html

■CLB作成確認

aws elb describe-load-balancers \
--load-balancer-name ${LOAD_BALANCER_NAME}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)