AWS Systems Manager Maintenance Windows を使用して Amazon RDS DB インスタンスを自動的に停止および開始する - AWS 規範ガイダンス

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

AWS Systems Manager Maintenance Windows を使用して Amazon RDS DB インスタンスを自動的に停止および開始する

作成者: Ashita Dsilva (AWS)

環境:本稼働

テクノロジー: 管理とガバナンス、コスト管理、データベース

AWS サービス: AWS Systems Manager、Amazon RDS

[概要]

このパターンは、 AWS Systems Manager Maintenance Windows を使用して、特定のスケジュールで 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 つの機能があります。ステートマネージャーメンテナンスウィンドウ です。State Manager は、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 式。例えば、式は、毎週月曜日、火曜日、水曜日、木曜日、金曜日の 9:00 にタスクcron(0 9 ? * MON-FRI *)を実行します。詳細については、Systems Manager ドキュメントの「メンテナンスウィンドウの Cron 式とレート式」を参照してください。

  • 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 インスタンス用に作成したタグに基づいてリソースグループを作成します。

グループ化基準 で、リソースタイプに :::: を選択し、タグのキーと値のペア (「アクションStartStop」など) を指定します。 AWSRDSDBInstanceこれにより、サービスは 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 管理者

関連リソース