RollingUpdates
1 ECS 롤링 업데이트
- Amazon ECS(ECS) 롤링 업데이트는 서비스에 대해 새로운 태스크 정의 버전을 점진적으로 배포하여 애플리케이션의 가용성과 안정성을 유지하는 방법입니다.
- 이 방법은 전체 애플리케이션을 중단하지 않고 새로운 기능을 릴리스하거나 버그 수정 사항을 적용할 수 있습니다.
2 롤링 업데이트의 작동 원리
- 롤링 업데이트는 현재 실행 중인 태스크를 하나씩 교체하며 진행됩니다.
- 새로운 태스크 정의 버전이 기존 태스크를 대체하며, 새로운 태스크가 정상적으로 시작되고 실행되면 기존 태스크가 종료됩니다.
2.1 업데이트 과정
- 새로운 태스크 정의 등록: 새로운 애플리케이션 버전을 포함한 태스크 정의를 등록합니다.
- 서비스 업데이트: 새로운 태스크 정의 버전으로 ECS 서비스를 업데이트합니다.
- 점진적 교체: 기존 태스크가 새로운 태스크로 하나씩 교체됩니다.
- 모니터링: 새로운 태스크가 정상적으로 실행되는지 모니터링합니다.
- 완료: 모든 태스크가 새로운 버전으로 교체되면 업데이트가 완료됩니다.
3 롤링 업데이트의 장점
- 무중단 배포: 서비스 중단 없이 애플리케이션을 업데이트할 수 있습니다.
- 점진적 전환: 새로운 태스크가 정상적으로 실행되는지 확인한 후 기존 태스크를 종료하기 때문에 안정성을 보장합니다.
- 빠른 롤백: 문제가 발생하면 기존 태스크 정의로 롤백하여 빠르게 복구할 수 있습니다.
4 설정 방법
4.1 ECS 서비스 생성 또는 업데이트
- 서비스 생성: 새로운 서비스를 생성할 때 롤링 업데이트 전략을 선택합니다.
- 서비스 업데이트: 기존 서비스를 업데이트하여 새로운 태스크 정의 버전을 적용합니다.
4.2 AWS 관리 콘솔 사용
- 서비스 선택: AWS 관리 콘솔에서 ECS 서비스를 선택합니다.
- 업데이트 시작: "Update Service"를 클릭하여 업데이트를 시작합니다.
- 새 태스크 정의 선택: 새로운 태스크 정의 버전을 선택합니다.
- 배포 설정: "Deployment Configuration"에서 최소 정상 태스크 비율과 최대 비율을 설정합니다.
- 업데이트 적용: "Update"를 클릭하여 업데이트를 적용합니다.
5 최소, 최대 정상 태스크 비율 설정
- 최소 정상 태스크 비율(Minimum Healthy Percent)
- 업데이트 과정에서 서비스가 유지해야 하는 최소한의 정상 상태 태스크 비율을 설정합니다.
- 예를 들어, 이 값을 50%로 설정하면, 서비스는 업데이트 중에도 전체 태스크의 50%를 항상 실행 상태로 유지합니다.
- 이 값이 높을수록 가용성은 높아지지만 업데이트 속도는 느려질 수 있습니다.
- 최대 정상 태스크 비율(Maximum Healthy Percent)
- 업데이트 과정에서 동시에 실행될 수 있는 최대 태스크 비율을 설정합니다.
- 예를 들어, 이 값을 200%로 설정하면, 새로운 태스크가 추가될 때 현재 실행 중인 태스크의 두 배까지 허용됩니다.
- 이 값이 높을수록 업데이트 속도는 빨라지지만 리소스 사용량이 증가할 수 있습니다.
6 결론
ECS 롤링 업데이트는 애플리케이션을 중단 없이 업데이트할 수 있는 효율적인 방법입니다. 적절한 설정과 모니터링을 통해 애플리케이션의 가용성과 안정성을 유지하면서 새로운 기능을 릴리스하거나 버그 수정 사항을 적용할 수 있습니다.
관련 자료: