Help us understand the problem. What is going on with this article?

毎週起動する RDS を毎週停止させる CodeBuild

背景

RDSの停止ができるようになりましたが、停止してから1週間経過すると、ふたたび起動してきます。停止したのは、停止しておきたい理由があるから停止したのに、おまえ何で起動さした?

毎週手作業でやるのも微妙。Lambdaでbotoするのを書くのもダルい。

CodeBuild で毎週実行させて awscli でやるのが究極に簡単でした。

buildspec.yml

コンテナイメージは awscli が入るなら何でも良いです。作例では amazonlinux:2 を使っています。

version: 0.2

env:
  variables:
     RDS_NAME: "RDSインスタンス名"

phases:
  install:
    commands:
      - yum install -y awscli
  build:
    commands:
      - aws rds stop-db-instance --db-instance-identifier ${RDS_NAME}

IAM

CodeBuildに付けてるIAMロールに StopDBInstance 権限を付与します。Resourceの範囲はお好みの塩梅で。ほんとうにStopDBInstanceしてよいものだけに絞るのが安全かと思います。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "rds:StopDBInstance",
            "Resource": "arn:aws:rds:*:*:db:RDSインスタンス名"
        }
    ]
}

CodeBuild内でawscliを実行するので iam:PassRole も付けてください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "iam:PassRole"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

実行周期

CodeBuildの「ビルドのトリガー」で実行周期の設定ができますね。毎週1回実行などとしておきます。

参考

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away