2024

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)

  1. Đả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.

  2. Xây dựng Docker image từ Dockerfile:

    docker build -t my-ruby-app .
  3. Đă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.

  4. Tạo một repository ECR để lưu trữ Docker image:

    aws ecr create-repository --repository-name my-ruby-app
  5. Đổi tên Docker image:

    docker tag my-ruby-app:latest your-account-id.dkr.ecr.your-region.amazonaws.com/my-ruby-app:latest
  6. Đẩ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

  1. Đăng nhập vào AWS Management Console và mở dịch vụ ECS.

  2. Tạo một Cluster mới.

  3. 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

  1. Trong cluster của bạn, chọn "Create" và chọn "Service".

  2. Đ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.
  3. 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.

  4. 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

 


Other news