0
0

More than 3 years have passed since last update.

SSMオートメーションでDocDB自動停止をやってみた

Posted at

はじめに

AWSのRDSは停止しても7日間経過すると自動で起動されてしまいます。知らないうちに起動されて課金されることを防ぐためにRDS(今回はDocDB)を自動停止する仕組みをSSMオートメーションで試してみました。

準備

まずSSMドキュメントを実行するロールを作ります。

IAM > ロールの作成から
image.png

AmazonEC2FullAccessは無くても良いですがEC2も停止するケースも考慮して含めています。

作成したロールの信頼関係を編集をします。

作成したロールを選択して信頼関係の編集から

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
            "events.amazonaws.com",
            "ssm.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

保存すると信頼されたエンティティに2つ表示されます。

image.png

events.amazonaws.comはCloudWatch Eventsからcron的に呼び出す際に必要、ssm.amazonaws.comはSSMのマネージメントコンソールからテスト実行する際に必要になります。

次にPassRole用インラインポリシーを作成してアタッチします。

作成したロールのアクセス権限 > インラインポリシーの追加から
image.png
image.png

これで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 > ドキュメント > 自己所有 > 作成したドキュメント > オートメーションを実行する
image.png

後はこのSSMドキュメントをCloudWatch Eventsからcronスケジュールで呼び出せば自動停止の完成です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0