1

우분투 기본 이미지에 응용 프로그램 스택을 설치하고 설정 한 다음 컴퓨터에서 AMI를 만드는 프로세스를 설정했습니다. 이 모든 것은 패커를 사용하여 자동화됩니다. 일단 packer가 완료되면 ami-id를 얻으면 수동으로 새 실행 구성을 만들고 내 ASG 구성을 업데이트 한 다음 이전 인스턴스를 제거하는 작업을 확장 및 축소하도록 일정을 계획합니다.AWS AMI 업데이트 및 롤아웃 프로세스 자동화

그래서 내가 무엇을 찾고 있어요 것은 : 소프트웨어 버전에 대한 새로운 업데이트가있을 때마다

  1. (예 : ngnix 루비 등)
  2. 을 내 응용 프로그램 스택을 업데이트 할 수있는 더 좋은 방법을 제안 해주십시오 어떻게 할 수 롤아웃 프로세스를 자동화하여 새 ami가 선택되고 이전 인스턴스가 저하되어야합니다.
+0

AWS Systems Manager를 보았습니까? – Rajesh

+0

아니요,하지 않았습니다. 두 가지 문제점을 모두 해결할 수 있습니까? CloudForm을 사용하여 롤아웃 프로세스를 수행 할 수있는 스택을 업데이트하는 방법에 대해 읽었습니다. AWS 시스템 관리자를 사용하는 예를 들어 주시겠습니까? – Umer

+0

사과 .. 패치를 업데이트하기위한 기본 이미지를 만들었다 고 가정했습니다.응용 프로그램 업데이트를 배포하려는 경우 AWS CodeDeploy를 사용할 수 있습니다. 이렇게하면 응용 프로그램 (https://aws.amazon.com/codedeploy/)을 업데이트 할 때 AMI를 만들 필요가 없습니다. – Rajesh

답변

2

이 과정을 조율하기 위해 Faster Auto Scaling in AWS CloudFormation Stacks with Lambda-backed Custom Resources

에서 이것에 대한 좋은 전략이있다, 당신은 사용자 데이터 스크립트를 참조 인스턴스, AMI는 캡처를 트리거 조건을 기다릴 사용 부트 스트랩, 그리고 마지막으로 이 새로 생성 된 AMI를 참조하는 Auto Scaling 그룹 시작 구성을 만듭니다. 을 사용하여 AMI를 캡처하는 참조 인스턴스를 종료하거나 관리 액세스 또는 예약 된 작업을 수행 할 수 있습니다.

이 프로세스는 Packer를 사용하지 않으며 AMI를 만들기위한 전용 서버가 필요하지 않으며 대신 Lambda 지원 사용자 지정 리소스를 사용합니다.

두 번째 옵션

이미 패커에 AMI 생성 작업이 때, 업데이트 된 AMI와 함께 기존의 실행 구성을 복사하는 람다를 사용하는 것이 좋습니다. 당신은 Patch an AMI and Update an Auto Scaling Group에서이에 좋은 방법을 볼 수

다음 예는 이 새로와 함께 자동 스케일링 그룹을 업데이트하는 단계를 추가하여 자동화, 람다 및 매개 변수 저장 예를 사용하여 단순화 AMI의 패치 기반으로

패치 된 AMI. 이 방법을 사용하면 자동 확장 그룹을 사용하는 다른 컴퓨팅 환경의 에서 새 이미지를 자동으로 사용할 수 있습니다.

이 예제의 자동화 워크 플로의 마지막 단계는 AWS 람다 함수를 사용하여 기존 실행 구성을 복사하고 AMI ID를 새로 패치 된 AMI로 설정합니다. Auto Scaling 그룹은 새로운 실행 구성으로 업데이트 된 입니다. 이 유형의 자동 스케일링 시나리오에서 사용자는 자동 스케일링 그룹의 기존 인스턴스를 종료하여 새 이미지를 사용하는 새 인스턴스를 시작하도록 할 수 있습니다. 또는 사용자가 대기하고 scale-in 또는 scale-out 이벤트를 허용하면 이 자연스럽게 새로운 인스턴스를 시작합니다.