Ruby Lambda 함수를 컨테이너 이미지로 배포하기
Ruby Lambda 함수를 컨테이너 이미지로 배포하기
Ruby Lambda 함수를 위한 컨테이너 이미지를 만드는 방법은 세 가지가 있어요:
본문
- Ruby용 AWS 베이스 이미지 사용하기 — AWS 베이스 이미지에는 언어 런타임, Lambda와 함수 코드 사이의 상호 작용을 관리하는 런타임 인터페이스 클라이언트, 그리고 로컬 테스트용 런타임 인터페이스 에뮬레이터가 미리 탑재되어 있어요.
- AWS OS-only 베이스 이미지 사용하기 — AWS OS-only 베이스 이미지에는 Amazon Linux 배포판과 런타임 인터페이스 에뮬레이터가 들어 있어요. 이 이미지는 Go, Rust 같은 컴파일 언어나, Lambda가 베이스 이미지를 제공하지 않는 언어·버전(Node.js 19 같은)의 컨테이너 이미지를 만들 때 주로 사용합니다. OS-only 베이스 이미지로 커스텀 런타임을 구현할 수도 있어요. 이미지를 Lambda와 호환되게 하려면 이미지에 Ruby용 런타임 인터페이스 클라이언트를 반드시 포함해야 합니다.
- 비-AWS 베이스 이미지 사용하기 — Alpine Linux나 Debian처럼 다른 컨테이너 레지스트리의 대체 베이스 이미지를 사용할 수 있어요. 조직에서 만든 커스텀 이미지도 가능합니다. 역시 이미지를 Lambda와 호환되게 하려면 Ruby용 런타임 인터페이스 클라이언트를 이미지에 포함해야 해요.
팁
Lambda 컨테이너 함수가 활성화되는 시간을 줄이려면 Docker 문서의 멀티 스테이지 빌드 사용하기를 참고하세요. 효율적인 컨테이너 이미지를 만들려면 Dockerfile 작성 모범 사례를 따르세요.
이 페이지에서는 Lambda용 컨테이너 이미지를 빌드하고, 테스트하고, 배포하는 방법을 설명합니다.
Topics
Ruby용 AWS 베이스 이미지
AWS는 Ruby용으로 다음과 같은 베이스 이미지를 제공합니다:
| 버전 | Ruby 버전 | 운영 체제 | Dockerfile | 사용 중단 날짜 |
|---|---|---|---|---|
| 4.0 | Ruby 4.0 | Amazon Linux 2023 | GitHub의 Ruby 4.0용 Dockerfile | 2029년 3월 31일 |
| 3.4 | Ruby 3.4 | Amazon Linux 2023 | GitHub의 Ruby 3.4용 Dockerfile | 2028년 3월 31일 |
| 3.3 | Ruby 3.3 | Amazon Linux 2023 | GitHub의 Ruby 3.3용 Dockerfile | 2027년 3월 31일 |
Amazon ECR 저장소: gallery.ecr.aws/lambda/ruby
Ruby용 AWS 베이스 이미지 사용하기
Ruby용 AWS 베이스 이미지를 사용해 컨테이너 이미지를 만들고 배포하는 방법을 살펴봅니다.
런타임 인터페이스 클라이언트가 있는 대체 베이스 이미지 사용하기
OS-only 베이스 이미지나 대체 베이스 이미지를 사용한다면, 이미지에 런타임 인터페이스 클라이언트를 반드시 포함해야 해요. 런타임 인터페이스 클라이언트는 Lambda와 함수 코드 사이의 상호 작용을 관리하는 Runtime API를 확장합니다.
RubyGems.org 패키지 관리자를 사용해 Ruby용 Lambda 런타임 인터페이스 클라이언트를 설치하세요:
gem install aws_lambda_ric
Ruby 런타임 인터페이스 클라이언트는 GitHub에서도 다운로드할 수 있어요.
다음 예시는 비-AWS 베이스 이미지를 사용해 Ruby용 컨테이너 이미지를 빌드하는 방법을 보여줘요. 예시 Dockerfile은 공식 Ruby 베이스 이미지를 사용하며, 런타임 인터페이스 클라이언트를 포함하고 있습니다.