Search

Service

#!/bin/bash private_a=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsi-private-subnet-a" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text) private_b=$(aws ec2 describe-subnets --filters "Name=tag:Name,Values=wsi-private-subnet-b" --query "Subnets[].SubnetId[]" --region ap-northeast-2 --output text) ecs_app_sg=$(aws ec2 describe-security-groups --filters "Name=tag:Name,Values=wsi-app-sg" --query "SecurityGroups[].GroupId[]" --region ap-northeast-2 --output text) target_group_arn=$(aws elbv2 describe-target-groups --names wsi-stress-tg --query "TargetGroups[].TargetGroupArn[]" --region ap-northeast-2 --output text) service_discovery_arn="arn:aws:servicediscovery:ap-northeast-2:$(aws sts get-caller-identity --query 'Account' --output text):service/$SERVICE_ID"
Shell
복사
aws ecs create-service \ --cluster wsi-ecs-cluster \ --service-name wsi-stress-svc \ --task-definition wsi-taskdef-stress \ --desired-count 2 \ --enable-execute-command \ --load-balancers "targetGroupArn=$target_group_arn,containerName=wsi-stress,containerPort=8080" \ --deployment-configuration "minimumHealthyPercent=100,maximumPercent=200" \ --service-registries "registryArn=$service_discovery_arn,containerName=wsi-stress,containerPort=8080" \ --health-check-grace-period-seconds 60 \ --propagate-tags SERVICE \ --deployment-controller "type=ECS" \ --scheduling-strategy REPLICA \ --availability-zone-rebalancing ENABLED \ --launch-type EC2
Shell
복사
aws application-autoscaling register-scalable-target \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/wsi-ecs-cluster/wsi-stress-svc \ --min-capacity 2 \ --max-capacity 20
Shell
복사
aws application-autoscaling put-scaling-policy \ --service-namespace ecs \ --scalable-dimension ecs:service:DesiredCount \ --resource-id service/wsi-ecs-cluster/wsi-stress-svc \ --policy-name policy \ --policy-type TargetTrackingScaling \ --target-tracking-scaling-policy-configuration '{ "TargetValue": 70.0, "PredefinedMetricSpecification": { "PredefinedMetricType": "ECSServiceAverageCPUUtilization" }, "ScaleOutCooldown": 0, "ScaleInCooldown": 0 }'
Shell
복사
ECS EXEC
sudo dnf install -y https://s3.amazonaws.com/session-manager-downloads/plugin/latest/linux_64bit/session-manager-plugin.rpmsudo systemctl start amazon-ssm-agent # sudo yum erase session-manager-plugin -y
Shell
복사
TASKDEF_ARN=$(aws ecs list-tasks --cluster wsi-ecs-cluster --desired-status RUNNING --family wsi-taskdef-stress --region ap-northeast-2 --query "taskArns[0]" --output text)
Shell
복사
aws ecs execute-command \ --region ap-northeast-2 \ --cluster wsi-ecs-cluster \ --task $TASKDEF_ARN \ --container wsi-stress \ --command "/bin/sh" \ --interactive
Shell
복사