양파개발자 실바의 블로그

AWS - AWS EC2 Auto Scaling Group 템플릿 교체 과정

최근 회사에서 진행한 api-v2 프로젝트의 EC2 Auto Scaling Group의 템플릿 교체 작업을 정리해 보았습니다.

해당 작업은 인프라의 성능 및 안정성을 강화하기 위해 수행되었습니다. 아래는 주요 작업 과정입니다.

작업 과정 요약

1. 운영 인스턴스 하나 분리

  • 신규 템플릿에 필요한 설정을 진행하기위해 기존에 동작하는 운영 인스턴스에서 한마리를 뜯어냅니다.
  • Auto Scaling Group 에서 인스턴스 하나 분리 (ID 기억필수 !!!)
  • EC2 대상그룹에서 동일한 ID 의 인스턴스 등록 취소 (=트래픽이 안오게 됨)

2. Enabled Service Unit 점검 (최초 서버 구동시 자동실행되는 데몬 들)

  • 분리된 인스턴스에서 현재 활성화된 서비스들이 정상적으로 작동하는지 확인합니다.
    • systemctl list-unit-files --type=service --state=enabled
  • 필요없는 service 는 disable 처리
    • sudo systemctl disable datadog-agent.service

3. Pyenv에서 미사용 버전 제거

  • 불필요한 Python 버전을 pyenv에서 제거하여 시스템 리소스를 최적화합니다.
  • pyenv uninstall 3.7.13

4. Grafana 로그 수집용 Promtail 설정 변경

  • 수집 데이터로그 전송 대상 서버 변경 작업을 수행합니다.
    • a. 수집 데이터 설정 변경
    • b. 로그를 전송하는 대상 서버 변경

5. Yum Update

  • 인스턴스의 패키지 및 의존성을 최신 버전으로 유지하기 위해 yum update를 수행합니다.

6. api-v2에서 사용하는 파이썬 가상환경 설정 및 패키지 설치

  • api-v2 서비스가 사용하는 가상환경 설정 및 필요한 패키지 설치 작업을 수행합니다.
  • 이미 패키지가 설치되어있으면 배포 속도 향상

7. API-v2 서비스 구동 및 운영 환경 대상 그룹 등록

  • API-v2 서비스를 시작하고, 운영 환경에서 해당 인스턴스를 대상 그룹에 등록하여 트래픽 테스트를 진행합니다.
  • 트래픽이 정상적으로 처리되는지 확인합니다.

8. AMI 이미지 생성

  • API-v2 인스턴스의 설정을 완료한 후 새로운 AMI 이미지를 생성합니다.
    • 생성된 이미지 이름: api-v2-20240905-3

9. Auto Scaling Group 에서 템플릿 수정 (새 버전)

  • 새로 생성한 AMI 이미지를 기반으로 Auto Scaling Group 템플릿을 수정합니다.
    • 이때 Service 태그를 추가하여 Grafana에서 모니터링할 수 있도록 설정합니다.

10. Auto Scaling Group 에서 시작 템플릿 변경

  • latest 로 적용되어있으면 손 안대도 됨
  • 만일 수동 설정인 경우 신규 버전을 지정

결론

이번 작업을 통해 API-v2 프로젝트의 인프라를 최적화하고, 새로운 AMI 이미지를 사용하여 Auto Scaling Group 템플릿을 교체했습니다.

이를 통해 인스턴스의 안정성과 성능을 높였으며, 로그 및 서비스 모니터링 환경을 강화했습니다.