AWSリソースをタグ検索で特定するResource Groupsのマルチ構成管理術|VPC冗長設計に活用

運営:リナックスマスター.JP(代表 宮崎智広)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > AWS(Amazon Linux) > AWSリソースをタグ検索で特定するResource Groupsのマルチ構成管理術|VPC冗長設計に活用
「マルチAZで構築したEC2やサブネットが増えすぎて、後からどれがどの環境のリソースか分からなくなった」という悩みはよくあります。
AWSのリソース数が増えると、コンソールを目視で追うだけでは限界が来ます。タグを使ってリソースを素早く絞り込む仕組みを整えておけば、障害対応や構成変更のたびに「どのリソースだっけ」と探し回る手間がなくなります。

この記事では、AWS(Amazon Linux 2023 / Amazon Linux 2)環境を想定し、AWSタグ検索の基本からマルチAZ冗長設計への応用まで解説します。Tag Editor(GUIタグ管理ツール)・aws resourcegroupstaggingapi get-resources コマンド・Resource Groupsを組み合わせた、実践的なリソース管理術を紹介します。

この記事のポイント

・aws resourcegroupstaggingapi get-resources でタグ条件を指定してリソース一覧を取得できる
・Tag Editor はコンソールから複数リージョン・複数サービスを横断検索できるGUIツール
・Resource Groupsでタグ条件をグループ保存するとSystems Managerとの連携が容易になる
・マルチAZ設計では Environment / AZ / Service の3軸タグが運用効率を大きく向上させる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

AWSのタグとは何か、なぜタグ検索が必要なのか

AWSのタグとは、EC2・VPC・RDSなどあらゆるリソースに付与できるキーと値のペア(例: Environment=prod、Service=web)です。タグそのものはリソースの動作に影響しませんが、検索・フィルタ・コスト配分・IAMポリシーによる権限制御に幅広く活用できます。

リソースが数十台を超えると、タグが付いていないリソースは「誰が何のために作ったか分からない孤立リソース」になりがちです。特にマルチAZ(複数のアベイラビリティゾーンにまたがる冗長構成)ではサブネット・EC2・ALBなどが対になって作られるため、タグなしでの管理はすぐ破綻します。

Tag EditorでGUIからAWSタグ検索する手順

Tag EditorはAWSコンソールから操作できる、複数リージョン・複数サービスのリソースを横断してタグ検索できるGUIツールです。CLIを使わずにタグの棚卸しをしたいときに便利です。

1. Tag Editorを開く

AWSコンソール右上の検索バーで「Tag Editor」と入力するか、「Resource Groups & Tag Editor」サービスから「Tag Editor」を選択します。画面左メニューの「タグ付けの管理」→「Tag Editor」からも開けます。

2. リソースタイプとタグ条件を指定して絞り込む

・リージョン:検索対象のリージョンを選択(複数選択可)
・リソースタイプ:「AWS::EC2::Instance」「AWS::EC2::Subnet」など対象サービスを指定
・タグ:キーと値(例: Environment / prod)を入力して「リソースを検索」をクリック

「タグなし」にチェックを入れると、タグが一切付いていないリソースだけを抽出できます。タグ付け漏れの棚卸しに使えます。

3. 検索結果からタグを一括編集・CSV出力する

検索結果の一覧からリソースを選択し、「リソースのタグを管理」でタグをまとめて追加・変更・削除できます。「CSVへエクスポート」で結果をファイル保存すると、スプレッドシートでの棚卸しに活用できます。

AWS CLIでタグ検索する方法

シェルスクリプトや自動化フローに組み込む場合は aws resourcegroupstaggingapi get-resources コマンドを使います。

1. get-resources コマンドの基本構文

# タグキー「Environment」、値「prod」に一致するリソースをaws タグ検索する aws resourcegroupstaggingapi get-resources --tag-filters Key=Environment,Values=prod --region ap-northeast-1

出力例(環境により異なります):

{ "ResourceTagMappingList": [ { "ResourceARN": "arn:aws:ec2:ap-northeast-1:123456789012:instance/i-0abcd1234efgh5678", "Tags": [ {"Key": "Environment", "Value": "prod"}, {"Key": "Service", "Value": "web"} ] } ] }

2. リソースタイプを指定してVPC関連リソースだけ取得する

# EC2サブネットのみに絞り込んでタグ検索する aws resourcegroupstaggingapi get-resources --tag-filters Key=Environment,Values=prod --resource-type-filters ec2:subnet --region ap-northeast-1

--resource-type-filters には ec2:subnet、ec2:instance、rds:db、elasticloadbalancing:loadbalancer などサービス名:リソースタイプ形式で指定します。

3. jqと組み合わせてリソースARNだけ抽出する

# タグ検索結果からリソースARNのみをリスト出力する aws resourcegroupstaggingapi get-resources --tag-filters Key=Environment,Values=prod --region ap-northeast-1 | jq -r '.ResourceTagMappingList[].ResourceARN'

出力例(環境により異なります):

arn:aws:ec2:ap-northeast-1:123456789012:instance/i-0abcd1234efgh5678 arn:aws:ec2:ap-northeast-1:123456789012:subnet/subnet-0abc1234 arn:aws:rds:ap-northeast-1:123456789012:db:mydb-prod

このARNリストをシェルスクリプトの入力として使えば、タグでフィルタしたリソースへの一括操作を自動化できます。Amazon LinuxでAWS CLIを活用する基礎については、Amazon Linux実践活用入門もあわせてご覧ください。

Resource Groupsでタグ検索結果を管理グループとして保存する

毎回タグ検索コマンドを打つのではなく、よく使う検索条件を「リソースグループ」として保存しておくと、コンソールやSystems Managerからまとめてリソースを操作できます。

1. クエリベースのリソースグループを作成する

AWSコンソールの「Resource Groups & Tag Editor」→「リソースグループの作成」で、タグベースのグループを定義します。

・グループタイプ:「タグベース」を選択
・タグ条件:例として Environment=prod、Service=web を指定
・グループ名:例として prod-web-servers のように命名

CLIから作成する場合は次のコマンドを使います。

# タグ条件を指定してリソースグループを作成する aws resource-groups create-group --name prod-web-servers --resource-query '{"Type":"TAG_FILTERS_1_0","Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Environment\",\"Values\":[\"prod\"]},{\"Key\":\"Service\",\"Values\":[\"web\"]}]}"}'

2. Systems Managerと連携してパッチ適用範囲を絞り込む

作成したリソースグループは、AWS Systems Manager(SSM)のパッチマネージャーやセッションマネージャーで「対象グループ」として指定できます。例えば「prod-web-servers」グループにのみパッチ適用を実行することで、開発環境のEC2を誤って更新するリスクを防げます。

マルチAZ冗長設計でのタグ設計パターン

マルチAZ構成では、同じアプリケーションを複数のAZ(アベイラビリティゾーン)に分散配置するため、タグなしでは「どのAZのリソースか」が一目でわかりません。次の3軸タグを標準セットとして設計すると管理しやすくなります。

・Environment:prod / stg / dev(環境を識別。コスト配分・権限制御の基本軸)
・AZ:ap-northeast-1a / ap-northeast-1c(冗長化されたリソースのAZを識別)
・Service:web / db / cache(アプリケーション層を識別)

例えば ap-northeast-1a ゾーンの本番DBサブネットには Environment=prod、AZ=ap-northeast-1a、Service=db の3タグを付与します。障害時にどちらのAZが影響を受けているかを aws タグ検索で素早く絞り込めます。

VPC設計でのタグ活用では、VPC IDをタグ値として持つパターンも有効です。例えば VPC=vpc-0abc1234 タグを付けておくと、特定VPC配下の全リソースをタグ検索1コマンドで取得できます。

タグ検索で「リソースが見つからない」時の対処法

タグが付いていないリソースはヒットしない

タグ検索はあくまでタグを付与済みのリソースが対象です。古いリソースや手動作成のリソースにはタグが付いていないことがあります。Tag Editorの「タグなし」フィルタでタグ未付与リソースを棚卸しし、まとめてタグを追加する運用が有効です。

タグキーは大文字・小文字を区別する

AWSのタグキーと値は大文字・小文字を厳密に区別します。environment=prod と Environment=prod は別のタグとして扱われます。組織内で命名規則を統一しないと、検索条件が合わずヒット0件になります。

リソースタイプの指定形式が誤っている

--resource-type-filters の指定形式が誤っていると結果が空になります。正しい形式は サービス名:リソースタイプ(例: ec2:instance)です。ec2:Instance のように大文字を混ぜるとエラーになる場合があります。

本記事のまとめ

やりたいこと 使うツール・コマンド
コンソールGUIでAWSタグ検索・棚卸し Tag Editor(Resource Groups & Tag Editorサービス)
CLIでタグ条件のリソースを取得 aws resourcegroupstaggingapi get-resources --tag-filters Key=xxx,Values=yyy
特定サービスのリソースだけ絞り込む aws resourcegroupstaggingapi get-resources --tag-filters Key=xxx,Values=yyy --resource-type-filters ec2:subnet
タグ検索条件をグループとして保存 Resource Groups(クエリベースのグループ作成)
パッチ適用対象をタグで制御 Resource Groupsのグループ → Systems Managerで指定
タグなしリソースを特定する Tag Editorの「タグなし」フィルタ
マルチAZ冗長設計では「Environment / AZ / Service」の3軸タグを標準化するだけで、障害対応・コスト配分・権限制御がまとめて改善します。まずはTag Editorでタグ未付与リソースを棚卸しし、命名規則を整えるところから始めましょう。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、AWSを含むLinux実践スキルを2日間で習得できるセミナーを開催しています。20年以上・3,100名以上の指導実績をもとに設計したカリキュラムで、現場で即戦力になる「型」を習得できます。
>> Amazon Linux実践活用入門の詳細はこちら

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

運営

リナックスマスター.JP(代表 宮崎智広)

株式会社イーネットマーキュリーが運営するLinux教育サイトです。代表の宮崎智広は現役のLinuxサーバー管理者として20年以上の実務経験を持ち、累計3,100名以上のエンジニアを指導してきました。実践型のLinuxセミナーや無料マニュアルの配布を通じてLinux人材の育成に取り組んでいます。