SSM 자동화에서 DocDB 자동 중지 시도

입문


AWS의 RDS는 중지되더라도 7일이 지나면 자동으로 시작됩니다.부지불식간에 RDS (이번에는 DocDB) 를 자동으로 중지하는 SSM 자동화를 시도했습니다.

준비


먼저 SSM 문서를 실행하는 역할을 만듭니다.


IAM > 역할 생성부터

아마존 EC2FullAccess는 없어도 되지만 EC2도 멈추는 상황을 고려한다.

생성된 역할의 신뢰 관계를 편집합니다.


신뢰 관계 편집부터 생성된 역할 선택
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
            "events.amazonaws.com",
            "ssm.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
저장한 후 신뢰할 수 있는 실체에 두 개를 표시합니다.

events.amazonaws.com은 CloudWatch Eventscron에서 호출할 때 필요한 ssm입니다.amazonaws.com은 SSM의 관리 콘솔에서 테스트를 진행할 때 필요합니다.

그런 다음 PassRole에 대한 인라인 정책을 작성하고 부착합니다.


역할에 대한 액세스 권한 만들기 > 에서 인라인 정책 추가


이제 이 역할을 SSM 서비스에 전달할 수 있습니다.

자동화된 SSM 문서 작성


SSM > 문서 > 자동화를 작성한 다음 편집기 탭에서 편집합니다.
description: stop docdb
schemaVersion: '0.3'
assumeRole: '{{ AutomationAssumeRole }}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Optional) The ARN of the role that allows Automation to perform the actions on your behalf.
    default: 'arn:aws:iam::xxxxxxxxxxxx:role/xxxxxxxx-ssm-automation-role'
mainSteps:
  - name: "stop_xxxxxxxx_docdb"
    action: 'aws:executeAwsApi'
    maxAttempts: 3
    onFailure: Continue
    inputs:
      Service: docdb
      Api: StopDBCluster
      DBClusterIdentifier: xxxxxxxx-docdb
  - name: "stop_xxxxxxxx_docdb"
    action: 'aws:executeAwsApi'
    maxAttempts: 3
    onFailure: Continue
    inputs:
      Service: docdb
      Api: StopDBCluster
      DBClusterIdentifier: xxxxxxxx-docdb

테스트 실행


SSM > 문서 > 자체 > 만든 문서 > 자동화

이후 CloudWatch Events에서cron 일정을 통해 이 SSM 문서를 호출하면 자동 정지가 완료됩니다.

좋은 웹페이지 즐겨찾기