🌟

リージョン問わず横断的なリソース検索・検出ができるAWS Resource Explorerを調べて使ってみた

2022/12/22に公開

この投稿は コネヒトアドベントカレンダー の22日目の投稿です。
本日はAWSでまだ触れたことのなかったサービスの1つであるAWS Resource Explorerについて調べて実際に使ってみた内容について取り上げます!

AWS Resource Explorerとは

AWS Resource Explorer はリソースの検出および検索サービスです。リージョンを跨いだ形で横断的にそれらの操作を行うことができます。

いくつかポイントをまとめると以下のような内容です。

  • 名前、タグ、ID などのリソースメタデータを使用し検索できる
  • インターネット検索エンジンのような操作性
  • アカウント全体で機能
  • クロスリージョンでのワークロードが簡素化
  • 追加料金はなし

用語と概念

AWS Resource Explorerを利用する上で、前段として知っておく必要のある用語と概念についてまとめておきます。(詳細はAWS公式ドキュメントの 用語と概念 を参照)

内容は次の通りです。

  • リソースエクスプローラー管理者
    • AWS Resource Explorerに対する全ての権限を持っているユーザーのこと(AWSマネージドポリシーでいう AWSResourceExplorerFullAccess 相当の権限を持つユーザー)
  • リソースエクスプローラーユーザー
    • ビューを使用し、リソースエクスプローラーにクエリを実行し、リソースを検索したり、ビューを作成したりできるユーザーのこと
  • インデックス
    • AWSアカウントが持つ全てのリソースに関する情報のコレクション
    • リージョンごとに設定する
    • ビューを使用してクエリを実行する
    • インデックスは2種類存在する
      • ローカルインデックス
        • 同じリージョンのリソースに関する情報のみ保存するインデックス
      • アグリゲーターインデックス
        • アカウント内で有効になっている全てのリージョンのインデックスのコピーを受け取って保存するインデックス
    • インデックスはARNを持つリソースである
      • 例:arn:aws:resource-explorer-2:us-east-1:123456789012:index/1a2b3c4d-5d6e-7f8a-9b0c-abcd11111111
  • ビュー
    • インデックスに保存されているリソースをクエリするために使用する
    • インデックス内のどの情報を表示するか、検索や検出に使用できるかを定義する
    • ユーザーはリソースエクスプローラーのインデックスを直接クエリすることはなく、このビューを経由して使用される
    • ビューはリージョンごとに保存される。従ってアグリゲーターインデックスを含むリージョンのビューを除きそのリージョン内のインデックスしかアクセスできない
    • ビューもARNを持つリソースである
      • 例:arn:aws:resource-explorer-2:us-east-1:123456789012:view/My-View-Name/1a2b3c4d-5d6e-7f8a-9b0c-abcd11111111
  • リソース
    • ユーザーが操作できるエンティティ
    • いわゆるAWSリソース(EC2インスタンス、S3バケット等々)のこと

ここで、あまり馴染みのないインデックスやビューについて少し補足をしておきます。

インデックスとビューの関係性について

インデックスはリソース情報をもつコレクションのデータそのものになります。対してビューは検索を実行するユーザーのためのインターフェースとして機能するものというイメージです。 Introducing AWS Resource Explorer – Quickly Find Resources in Your AWS Account のブログ記事の図解が分かりやすいです。(※以下、当ブログより引用した画像を転載)

https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2022/10/28/resource-explorer-local-index-2-1024x175.png

ローカルインデックスとアグリゲーターインデックスの関係性について

基本的にリージョン単位でインデックスは作成されます。このリージョンに閉じたインデックスをローカルインデックスとして取り扱いますが、そのリージョン毎に散らばったインデックスを複製し、一箇所に集約し取り扱えるようにしたものがアグリゲーターインデックスです。このアグリゲーターインデックスは1アカウントにつき1つしか作成できません。あらゆるリージョンの中からどこかのリージョンで各ローカルインデックスの集約を担うアグリゲーターインデックスを設定すれば良いという感じです。

(※以下、こちらも Introducing AWS Resource Explorer – Quickly Find Resources in Your AWS Account より画像転載)

https://d2908q01vomqb2.cloudfront.net/da4b9237bacccdf19c0760cab7aec4a8359010b0/2022/11/02/resource-explorer-aggregator-index-1024x425.png

使い方

クイックセットアップ

セットアップには、クイックセットアップと詳細設定によるセットアップの2種類があるそうですが、今回はクイックセットアップを使用していきます。

コンソールからAWS Resource Explorerの作成画面へと移動します。

セットアップのタイプを選び、必要な設定を入力します。(今回は高速セットアップを選びました)

アグリゲーターインデックスリージョンには東京を指定しました。

Resource Exploerを有効化すると自動で全てのリージョンにインデックスが作成されました。

リソースの検索画面に進むと以下のようなインターフェースで検索画面が用意されています。
検索条件は、ビューとクエリで指定できるようになっている模様です。

ビューに関しては、デフォルトで作成されたビューが選択できるようになっていました。

リージョンとリソースタイプでフィルターがかけられるようになっているようです。

歯車マークから表示項目や表示数等のカスタマイズも行える模様です。

インデックスの設定

設定のメニューからはインデックスの操作が行えます。インデックス作成を触ってみます。

が、今回は高速セットアップを設定していた、すなわち全リージョンでインデックス作成されていたため、そのままの状態であらたにインデックス作成をすることはできませんでした。もし、詳細設定によるセットアップを選択していた場合は全リージョンでのインデックス作成などは実行されないと思うので、下記のチェックボックス覧から任意のリージョン選択を行いインデックス作成ができそうです。

アグリゲーターインデックスの変更も行えるようだったのでやってみます。

ソウルリージョン(ap-northeast-2)をアグリゲーターインデックスにしてみます。

が、エラーとなり、変更できませんでした。エラーメッセージを読み、よく考えると1アカウントにつき、1アグリゲーターインデックスしか作成できないというルールであったため、先にアグリゲーターインデックスとして設定しているリージョンをローカルインデックスに降格させる必要がありそうです。

東京リージョン(ap-northeast-1)を降格させました。

ソウルリージョン(ap-northeast-2)を昇格させます。

別のエラーで失敗しました。

86400秒のクールダウン、すまわち1日おかなければインデックスの種類の更新は行えないという仕様となっている様でした。しかし、エラーの内容的に時間さえおけば再度同じ操作をした際に更新が行えそうです。(本記事では試しませんでした。)

ビューの設定

ビューのメニューからはビューの設定が行えるようです。試しにビューを作成してみます。

任意の名前がつけられ、またリソースフィルタもあらかじめ設定しておけるみたいです。

今回は service:ec2* region:ap-northeast-1 という条件で、東京リージョンに存在する全てのEC2関連リソースでフィルターしてみました。

ビューを作成し、検索画面にて作成したビューを使用したところしっかりと絞りこまれていました。

フィルタークエリなどは、 リソースエクスプローラーの検索クエリ構文リファレンス が参考になりそうです。タグなども使用できるので活用するとより柔軟な管理ができて便利そうです。

おわりに

今回は、AWS Resource Explorerをとりあげてみました。今までナビゲーションバーからリージョンを切り替えてリソースへアクセスしていた導線などもカットでき、また俯瞰してアカウント内の全てのリソースを見ることができるので、便利だと思います。みなさんも機会があれば是非使ってみてください。

Discussion