アーカイブ記事:2019年の記録です。現在はサポートされていないPythonバージョンなど、過去の手順を含みます。
このブログはEC2で動いていました。コストを抑えるためロードバランサーを使わず、希望容量1のAuto Scalingグループにしていました。DB接続が不安定になることがあり、最も簡単な自動対処はインスタンスの再起動でした。ロードバランサーなしでは少し工夫が必要だったので、手順を残しました。
- Route 53のヘルスチェックを作成します。
- 対応するCloudWatchアラームを選び、SNSトピックを関連付けます。
- トピックからメール通知とLambdaの呼び出しを行うよう設定します。
- LambdaのIAMロールに、EC2を再起動する権限を付けます。
以下は当時ネットで見つけたLambdaコードです。記事の執筆時点ではPython 3.xではなく2.7が必要でした。
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)


クラウド / システム