시작 템플릿에 AMI를 교체하면, Auto Scaling 그룹으로 생성되는 EC2 인스턴스에도 반영이 될까?

시작 템플릿에 AMI를 교체하면, Auto Scaling 그룹으로 생성되는 EC2 인스턴스에도 반영이 되는지 확인해 봤습니다.
2024.04.17

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 시작 템플릿에 AMI를 교체하면, Auto Scaling 그룹으로 생성되는 EC2 인스턴스에도 반영이 되는지 확인해 봤습니다.

Auto Scaling 그룹에서의 문제 발생

처음 시작 템플릿을 생성하고, Auto Scaling 그룹을 생성한 상태에서 EC2 인스턴스를 확인해 보면 아무것도 설치되지 않은 빈 EC2 인스턴스가 생성됩니다.

예외적으로 특정 소프트웨어가 설치된 AMI를 사용하거나, 사용자 데이터를 사용해서 소프트웨어를 설치했다면 예외겠지만, 추가적으로 소프트웨어를 설치했다거나, 최신 내용을 반영하고 싶은 경우

어찌되었건 Auto Scaling 그룹으로 생성된 EC2 인스턴스는 시작 템플릿에 지정된 내용대로 만들어지기 때문에 최신 내용이 반영되지 않습니다.

이런 상황에서 최신 내용이 반영되는 EC2 인스턴스가 생성되도록 하기 위해서는 어떻게 해야할까요?

AMI를 활용하자

이런 상황에서는 AMI를 활용하는 방법이 존재합니다.

yum update -y
yum install httpd-2.4.51 -y
systemctl start httpd
systemctl enable httpd
httpd -v

cp /usr/share/httpd/noindex/index.html /var/www/html/index.html

먼저 테스트를 위해 Auto Scaling 그룹 혹은 검증용으로 EC2 인스턴스를 만들어서 상기 Apache를 설치하는 명령어를 입력하여 Apache를 설치합니다.

Apache를 설치하고 접속해 보면, Apache 테스트 페이지가 표시됩니다.

이어서 Apache가 설치된 EC2 인스턴스의 AMI를 생성합니다.

AMI에서 사용 가능 상태가 된 것을 확인할 수 있습니다.

AMI 생성과 동시에 스냅샷도 생성된 것을 확인할 수 있습니다.

스냅샷의 경우 스탠다드 기준 월별 GB당 0.05USD의 요금이 청구되므로 요금에 주의합니다.

이어서 시작 템플릿에서 새 버전을 생성합니다.

AMI를 선택하는 화면에서 조금 전 생성한 AMI를 선택합니다.

나머지 설정 값들은 환경에 맞추어 적절하게 설정합니다.

시작 템플릿의 새 버전을 생성했다면, Auto Scaling 그룹에 반영합니다.

Auto Scaling 그룹에서 시작 템플릿 항목으로 들어와 편집을 시도합니다.

조금 전 생성한 새 버전의 템플릿을 설정합니다.

결과 확인

현재 두 대의 EC2 인스턴스가 생성되어 있으므로, 새 버전이 반영된 EC2 인스턴스가 생성되도록 용량을 수정합니다.

원하는 욜량, 최소 용량, 최대 용량을 3으로 수정하게 되면 새로운 EC2 인스턴스가 생성됩니다.

생성된 EC2 인스턴스를 학인하고, 접속을 시도해 봅시다.

성공적으로 Apache 테스트 페이지가 표시된 것을 확인할 수 있습니다.

기존 Auto Scaling 그룹에서 새로 추가되는 EC2 인스턴스에 대해서 항상 빈 상태로 다시 또 소프트웨어를 설치해 나가야하는 걸까? 라는 생각이 들었습니다만, AMI를 활용한다면 매번 수동으로 소프트웨어를 설치할 필요가 없으며, 서버에 변경 사항이 있을 경우 AMI만 꾸준히 변경해 준다면, 처음부터 설치해야 하는 번거로움은 줄어들 것이라 생각합니다.

하지만, 스냅샷에는 요금이 발생하므로 그 점에 대해서는 주의할 필요가 있습니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 kis2702@naver.com로 보내주시면 감사하겠습니다.