Làm cách nào để nâng cấp lên AMI mới nhất trong AWS Elastic Beanstalk?


18

Tôi đang chạy một ứng dụng trên AWS Elastic Beanstalk và có vẻ như tôi cần tạo một môi trường mới nếu tôi muốn sử dụng AMI mới nhất.

Nếu tôi biết id AMI mới nhất là gì, tôi có thể cập nhật nó trong cấu hình môi trường.

Có nơi nào tôi có thể tìm thấy ID của AMI đàn hồi mới nhất, hoặc thậm chí tốt hơn, có thể có các phiên bản tự động được thay thế bởi phiên bản mới bất cứ khi nào phiên bản mới được tung ra không?


2
Tạo ra một môi trường mới và xem ID AMI trên máy chủ mà nó khởi chạy là gì?
ceejayoz

2
Đó là một chút đau đớn, phải không?
Benjamin

Lần trước tôi đã thiết lập môi trường EB, mất khoảng năm phút. Amazon Linux AMIs được phát hành ba tháng một lần IIRC. 1,6 phút mỗi tháng không khiến tôi quá đau đớn.
ceejayoz

Hãy để tôi nói lại: cảm giác như phải có một cách tốt hơn. Nhưng bạn nói đúng, đó không phải là vấn đề lớn.
Benjamin

2
Họ thực sự nên đăng những điều này trong một số ghi chú phát hành hoặc một phần dính trong diễn đàn của họ thay vì chỉ im lặng tung chúng ra.
Ken Liu

Câu trả lời:


2

Cách được đề xuất và hỗ trợ để nâng cấp môi trường BeanSalk AWS của bạn được ghi lại ở đây và các bản cập nhật nền tảng được quản lý sẽ được thảo luận ở đây , thành thật mà nói, nếu bạn muốn mọi thứ trở nên dễ dàng (và đó là tất cả về lý thuyết của Beanstalk) chỉ nhận được các bản cập nhật không vi phạm và AWS sẽ quản lý quy trình để không có thời gian chết.

Vì vậy, tôi chỉ muốn nhắc lại rằng các bản cập nhật nền tảng được quản lý có lẽ là những gì bạn hoặc bất kỳ ai khác đến từ Google sẽ muốn, nhưng nếu bạn muốn biết AWS mới nhất được cung cấp AMI cho môi trường Beanstalk của bạn thì có thể thực hiện khá tầm thường với AWS CLI (cảm ơn để thực hiện các quy ước đặt tên từ Amazon trên AMI của họ).

Bắt đầu với một thể hiện từ môi trường của bạn, hãy mô tả thể hiện để có được AMI hiện tại (bỏ qua nếu bạn đã biết AMI hiện tại).

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

ami-35290a56

Lấy ID AMI kết quả và mô tả nó.

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"
    ]
]

Chúng ta có thể sử dụng đầu ra ở trên làm đầu vào cho một cái mới, được sắp xếp describe-imagesnhưng lần này chúng ta thay thế dấu thời gian bằng các *ký hiệu đại diện, như vậy:

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

Do sức mạnh của việc sắp xếp từ vựng và ISO 8601, chúng tôi kết thúc với AMI mới nhất, trong ví dụ của tôi là 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

Một lần nữa, tôi không khuyên bạn nên cố gắng thay đổi AMI này bằng tay, Beanstalk có các điều khoản để làm tất cả điều này cho bạn!


0

Có vẻ như ngay cả khi bạn thay đổi AMI, sử dụng AMI ElasticBeanstalk thích hợp. Nó dường như không hoạt động đúng. Nó bỏ lỡ tất cả các tập tin. Nó không hoạt động đúng.

Tôi nghĩ rằng bạn phải bắt đầu một môi trường đàn hồi mới có AMI cập nhật. Làm cho mọi thứ hoạt động sau đó trao đổi các url môi trường.


0

Bạn có thể sử dụng các tính năng cập nhật được quản lý đi kèm với eb nhưng sẽ phải trả tiền cho báo cáo sức khỏe nâng cao để thực hiện việc này. Hoặc sử dụng lệnh 'eb platform show'; Trong một ứng dụng worker có một cron chạy 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:]]' - Sau đó so sánh chúng và nếu khác nhau, bạn có thể sử dụng eb clone (mặc định là phiên bản mới) và sau đó hoán đổi tên.


0

Điều hướng đến bảng điều khiển của ứng dụng của bạn, xác định vị trí 'Cấu hình' và nhấp vào 'Thay đổi'

Bạn sẽ thấy một danh sách nơi bạn có thể chọn Nền tảng. Phiên bản mới nhất được chỉ định trong danh sách đó. Chọn nền tảng

AWS EB sử dụng các thiết lập cụ thể cho các ngôn ngữ lập trình khác nhau. Bạn có thể tìm thấy danh sách các thiết lập trong tài liệu http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/con accept.pl platforms.html

Có các bảng cho bạn biết phiên bản AMI mà mỗi nền tảng sử dụng.

Tôi đã không tìm thấy một cách để chạy các bản cập nhật tự động mặc dù. Tôi thực sự thích xem xét các thay đổi của nền tảng và kiểm tra chúng trước khi triển khai chúng.


0

Chọn dịch vụ của bạn trong Bean Beanalk, Bạn sẽ thấy tổng quan trong Bảng điều khiển, Trong bảng điều khiển bên phải bạn có thể thấy cấu hình của AMI của bạn, Chọn Thay đổi nâng cấp hoặc làm giảm AMI của bạn. Tại thời điểm này, bạn sẽ thay thế cá thể của bạn. Vì vậy, làm cho bản sao lưu hoặc bản sao.


-2

Tôi đã có thể cập nhật ứng dụng hiện tại của mình được lưu trữ trên Beanstalk lên Amazon Linux AMI mới nhất bằng các bước bên dưới.

1- Đăng nhập vào Bảng điều khiển AWS và điều hướng vào cổng thông tin Beanstalk.

2- Điều hướng vào trang cấu hình của ứng dụng của bạn và nhấp vào 'Trường hợp'.

3- Xác định vị trí id AMI nên giống như vậy AMI-xxxxxx.

4- Lấy id AMI và điều hướng trở lại vào bảng điều khiển EC2 và nhấp vào AMI.

5- Thay đổi chế độ xem thành Hình ảnh công cộng và tìm kiếm lấy AMI id trước đó từ cấu hình Beanstalk.

6- Khởi chạy AMI như một ví dụ mới.

7- Sau khi ra mắt, đăng nhập vào thể hiện và tùy chỉnh theo yêu cầu ứng dụng của bạn.

8- Một khi bạn hài lòng mọi thứ tại chỗ như bạn muốn nó sẽ tạo ra một hình ảnh AMI của trường hợp mới này.

9- Lấy id AMI phiên bản mới được tạo ở bước 8 và áp dụng điều đó cho cấu hình ứng dụng Beanstalk của bạn.

10- Nó sẽ không xóa cá thể cũ và tạo cá thể mới với AMI tùy chỉnh của bạn và cũng triển khai ứng dụng mới nhất của bạn lên các thể hiện mới.


1
Tôi nghĩ rằng bạn đã hiểu nhầm câu hỏi. Tôi không hỏi cách tạo và sử dụng AMI tùy chỉnh, tôi hỏi làm thế nào để biết id AMI Bean Beanalk mặc định mới nhất được áp dụng khi bạn tạo môi trường mới và nếu có thể, làm thế nào để tự động áp dụng AMI mới khi nó được phát hành bởi AWS.
Benjamin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.