EC2 기존 AMI 업데이트


18

Elastic Load Balancing 을 사용하여 Auto Scaling Group의 로드 밸런싱 을 사용하고 있는데 , 애플리케이션 서버 (Tomcat)를 보유하고 있는 프라이빗 AMI 와 내 웹 앱을 전쟁으로 배포 한 프라이빗 AMI 를 보유하고 있습니다. 이제 모든 것이 잘 작동합니다. 나는 내 바람둥이 구성을 변경해야하는 경우 AMI . 내 AMI를 시작하지 않아도됩니다-> 로그인 + Tomcat 구성 변경-> 새 AMI 생성-> 오래된 AMI 삭제 새 AMI를 만드는 것이 자동 스케일을 업데이트해야하기 때문에 솔루션이라고 생각하지 않습니다 새 AMI를 추가 할 그룹

새 AMI를 만들지 않고 기존 AMI의 데이터를 업데이트 할 수있는 방법이 있습니까? 동일한 AMI ID를 갖고 싶습니다.

답변:


5

인스턴스를 시작할 때 실행 되는 사용자 데이터 스크립트로 구성을 업데이트 할 수 있습니다 .

스크립트에 넣는 내용은 파일 시스템 수준에서 구성을 관리하는 방법에 따라 다릅니다. 개인적으로 구성 파일을 Mercurial 저장소에 넣고 간단히 pull업데이트하기 만하면 됩니다.


귀하의 답변이 유효하다고 생각하지만 제 생각에는 해키입니다 ... 동일한 AMI ID를 유지하는 AMI 이미지를 업데이트하는 방법이 없습니까?
Hadi Salem

3
불행히도 나는 그것이 가능하지 않다고 생각합니다. Amazon doc에서 : "AMI ID는 이미지의 물리적 비트와 연관되어 있습니다. 사용자가 수정되는 이미지로부터 사용자를 보호하려면 번들링 후 Amazon EC2 인스턴스 AMI를 다시 등록해야합니다."
David Levesque

기존 AMI 이미지는 수정할 수 없습니다. 새로운 것을 만들어야합니다.
Matt Houser

사용자 데이터를 사용하여 구성을 배포하는 IMO가 더 우아합니다. 사람들은 인스턴스 생성시 서비스를 설치하는 방향으로 기울고 있습니다. CloudFormation 템플릿을 사용하여 살펴볼 수도 있습니다.
Edwin

나는 커스텀 AMI와 함께 BeanStalk를 사용할 것이라고 생각합니다. 내 인생을 훨씬 쉽게 만들 수 있으며 자동 스케일링으로로드 밸런서를 설정할 필요가 없으며 서버 구성을 변경 해야하는 경우 자체 스크립트를 작성합니다 .. 감사합니다
Hadi Salem

3

기존 AMI를 업데이트하고 동일한 AMI ID를 유지할 수 없습니다. @DavidLevesque가 제안한대로 새 사용자 지정 AMI를 생성하고 Auto Scaling 그룹의 시작 구성을 업데이트하거나 기본 AMI의 인스턴스를 시작한 후 인스턴스에 변경 사항을 적용하도록 설정을 변경해야합니다.

시작시 S3에서 애플리케이션, 구성 및 데이터를 다운로드하는 것은 일반적인 아키텍처입니다.


아키텍처에 대한 참고 하나는 TID 비트
Jmoney38

0

이것은 오래된 게시물처럼 보입니다. 그러나 여전히 같은 상황에 처한 경우 인스턴스 스토어 지원 Windows AMI (번들 된 작업) 사용을 고려할 수 있습니다 . 또한 AMI와 비슷하지만 실제로 이미지 자체를 생성하여 S3 버킷에 저장하므로 이미지 자체를보다 강력하게 제어 할 수 있습니다. 이를 통해 AMI의 기본 이미지를 항상 업데이트 할 수 있으며 새 AMI를 만들지 않고도 필요할 때마다 (적어도 내가 이해하는 방법입니다).

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_InstanceStoreBacked_WinAMI.html?icmpid=docs_ec2_console


참고로 ... "인스턴스 스토어에서 백업 할 수있는 유일한 Windows AMI는 Windows Server 2003 용입니다. 인스턴스 스토어 기반 인스턴스에는 이후 버전의 Windows Server에 필요한 사용 가능한 디스크 공간이 없습니다."
Rich C
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.