内容
AWS検証環境でEC2の停止を忘れてしまうことがあるので、全EC2サーバを1日1回停止する運用をいれます。
EventBridgeの「EC2 StopInstances API呼び出し」を使用しようと思いましたが、全てのインスタンスIDを指定する方法が分からなくlambda関数を作成しました。
コード
同一AWSアカウント内で起動中の全EC2サーバを停止します。
import boto3
client = boto3.client('ec2', region_name = 'ap-northeast-1')
def lambda_handler(event, context):
ec2_list = client.describe_instances()
for ec2_reservation in ec2_list['Reservations']:
for ec2_instance in ec2_reservation['Instances']:
ec2_instance_id = ec2_instance['InstanceId']
ec2_instance_state = ec2_instance['State']['Name']
if ec2_instance_state == 'running':
response = client.stop_instances(InstanceIds = [ec2_instance_id])