[AWS] ELB와 EC2의 tag:Name 사양 차이점

세세한 점입니다만, EC2와 ELB의 소위 「Name 태그」의 사양에 차이가 있었으므로 정리해 둡니다.

EC2의 경우



콘솔에서 EC2를 확인하면 목록과 "태그"탭에서 두 개의 "이름"을 볼 수 있습니다. EC2에서 이 두 가지는 동일합니다.



이것은 엔티티로서는 태그이며, describe-instances 명령으로 확인할 수 있습니다.
$ aws ec2 describe-instances --region eu-west-3 | jq -r '.Reservations[] .Instances[] .Tags[]'
{
  "Value": "bastion-ec2",
  "Key": "Name"
}

갱신하고 싶은 경우는, create-tags 커멘드로 (조금 위화감이 있습니다만) 덮어쓸 수 있습니다.
$ aws ec2 create-tags --region eu-west-3 --resources i-02axxxxxxxxxxxxx --tags Key=Name,Value=name-update-test

콘솔에서 둘 다 업데이트되는지 확인할 수 있습니다.



ELB의 경우



콘솔에서 ELB를 확인하면 목록에 "이름"이 표시되고 "태그"탭에 "이름"이 표시됩니다. EC2와 비슷한 표시이지만 ELB에서는 이들은 별도입니다.



"이름"은 로드 밸런서 이름(LoadBalancerName)에서 describe-load-balancers 명령으로 확인할 수 있습니다. "이름"은 태그이고 describe-tags 명령으로 확인할 수 있습니다.
$ aws elb describe-load-balancers --region eu-west-3 | jq -r '.LoadBalancerDescriptions[] .LoadBalancerName'
internal-elb
$ aws elb describe-tags --region eu-west-3 --load-balancer-names internal-elb
{
    "TagDescriptions": [
        {
            "Tags": [
                {
                    "Value": "this-is-name-tag",
                    "Key": "Name"
                }
            ],
            "LoadBalancerName": "internal-elb"
        }
    ]
}

로드 밸런서 이름(LoadBalancerName)은 작성 후 업데이트할 수 없습니다. 태그는 EC2와 마찬가지로 add-tags 명령으로 덮어쓸 수 있습니다.
$ aws elb add-tags --region eu-west-3 --load-balancer-names internal-elb --tags Key=Name,Value=tag-update-test
$ aws elb describe-tags --region eu-west-3 --load-balancer-names internal-elb
{
    "TagDescriptions": [
        {
            "Tags": [
                {
                    "Value": "tag-update-test",
                    "Key": "Name"
                }
            ],
            "LoadBalancerName": "internal-elb"
        }
    ]
}

콘솔에서도 태그에서만 업데이트되었음을 ​​확인할 수 있습니다.



ALB 또는 NLB의 경우



ALB(Application Load Balancer) 또는 NLB(Network Load Balancer)의 경우도 같은 동작이 됩니다. awscli는 elbv2 명령으로 확인할 수 있습니다.

이름 및 태그 확인:
$ aws elbv2 describe-load-balancers --region ap-northeast-1 | jq -r '.LoadBalancers[] .LoadBalancerName'
internal-elb
$ aws elbv2 describe-tags --region ap-northeast-1 --resource-arns arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxx:loadbalancer/net/internal-elb/xxxxxxxxxx
{
    "TagDescriptions": [
        {
            "ResourceArn": "arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxx:loadbalancer/net/internal-elb/xxxxxxxxxx",
            "Tags": [
                {
                    "Value": "this-is-name-tag",
                    "Key": "Name"
                }
            ]
        }
    ]
}

태그 변경:
$ aws elbv2 add-tags --region ap-northeast-1 --tags Key=Name,Value=tag-update-test --resource-arns arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxx:loadbalancer/net/internal-elb/xxxxxxxxxx
$ aws elbv2 describe-tags --region ap-northeast-1 --resource-arns arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxx:loadbalancer/net/internal-elb/xxxxxxxxxx
{
    "TagDescriptions": [
        {
            "ResourceArn": "arn:aws:elasticloadbalancing:ap-northeast-1:xxxxxxxxxx:loadbalancer/net/internal-elb/xxxxxxxxxx",
            "Tags": [
                {
                    "Value": "tag-update-test",
                    "Key": "Name"
                }
            ]
        }
    ]
}

요약



EC2의 경우는 특별히 의식하지 않고 「Name 태그」를 사용하고 있었습니다만, ELB의 경우는 이름(LoadBalancerName)과 태그(tag:Name)가 따로따로 설정할 수 있으므로 혼동하지 않도록 주의가 필요합니다. 다른 값을 설정한 경우 어느 것을 의도하고 있는지 제대로 확인하도록 합시다.

좋은 웹페이지 즐겨찾기