リソースの名前について
今回の記事は、AWSのリソースをインターネット上で一意に識別するARNの話ではなく、利用者が扱うときに利用する名前についてのお話です。
実はほとんどのリソースにおいて、NameがKeyとなっているタグのValueがそのリソースの名前となっています。
確かに、KeyがNameでValueがhogehogeのリソースの名前が、hogehogeとなっています。
このように、リソースのNameは変更しなくても、タグの変更に紐づいてリソースのNameが変更されます。
ただし、全てリソースがそうではない
では、すべてのリソースの名前をNameというKeyのタグで管理できるかというと、そうではありません。
ロードバランサーを見ていきましょう。
こちらのロードバランサー(NLB)には、MyNetworkLoadBalancerというリソース名がついていますが、KeyがNameのタグのValueはhogehogeとなっています。
このように、すべてのリソースで「KeyがNameのタグのValue = リソース名」が成り立つではないので、要注意です。
ちなみに、気づいたきっかけはCloudFormationでした。
CloudFormationでNLBを作成した際に、Resourceの項目にNameとTagがありました。
Nameのvalueと、KeyがNameのタグのValueを同時に記入して作成したところ、このようにばらばらになっている状態で発見されてしまったという経緯です。
Nameの項目をつけず、KeyがNameのタグのみ記入した場合、リソース名はランダムにつけられてしまいます。
つまり、今回の場合はKeyがNameのタグとリソース名は完全に別のものだと言えそうです。
さらに、ロードバランサーは作成後に名前を変更することは不可能です。
名前を変更したい場合、同じ設定のロードバランサーを作成し、その際に希望する名前を使用して付け替えるしかありません......
間違えて覚えていくしかない
この他にもリソースごとに、他のリソースでは共通の仕様となっているが、当該のリソースには差異が見られることは割とあります。
いちいち事前にすべてを調べられないので、経験を積んでいくしかないのかなと思います。