Deploy Laravel project to AWS ECS Fargate

  • September 18, 2022
  • 1158

Ở bài viết trước chúng ta đã deploy project laravel sử dụng AWS ECS type EC2. Hôm nay chúng ta sẽ deploy dựa án laravel sử dụng AWS ECS type fargate.

Create docker image to ECR

Đầu tiên chúng ta cần tạo và push image của dự án lên ECR. Các bạn đọc bài viết Create docker image to AWS ECR để tạo và push các image cần thiết lên ECR trước.

Create Task Definitions

Định nghĩa các container cần thiết để chạy project laravel, chúng ta sử dụng 2 container là laravel-nginx và laravel-fpm. Thiết lập các thông số name, role, compatibilities, operating system cho task
Create task aws ecs
Thêm 2 container laravel-nginx và laravel-fpm
Add laravel fpm container
Đối với container sử dụng php-fpm chỉ cần khai báo container name và image name, không cần maping post 9000.
Tiếp theo thêm container laravel-nginx
add nginx container aws ecs
Nginx container cần mapping post 80(http) vaf 443(https). Sau đó cần thiết lập mount volume cho container nginx với container laravel-fpm. Chúng ta cần tạo volume và config mount volume như sau:
Create volumne nginx container
Thiết lập mount volume /var/www trong container laravel-nginx với /var/www trong container laravel-fpm.
mount volume aws ecs faragate
Thiết lập cloudWatch log
CloudWatch
Thiết lập cloudWatch cho cả 2 container php và nginx. Như vậy là chúng ta đa thiết lập xong task difinition cho AWS ECS với type là FARGATE.

Create cluster AWS ECS

Tạo cluster sử dụng AWS Fargate
Create fargate cluster
Đối với fargate cluster chỉ cần thiết lập cluster name, còn type ec2 sẽ cần config nhiều hơn
Config fargate cluster
Ấn tạo cluster là xong.

Create service ECS Fargate

Tiếp theo chúng ta sẽ tạo service để chạy các dịch vụ được khai báo trong task definition.
Create ecs fargate service
Thiết lập aws ecs fargate service
Config aws fargate service
chọn launch type là fargate
Config aws ecs fargate service
Thiết lập network
Config network
Giờ chỉ việc ấn nút tạo service là xong. Khi server được tạo, các service aws cần thiết sẽ được chạy. Kiểm tra task chạy thành cômg
Aws ecs run task success
Kiểm tra 2 container được tạo
Check container
Public ip là địa chỉ ip, để bạn truy cập vào website. 

Delploy success
Giá của ecs fargate tính theo giờ và cấu hình mà bạn setup
Price ecs service

Như vậy là chúng ta đã deploy thành công dự án laravel lên ECS type FARGATE. Chúc bạn deploy thành công nhé.