lamda와 cloudwatch를 이용한 개발계 시스템 주중에만 작동 하도록 하기
목표: 개발계 시스템 주중 업무시간에만 작동하도록 자동화 한다.
아래 대로 진행하면 해당 인스턴스 시작, 정지를 자동화 할 수 있다.
1. lambda 설정
2. cloudwatch rule 설정
3. trigger 등록
1. lambda 설정
*stop server code(node.js)
var AWS = require('aws-sdk');
exports.handler = function(event, context) {
var ec2 = new AWS.EC2({region: 'EC2 region'});
ec2.stopInstances({InstanceIds : ['EC2 instance ID'] },function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
context.done(err,data);
});
};
*start server code(node.js)
var AWS = require('aws-sdk');
exports.handler = function(event, context) {
var ec2 = new AWS.EC2({region: 'EC2 region'});
ec2.startInstances({InstanceIds : ['EC2 instance ID'] },function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
context.done(err,data);
});
};
*role policy
아래 대로 진행하면 해당 인스턴스 시작, 정지를 자동화 할 수 있다.
1. lambda 설정
2. cloudwatch rule 설정
3. trigger 등록
1. lambda 설정
*stop server code(node.js)
var AWS = require('aws-sdk');
exports.handler = function(event, context) {
var ec2 = new AWS.EC2({region: 'EC2 region'});
ec2.stopInstances({InstanceIds : ['EC2 instance ID'] },function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
context.done(err,data);
});
};
*start server code(node.js)
var AWS = require('aws-sdk');
exports.handler = function(event, context) {
var ec2 = new AWS.EC2({region: 'EC2 region'});
ec2.startInstances({InstanceIds : ['EC2 instance ID'] },function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
context.done(err,data);
});
};
*role policy
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "ec2:Start*", "ec2:Stop*" ], "Resource": "*" } ] }
2. cloudwatch rule 설정
cloudwatch Rule 등록(Start, Stop 등록)
시작(월~금 01:00:00 GMT에 수행)
Schedule |
Cron expression
0 1 ? * MON-FRI * |
정지(월~금 09:00:00 GMT에 수행)
Cron expression
0 9 ? * MON-FRI * |
3. lamdba 서비스에서 add trigger에서 cloudwatch event 선택 후 시작, 정지를 선택후 적용
댓글
댓글 쓰기