AWS Systems Manager メンテナンスウィンドウを使用して Amazon RDS DB インスタンスを自動的に停止および起動する - AWS 規範ガイダンス

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

AWS Systems Manager メンテナンスウィンドウを使用して Amazon RDS DB インスタンスを自動的に停止および起動する

作成者: Ashita Dsilva (AWS)

概要

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

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

Systems Manager には、タスクをスケジュールするためのステートマネージャーメンテナンスウィンドウの 2 つの機能があります。ステートマネージャーは、Amazon Web Services (AWS) アカウントのリソースに必要な状態設定を 1 回または特定のスケジュールで設定および維持します。Maintenance Windows は、特定の時間枠にアカウント内のリソースに対してタスクを実行します。このパターンのアプローチはステートマネージャーまたはメンテナンスウィンドウで使用できますが、割り当てられた優先度に基づいて 1 つ以上のタスクを実行でき、 AWS Lambda 関数と AWS Step Functions タスクを実行できるため、メンテナンスウィンドウを使用することをお勧めします。ステートマネージャーとメンテナンスウィンドウの詳細については、Systems Manager ドキュメントの「ステートマネージャーとメンテナンスウィンドウの選択」を参照してください。

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

前提条件と制限

前提条件

  • アクティブ AWS アカウント。

  • 特定のスケジュールで停止および開始する既存の Amazon RDS DB インスタンス。

  • 必要なスケジュールの Cron 式。例えば、式は毎週月曜日、火曜日、水曜日、木曜日、金曜日の 09:00 にタスクcron(0 9 ? * MON-FRI *)を実行します。詳細については、Systems Manager ドキュメントの「メンテナンスウィンドウの Cron 式と rate 式」を参照してください。

  • Systems Manager に精通しています。

  • RDS インスタンスを起動および停止するアクセス許可。詳細については、「エピック」セクションを参照してください。

制約事項

  • 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 「 エンドポイントとクォータ」を参照してください。 

  • 一部の AWS のサービス は、すべてで利用できるわけではありません AWS リージョン。利用可能なリージョンについては、AWS のサービス リージョン別の「」を参照してください。特定のエンドポイントについては、「サービスエンドポイントとクォータ」ページを参照し、サービスのリンクを選択します。

アーキテクチャ

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

Amazon RDS DB インスタンスを自動的に停止および開始するワークフロー

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

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 インスタンスにタグを付け、タグ付けされたすべての RDS DB インスタンスを含むリソースグループを作成し、このリソースグループをメンテナンスウィンドウのターゲットとして登録することで、複数の Amazon DB インスタンスを同時に停止および開始できます。

ツール

  • AWS CloudFormation は、 AWS リソースのモデル化とセットアップに役立つサービスです。

  • AWS Identity and Access Management (IAM) は、 AWS リソースへのアクセスを安全に制御するのに役立つウェブサービスです。

  • Amazon Relational Database Service (Amazon RDS) は、 でリレーショナルデータベースを簡単にセットアップ、運用、スケーリングできるウェブサービスです AWS クラウド。

  • AWS Resource Groups は、 AWS リソースをグループに整理し、リソースにタグ付けし、グループ化されたリソースのタスクを管理、モニタリング、自動化するのに役立ちます。

  • AWS Systems Manager は、インフラストラクチャの表示と制御 AWS のサービス に使用できる です AWS。このパターンでは、Systems Manager の次の機能を使用します。

エピック

タスク説明必要なスキル

Systems Manager Automation IAMのサービスロールを設定します。

にサインイン AWS Management Console し、Systems Manager Automation のサービスロールを作成します。次の 2 つのメソッドのいずれかを使用して、このサービスロールを作成できます。

Systems Manager Automation ワークフローは、サービスロールRDSを使用して Amazon RDS DB インスタンスで開始および停止アクションを実行することで Amazon を呼び出します。

サービスロールは、Amazon RDS DB インスタンスを起動および停止するアクセス許可を持つ次のインラインポリシーで設定する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RdsStartStop", "Effect": "Allow", "Action": [ "rds:StopDBInstance", "rds:StartDBInstance" ], "Resource": "<RDS_Instance_ARN>" }, { "Sid": "RdsDescribe", "Effect": "Allow", "Action": "rds:DescribeDBInstances", "Resource": "*" } ] }

を Amazon RDS DB インスタンスの Amazon リソースネーム (ARN) <RDS_Instance_ARN>に置き換えてください。

IAM ポリシーとロールの使用に慣れていない場合は、ブログ記事「Amazon RDSの停止と使用開始のスケジュール AWS Systems Manager」の「ソリューションの概要」セクションの指示に従ってください。

重要

サービスロールARNの を必ず記録してください。

AWS 管理者
タスク説明必要なスキル

Amazon RDS DB インスタンスにタグを付けます。

Amazon RDSコンソールを開き、リソースグループに追加する Amazon RDS DB インスタンスにタグを付けます。タグは、 AWS リソースに割り当てられたメタデータであり、キーと値のペアで構成されます。アクションタグキーとして使用し、 をStartStopとして使用することをお勧めします。

詳細については、Amazon RDSドキュメントの「タグの追加、一覧表示、削除」を参照してください。

AWS 管理者

タグ付けされた Amazon RDS DB インスタンスのリソースグループを作成します。

AWS Resource Groups コンソールを開き、Amazon RDS DB インスタンス用に作成したタグに基づいてリソースグループを作成します。

グループ化条件 で、リソースタイプAWSDBInstanceに ::RDS:: を選択し、タグのキーと値のペア (「Action-」など) を指定しますStartStop。これにより、サービスは Amazon RDS DB インスタンスのみをチェックし、このタグを持つ他のリソースはチェックしません。リソースグループの名前を必ず記録してください。

詳細と詳細な手順については、 AWS Resource Groups ドキュメントの「タグベースのクエリの構築」および「グループの作成」を参照してください。 

AWS 管理者
タスク説明必要なスキル

メンテナンスウィンドウを作成します。

  1. Systems Manager コンソールを開き、メンテナンスウィンドウを選択し、メンテナンスウィンドウの作成を選択します。メンテナンスウィンドウの名前 (「」などStopRdsInstance) を入力し、説明を入力してから、未登録ターゲットを許可するのチェックを解除します。

  2. CRON/Rate 式を選択し、Amazon RDS DB インスタンスを停止するタイミングを定義するスケジュール式を指定します。[期間]1 を入力し、[タスクの開始を停止する]0 を入力します。デフォルトでは、タイムゾーンには が表示されますUTC。cron 式で定義したタイムスタンプに基づいて、タイムゾーンを変更してメンテナンスウィンドウを開始できます。

  3. [Create maintenance window] を選択します。メンテナンスウィンドウのページに戻り、メンテナンスウィンドウの状態は [有効] になります。

重要

DB インスタンスを停止するタスクは、 が開始されるとほぼ瞬時に実行され、メンテナンスウィンドウの期間全体にわたるものではありません。このパターンでは、タスクの開始期間開始タスクの停止の最小値が提供されます。これは、これらがメンテナンス時間枠に必要なパラメータであるためです。

詳細と詳細な手順については、Systems Manager ドキュメントの「メンテナンスウィンドウの作成 (コンソール)」を参照してください。

AWS 管理者

ターゲットをメンテナンスウィンドウに割り当てます。

  1. Systems Manager コンソールで、メンテナンスウィンドウを選択し、アクションを選択し、ターゲットの登録を選択します。

  2. [ターゲット] 領域[リソースグループを選択] を指定し、アカウント内の既存のリソースグループの名前を選択します。

  3. リソースタイプで、AWS::RDS::: を選択しDBInstanceターゲットの登録を選択します。

詳細と詳細な手順については、Systems Manager ドキュメントの「メンテナンスウィンドウにターゲットを割り当てる (コンソール)」を参照してください。

AWS 管理者

メンテナンスウィンドウにタスクを割り当てるには

  1. Systems Manager コンソールで、メンテナンスウィンドウを選択し、メンテナンスウィンドウを選択します。アクションを選択し、自動化タスクの登録を選択します。

  2. ドキュメント で、AWS-StopRdsInstance を選択します。

  3. 「ターゲット」セクションで、登録されたターゲットグループの選択を選択し、現在のメンテナンスウィンドウで登録したメンテナンスウィンドウのターゲットを選択します。

  4. レートコントロールでは、[同時実行数][エラーしきい値] に 100% を指定します。レートコントロールの値は、タスクの同時実行性とエラーしきい値の要件に応じて変更できます。詳細については、Systems Manager ドキュメントの「同時実行数とエラーのしきい値について」を参照してください。

  5. IAM サービスロールセクションのサービスロールでは、このボックスを空白のままにするか、独自のカスタムロールを作成します。ボックスを空白のままにすると、Systems Manager は自動的にサービスにリンクされたロールを作成しAWSServiceRoleForAmazonSSM 、そのロールをタスクに関連付けます。独自のカスタムロールを作成するには、「メンテナンスウィンドウのカスタムサービスロールを作成する (コンソール)」を参照してから、そのカスタムロールをタスクに関連付けます。

  6. [入力パラメータ] セクションで、ランブックの次のパラメータを指定します。

    • InstanceId: {{RESOURCE_ID}}

      注記

      ではInstanceId、 から Amazon RDS DB リソース ID を抽出するために擬似パラメータが使用されますARN。擬似パラメータの詳細については、Systems Manager ドキュメントの「擬似パラメータについて」を参照してください。

    • AutomationAssumeRole: Systems Manager Automation 用に作成したサービスロールARNの を指定します。

  7. [オートメーションの登録] タスクを選択します。

重要

サービスロールオプションは、メンテナンスウィンドウがタスクを実行するために必要なサービスロールを定義します。ただし、このロールは、以前に Systems Manager Automation 用に作成したサービスロールと同じではありません。

詳細と詳細な手順については、Systems Manager ドキュメントの「メンテナンスウィンドウへのタスクの割り当て (コンソール)」を参照してください。

AWS 管理者
タスク説明必要なスキル

Amazon RDS DB インスタンスを起動するようにメンテナンスウィンドウを設定します。

「メンテナンスウィンドウの設定」のステップを繰り返して Amazon RDS DB インスタンスエピックを停止し、別のメンテナンスウィンドウを設定して、スケジュールされた時間に Amazon RDS DB インスタンスを起動します。

重要

DB インスタンスを起動するようにメンテナンスウィンドウを設定するときは、次の変更を行う必要があります。

  • メンテナンスウィンドウに新しい名前 (「」などStartRdsInstance) を使用します。

  • cron 式を DB インスタンスの起動に使用したい cron 式に置き換えてください。

  • [タスク]AWS-StopRdsInstance ランブックを AWS-StartRdsInstance に置き換えます。

AWS 管理者

関連リソース