AWSのEBSスナップショットの説明に「from」記述がなくなった件について


何が起こった?

全くの偶然で、AWSのEBSスナップショットに関する一つの仕様変更に気づきました。

EC2インスタンスからAMIを作成する際に、AMIにアタッチされるスナップショットも同時に生成されます。そして下記スクリーンショットが示しているように、当該スナップショットの説明については、今まで from vol-xxxxxxxx の文言が記載されていたところ、いつの間にかこの文言が消えてしまいました。

ちなみに、2021/3/15現在、私が持っている2つのAWSアカウントにて検証したところ、両方ともこの事象が発生していることを確認できました。

何がいけないの?

一見どうでもいい仕様変更になりますが、場合によって結構大きな問題を引き起こす可能性があります。

実は、私が管理しているAWSアカウントで、下記の記事を参考し、AMIを登録解除するときに、そのAMIにアタッチしているスナップショットも自動的に削除する機構を用意しております。
AMI登録解除時の、スナップショット自動削除を設定してみた

この機構におけるLambda関数の一部として、以下のコードが実装されています。

sample.py
# 削除対象のスナップショットを取得
response = client.describe_snapshots(
        Filters=[
            { 'Name': 'description',
              'Values': [ 'Created by CreateImage(*) for ' + image_id + ' from *',
               ]
            }
         ]
    )

つまり、 from * がdescriptionの値として含まれていることがフィルター条件になっていますが、今回の仕様変更によって、 本来抽出できるはずのスナップショットが抽出できなくなります 。その結果、気づいていない間に不要なスナップショットがどんどん溜まってしまって、無駄な料金が発生してしまいます。

じゃあどうすれば良いの?

フィルター条件を下記のように修正し、 from の記述を除外します。

sample.py
'Created by CreateImage(*) for ' + imageID + '*'

最後に

こちらのAWSアカウントにおけるスナップショットの蓄積状況から見ると、この事象はおおよそ2021年2月中旬頃から発生した模様です。

正直この事象はAWS側が意図した仕様変更なのか単純な不具合なのか分からず、ググっても関連する記事が全く見つかりませんでした。

ただ、ものすごく軽微な変更であっても、今回みたいに余剰コストの発生に直結する可能性もあるので、似たような方法でスナップショットの抽出を行っている方は、今一度動作確認をしてみましょう。