Elastic Beanstalk Là Gì

     

Bạn đang tìm tìm 1 địa điểm để xúc tiến ứng dụng của công ty mà vẫn không biết lựa lựa chọn ở đâu? bài toán chọn những host nội địa thì lại lo âu việc kết nối hoặc chết bất cứ lúc nào? kiếm tìm Cloud thì lại nặng nề sử dụng? nguyên nhân không thực hiện service của amazon nhỉ? với Elastic Beanstalk, bạn chỉ cần up code lên, việc còn lại cứ nhằm amazon lo, đảm bảo đơn giản và dễ dàng như việc thuê host nội địa vậy.

Bạn đang xem: Elastic beanstalk là gì

1. Elastic Beanstalk là gì?

Khi bạn muốn triển khai 1 áp dụng của mình, các bạn sẽ phải do dự lựa lựa chọn từng tiêu chí, chi tiết từ server, cân đối tải, database, domain, quy mô kết nối ra sao, phương thức hoạt động, vấn đề build môi trường thiên nhiên hay bài toán deploy thế nào cho bảo vệ được ứng dụng. Lại còn yêu cầu có tín đồ maintain hệ thống. Nói thông thường là khôn xiết mất sức lực lao động và thời gian.Để dễ dàng và đơn giản hóa tất cả các bước trên thì amazon giới thiệu service Elastic Beanstalk (EB). Thay vì buộc phải tự bản thân build môi trường hay maintain hệ thống, Elastic Beanstalk sẽ giúp đỡ mình làm toàn bộ các các bước kể trên.

*

Thật chống mặt khi yêu cầu nghĩ thiết kế hệ thống như thế này bắt buộc không?

Hiện trên EB hỗ trợ khá những platform không giống nhau như: Go, Java SE, Java with Tomcat, .NET on Windows vps with IIS, Node.js, PHP, Python, Ruby. Buộc phải các chúng ta có thể cân nói khi sử dụng nhé.

2. Elastic Beanstalk chuyển động như rứa nào?

Elastic Beanstalk sẽ khởi tạo một vận dụng (application), tải lên một phiên bản ứng dụng (version) bên dưới dạng một gói nguồn áp dụng (file .zip tốt .war) đến Elastic Beanstalk, và sau đó cung ứng một số tin tức về ứng dụng. Elastic Beanstalk tự động khởi chạy một môi trường thiên nhiên và thông số kỹ thuật các khoáng sản AWS quan trọng để chạy code của bạn. Sau khi môi trường thiên nhiên (environment) của công ty được khởi chạy, bạn cũng có thể quản lý môi trường của chính mình và triển khai các phiên phiên bản ứng dụng mới. Sơ đồ sau minh họa quá trình làm việc

*

3. Các thành phần trong Elastic Beanstalk

Application: tương tự như một thư mục vào Elastic Beanstalk. Ở đó chứa các thành phần của EB như môi trường (environment), phiên bản (vesion) và cấu hình môi trường (environment configuration).Application version: Là hệ thống các phiên bạn dạng khi người tiêu dùng deploy lên. Application version sẽ tiến hành chỉ định tới Amazon S3 object tương ứng - khu vực mà lưu lại code được deploy bên trên đó.Environment: là phiên phiên bản được thực thi trên tài nguyên AWS. Mỗi môi trường xung quanh chỉ chạy một phiên bạn dạng ứng dụng độc nhất vô nhị tại 1 thời điểm, mặc dù nhiên bạn có thể chạy cùng một phiên bản hoặc các phiên bạn dạng khác nhau trong nhiều môi trường xung quanh cùng một lúc. Khi chúng ta tạo một môi trường, Elastic Beanstalk cung ứng các tài nguyên quan trọng để chạy phiên phiên bản ứng dụng mà các bạn đã chỉ định.Environment Configuration: là các cấu hình của 1 môi trường. Ở đó sẽ có được các tùy chỉnh cấu hình như dạng EC2, VPC, Load balancing, tự động Scale, monitor ...

Với môi trường, EB áp dụng 2 môi trường chính (Phần này chỉ gồm khi các bạn chọn tạo bắt đầu 1 application cơ mà không cần sử dụng Get start trường đoản cú EB):

Web vps environment: các server đang trực tiếp chạy web.

*

Worker environment: những server sẽ giải pháp xử lý thêm những tác vụ ngầm, được đưa vào SQS và đẩy vào server nhằm xử lý kế tiếp đẩy dữ liệu lên tầng web app.

*

4. áp dụng Elastic Beanstalk

Ở phần này, mình sẽ hướng dẫn chúng ta chi tiết công việc để chế tạo và làm chủ EB.

Chú ý: Trước khi bắt đầu với EB, các bạn cần phải tạo 1 VPC để đẩy application của chúng ta vào đấy. Thuộc với sản xuất key để hoàn toàn có thể ssh vào vps deploy nhé.VPC là gì thì mình có thể tóm tắt qua nó là 1 hệ thống network của aws. Y như mạng local trong nhà hoặc doanh nghiệp vậy. Chi tiết thì những bạn tham khảo thêm tại phía trên nhé.

Xem thêm: Người Ta Thường Cùng Nhau Làm Gì Khi Yêu Nhau Người Ta Thường Làm Gì

Tạo VPC: chọn Start VPC Wizard nhé
*
Select VPC with a single subnet
*
Tạo VPC với những config
*
Xong bước tạo VPC dễ dàng rồi. Vậy là ta đã có một mạng ảo nhằm EB thao tác trong đó.Bước tiếp theo sau là tạo ra key để ssh: Vào Service -> EC2 -> Key Pairs -> Create key pairs
*
sau thời điểm tạo xong, các bạn sẽ được down 1 tệp tin key .pem về. Hãy giữ cẩn trọng nhé

Bạn điền thương hiệu app, chọn platform tương xứng (node.js, PHP, ruby ...) và upload code của bản thân mình lên (nén dưới dạng file zip hoặc war)

*
1 để ý nho nhỏ dại phần này là: với thư mục code thì các bạn phải thực hiện nén thẳng ở folder root nhé. VD nén tệp tin rails-default.zip:

~/eb-rails$ zip ../rails-default.zip -r * .<^.>*Ở đây mình làm demo với PHP, file mình up lên chỉ có một file index.php cùng code 1-1 giản: hello world v1!

Sau khi upload xong, các bạn có 2 lựa chọn. Một là Create application thì EB đã tạo luôn luôn application cho chúng ta dựa trên config default. 2 là chúng ta chọn tiếp Configure more options nhằm tự tùy chỉnh. Ở phần này mình tuyển lựa 2 nhé. Lưu giữ ý: tất cả thể thay đổi config sau khoản thời gian đã tạo xong environment chúng ta nhé.

Mặc định EB sẽ tạo cho chúng ta với option Low cost (Free Tier eligible) . Chúng ta sẽ gửi sang Custom configuration để thiết lập cấu hình nhé. Mình sẽ giới thiệu chi tiết cho các bạn biết về công dụng của từng cấu hình.

S3 log storage: chất nhận được s3 tự giảm log theo ngày/tuần/thángInstance log streaming khổng lồ CloudWatch Logs: chất nhận được server stream log ứng dụng lên cloudwatch logLog streaming: được cho phép stream logRetention: thời gian xóa logLifecycle: xóa hay giữ giàng log khi terminate environment

*

Phần Instances chứa thông tin của server

AMI ID: một số loại OS của serverRoot volume: container / magnetic / SSDEC2 security groups: 1 loại firewall của server. Mở port nào đến server ... Nếu các bạn không chọn, mặc định EB sẽ tạo nên ra 1 security group chất nhận được allow ssh cùng 80 hoặc 443 (tương ứng với port listen của web)

*

Capacity tương quan tới tự động hóa scale của server

Auto Scaling Group:Environment type: Single / Load balanced (các bạn hãy chọn Load balanced để bảo đảm HA đến ứng dụng)Instance: con số min/max trong auto scaleAvailability Zones: con số AZ sử dụngPlacement: hướng dẫn và chỉ định AZ dùngScaling trigger: được cho phép scale phụ thuộc vào CPU. CPU > 80% trong 5 phút sẽ thêm 1 server. CPU Metric: CPUStatistic: AvarageUnit: PercentPeriod: 5 minBreach duration: 5 minUpper threshold: 80Lower threshold: 20

*

Load balancer: có 2 lựa chọn: classic Load balancer (dòng LB cũ - ko khuyên dùng) cùng Application Load Balancer (routing HTTP & HTTPS). Phần này sẽ sở hữu port của LB (Application Load Balancer), Health kiểm tra LB (processes) và route request tới backend vps (rules)

*

Rolling updates và deployments: phần deploy mà nhiều bạn quan tâm.

Configuration updates: Elastic Beanstalk chờ đón sau khi nó kết thúc update một loạt các server trước lúc chuyển sang batch khác.Rolling based on Health - Chờ cho đến khi các server healthy trước khi ban đầu đợt tiếp theo.Rolling based on Time - hướng dẫn và chỉ định một khoảng thời gian mong chờ giữa giữa các lần updateImmutable - Áp dụng biến đổi cấu hình cho một đội server mới bằng cách thực hiện nay immutable updateDeployment preferences: bài toán deploy có thể bỏ qua health kiểm tra và thời hạn timeout mỗi lần deploy

*

Security

Service role: role mà EB triển khai để sử dụng các service không giống (default)EC2 key pair: key chúng ta vừa sản xuất ở trênIAM instance profile: Role mang đến server liên kết tới những service khác (default)

*

Monitoring

Health reporting: các thông tin phải monitor real timeHealth event streaming khổng lồ CloudWatch Logs: stream các event log về healthy lên cloudwatch log.

*

Notification mail mà bạn muốn nhận các thông tin mỗi lúc có sự kiện quan trọng

*

Network

VPC ao ước sử dụngLoad balancer settings: chọn subnet mang đến LB (phải là subnet public)Instance settings: chọn subnet mang đến server

*

Database thông tin chi tiết về DB bạn có nhu cầu sử dụng:

Restore a snapshot: nếu khách hàng có snapshot của DB trước đó. Chúng ta có thể sử dụng chức năng nàyDatabase settings: engine, version, instance type, storage, username, password, retention, AZ

*

Tag

*
.

OK. Giờ là lúc liên tiếp tạo app.

Xem thêm: Value Chain ( Chuỗi Giá Trị Là Gì ? Phân Tích Chuỗi Giá Trị Của Porter

*
Đây là quy trình tạo app. Quy trình này ra mắt tùy trực thuộc vào config của bạn: một số loại server chạy, một số loại DB, LB ... Giờ cù sang đọc báo thôi hóng app của mình tạo xong nhé những bạn. Có một điểm quan trọng đặc biệt nho nhỏ dại ở đấy là không đề nghị EB tự bản thân đi build tất cả 1 những thành phần như trong config. Nhưng ở đây, việc dựng môi trường thiên nhiên sẽ vị Amazon CloudFormation đảm nhiệm. Các chúng ta có thể check trong hoặc sau quy trình build dứt app, vào CloudFormation sẽ thấy 1 stack xuất hiện. Đó chính là tất tần tật môi trường của doanh nghiệp ở kia đấy
*

Quay quay trở lại với EB, sau 1 thời gian build thì các bạn có thể thấy trạng thái app đã healthy. Check web nào

*

và đấy là kết quả

*

Nào giờ đồng hồ deploy tiếp version 2 xem cố kỉnh nào nhỉ. Chúng ta lại nén lại và up code lên thôi

*
*

đợi 1 lúc với status vẫn OK

*

kết quả

*

Việc control version trên EB rất solo giản. Các chúng ta cũng có thể check version của phầm mềm đã được deploy

*

Trong t/h deploy bị lỗi, các bạn cũng có thể restore lại đông đảo version đã deploy lên đó theo environment

*

Lưu ý: một số giới hạn bên trên EB: Application version: 1000, Application: 75, Environments: 200. Chúng ta chú ý trong quy trình sử dụng nhé.