Auto Scaling으로 생성되는 EC2 인스턴스에 자동으로 태그를 부여하는 방법
안녕하세요.
클레스 메소드의 서은우입니다.
Auto Scaling으로 생성되는 EC2 인스턴스에 태그를 부여하는 방법에 대해 소개시켜드리고자 합니다.
개요
Auto Scaling으로 생성되는 EC2 인스턴스에 태그를 부여하는 방법은 2가지가 있습니다.
- A. 시작 템플릿(Launch Template)의 리소스 태그 설정을 사용
- B. Auto Scaling Group에서 EC2에 부여할 태그를 설정
각 2가지 방법을 사용해서 생성되는 EC2에 자동으로 태그를 부여하고 그 차이점에 대해서 알아보도록 하겠습니다.
시작 템플릿(Launch Template)의 리소스 태그 설정을 사용
시작 템플릿에서 태그에 관한 설정을 정의하여 EC2 인스턴스에 태그를 부여할 수 있습니다.
이 방법은 EC2 뿐만 아니라 EBS 볼륨, ENI, 스팟인스턴스 요청 등 다양한 리소스에 대해 어떤 태그를 부여할지 설정할 수 있다는 특징이 있습니다.
시작 템플릿을 생성하는 콘솔 화면의 "리소스 태그" 라는 설정 항목에서 어떤 리소스에 어떤 태그를 부여할 지 설정할 수 있습니다.
저의 경우에는 "인스턴스" 와 "볼륨" 에 대한 태그를 설정해보았습니다.
리소스 태그 설정을 완료한 뒤, Auto Scaling 으로 인해 생성된 EC2와 볼륨을 확인해보니 설정한 태그 "test-as-ec2-template" 가 제대로 부여되어 있음을 확인할 수 있었습니다.
Auto Scaling Group에서 EC2에 부여할 태그를 설정
다음으로는 Auto Scaling Group의 설정을 통해 EC2에 태그를 부여해보도록 하겠습니다.
EC2 콘솔화면에서 대상 Auto Scacling을 선택한 후, "세부정보" → "태그" 항목을 찾아 태그 관련 설정을 편집합니다.
태그의 키와 값을 입력합니다. 그리고 "새 인스턴스에 태그 지정" 항목을 선택하여 생성될 EC2에 태그를 부여하는 설정을 마칩니다.
Auto Scaling 으로 인해 생성된 EC2를 확인하니 설정한 태그 "test-as-ec2-asg" 가 제대로 부여되어 있음을 확인할 수 있었습니다.
그리고 EC2와 함께 생성된 EBS 볼륨에는 태그가 없음을 확인할 수 있었습니다.
시작 템플릿과 Auto Scaling Group 둘 다 태그를 설정하는 경우
그렇다면 시작 템플릿과 Auto Scaling Group 둘 다 태그를 설정하는 경우에는 어떻게 될까요?
이를 위해 아래와 같이 각 리소스에서 태그를 설정하고 동작을 확인해보도록 하겠습니다.
- 시작 템플릿
- Name : test-as-ec2-template (EC2를 대상)
- Name : test-as-ebs-template (EBS를 대상)
- System: test-tag
- Auto Scaling Group
- Name : test-as-ec2-asg
- Env : dev
새롭게 생성된 EC2 와 EBS의 태그를 아래의 사진과 같이 확인할 수 있었습니다.
Auto Scaling Group 에는 EBS에 태그를 부여하는 설정이 없기 때문에 이를 제외한 시작 템플릿에서 설정한 Name
, System
태그가 제대로 부여되어 있었습니다.
EC2도 마찬가지로 자동으로 생성되는 3가지의 aws:...
태그를 제외하고, 설정한 Name
, System
, Env
태그가 부여되어 있었습니다.
여기서 한 가지 재미있는 것은 EC2와 EBS의 Name
태그의 값이 다르다는 점입니다.
EC2의 Name 태그의 값은 Auto Scaling Group 의 설정인 "test-as-ec2-asg" 이지만,
EBS의 Name 태그의 값은 시작 템플릿의 설정인 "test-as-ebs-template" 이 부여되어 있습니다.
이는 시작 템플릿과 Auto Scaling Group 에 같은 키의 태그를 부여하도록 설정된 경우, Auto Scaling Group의 태그 값이 우선되기 때문입니다.
그로인해 Auto Scaling Group 설정에 영향을 받지 않는 EBS에는 시작 템플릿의 Name 태그 값 부여되었고,
EC2에는 Auto Scaling Group의 설정이 우선되어 Name 태그 값으로 "test-as-ec2-asg" 가 부여된 것입니다.
끝으로
Auto Scaling 으로 생성되는 EC2에 자동으로 태그를 부여하는 방법에 대해 알아보았습니다.
시작 템플릿의 리소스 태그 설정을 통해 EC2 뿐만 아니라 EBS, ENI, 스팟 인스턴스에도 태그를 자동으로 부여하는 설정이 가능함을 알 수 있었습니다.
그리고 시작 템플릿과 Auto Scaling Group 둘 다를 이용해 태그를 설정한다면 같은 태그 값이 설정되어 있는지 확인 하고, 그 경우 Auto Scaling Group의 태그 값이 우선된다는 점에 주의해야 겠습니다.
참고
AWS 공식 문서: 태그 자동 확장 그룹 및 인스턴스