インフラ

AWS Instance Schedulerをクロスアカウントで使う

Instance Scheduler

こんにちは、ちゃりおです。

簡単にEC2やRDSのスケジュールした自動起動・停止ができるので、AWS Instance Scheduler便利ですよね。

環境ごとにアカウントを分けてAWSを使用しています。
一元管理したかったので、Instance Schedulerをクロスアカウントで実行する必要がありました。

公式サイトに載っていた情報です。
英語しかなかったので、スクショ等混ぜつつ日本語で説明します。

Contents

やりたいこと

アカウントAにInstance Schedulerを作成。
アカウントBでも、アカウントAのInstance Schedulerを使って自動起動・停止を行う。

アカウントBでIAMロールを作って、アカウントAのInstance Schedulerに紐付けます。

AWS Instance Scheduler Automated Deployment

アカウントAにInstance Schedulerをデプロイ

アカウントAにInstance Scedulerを作成します。

AWSが用意しているCloudformatinを実行するだけで、作成できます。
Cloudformationの実行は、マネジメントコンソール>Cloudformation>スタックの作成からできます。

https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/instance-scheduler.template
schduler deploy

アカウントBでInstance Scheduler用のIAMロールを作成

アカウントBでIAMロールを用意します。
先ほどと同様に、Cloudformationが用意されているので実行するだけです。

https://s3.amazonaws.com/solutions-reference/aws-instance-scheduler/latest/instance-scheduler-remote.template

アカウントIDは、InstanceSchedulerのCloudformationの出力>AccountIdからも確認できます。

iarmrole

スタックができたら、出力> CrossAccountRoleの値をメモしておきます。

アカウントAのInstance Schedulerで作成したクロスアカウントロールを紐付ける

アカウントAに戻ってInstance Schedulerのスタックを選択し、スタックの更新か変更セットの作成を行います。

パラメータの「Cross-account roles」を先程メモした値に書き換えます。
スタックを更新したら完了です。

複数のIAMロールを指定したい場合は、カンマで区切ります。

これでアカウントBのインスタンスにもアカウントAのInstanceSchedulerで自動起動・停止ができるようになります。

まとめ

今回は、InstanceSchedulerについてでした。
クロスアカウント環境でも、簡単な設定で使えるので便利ですね。

インスタンスの自動起動・停止の仕組みを自分で用意するのは面倒なので
InstanceScheduler活用していきたいです。

aws es 推奨
Amazon ElasticSearch Searviceの推奨構成についてこんにちは、ちゃりおです。 AWSのElasticSearchを使っているのですが、たまにトラブルが発生していました。 (データノード...
Sysops
運用経験なしでも取れるAWS認定 SysOps(改訂版)の勉強法最近改訂された、AWS SysOpsの勉強法をまとめてみました。 対象 AWSソリューションアーキテクトアソシエイトの勉強法・概要...
Lambda使わなくてもよくなったこと
[AWS]自分でLambda用意しなくてもよくなったことこんにちは、ちゃりおです。 みなさん、Lambda使ってますか。 Lambdaはサーバレスのアプリケーション開発以外にも、cronぽい...