: 서버리스 컴퓨팅 서비스
그렇다고 서버가 없다는 뜻은 아니다. 관리자의 수고가 덜어지는 서비스라고 보면된다.
AWS lambda에 EC2 start,stop 함수를 생성할 것이다.
: AWS에서 동작하는 애플리케이션(EC2,RDS,ELB 등)의 상태 모니터링 도구.
aws lambda에서 생성한 함수를 Cloudwatch를 통해 실행하는 것이다.
요금은 링크를 참조하자.
지난 포스팅 에서 탄력적 IP를 설정했다.
이젠 EC2인스턴스를 중지 후 재실행 해도 IP가 바뀌지 않는다😌.
EC2 자동 중지 및 재실행을 위해선 크게 4가지를 설정해야한다.
(탄력적 IP를 부여하지 않았다면, 이전 포스팅을 참고하여 먼저 탄력적 IP부터 부여해야한다.)
1. IAM
2. lambda
3. cloudwatch
4. pm2
정책 > 정책생성
이후 아래의 정책을 넣어줬다.
{
"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": "*"
}
]
}
역할 >역할 만들기
AWS 서비스 >Lambda
생성해뒀던 정책 연결
선택사항
검토 후 역할 만들기 버튼
함수 생성
함수이름은 start 런타임은 파이썬을 선택했다
코드를 추가해주고 >> Deploy
import boto3
region = 'ap-northeast-2'
instances = ['i-01111546420e6e5d']
ec2 = boto3.client('ec2', region_name=region)
def lambda_handler(event, context):
ec2.start_instances(InstanceIds=instances)
print('start your instances: ' + str(instances))
Stop에 대한 함수를 생성할 때에는, 8번째줄의 start를 stop으로 바꾸면 된다.
구성 >> 권한 >> 실행역할 >> 편집
기존에 생성한 역할 선택
위에 언급한대로 stop도 만들면 된다!
규칙 >> 규칙생성
해당 페이지 밑의 링크에 cron 표현식 방법이 나온다.
규칙 생성
ec2 인스턴스 터미널에 접속
pm2 startup
pm2 startup
을 하면 아래와같이 코드를 줄 것이다.$ pm2 startup
[PM2] You have to run this command as root. Execute the following command:
sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>
pm2 save
입력댓글에 누가 친절하게 써놨는데 읽어보길 바란다.
Just going to make some notes for myself, as the existing docs are a bit unclear to me:
To create a startup script:
1. run pm2 startup
2. copy the output of that command and paste it back into the terminal. this configures pm2 to run as a daemon service.
3. start all the processes that you want to run automatically
4. run pm2 save.
At any point in the future, to update the list of process, just run pm2 save again.
WARNING: pm2 unstartup terminates all user processes currently running under pm2!!!
--
이로써 EC2 자동중지, 자동실행에 관한 Lambda Cloudwatch 설정이 끝났다.
https://waspro.tistory.com/660
https://cholol.tistory.com/506