以下の内容はhttps://htn20190109.hatenablog.com/entry/2022/03/02/080233より取得しました。


{CloudWatch}メールを送信するロードバランサーのレイテンシーアラームの作成

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/US_AlarmAtThresholdELB.html
https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html

 

-- 1. コマンド等のインストール

-- 1.1 aws cli version 2 インストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

 

-- 2. EC2インスタンス作成

アベイラビリティーゾーンで少なくとも 1 つの EC2 インスタンスを起動します

-- ap-northeast-1a

aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance01}]' \
--instance-market-options '{"MarketType": "spot","SpotOptions": {"SpotInstanceType": "one-time"}}' \
--subnet-id subnet-11111111111111111

-- ap-northeast-1c

aws ec2 run-instances \
--image-id ami-0404778e217f54308 \
--instance-type t3.nano \
--key-name key1 \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=instance02}]' \
--instance-market-options '{"MarketType": "spot","SpotOptions": {"SpotInstanceType": "one-time"}}' \
--subnet-id subnet-22222222222222222


aws ec2 describe-instances


-- 3. Apacheインストール
Apacheウェブサーバーを各 EC2 インスタンスにインストール

sudo yum -y update
sudo yum -y install httpd

sudo systemctl start httpd
sudo systemctl status httpd
sudo systemctl enable httpd

sudo su -

cd /var/www/html
echo $(hostname) > index.html


sudo yum -y install elinks
elinks http://localhost/

 

 


-- 4. ロードバランサーの作成

aws elbv2 create-load-balancer \
--name alb01  \
--subnets subnet-11111111111111111  subnet-22222222222222222 \
--security-groups sg-33333333333333333


aws elbv2 describe-load-balancers

 


-- 5. ターゲットグループの作成

aws elbv2 create-target-group \
--name target01 \
--protocol HTTP \
--port 80 \
--vpc-id vpc-44444444444444444 \
--ip-address-type ipv4 \
--target-type instance

aws elbv2 describe-target-groups

aws elbv2 describe-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 

aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555  \
--targets Id=i-77777777777777777 Id=i-88888888888888888


aws elbv2 describe-target-health \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 


-- 6. リスナーの作成

aws elbv2 create-listener \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/6666666666666666 \
--protocol HTTP \
--port 80  \
--default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555


aws elbv2 describe-listeners \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/6666666666666666

 

 

-- 7. SNSトピック作成

aws sns list-topics
aws sns list-subscriptions

aws sns create-topic --name topic01

aws sns subscribe \
--topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01 \
--protocol email \
--notification-endpoint hoge@example.com


-- 8. ロードバランサーレイテンシーアラームを作成

aws cloudwatch put-metric-alarm \
--alarm-name alarm01 \
--alarm-description "alarm01" \
--metric-name Latency \
--namespace AWS/ELB \
--statistic Average \
--period 60 \
--threshold 100 \
--comparison-operator GreaterThanThreshold \
--dimensions Name=LoadBalancerName,Value=alb01 \
--evaluation-periods 3 \
--alarm-actions "arn:aws:sns:ap-northeast-1:999999999999:topic01" \
--unit Seconds

 


aws cloudwatch describe-alarms

 

-- 9. ロードバランサーレイテンシーアラームをテスト

aws cloudwatch set-alarm-state \
--alarm-name alarm01 \
--state-reason "test" \
--state-value OK

 

aws cloudwatch set-alarm-state \
--alarm-name alarm01 \
--state-reason "test" \
--state-value ALARM

aws cloudwatch set-alarm-state \
--alarm-name alarm01 \
--state-reason "test" \
--state-value INSUFFICIENT_DATA

 

-- 10. クリーンアップ

-- アラームの削除

aws cloudwatch describe-alarms


aws cloudwatch delete-alarms \
--alarm-names alarm01


-- SNSトピック削除

aws sns unsubscribe --subscription-arn arn:aws:sns:ap-northeast-1:999999999999:topic01:11111111-2222-3333-4444-555555555555
aws sns delete-topic --topic-arn arn:aws:sns:ap-northeast-1:999999999999:topic01

aws sns list-topics
aws sns list-subscriptions

 


-- リスナーの削除

aws elbv2 describe-listeners \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/6666666666666666


aws elbv2 delete-listener \
--listener-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:listener/app/alb01/6666666666666666/aaaaaaaaaaaaaaaa


-- ターゲットグループの削除

aws elbv2 describe-target-groups

aws elbv2 deregister-targets \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555 \
--targets Id=i-77777777777777777 Id=i-88888888888888888

aws elbv2 delete-target-group \
--target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:targetgroup/target01/5555555555555555

 


-- ロードバランサーの削除

aws elbv2 describe-load-balancers

aws elbv2 delete-load-balancer \
--load-balancer-arn arn:aws:elasticloadbalancing:ap-northeast-1:999999999999:loadbalancer/app/alb01/6666666666666666

 

-- EC2インスタンスの削除

aws ec2 describe-instances

aws ec2 terminate-instances --instance-ids i-77777777777777777
aws ec2 terminate-instances --instance-ids i-88888888888888888

 

 




以上の内容はhttps://htn20190109.hatenablog.com/entry/2022/03/02/080233より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14