Archiefnotitie: dit artikel uit 2019 bevat historische instructies, waaronder een Python-versie die niet meer wordt ondersteund.
Deze blog draaide op een EC2-instance. Om kosten te beperken gebruikte ik geen load balancer, maar een Auto Scaling-groep met een gewenste capaciteit van één instance. De databaseverbinding werd af en toe onbetrouwbaar; de eenvoudigste geautomatiseerde oplossing was dan de instance herstarten. Zonder load balancer was dat niet helemaal vanzelfsprekend, dus heb ik het proces hier beschreven.
- Maak een Route 53-healthcheck.
- Selecteer het bijbehorende CloudWatch-alarm en koppel er een SNS-topic aan.
- Stel het topic zo in dat het je een e-mail stuurt en een Lambda-functie aanroept.
- Zorg dat de IAM-rol van de Lambda-functie het herstarten van de EC2-instance toestaat.
Dit is de Lambda-code die ik online vond. Toen dit artikel werd geschreven, was hiervoor Python 2.7 nodig in plaats van Python 3.x.
import boto3
region = ‘us-west-1’
instances = [‘i-12345cb6de4f78g9h’, ‘i-08ce9b2d7eccf6d26’]
def lambda_handler(event, context):
ec2 = boto3.client(‘ec2’, region_name=region)
ec2.stop_instances(InstanceIds=instances)
print ‘stopped your instances: ‘ + str(instances)


cloud / systemen