Autoscaling Automation
0. Verify all creds
Get region
aws configure get region
https://stackoverflow.com/questions/31331788/using-aws-cli-what-is-best-way-to-determine-the-current-region
1.
Launch instance from previous AMI
aws ec2 run-instances --image-id ami-0c960f6776affb006 --count 1 --instance-type t2.micro --key-name rj-tester-key --security-group-ids sg-0ed5b9b7488b55819 --query 'Instances[*].InstanceId' --output text
i-0e1eb67ceab6866a0
2.
Get the instance ip
aws ec2 describe-instances --instance-ids i-0e1eb67ceab6866a0 --query 'Reservations[*].Instances[*].PublicIpAddress' --output text
3.96.147.75
2.
Get into the Machine by using SSH
ssh ubuntu@3.96.147.75 | yes
http://3.96.147.75:5000/
ssh -o StrictHostKeyChecking=no ubuntu@3.96.147.75
ssh -o StrictHostKeyChecking=no ubuntu@3.96.147.75 && bash -c 'pwd ; dir && ls'
ssh -o StrictHostKeyChecking=no ubuntu@3.96.147.75 bash -c 'pwd; cd /home/ubuntu/sc2base/simple-flask && git pull'
ssh ubuntu@3.96.147.75 && bash -c 'pwd ; dir && ls'
http://15.222.248.59:5000/three
https://github.com/rajasgs/simple-flask
https://askubuntu.com/questions/975327/how-to-connect-ssh-and-run-shell-script
3.
Create image from running instance
aws ec2 create-image \
--instance-id i-0e1eb67ceab6866a0 \
--name "anyone-clock-v1-5-ami" \
--description "anyone-clock-v1-5-ami"
aws ec2 create-image --instance-id i-0e1eb67ceab6866a0 --name "anyone-clock-v1-5-ami" --description "anyone-clock-v1-5-ami"
{
"ImageId": "ami-0ff6d2d9a3bc69eb1"
}
aws ec2 create-image \
--instance-id i-0e1eb67ceab6866a0 \
--name "rj-simple-flask-v1-1-ami" \
--description "rj-simple-flask-v1-1-ami" \
--query 'ImageId' --output text
ami-0116c4d27640faccc
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-image.html
15.222.7.123
ssh ubuntu@15.222.7.123
http://15.222.7.123:5000/
http://15.222.7.123:5000/sample
new commit
[dev 2874f58] Committed on behalf of a disgruntled coworker: Updates for 2023-01-08
curl http://0.0.0.0:5000
4.
Terminate the instance
aws ec2 terminate-instances --instance-ids i-0e1eb67ceab6866a0
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/terminate-instances.html
5.
In the Launch template, create a template version and assign the recently created Image
aws ec2 create-launch-template-version --launch-template-id lt-08dad600a0f0d1c90 --version-description "rj-simple-flask-v1-1" --source-version 1 --launch-template-data '{"ImageId":"ami-0116c4d27640faccc"}'
aws ec2 create-launch-template-version --launch-template-id lt-08dad600a0f0d1c90 --version-description "rj-simple-flask-v1-1" --launch-template-data '{"ImageId":"ami-0116c4d27640faccc"}'
{
"LaunchTemplateVersion": {
"LaunchTemplateId": "lt-08dad600a0f0d1c90",
"LaunchTemplateName": "rj-tester-lt",
"VersionNumber": 6,
"VersionDescription": "rj-simple-flask-v1-1",
"CreateTime": "2023-01-09T02:58:39+00:00",
"CreatedBy": "arn:aws:iam::723675304964:user/raja",
"DefaultVersion": false,
"LaunchTemplateData": {
"ImageId": "ami-0116c4d27640faccc"
}
}
}
aws ec2 create-launch-template-version --launch-template-id lt-08dad600a0f0d1c90 --version-description "rj-simple-flask-v1-1" --launch-template-data '{"ImageId":"ami-0116c4d27640faccc"}' --query 'LaunchTemplateVersion.VersionNumber' --output text
7
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/create-launch-template-version.html
6.
In the A
aws ec2 modify-launch-template --launch-template-id "lt-08dad600a0f0d1c90" --default-version "7" --region "ca-central-1"
{
"LaunchTemplate": {
"LaunchTemplateId": "lt-08dad600a0f0d1c90",
"LaunchTemplateName": "rj-tester-lt",
"CreateTime": "1970-01-01T00:00:00+00:00",
"CreatedBy": "arn:aws:iam::723675304964:user/raja",
"DefaultVersionNumber": 7,
"LatestVersionNumber": 7
}
}
7. Refresh
aws autoscaling start-instance-refresh \
--auto-scaling-group-name rj-tester-asg \
--preferences '{"InstanceWarmup": 300, "MinHealthyPercentage": 90}'
{
"InstanceRefreshId": "6d86d911-5be6-4ec9-ad5f-6bac0f6cc8e6"
}
aws autoscaling start-instance-refresh --auto-scaling-group-name rj-tester-asg --preferences '{"InstanceWarmup": 300, "MinHealthyPercentage": 90}'
aws sts get-caller-identity --query Account
744173404295
aws iam get-user
{
"User": {
"Path": "/",
"UserName": "raja.raman@syndigo.com",
"UserId": "AIDA22RBRACDTCNLF27R7",
"Arn": "arn:aws:iam::744173404295:user/raja.raman@syndigo.com",
"CreateDate": "2022-02-16T22:53:48+00:00",
"PasswordLastUsed": "2022-12-12T13:17:54+00:00"
}
}
https://stackoverflow.com/questions/33791069/quick-way-to-get-aws-account-number-from-the-aws-cli-tools
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/organizations/describe-account.html
aws organizations describe-account
Last updated
Was this helpful?