Comandos AWS CLI:
Apagar una instancia EC2 por ID y esperar a que se detenga:
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
aws ec2 wait instance-stopped --instance-ids i-1234567890abcdef0
Encender una instancia EC2 por ID y esperar a que inicie:
aws ec2 start-instances --instance-ids i-1234567890abcdef0
aws ec2 wait instance-running --instance-ids i-1234567890abcdef0
IAM Policy para otorgar permisos mínimos:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:StartInstances",
"ec2:StopInstances",
"ec2:DescribeInstances"
],
"Resource": "arn:aws:ec2:*:*:instance/i-1234567890abcdef0"
}
]
}
Esto es util para simples ambientes sandbox que administrar. Por ejemplo en Gitlab CI
stages:
- manage_ec2
stop_instance:
stage: manage_ec2
script:
- aws ec2 stop-instances --instance-ids i-1234567890abcdef0
- aws ec2 wait instance-stopped --instance-ids i-1234567890abcdef0
when: manual
allow_failure: false
only:
- main
start_instance:
stage: manage_ec2
script:
- aws ec2 start-instances --instance-ids i-1234567890abcdef0
- aws ec2 wait instance-running --instance-ids i-1234567890abcdef0
when: manual
allow_failure: false
only:
- main
restart_instance:
stage: manage_ec2
script:
- aws ec2 reboot-instances --instance-ids i-1234567890abcdef0
when: manual
allow_failure: false
only:
- main