はじめに
前の記事 で、CloudWatch で複数 AWS アカウントのメトリクスやログを管理するクロスアカウントオブザーバビリティの機能を紹介しました。ただ、クロスアカウントオブザーバビリティより前にも、クロスアカウントに関する機能が提供されていました。これらの機能との違いを確認するために、いままでのクロスアカウントに関する機能を触ってみます。
結論から書くと、クロスアカウントオブザーバビリティのみ有効にするだけで基本的には十分だとおもいます。既存のクロスアカウントに関する機能の優位点は以下の2点を感じました。
- スイッチロールの設定が自動的にされる
- ソースアカウント (管理される側) で、既に設定している Alarm を有効活用できる
また、クロスアカウントオブザーバビリティとクロスアカウント設定を両方とも利用することが出来ます。両方やってみるのも、クロスアカウントオブザーバビリティだけ有効化してみるも、馴染んだ方でやってみてもよいでしょう。
では、設定方法、および、どのように見えるか確認してみます。
ソースアカウント (管理される) 側
管理される側で Settings を開き、Cross-account cross-region views from any account の Configure を選択します。
Add account を押して、一元管理する側の AWS アカウントを選択します。
一元管理したい AWS アカウントの id を指定します。
Launch CloudFormation Template を押します。これにより、ソースアカウント (管理される側) で、IAM Role が作成されます。
Confirm を入力して、Launch template を押します。
Create Stack を押します。
この Stack により、IAM Role が作成されました。
次に、モニタリングアカウント側の設定をします。
モニタリングアカウント (一元管理) 側
Settings にある、Cross-account cross-region views from any account で、Configure を押します。
この環境では、Organizations を有効にしています。Organizations 配下の全ての AWS アカウントを管理対象にするため、AWS Organization account selector を選択し、Enable を押します。
これで準備完了です。どのように複数の AWS アカウントを管理できるのか見ていきましょう。
CloudWatch Alarm
CloudWatch Alarm の画面を表示します。画面上部に、表示したい AWS アカウントの一覧を選択できるようになっています。
ソースアカウント (管理される側) で既に設定しているアラームが見えます。
プルダウンで各 AWS アカウントを選択する側で、それぞれのデータが見える機能になっています。
Logs
この機能では、ソースアカウントの Logs は確認できません。前述の、クロスアカウントオブザーバビリティではログも見えるので、そちらの方がメリットがあります。
Metrics
プルダウンから、ソースアカウントを選択することで、それぞれの AWS アカウントのメトリクスがみえます。ただ、この機能と同等のことは クロスアカウントオブザーバビリティにもあります。
更に、クロスアカウントオブザーバビリティでは複数の AWS アカウントにまたいだダッシュボードの作成などができるため、基本的には クロスアカウントオブザーバビリティ 側で行うのが良いでしょう。
スイッチロール
この機能に優位性として、スイッチロールに関する設定が自動的に入っています。
sub1
見えなかった Logs などが確認できるようになっています。
検証してわかったこと
- スイッチロールが出来る用になっているので、便利
- 既存のソースアカウント (管理される側) で設定した既存の Alarm が見えるので便利
- クロスアカウントオブザーバビリティでは、既存の設定した Alarm は見えない。再設定することで一元管理は出来るが、再設定が手間な場面もありえる。
- クロスアカウントオブザーバビリティと一緒に設定すると、若干画面が混乱するので、上記の2点のメリットが感じられない場合は、クロスアカウントオブザーバビリティ単体で十分な印象。