Thursday, November 21, 2024

[AWS] AWS App Runner

-

AWS Elastic Beanstalk là một dịch vụ quản lý hoàn toàn, giúp việc triển khai ứng dụng web và API trở nên dễ dàng và linh hoạt hơn trên nền tảng AWS. Không yêu cầu kinh nghiệm về cơ sở hạ tầng, dịch vụ này cho phép bạn bắt đầu với mã nguồn hoặc hình ảnh container của ứng dụng của mình, sau đó tự động xây dựng và triển khai ứng dụng web của bạn. Dịch vụ cũng hỗ trợ tự động điều chỉnh quy mô, giúp ứng dụng của bạn luôn có sẵn và hoạt động ổn định, và cung cấp tính sẵn sàng cao, giải pháp cân bằng tải, mã hóa dữ liệu tự động, hỗ trợ truy cập VPC và kết nối với các dịch vụ cơ sở dữ liệu, bộ đệm và hàng đợi tin nhắn.

Các trường hợp sử dụng phổ biến của dịch vụ Elastic Beanstalk bao gồm triển khai ứng dụng web, APIs, các dịch vụ microservices và các triển khai sản xuất nhanh chóng. Với tính linh hoạt và sự dễ dàng trong triển khai, dịch vụ Elastic Beanstalk là một lựa chọn tốt cho các doanh nghiệp và các nhà phát triển ứng dụng muốn nhanh chóng triển khai ứng dụng của mình mà không cần phải quan tâm đến cơ sở hạ tầng của mình.

Chúng ta sẽ demo bằng cách vào AWS App Runner, tại đây bạn sẽ nhìn thấy giá ở phần Compute costs (US), giá này giao động tuỳ thuộc vào regon của bạn chọn. Hãy bấm vào Create an App Runner service để bắt đầu quá trình thiết lập AWS App Runner.

AWS App Runner hỗ trợ hai loại kho lưu trữ khác nhau để triển khai ứng dụng: Container registry và Source code repository.

  • Container registry: Trong trường hợp này, AWS App Runner sử dụng một hệ thống lưu trữ image container để tạo và triển khai ứng dụng. Các kho lưu trữ hỗ trợ bao gồm Amazon Elastic Container Registry (ECR) và các registry Docker public hoặc private khác. Để triển khai ứng dụng từ một container registry, bạn cần chỉ định image và phiên bản của nó trong file cấu hình của ứng dụng. App Runner sẽ tải image container từ registry và tạo ra các phiên bản của nó để chạy trên môi trường triển khai. Sau đó, App Runner tự động xây dựng, đóng gói, và triển khai ứng dụng đến môi trường của bạn.
  • Source code repository: Trong trường hợp này, AWS App Runner triển khai ứng dụng trực tiếp từ mã nguồn được lưu trữ trong một kho lưu trữ mã nguồn như GitHub, GitLab, hoặc Bitbucket. Nếu bạn chọn loại này, bạn cần chỉ định đường dẫn đến kho lưu trữ mã nguồn và cung cấp thông tin đăng nhập để App Runner có thể truy cập vào mã nguồn của bạn. App Runner sẽ tự động tải mã nguồn của bạn và xây dựng nó thành một ứng dụng. Nó sau đó sẽ đóng gói và triển khai ứng dụng đến môi trường triển khai của bạn, tương tự như với container registry.

Về phần Provider chúng ta có 2 loại Provider đó là Amazon ECR và Amazon ECR Public:

  • Amazon ECR (Elastic Container Registry) là một dịch vụ của AWS dùng để lưu trữ, quản lý và triển khai các container images. ECR cho phép người dùng lưu trữ các Docker image trên các khu vực khác nhau và triển khai chúng trên các dịch vụ của AWS, như EC2, ECS, EKS, và AWS Fargate.
  • Amazon ECR Public là một kho chứa công khai cho các Docker image. ECR Public cho phép các nhà phát triển, các tổ chức, các công ty lưu trữ các Docker image công khai. Những người khác cũng có thể tìm và tải xuống các image từ kho chứa này. ECR Public có tính linh hoạt cao vì nó cho phép người dùng chia sẻ các Docker image công khai với cộng đồng.

Bạn có thể vào https://gallery.ecr.aws/ lựa chọn 1 image mà bạn muốn triển khai, trường hợp của mình sẽ sử dụng docker/library/httpd.

Phần Deployment settings sẽ có 2 lựa chọn Manual và Automatic (Automatic mặc định sẽ được lựa chọn).

Mình sẽ lựa chọn Manual và tuỳ chỉnh 1 số config như dưới.

Trong AWS App Runner, bạn có thể cấu hình tự động điều chỉnh quy mô ứng dụng của mình với hai cấu hình mặc định và tùy chỉnh:

  • Cấu hình mặc định (Default configuration): Đây là cấu hình tự động điều chỉnh quy mô mặc định được cung cấp bởi AWS App Runner. Cấu hình này sử dụng ngưỡng tài nguyên đơn giản và có thể không phù hợp với nhu cầu của một số ứng dụng. Với cấu hình mặc định, App Runner sẽ tự động điều chỉnh quy mô ứng dụng của bạn dựa trên mức độ sử dụng CPU và lưu lượng mạng.
  • Cấu hình tùy chỉnh (Custom configuration): Đây là cấu hình tự động điều chỉnh quy mô được tùy chỉnh bởi người dùng. Bạn có thể cấu hình cấu hình này để sử dụng các ngưỡng tài nguyên khác nhau và cũng có thể cấu hình các hành động điều chỉnh quy mô khác nhau dựa trên nhu cầu ứng dụng của bạn. Ví dụ: bạn có thể tăng số lượng phiên bản cùng một lúc để xử lý các yêu cầu đột ngột hoặc giảm số lượng phiên bản để tiết kiệm chi phí khi không có nhu cầu sử dụng nhiều tài nguyên hơn.

Bạn có thể chọn cấu hình mặc định hoặc tùy chỉnh để điều chỉnh quy mô ứng dụng của mình dựa trên nhu cầu cụ thể của bạn.

Đây là hình ảnh Auto scaling với lựa chọn Custom configuration. Trường hợp của mình sẽ lựa chọn Default configuration.

Phần Health check mình setup như dưới.

Các setup còn lại mình giữ mặc định.

Phần cuối cùng cho phép các bạn review lại các thiết lập, nếu không còn thay đổi bạn có thể bấm Create & deploy.

Thông báo Create service succeeded cho biết bạn đã deploy thành công.

Đây là kết quả.

Bạn có thể xem các logs nằm ở đây.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories