Kubernetes와 함께 Lambda 사용 - AWS Lambda

Kubernetes와 함께 Lambda 사용

AWS Controllers for Kubernetes(ACK) 또는 Crossplane을 사용하여 Kubernetes API로 Lambda 함수를 배포하고 관리할 수 있습니다.

AWS Controllers for Kubernetes(ACK)

ACK를 사용하여 Kubernetes API에서 AWS 리소스를 배포하고 관리할 수 있습니다. ACK를 통해 Lambda, 아마존 엘라스틱 컨테이너 레지스트리 (Amazon ECR), 아마존 심플 스토리지 서비스 (Amazon S3), 아마존 등의 AWS 서비스를 위한 오픈 소스 사용자 지정 컨트롤러를 AWS 제공합니다. SageMaker 지원되는 각 AWS 서비스에는 자체 사용자 지정 컨트롤러가 있습니다. Kubernetes 클러스터에서 사용하려는 각 AWS 서비스에 대한 컨트롤러를 설치합니다. 그런 다음 사용자 지정 리소스 정의(CRD)를 생성하여 AWS 리소스를 정의합니다.

ACK 컨트롤러를 설치하려면 Helm 3.8 이상을 사용하는 것이 좋습니다. 모든 ACK 컨트롤러에는 컨트롤러, CRD 및 Kubernetes RBAC 규칙을 설치하는 자체 차트 Helm이 함께 제공됩니다. 자세한 내용은 ACK 설명서의 Install an ACK Controller를 참조하세요.

ACK 사용자 지정 리소스를 생성한 후에는 다른 기본 제공 Kubernetes 객체처럼 사용할 수 있습니다. 예를 들어, kubectl 등의 선호하는 Kubernetes 도구 체인을 사용하여 Lambda 함수를 배포하고 관리할 수 있습니다.

다음은 ACK를 통해 Lambda 함수를 프로비저닝하는 몇 가지 사용 사례입니다.

  • 조직에서는 서비스 계정에 대한 IAM 역할역할 기반 액세스 제어(RBAC)를 사용하여 권한 경계를 생성합니다. ACK를 사용하면 새로운 사용자와 정책을 생성할 필요 없이 Lambda에 대해 이 보안 모델을 재사용할 수 있습니다.

  • 조직에는 쿠버네티스 매니페스트를 사용하여 Amazon Elastic Kubernetes Service (Amazon EKS) 클러스터에 리소스를 배포하는 DevOps 프로세스가 있습니다. ACK를 사용하면 별도의 인프라를 코드 템플릿으로 생성하지 않고도 매니페스트를 사용하여 Lambda 함수를 프로비저닝할 수 있습니다.

ACK 사용에 대한 자세한 내용은 ACK 설명서의 Lambda 자습서를 참조하세요.

Crossplane

Crossplane은 Kubernetes를 사용하여 클라우드 인프라 리소스를 관리하는 오픈 소스 CNCF(Cloud Native Computing Foundation) 프로젝트입니다. Crossplane로 개발자는 인프라의 복잡성을 이해할 필요 없이 인프라를 요청할 수 있습니다. 플랫폼 팀이 인프라 프로비저닝 및 관리 방법에 대한 통제권을 갖습니다.

Crossplane을 사용하면 kubectl과 같은 선호하는 Kubernetes 도구 체인과 Kubernetes에 매니페스트를 배포할 수 있는 모든 CI/CD 파이프라인을 사용하여 Lambda 함수를 배포하고 관리할 수 있습니다. 다음은 Crossplane을 통해 Lambda 함수를 프로비저닝하는 몇 가지 사용 사례입니다.

Lambda와 함께 Crossplane을 사용하는 방법에 대해 자세히 알아보려면 다음을 참조하세요.

  • AWS Blueprints for Crossplane: 이 리포지토리에는 Crossplane을 사용하여 Lambda 함수를 비롯한 AWS 리소스를 배포하는 방법에 대한 예제가 포함되어 있습니다.

    참고

    AWS Blueprints for Crossplane는 현재 개발 중이므로 프로덕션에 사용해서는 안 됩니다.

  • Deploying Lambda with Amazon EKS and Crossplane: 이 동영상에서는 개발자와 플랫폼 관점에서 설계를 살펴보면서 Crossplane을 사용하여 AWS 서버리스 아키텍처를 배포하는 고급 예제를 보여줍니다.