Deploy dự án Ruby on Rails trên Amazon ECS
Đây là một hướng dẫn cơ bản về cách triển khai ứng dụng Ruby trên AWS ECS (Elastic Container Service) Cluster bằng cách sử dụng Docker. Trong hướng dẫn này, chúng ta sẽ triển khai một ứng dụng Ruby đơn giản sử dụng một Docker container lên một AWS ECS Cluster.
Bước 1: Chuẩn bị Docker Container
Đầu tiên, bạn cần tạo một Dockerfile để đóng gói ứng dụng Ruby của bạn thành một container. Dưới đây là một ví dụ về Dockerfile đơn giản:
# Use a Ruby base image FROM ruby:2.7 # Set the working directory WORKDIR /app # Copy Gemfile and Gemfile.lock and install gems COPY Gemfile Gemfile.lock ./ RUN bundle install # Copy the rest of the application code COPY . . # Expose port EXPOSE 3000 # Command to run the application CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
Bước 2: Xây dựng và đẩy Docker Container lên ECR (Elastic Container Registry)
-
Đảm bảo bạn đã cài đặt và đăng nhập vào AWS CLI trên máy tính của bạn.
-
Xây dựng Docker image từ Dockerfile:
docker build -t my-ruby-app .
-
Đăng nhập vào ECR:
aws ecr get-login-password --region your-region | docker login --username AWS --password-stdin your-account-id.dkr.ecr.your-region.amazonaws.com
Lưu ý thay thế
your-region
vàyour-account-id
bằng thông tin của tài khoản AWS của bạn. -
Tạo một repository ECR để lưu trữ Docker image:
aws ecr create-repository --repository-name my-ruby-app
-
Đổi tên Docker image:
docker tag my-ruby-app:latest your-account-id.dkr.ecr.your-region.amazonaws.com/my-ruby-app:latest
-
Đẩy Docker image lên ECR:
docker push your-account-id.dkr.ecr.your-region.amazonaws.com/my-ruby-app:latest
Bước 3: Tạo Cluster và Task Definition trên AWS ECS
-
Đăng nhập vào AWS Management Console và mở dịch vụ ECS.
-
Tạo một Cluster mới.
-
Tạo một Task Definition:
- Chọn tạo Task Definition.
- Chọn Fargate hoặc EC2 (tùy thuộc vào loại cluster bạn muốn sử dụng).
- Chọn
Task execution role
. - Định nghĩa container với thông tin từ ECR repository bạn vừa tạo.
- Đặt các cấu hình khác như cần thiết (networking, logging, environment variables, etc.).
Bước 4: Tạo một Service trên ECS Cluster
-
Trong cluster của bạn, chọn "Create" và chọn "Service".
-
Điền thông tin cần thiết:
- Task Definition: Chọn Task Definition bạn vừa tạo.
- Cluster: Chọn Cluster bạn muốn sử dụng.
- Service name: Đặt tên cho service của bạn.
- Number of tasks: Số lượng task bạn muốn chạy.
-
Cấu hình các thiết lập mạng, Load balancer (nếu cần) và các thiết lập khác theo nhu cầu của bạn.
-
Kích hoạt service của bạn.
Sau khi hoàn thành các bước trên, ứng dụng Ruby của bạn sẽ được triển khai và chạy trên AWS ECS Cluster của bạn.
Mời bạn đọc xem bài viết gốc tại link github này:
https://gist.github.com/l-cuong/6fb40e7a1dada11f2f96675749af9b6b
Tác giả: l-cuong
Ruby Developer