AWS

AWSのタグエディタを触ってみた

shumpei

はじめに

shumpeiです。

最近業務で、AWSのタグエディタを初めて使いました。とてもシンプルなツールですが、初見の際に分かりにくいと感じた部分が2つありました。この記事では実際にタグエディタを使いながら、この2つのポイントについて解説したいと思います。

タグエディタとは

タグエディタとは、AWSアカウント内にあるリソースを検索し、該当したリソースのタグを追加・削除・編集できるツールです。次のようなUIを持っています。
file

リソースの検索条件としては、リージョン、リソースタイプ(EC2インスタンス、S3バケットなど)、タグの3種類を指定できます。

冒頭で申し上げた、私が初見時に分かりにくいと感じたポイントはいずれも、タグを検索条件に指定した際の挙動に関するものです。具体的には、

  • AND検索、OR検索の仕組み
  • not taggedとempty valueの違い

です。実際のタグエディタの挙動を検証しながら、これらの挙動について理解を深めていきましょう。

検証準備

検証結果の説明に入る前に、今回作成した検証用リソースを説明します。次のようなタグを付けた、8つのEC2インスタンスを作りました。

インスタンス名(Nameタグ) teamタグ envタグ
sample1 backend dev
sample2 backend stg
sample3 backend prd
sample4 frontend dev
sample5 frontend stg
sample6 frontend prd
sample7 (値が空文字) dev
sample8 (teamタグ自体付けない) dev

AND検索、OR検索の仕組み

タグエディタでは複数のタグを指定した検索ができます。どのような時にAND検索になり、どのような時にOR検索になるでしょうか。結論を述べるとこうです。

  • 異なるキーのタグを複数指定した場合→AND検索。
  • 同じキーのタグを複数指定した場合→OR検索

実際に試してみましょう。

まずはAND検索からです。team: backendのタグと、env: devのタグを指定して検索します。
file
指定したタグが両方付いたEC2インスタンスのみが該当しました。

次にOR検索です。env: devenv: stgのタグを指定して検索します。

指定したタグのいずれかが付いているEC2インスタンスが全て該当しました。

次にAND検索とOR検索を組み合わせてみましょう。team: backendenv: devenv: stgのタグを指定して検索します。

team: backendが付いており、かつ、env: devenv: stgのいずれかが付いているEC2インスタンスが該当しました。

not taggedとempty valueの違い

さて、つづいてnot taggedとempty valueの違いを説明します。タグエディタでタグを指定て検索する際に、タグの値としてnot taggedとempty valueを指定できます。

似たような値に見えますが、文字通りの違いがあります。

  • not tagged→指定したキーのタグが付いていない。
  • empty value→指定したキーのタグは付いているが、値が空文字。

実際に試してみましょう。

まずは、team: (not tagged)を指定して検索します。

teamタグが付いていないEC2インスタンス・sample8のみが該当しました。

次に、team: (empty value)を指定して検索します。

teamタグは付いているもののその値が空文字のEC2インスタンス・sample7のみが該当しました。

ちなみに、team: (not tagged)team: (empty value)の両方を指定して検索するとどうなるでしょうか。OR検索となってsample7とsample8の両方が該当しそうですが、実際に試してみると……

なんと、teamタグが付いていないsample8しか該当しませんでした!!

もう少し調べてみましょう。
team: (not tagged)team: backendを指定して検索します。

結果はOR検索になりました。

team: (empty value)team: backendを指定して検索します。

こちらも結果はOR検索になりました。

team: (not tagged)team: (empty value)team: backendを指定して検索します。

team: (not tagged)team: backendを指定して検索した場合と同じ結果となりました。

どうやら、team: (not tagged)team: (empty value)の両方を指定した時のみ、team: (empty value)の指定を無視した検索となるようです。

おわりに

初見時に混乱しかけたタグエディタの挙動について、実際にタグエディタを動かしながら説明してみました。本記事が何かのお役に立てば幸いです。

AUTHOR
shumpei
shumpei
記事URLをコピーしました