タグでリソースを整理する

AWSBeginner
オンラインで実践に進む

はじめに

レポート作成チームは、設定名が異なっていても、チームと環境でテスト用設定を見つけたいと考えています。所有者のタグを追加し、誤った環境ラベルを見つけて、保存済みの設定を変更せずに修正します。

最初に、作業環境、リージョン別リソース、CLI クエリの実験を完了してください。ツールと四つのリソースは新しい環境に準備済みです。Terminal で作業し、隣の AWS View で同じタグとフィルター結果を観察します。

認定試験との関連

このラボでは、次の試験トピックに関連する実践的な演習を行います。

財務部門のエクスポート設定にラベルを付ける

このステップでは、財務部門のエクスポート用パラメーターに、チームと環境のラベルを付けます。

前の実験では、共通の名前のプレフィックスでリソースを見つけました。名前が常にチームや環境を表すとは限りません。タグは、owner=finance や environment=staging のように、独立したキーと値をリソースに追加します。これらのラベルを使うと、名前を変えずに関連するリソースを見つけられます。

リソース名、保存された値、分類用タグは異なる目的を持つ

概念図:タグはリソースを説明します。保存された値の書き換え、リソースの移動、アクセス権の付与は行いません。

作業ディレクトリから始めます。前の実験と同じく、準備済みのデフォルトリージョンは us-east-1 です。

cd /home/labex/project

パラメーターを一覧表示します。

aws ssm describe-parameters

説明を読んでください。/labex/tagging/export-format と /labex/tagging/archive-format は、テストに使う財務部門のステージング設定です。二つの /labex/reference/ リソースは他のチームのものです。変更せずに残してください。

タグの操作では、リソースの種類と名前を指定します。パラメーターでは --resource-type Parameter を使い、--resource-id に完全な名前を指定してください。エクスポート設定のタグを確認します。

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/export-format

TagList は [] です。このリソースにはまだタグがありません。二つのラベルを追加します。それぞれの Key=...,Value=... が一つのタグを指定し、スペースで区切ります。

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/export-format --tags Key=owner,Value=finance Key=environment,Value=staging

キーは示されているとおりに小文字を使ってください。タグは大文字と小文字を区別します。書き込みが成功しても通常は何も表示されません。結果を読み取ります。

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/export-format

両方のラベルが表示されます。Terminal の隣の AWS View をクリックしてください。エクスポート設定は財務部門のステージングの選択結果に含まれます。保存された値は csv のままです。

所有者でリソースを見つける

このステップでは、アーカイブ設定に所有者を追加し、タグフィルターで財務部門の両方のリソースを見つけます。

アーカイブも財務部門に割り当てられています。他のタグを変更せずに、所有者のラベルを追加します。

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/archive-format --tags Key=owner,Value=finance

タグの一覧全体を読み取ります。

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/archive-format

owner=finance と、既存の environment=production タグが表示されるはずです。説明にはステージング用の設定と書かれていました。この不一致を、次のステップに向けて覚えておいてください。

前の実験のフィルターの形式を使い、今度はタグを照合します。Key=tag:owner は owner タグを選び、Option=Equals は値の完全一致を求めます。

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance --query 'Parameters[].Name'

財務部門の両方の名前が表示されます。人事部門とプラットフォームチームは、この選択に含まれません。ラベルは自分が指定した事実を表します。サービスがチームの所有者や環境を自動で判断するわけではありません。

環境ラベルを修正する

このステップでは、アーカイブの誤った環境ラベルを修正し、財務部門のステージングの選択結果を完全な状態に戻します。

チームだけの一覧には、財務部門の両方のリソースが含まれます。テスト用設定を見つけるには、owner=finance と environment=staging の両方のタグを条件にします。二つのフィルターをスペースで区切って指定します。

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance Key=tag:environment,Option=Equals,Values=staging --query 'Parameters[].Name'

エクスポート設定だけが表示されます。アーカイブは存在しますが、誤った production タグによってこの表示から除外されています。

所有者と環境の両方に一致するリソースだけが選択した一覧に入る

概念図:一致しないリソースは結果に含まれないだけで、削除されたわけではありません。

ラベルを修正する前に、アーカイブに保存されたデータを確認します。

aws ssm get-parameter --name /labex/tagging/archive-format

値は json、Version は 1 です。リソース一覧の説明では、財務部門のステージング用アーカイブ設定とされています。同じ追加操作で環境タグを修正します。既存のキーを指定すると、その値が置き換わり、他のタグはそのまま残ります。

aws ssm add-tags-to-resource --resource-type Parameter --resource-id /labex/tagging/archive-format --tags Key=environment,Value=staging

既存のテスト用リソースに合うようラベルを修正しているのであり、本番アプリケーションをステージングに移動しているわけではありません。ラベルを読み取ります。

aws ssm list-tags-for-resource --resource-type Parameter --resource-id /labex/tagging/archive-format

所有者と環境の両方が、今回のタスクに一致しました。もう一度選択を実行します。

aws ssm describe-parameters --parameter-filters Key=tag:owner,Option=Equals,Values=finance Key=tag:environment,Option=Equals,Values=staging --query 'Parameters[].Name'

財務部門の両方の名前が表示されます。保存されたデータをもう一度読み取ります。

aws ssm get-parameter --name /labex/tagging/archive-format

名前、ARN、json の値、Version 1 は変わっていません。AWS View では、両方のリソースが財務部門のステージングに表示され、他のチームのリソースもそのまま残っています。

財務部門の両方の設定が正しい staging 分類を持つ

結果の例:ラベルの変更によって、どちらの設定も書き換えずに選択結果を元に戻せます。

自分の練習用リソースだけを削除する

このステップでは、割り当てられた財務部門の二つのパラメーターを削除し、参照用リソースが残っていることを確認します。

タグはリソースを見つけるのに役立ちますが、編集可能です。削除には、この演習で指定された二つの正確な名前を使います。

aws ssm delete-parameters --names /labex/tagging/export-format /labex/tagging/archive-format

両方の名前が DeletedParameters に表示され、InvalidParameters は空になるはずです。

タグとは独立して、名前で存在しないことを確認します。

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/tagging/ --query 'Parameters[].Name'

成功した応答は [] です。失敗したリクエストでは削除を証明できません。残ったリソース一覧を読み取ります。

aws ssm describe-parameters --query 'Parameters[].Name'

/labex/reference/hr-format と /labex/reference/platform-team だけが残ります。AWS View にも同じ参照用リソースが表示され、財務部門のステージングに一致するものはありません。完了チェックは、それらの値とタグが変わっていないことも読み取ります。

次の「リソース一覧に見つからないリソース」では、このコースで学んだリージョン、クエリ、タグのスキルを使って、同様の選択問題を自力で診断します。

まとめ

所有者と環境のタグを追加し、チームでリソースを選び、二つの条件を組み合わせてテスト用設定を見つけました。誤った環境タグによって、存在するリソースがフィルター結果から隠れていました。タグを修正すると、保存されたデータを変えずに選択結果を元に戻せました。

その後、自分の二つの練習用リソースだけを削除しました。「リソース一覧に見つからないリソース」に進み、これらのスキルを独立した復旧タスクで使ってください。