

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Systems Manager メンテナンスウィンドウを使用して Amazon RDS DB インスタンスを自動的に停止および起動する
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows"></a>

*Ashita Dsilva (Amazon Web Services)*

## 概要
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-summary"></a>

このパターンは、 AWS Systems Manager メンテナンスウィンドウを使用して、特定のスケジュールで Amazon Relational Database Service (Amazon RDS) DB インスタンスを自動的に停止および開始する方法 (例: 営業時間外に DB インスタンスをシャットダウンしてコストを削減する) を示しています。この目的で、Systems Manager は一般的なユースケースでコスト効率に優れています。

AWS Systems Manager Automation は、`AWS-StopRdsInstance`Amazon RDS DB インスタンスを停止および起動するための および `AWS-StartRdsInstance`ランブックを提供します。つまり、 AWS Lambda 関数を使用してカスタムロジックを記述したり、Amazon CloudWatch Events ルールを作成したりする必要はありません。

Systems Manager は、タスクをスケジュールするための 2 つの機能、[State Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-about.html) と [Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) を提供します。State Manager は、Amazon Web Services (AWS) アカウント内のリソースに必要な状態設定を 1 回だけ、または特定のスケジュールで設定、管理します。Maintenance Windows は、特定の時間枠にアカウント内のリソースに対してタスクを実行します。このパターンのアプローチはステートマネージャーまたはメンテナンスウィンドウで使用できますが、割り当てられた優先度に基づいて 1 つ以上のタスクを実行でき、 AWS Lambda 関数と AWS Step Functions タスクを実行できるため、メンテナンスウィンドウを使用することをお勧めします。State Manager と Maintenance Windows の詳細については、Systems Manager ドキュメントの「[State Manager または Maintenance Windows の選択](https://docs.aws.amazon.com/systems-manager/latest/userguide/state-manager-vs-maintenance-windows.html)」を参照してください。

このパターンでは、cron 式を使用して Amazon RDS DB インスタンスを停止してから起動する 2 つのメンテナンスウィンドウを個別に設定する詳細な手順を示しています。 

## 前提条件と制限
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-prereqs"></a>

**前提条件**
+ アクティブ AWS アカウント。
+ 特定のスケジュールで停止して開始したい既存の Amazon RDS DB インスタンス。
+ 必要なスケジュールの Cron 式。例えば、式 `cron(0 9 ? * MON-FRI *)` は毎週月曜日、火曜日、水曜日、木曜日、金曜日の午前 9 時にタスクを実行します。詳細は、「Systems Manager のドキュメント」の「[メンテナンスウィンドウの関連付けに使用する cron 式および rate 式](https://docs.aws.amazon.com/systems-manager/latest/userguide/reference-cron-and-rate-expressions.html#reference-cron-and-rate-expressions-maintenance-window)」を参照してください。
+ Systems Manager に精通しています。
+ RDS インスタンスを起動および停止するアクセス許可。詳細については、「[エピック](#automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-epics)」セクションを参照してください。

**制限事項**
+ Amazon RDS DB インスタンスは一度に最大 7 日間停止できます。7 日後、DB インスタンスは自動的に再起動し、必要なメンテナンスアップデートを確実に受け取ることができます。
+ リードレプリカである DB インスタンス、またはリードレプリカを持つ DB インスタンスを停止することはできません。
+ マルチ AZ 設定では Amazon RDS for SQL Server DB インスタンスを停止できません。
+ Service Quotas は、Maintenance Windows と Systems Manager Automation に適用されます。サービスクォータの詳細については、 AWS 全般のリファレンス ドキュメントの[AWS Systems Manager 「エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/ssm.html)」を参照してください。 
+ 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、「[AWS のサービス (リージョン別)](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/)」を参照してください。特定のエンドポイントについては、「[サービスエンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html)」ページを参照して、サービスのリンクを選択します。

## アーキテクチャ
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-architecture"></a>

次の図では、Amazon RDS DB インスタンスを自動的に停止して開始するワークフローを示します。

![\[自動的に Amazon RDS DB インスタンスを停止して開始するワークフロー\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/45b81621-5674-4bcf-bf7c-75ae6f62524e/images/7d943830-716e-46a3-be44-7e668c3c01ff.png)


 

ワークフローには次の手順があります。

1. メンテナンスウィンドウを作成し、cron 式を使用して Amazon RDS DB インスタンスの停止と開始のスケジュールを定義します。

2. `AWS-StopRdsInstance` または `AWS-StartRdsInstance` ランブックを使用して Systems Manager 自動化タスクをメンテナンスウィンドウに登録します。

3. Amazon RDS DB インスタンスのタグベースのリソースグループを使用して、メンテナンスウィンドウにターゲットを登録します。

**テクノロジースタック**
+ AWS CloudFormation
+ AWS Identity and Access Management (IAM)
+ Amazon RDS
+ Systems Manager

**自動化とスケール**

必要な Amazon RDS DB インスタンスにタグを付け、タグ付けされたすべての DB インスタンスを含むリソースグループを作成し、このリソースグループをメンテナンスウィンドウのターゲットとして登録することで、複数の Amazon RDS DB インスタンスを同時に停止および起動できます。

## ツール
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-tools"></a>
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) は、 AWS リソースのモデル化とセットアップに役立つサービスです。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) は、 AWS リソースへのアクセスを安全に制御するのに役立つウェブサービスです。
+ [Amazon Relational Database Service (Amazon RDS)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html) は、 AWS クラウドでリレーショナルデータベースを簡単にセットアップし、運用し、スケーリングすることのできるウェブサービスです。
+ [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html) は、 AWS リソースをグループに整理し、リソースにタグを付け、グループ化されたリソースのタスクを管理、モニタリング、自動化するのに役立ちます。
+ [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) は、インフラストラクチャを表示および制御するために AWS のサービス 使用できる です AWS。このパターンでは、次の Systems Manager の機能を使用します。
  + [AWS Systems Manager 自動化](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html)により、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスやその他の AWS リソースの一般的なメンテナンスおよびデプロイタスクが簡素化されます。
  + [AWS Systems Manager メンテナンスウィンドウ](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)は、インスタンスで破壊的になり得るアクションを実行するスケジュールを定義するのに役立ちます。

## エピック
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-epics"></a>

### Systems Manager Automation の IAM サービスロールを作成および設定する
<a name="create-and-configure-the-iam-service-role-for-sys-automation"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Systems Manager Automation の IAM サービスロールを設定します。 | にサインイン AWS マネジメントコンソール し、Systems Manager Automation のサービスロールを作成します。次の 2 つのメソッドのいずれかを使用して、このサービスロールを作成できます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html)Systems Manager 自動化ワークフローは、サービスロールを使用して Amazon RDS DB インスタンスで開始アクションと停止アクションを実行することで Amazon RDS を呼び出します。サービスロールは、Amazon RDS DB インスタンスを起動および停止する権限を持つ以下の[インラインポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)で設定する必要があります。<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Sid": "RdsStartStop",<br />            "Effect": "Allow",<br />            "Action": [<br />                "rds:StopDBInstance",<br />                "rds:StartDBInstance"<br />            ],<br />            "Resource": "<RDS_Instance_ARN>"               <br />        },<br />        {<br />            "Sid": "RdsDescribe",<br />            "Effect": "Allow",<br />            "Action": "rds:DescribeDBInstances",<br />            "Resource": "*"<br />        }<br />    ]<br />}</pre>必ず `<RDS_Instance_ARN>` を Amazon RDS DB インスタンスの Amazon リソースネーム (ARN) で置き換えます。IAM ポリシーとロールの使用に慣れていない場合は、「[Schedule Amazon RDS stop and start using AWS Systems Manager](https://aws.amazon.com/blogs/database/schedule-amazon-rds-stop-and-start-using-aws-systems-manager/)」の「*Solution Overview*」セクションの指示に従ってください。サービスロールの ARN を必ず記録してください。 | AWS 管理者 | 

### リソースグループの作成
<a name="create-a-resource-group"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Amazon RDS DB インスタンスにタグを付けます | [Amazon RDS コンソール](https://console.aws.amazon.com/rds/)を開き、リソースグループに追加する Amazon RDS DB インスタンスにタグを付けます。タグは AWS リソースに割り当てられたメタデータであり、キーと値のペアで構成されます。*[アクション]* を **[タグキー]** として使用し、*[StartStop]* を **[値]** として使用することをお勧めします。詳細については、Amazon RDS ドキュメントの「[タグの追加、リスト化、削除](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html#Tagging.HowTo)」を参照してください。 | AWS 管理者 | 
| タグを付加した Amazon RDS DB インスタンス用のリソースグループを作成します。 | [AWS Resource Groups コンソール](https://console.aws.amazon.com/resource-groups)を開き、Amazon RDS DB インスタンス用に作成したタグに基づいてリソースグループを作成します。**[グループ化基準]** で、必ずリソースタイプに **[AWS:: RDS:: DBInstance]** を選択し、タグのキーと値のペア (「Action-StartStop」など) を指定してください。これにより、サービスは Amazon RDS DB インスタンスのみをチェックし、このタグを持つその他のリソースはチェックしないことが保証されます。****リソースグループの名前は必ず記録してください。詳細と詳細な手順については、 AWS Resource Groups ドキュメントの[「タグベースのクエリを構築する」および「グループを作成する](https://docs.aws.amazon.com/ARG/latest/userguide/gettingstarted-query.html#gettingstarted-query-tag-based)」を参照してください。  | AWS 管理者 | 

### Amazon RDS DB インスタンスを停止するメンテナンスウィンドウを設定する
<a name="configure-a-maintenance-window-to-stop-the-rds-db-instances"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| メンテナンスウィンドウを作成します。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html)DB インスタンスを停止するタスクは開始するとほぼ瞬時に実行され、メンテナンスウィンドウ全体には適用されません。このパターンでは、タスクの開始**期間**と**開始タスクの停止**の最小値が提供されます。これは、これらがメンテナンス時間枠に必要なパラメータであるためです。詳細と詳細な手順については、Systems Manager ドキュメントの「[コンソールを使用してメンテナンスウィンドウを作成する](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-create-mw.html)」を参照してください。 | AWS 管理者 | 
| ターゲットをメンテナンスウィンドウに割り当てます。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html)詳細と詳細な手順については、Systems Manager ドキュメントの「[コンソールを使用してメンテナンスウィンドウにターゲットを割り当てる](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-assign-targets.html)」を参照してください。 | AWS 管理者 | 
| メンテナンスウィンドウにタスクを割り当てるには | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html)******サービスロール**オプションでは、メンテナンスウィンドウでタスクを実行するために必要なサービスロールを定義します。ただし、このロールは、以前に Systems Manager Automation 用に作成したサービスロールと同じではありません。詳細と詳細な手順については、Systems Manager ドキュメントの「[コンソールを使用してメンテナンスウィンドウにタスクを割り当てる](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-maintenance-assign-tasks.html)」を参照してください。 | AWS 管理者 | 

### Amazon RDS DB インスタンスを起動するメンテナンスウィンドウを設定する
<a name="configure-a-maintenance-window-to-start-the-rds-db-instances"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Amazon RDS DB インスタンスを起動するメンテナンスウィンドウを設定します。 | 「*Amazon RDS DB インスタンスを停止するメンテナンスウィンドウを設定する*」の手順を繰り返し、スケジュールされた時間に Amazon RDS DB インスタンスを起動する別のメンテナンスウィンドウを設定します。DB インスタンスを起動するようにメンテナンスウィンドウを設定するときは、次の変更を行う必要があります。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows.html) | AWS 管理者 | 

## 関連リソース
<a name="automatically-stop-and-start-an-amazon-rds-db-instance-using-aws-systems-manager-maintenance-windows-resources"></a>
+ [Systems Manager Automation ドキュメントを使用してインスタンスを管理し、時間外にコストを削減する](https://aws.amazon.com/blogs/mt/systems-manager-automation-documents-manage-instances-cut-costs-off-hours/) (AWS ブログ記事)