EC2, RDS 시작 시간 설정

9218 단어 EC2RDSAWS

소개



AWS 무료 프레임의 관계로 EC2, RDS의 기동 시간을 제한하고 싶었을 때의 비망록.
둘 다 CloudWatch를 사용하여 대응합니다.

EC2 시작 시간 설정



EC2 인스턴스 중지



IAM 역할 만들기



① IAM 콘솔에서 롤 생성


② AWS 서비스 > EC2 선택 > 다음 단계

③AWS 관리형 정책의 AmazonSSMAutomationRole 연결


④ 롤명을 입력하여 작성

⑤ 작성한 역할을 선택하고, 「트러스트 관계」의 탭에서 「트러스트 관계의 편집」을 클릭해, 다음을 입력
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": "events.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

CloudWatch 이벤트 규칙 만들기



① CloudWatch 콘솔 이벤트에서 '규칙 만들기' 버튼을 클릭


② 이벤트 소스를 스케줄로 설정하고 Cron식을 입력
이번 경우, 일본 시간으로 매일 23시에 정지가 된다
참고 : cron 식

③ 타겟 화면에서 "EC2 StopInstances API 호출"을 선택하여 대상 인스턴스 ID를 설정합니다.
기존 역할에서 이전에 만든 역할 선택

④ 규칙의 이름을 입력하고 작성하여 완료

EC2 인스턴스 시작



CloudWatch 이벤트 규칙 만들기



① CloudWatch 콘솔 이벤트에서 '규칙 만들기' 버튼을 클릭


② 이벤트 소스를 스케줄로 설정하고 Cron식을 입력
이번 경우, 일본 시간으로 매일 8시에 정지가 된다

③ 타겟 화면에서 "AWS-StartEC2Instance"를 선택하고 대상 인스턴스 ID를 설정.
기존 역할에서 이전에 만든 역할 선택

④ 규칙의 이름을 입력하고 작성하여 완료

RDS 시작 시간 설정



덧붙여서 이하의 기재가 있습니다.DB インスタンスは最大 7 日間停止できます。
7 日後に DB インスタンスを手動で起動しなかった場合、DB インスタンスは自動的に起動されるため・・・
RDS 정지의 최대는 7일과 같습니다.

참고 : 일시적으로 Amazon RDS DB 인스턴스 중지

RDS 인스턴스 중지



Lambda 만들기



①AWS Lambda > 함수 > 함수 생성

② 적당한 함수명을 입력하고, 런타임은 Python3.7을 선택,
액세스 권한: 기본 Lambda 액세스 권한으로 새 역할 만들기 → 함수 만들기


③작성 후 트리거 추가를 누름


④EventBridge(CloudWatch Events)를 선택하고 신규 규칙 생성을 선택
규칙 유형을 예약. 스케줄 표현식에 cron을 설정합니다.
이미지의 경우 매일 23시에 인스턴스를 중지합니다.



⑤추가를 눌러

⑥ 작성한 함수의 코드 소스를 열고 다음 내용으로 다시 작성 → Deploy를 누릅니다.
import boto3

def lambda_handler(event, context):
dbinstances = [RDS DB インスタンス識別子,RDS DB インスタンス識別子] rds = boto3.client(rds)
result = rds.stop_db_instance(DBInstanceIdentifier = dbinstance)
print(result)
return 0



IAM 역할 설정



① IAM 관리 화면 > 롤에서 Lambda 작성 ②에서 작성한 롤을 선택

② 관리 정책에 다음을 첨부
· CloudWatchFullAccess
· AmazonRDSFullAccess

③ 이것으로 RDS 인스턴스의 정지 설정이 완료

RDS 인스턴스 시작



RDS 인스턴스 중지 설정 절차는 다음과 다릅니다.
④ 스케줄의 cron식의 내용
⑥시작 코드의 내용

Lambda 만들기



①AWS Lambda > 함수 > 함수 생성

② 적당한 함수명을 입력하고, 런타임은 Python3.7을 선택,
액세스 권한: 기본 Lambda 액세스 권한으로 새 역할 만들기 → 함수 만들기

③작성 후 트리거 추가를 누름

④EventBridge(CloudWatch Events)를 선택하고 신규 규칙 생성을 선택
규칙 유형을 예약. 스케줄 표현식에 cron을 설정합니다.

⑤추가를 눌러

⑥ 작성한 함수의 코드 소스를 열고 다음 내용으로 다시 작성 → Deploy를 누릅니다.
import boto3

def lambda_handler(event, context):
dbinstances = [RDS DB インスタンス識別子,RDS DB インスタンス識別子] rds = boto3.client(rds)
result = rds.start_db_instance(DBInstanceIdentifier = dbinstance)
print(result)
return 0

IAM 역할 설정



① IAM 관리 화면 > 롤에서 Lambda 작성 ②에서 작성한 롤을 선택

② 관리 정책에 다음을 첨부
· CloudWatchFullAccess
· AmazonRDSFullAccess

③ 이것으로 RDS 인스턴스 시작 설정 완료

참고



【Lambda】EC2 인스턴스나 RDS의 자동 기동/정지 설정을 실현한다
[AWS] Lambda에서 RDS 자동 시작 및 자동 중지 구현
EC2 인스턴스의 스케줄 기동을 손쉽게 실현할 수 있게 되어 있었다!
EC2 인스턴스의 시작 및 중지를 자동화할 수 있습니까?

좋은 웹페이지 즐겨찾기