AWS Elastic Beanstalk에서 최신 AMI로 업그레이드하는 방법은 무엇입니까?


18

AWS Elastic Beanstalk에서 애플리케이션을 실행하고 있으며 최신 AMI를 사용하려면 새로운 환경을 만들어야하는 것처럼 보입니다.

최신 AMI ID가 무엇인지 알면 환경 구성에서 업데이트 할 수 있습니다.

최신 Elastic Beanstalk AMI의 ID를 찾을 수있는 곳이 있습니까? 아니면 새 버전이 출시 될 때마다 인스턴스를 새 버전으로 자동 교체 할 수 있습니까?


2
새로운 환경을 구축하고 시작하는 서버에 AMI ID가 무엇인지 확인합니까?
ceejayoz

2
그것은 약간의 고통입니다.
Benjamin

마지막으로 EB 환경을 설정하는 데 약 5 분이 걸렸습니다. Amazon Linux AMI는 3 개월마다 IIRC로 나옵니다. 한 달에 1.6 분이 지나친 고통은 없습니다.
ceejayoz

다시 말하면 더 좋은 방법이 있어야 한다고 생각 합니다. 그러나 당신 말이 맞아요, 큰 문제는 아닙니다.
Benjamin

2
그들은 조용히 배포하기보다는 일부 릴리스 노트 또는 게시판에 스티커를 게시해야합니다.
Ken Liu

답변:


2

AWS Beanstalk 환경을 업그레이드하기 위해 권장되고 지원되는 방법은 여기 에 문서화되어 있으며 관리되는 플랫폼 업데이트에 대해서는 여기 에서 설명 합니다 . 중단없는 업데이트 만 받으면 AWS가 프로세스를 관리하므로 가동 중지 시간이 없습니다.

따라서 관리 형 플랫폼 업데이트가 귀하 또는 다른 사람이 Google에서 원할 것임을 반복하고 싶지만 Beanstalk 환경에 최신 AWS 제공 AMI를 알고 싶다면 AWS CLI를 사용하여 사소하게 수행 할 수 있습니다 (감사합니다) AMI에서 Amazon의 명명 규칙을 제정하는 것).

환경에서 인스턴스를 시작하여 현재 AMI를 가져 오도록 인스턴스를 설명하십시오 (현재 AMI를 이미 알고 있으면 건너 뛰십시오).

aws ec2 describe-instances --instance-ids i-0909613f35ec0ffee --query 'Reservations[*].Instances[*].ImageId' --output text

ami-35290a56

결과 AMI ID를 가져 와서 설명하십시오.

aws ec2 describe-images --image-ids ami-35290a56 --query 'Images[*][Architecture, Hypervisor, Name, RootDeviceType, VirtualizationType]' --output json

[
    [
        "x86_64",
        "xen",
        "aws-elasticbeanstalk-amzn-2016.03.0.x86_64-python34-hvm-201603290718",
        "ebs",
        "hvm"
    ]
]

위의 출력을 새로운 정렬 된 입력으로 사용할 수 describe-images있지만 이번에는 타임 스탬프를 *와일드 카드 기호 로 바꿉니다.

aws ec2 describe-images --filters 'Name=architecture,Values=x86_64' 'Name=virtualization-type,Values=hvm' 'Name=owner-alias,Values=amazon' 'Name=name,Values=aws-elasticbeanstalk-amzn-*.x86_64-python34-hvm-*' --query 'sort_by(Images[*], &Name)[-1].ImageId' --output text

ami-1be5de78

어휘 정렬 및 ISO 8601의 힘으로 인해 우리는 최신 AMI로 끝납니다 ami-1be5de78.

aws ec2 describe-images --image-ids ami-1be5de78 --query 'Images[*].Name' --output text

aws-elasticbeanstalk-amzn-2016.09.0.x86_64-python34-hvm-201612200708

다시 한 번이 AMI를 직접 변경하지 않는 것이 좋습니다. Beanstalk에는이 모든 작업을 수행 할 수있는 조항이 있습니다!


0

AMI를 변경하더라도 적절한 AMI ElasticBeanstalk 사용으로 보입니다. 제대로 작동하지 않는 것 같습니다. 모든 파일이 누락되었습니다. 제대로 작동하지 않습니다.

업데이트 된 AMI가있는 새로운 Elastic Beanstalk 환경을 시작해야한다고 생각합니다. 모든 것이 작동하도록 한 다음 환경 URL을 바꾸십시오.


0

eb와 함께 제공되는 관리되는 업데이트 기능을 사용할 수 있지만이를 위해서는 향상된 상태보고 비용을 지불해야합니다. 또는 'eb platform show'명령을 사용하십시오. 작업자 앱에는 CURRENT = eb platform show your_env_name | sed -n '5p' | cut -d: -f2- | tr -d '[[:space:]]' LATEST = eb platform show your_env_name | sed -n '6p' | cut -d: -f2- | tr -d '[[:space:]]' - 를 실행하는 크론이 있습니다. 그런 다음 비교하고 eb clone (기본값은 새 버전)과 cname swap을 사용할 수 있습니다.


0

애플리케이션의 대시 보드로 이동하여 '구성'을 찾은 다음 '변경'을 클릭하십시오.

플랫폼을 선택할 수있는 목록이 나타납니다. 최신 버전이 해당 목록에 표시됩니다. 플랫폼 선택

AWS EB는 다른 프로그래밍 언어에 대해 특정 설정을 사용합니다. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html 문서에서 설정 목록을 찾을 수 있습니다.

각 플랫폼이 사용하는 AMI 버전을 보여주는 표가 있습니다.

그래도 이러한 업데이트를 자동으로 실행할 수있는 방법을 찾지 못했습니다. 실제로 플랫폼의 변경 사항을 검토하고 배포하기 전에 테스트하는 것이 좋습니다.


0

Elastic Beanstalk에서 서비스를 선택하면 대시 보드에 개요가 표시됩니다. 대시 보드 오른쪽에 AMI 구성, 업그레이드 변경 또는 AMI 성능 저하를 선택하십시오. 이 시점에서 인스턴스를 교체하려고합니다. 따라서 백업 또는 복제를 수행하십시오.


-2

아래 단계를 사용하여 Beanstalk에서 호스팅되는 현재 애플리케이션을 최신 Amazon Linux AMI로 업데이트 할 수있었습니다.

1- AWS 콘솔에 로그인하고 Beanstalk 포털로 이동합니다.

2- 애플리케이션의 구성 페이지로 이동하여 '인스턴스'를 클릭하십시오.

3- AMI ID는 AMI-xxxxxx와 같아야합니다.

4- AMI id를 가져와 EC2 콘솔로 다시 이동하여 AMI를 클릭합니다.

5-보기를 퍼블릭 이미지로 변경하고 Beanstalk 구성에서 이전에 AMI id 검색을 찾습니다.

6- 해당 인스턴스를 새 인스턴스로 시작하십시오.

7- 일단 시작되면 인스턴스에 로그인하고 애플리케이션 요구 사항에 따라 사용자 정의하십시오.

8- 일단이 새로운 인스턴스의 AMI 이미지를 생성하기 위해 모든 것을 만족 시켰습니다.

9- 8 단계에서 생성 한 새 인스턴스 AMI id를 가져와 Beanstalk 응용 프로그램 구성에 적용합니다.

10- 사용자 지정 AMI를 사용하여 이전 인스턴스를 삭제하고 새 인스턴스를 생성하지 않으며 최신 애플리케이션을 새 인스턴스에 배포합니다.


1
나는 당신이 그 질문을 오해했다고 생각합니다. 사용자 지정 AMI를 생성하고 사용하는 방법을 묻지 않았고, 새로운 환경을 만들 때 적용되는 최신 기본 Elastic Beanstalk AMI ID와 가능한 경우 새 AMI를 자동으로 적용하는 방법을 알고 싶습니다. AWS가 출시 할 때
Benjamin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.