Lambda와 Kubernetes 사용하기
Lambda와 Kubernetes 사용하기
AWS Controllers for Kubernetes(ACK) 또는 Crossplane을 사용해 Kubernetes API로 Lambda 함수를 배포하고 관리할 수 있어요.
본문
AWS Controllers for Kubernetes(ACK)
ACK를 사용하면 Kubernetes API에서 AWS 리소스를 배포하고 관리할 수 있어요. ACK를 통해 AWS는 Lambda, Amazon Elastic Container Registry(Amazon ECR), Amazon Simple Storage Service(Amazon S3), Amazon SageMaker AI 같은 AWS 서비스용 오픈소스 커스텀 컨트롤러를 제공합니다. 지원되는 각 AWS 서비스에는 고유한 커스텀 컨트롤러가 있어요. Kubernetes 클러스터에 사용하려는 각 AWS 서비스용 컨트롤러를 설치합니다. 그런 다음 Custom Resource Definition(CRD)을 만들어 AWS 리소스를 정의하세요.
ACK 컨트롤러를 설치할 때는 Helm 3.8 이상을 사용할 것을 권장합니다. 모든 ACK 컨트롤러에는 자체 Helm 차트가 있어서 컨트롤러, CRD, Kubernetes RBAC 규칙을 설치합니다. 자세한 내용은 ACK 문서의 ACK 컨트롤러 설치를 참고하세요.
ACK 커스텀 리소스를 만든 뒤에는 다른 내장 Kubernetes 객체처럼 사용할 수 있어요. 예를 들어 kubectl을 포함해 선호하는 Kubernetes 툴체인으로 Lambda 함수를 배포하고 관리할 수 있습니다.
ACK를 통해 Lambda 함수를 프로비저닝하는 사용 사례는 다음과 같습니다:
- 조직이 역할 기반 액세스 제어(RBAC)와 서비스 계정용 IAM 역할로 권한 경계를 만든다면, ACK를 사용해 새 사용자와 정책을 만들지 않고도 이 보안 모델을 Lambda에 재사용할 수 있어요.
- 조직이 Kubernetes 매니페스트로 Amazon Elastic Kubernetes Service(Amazon EKS) 클러스터에 리소스를 배포하는 DevOps 프로세스를 갖고 있다면, ACK를 사용해 별도의 infrastructure as code 템플릿을 만들지 않고도 매니페스트 하나로 Lambda 함수를 프로비저닝할 수 있습니다.
ACK 사용에 대한 자세한 내용은 ACK 문서의 Lambda 튜토리얼을 참고하세요.
Crossplane
Crossplane은 Kubernetes로 클라우드 인프라 리소스를 관리하는 오픈소스 Cloud Native Computing Foundation(CNCF) 프로젝트입니다. Crossplane을 사용하면 개발자가 복잡성을 이해하지 않아도 인프라를 요청할 수 있어요. 플랫폼 팀은 인프라가 프로비저닝되고 관리되는 방식을 제어합니다.
Crossplane으로 kubectl 같은 선호하는 Kubernetes 툴체인과 Kubernetes에 매니페스트를 배포할 수 있는 모든 CI/CD 파이프라인을 사용해 Lambda 함수를 배포하고 관리할 수 있어요. Crossplane으로 Lambda 함수를 프로비저닝하는 사용 사례는 다음과 같습니다:
- 조직이 Lambda 함수에 올바른 태그가 있는지 확인해 규정 준수를 강제하고 싶다면, 플랫폼 팀이 Crossplane Compositions으로 API 추상화를 통해 이 정책을 정의할 수 있어요. 개발자는 이 추상화를 사용해 태그가 있는 Lambda 함수를 배포할 수 있습니다.
- 프로젝트가 Kubernetes에서 GitOps를 사용한다면, 이 모델에서 Kubernetes는 git 저장소(원하는 상태)와 클러스터 내부에서 실행 중인 리소스(현재 상태)를 지속적으로 일치시킵니다. 차이가 있으면 GitOps 프로세스가 클러스터를 자동으로 변경합니다. Kubernetes에서 GitOps를 사용해 Crossplane을 통해 Lambda 함수를 배포·관리할 수 있고, CRD와 Controllers 같은 친숙한 Kubernetes 도구와 개념을 사용합니다.
Crossplane을 Lambda와 함께 사용하는 방법을 더 배우려면 다음을 참고하세요:
- AWS Blueprints for Crossplane — Lambda 함수를 포함해 AWS 리소스를 Crossplane으로 배포하는 예시가 담긴 저장소입니다.
참고
AWS Blueprints for Crossplane은 활발히 개발 중이며 프로덕션에서 사용해서는 안 됩니다.
- Amazon EKS와 Crossplane으로 Lambda 배포하기 — 이 동영상은 Crossplane으로 AWS 서버리스 아키텍처를 배포하는 고급 예시를 개발자와 플랫폼 관점에서 탐구합니다.