AWS Backupでタグに空白を含む場合に、期待通りに動かなかったときの原因と対処

2023.08.14

こんにちは、ゲームソリューション部のsoraです。
今回は、「AWS Backupでタグに空白を含む場合に、期待通りに動かなかったときの原因と対処」について書いていきます。

発生した事象

AWS Backupにて、EC2を対象としてNameタグにtestを含まないものを対象にバックアップを取るように設定しました。
リソースとして存在するEC2は以下です。
期待値としては、Nameタグにtestを含むkong testのバックアップは取らず、redmine-newrelic-amiのみのバックアップを取得することです。
しかし、実際の動作としては、Nameタグにtestを含むkong testのバックアップも取得されていました。

期待通りでなかった原因

Nameタグにて空白で文字列を区切っている場合、2つのタグに分かれて判定されているのではないかと思い、以下設定で試してみました。
しかし、結果は先ほどと変わらずバックアップ対象から除外できませんでした。

次に、空白を含めた形(" test")で設定して試してみました。
こうすると、kong testはバックアップ対象から除外することができました。
結論として、空白に対してワイルドカードが上手く判定できないのかなと思いました。

期待通りにするための対処

前述したように空白を含めて指定すれば対処可能ですが、色々とデメリットがあると感じました。
バックアッププランのリソースの割り当てを、複数設定した場合はOR条件であることによる影響があります。
例えばバックアップ対象として、「Nameタグに"test"を含まない条件」と「Nameタグに" test"を含まない条件」の2つのリソースの割り当てがあった場合には、Nameタグa testのリソースが前者の条件に引っかからないためバックアップの対象になります。

前者の条件を消した場合だと、a-testのような空白はないがtestを含む場合は当然条件に引っかからず、バックアップの対象になります。

別の対処としては、そもそもNameタグに空白を使わないことです。
こちらの方がAWS Backupの運用は楽になると思います。

最後に

今回は、「AWS Backupでタグに空白を含む場合に、期待通りに動かなかったときの原因と対処」を記事にしました。
どなたかの参考になると幸いです。