🦅

クロスアカウントオブザーバビリティについて

2024/02/02に公開

ページ概要

AWSのモニタリングの集約の実装が必要なため クロスアカウントオブザーバビリティ について調査を行う

クロスアカウントオブザーバビリティ とは

1つのアカウントで複数アカウントのCloudWatchへアクセスできる。
例:CloudWatchLogsのロググループ一覧にリンクしたアカウントのロググループが表示される

アカウントの境界をなくし、リンクされたあらゆる以下のアカウント毎の共有情報をシームレスに検索、可視化、分析できる。

  • Amazon CloudWatch のメトリクス
  • Amazon CloudWatch Logs のロググループ
  • AWS X-Ray のトレース
  • Amazon CloudWatch Application Insights のアプリケーション

主要情報(用語,料金等)

モニターリングアカウント

共有される側のアカウントを指す。
原則それ専用のアカウントという位置付けが望ましい。

ソースアカウント

データを共有する側のアカウントを指す。
各プロダクト毎のアカウントがそれに該当する。

料金

CloudWatch のクロスアカウントオブザーバビリティでは、ログとメトリクスの追加コストは発生せず、最初のトレースコピーも無料 => 料金ページ

この記事の条件

AWS Organizationは使用しないSync方式をとる。
この場合の主な制限は以下 (他にも有る )

  • 各モニターリングアカウントは、最大 100,000 個のソースアカウントにリンクできる
  • 各ソースアカウントは、最大 5 個のモニターリングアカウントとデータを共有できる

本手順は管理者ユーザ(FullAccess)で実施する。
一般ユーザで実施する場合、特殊な権限が必要なためあらかじめ付与する必要がある。

使用した感想

一旦1つのアカウントをリンクさせた状態での評価である。

簡単にリンクが出来て感動

特に難しい設定する必要なく

共有の種類は選べるが共有対象は選べない

モニターリングアカウント側の管理がクソな場合は見づらくなる。
例えばCloudWatchLogsの共有をした場合、モニターリングアカウントの全てのLogsが出力される。
不要な使われていないCloudWatchLogsも全部表示されることになる。
「/ecs/app」の様な共有対象を選択することまでは不可能。

CloudWatchLogsのロググループ名は設計した方が良い

前述の通り全てリンクされるため、フィルタが必須。
「/{アカウント名}/ecs/app/」の様にアカウントやプロダクトを紐づける情報をパスに入れると分類が楽だと考える。

手順概要

参考ページは以下のページを参考にすると良い。(手順が既にあるのに作るのは無駄)
手順概要/要点のみを絞って記述する。
以下の「AWS Documents」でリンクできたことを確認済みである

モニターリングアカウントをソースアカウントにリンク

文字通り、モニターとソースアカウントの紐付けを行う

モニターリングアカウントを設定

モニター側の設定とソース側へ必要な情報(Cfnファイル)の取得を行う.

  1. ソースアカウントに対して共有対象の(Cloudwatchの)リソースを選択する
  2. ソースアカウントIDの登録
  3. AWS CloudFormation テンプレートまたは URL をダウンロード及び「URL」をコピーする

ソースアカウントをリンクする

ソースアカウント側への設定を行う。
ここでの要点は「Organizationを用いた方式」か、「アカウント個別で設定する方式」かによって方法が異なる。
本ページは「アカウント個別で設定する方式」で「URLを使用して個別のソースアカウントを設定する」をベースに記述する。

  1. ソースアカウントにログイン
  2. ブラウザにURLを入力する
  3. 一通り設定された画面が表示される
  4. 必要に応じて設定(モニターリングへ共有するデータ等)を変える(sync arnは変更しないこと)
  5. 「リンク」を押す

その他の手順

AWS Documentを参照

  • ソースアカウントにさらにモニターリングアカウントを追加(各ソースアカウントは、最大5つリンク可能)
  • モニターリングアカウントとソースアカウント間のリンクを削除する
  • モニターリングアカウントに関する情報を表示する

Discussion