Pulumi - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Pulumi

Pulumi는 GitOps 전용으로 설계되지 않은 IaC 플랫폼입니다. 그러나 특히 클라우드 인프라 및 Kubernetes 배포의 경우 GitOps 원칙을 구현하는 데 효과적으로 사용할 수 있습니다.

GitOps 지원

영역 도구 기능

IaC

Pulumi를 사용하면 Python, TypeScript, Go와 같은 범용 프로그래밍 언어를 사용하여 인프라를 정의할 수 있습니다. 이 코드 기반 접근 방식은 버전이 지정된 선언적 구성에 대한 GitOps 강조와 일치합니다.

Git을 신뢰할 수 있는 단일 소스로 사용

Pulumi의 인프라 코드는 Git 리포지토리에 저장하고 버전을 제어할 수 있습니다. 이렇게 하면 Git이 인프라 정의에 대한 신뢰할 수 있는 단일 소스 역할을 할 수 있습니다.

선언적 원하는 상태

Pulumi는 프로그래밍 언어를 사용하지만 여전히 원하는 인프라 상태를 선언적으로 설명합니다. 코드는 인프라를 생성하기 위한 step-by-step 프로세스가 아니라 인프라의 모습을 정의합니다.

자동 동기화

Pulumi를 CI/CD 파이프라인과 통합하여 Git에서 코드가 업데이트될 때 변경 사항을 자동으로 적용할 수 있습니다. 이를 통해 주요 GitOps 원칙인 인프라 변경 사항을 지속적으로 배포할 수 있습니다.

다중 클라우드 및 Kubernetes 지원

Pulumi는 다양한 클라우드 공급자와 Kubernetes를 지원하므로 다양한 환경에서 GitOps 관행을 따를 수 있습니다. 이 도구를 사용하면 다양한 플랫폼에서 리소스를 일관되게 관리할 수 있습니다.

상태 관리

Pulumi는 원격으로 안전하게 저장할 수 있는 인프라 상태를 관리합니다. 이 상태 관리는 GitOps 관행에 매우 중요하며, 정의된 상태와 인프라의 실제 상태 간의 일관성을 보장합니다.

드리프트 감지 및 조정

Pulumi는 원하는 상태(코드)와 실제 인프라 상태 간의 차이를 감지할 수 있습니다. 지속적인 조정을 위한 GitOps 원칙에 따라 이러한 차이를 조정합니다.

코드형 정책

Pulumi CrossGuard를 사용하여 정책을 코드로 정의하고 적용할 수 있습니다. 이를 통해 버전 제어 GitOps 스타일의 규정 준수 및 보안 정책 관리가 가능합니다.

보안 암호 관리

Pulumi는 인프라 코드 내에서 민감한 정보를 관리하는 안전한 방법을 제공합니다. GitOps 보안 사례에 중요한 외부 보안 암호 관리 시스템과의 통합을 지원합니다.

모듈식 및 재사용 가능한 구성 요소

Pulumi는 재사용 가능한 구성 요소 및 모듈 생성을 지원합니다. 이 모듈화는 복잡한 다중 환경 배포를 관리하기 위한 GitOps 관행에 부합합니다.

미리 보기 및 계획

Pulumi는 변경 사항을 적용하기 전에 미리 볼 수 있는 기능을 제공합니다. 이는 인프라에 대한 안전하고 예측 가능한 변경이라는 GitOps 원칙을 지원합니다.

롤백 및 기록

Pulumi는 배포 기록을 유지 관리하고 이전 상태로의 롤백을 지원합니다. 이는 추적성 및 재현성에 대한 GitOps 원칙에 부합합니다.

인프라에 대한 지속적인 제공

인프라 변경을 지속적으로 제공하기 위해 Pulumi를 CI/CD 파이프라인에 통합할 수 있습니다. 인프라 코드의 자동 테스트 및 검증을 지원합니다.

RBAC 및 액세스 제어

Pulumi는 인프라를 변경할 수 있는 사용자를 관리하기 위한 역할 기반 액세스 제어를 제공합니다. 이는 GitOps 보안 및 거버넌스 관행을 지원합니다.

관찰성 및 로깅

Pulumi는 인프라 변경에 대한 로깅 및 모니터링 기능을 제공합니다. 이러한 기능은 GitOps 관행의 관찰성 측면을 지원합니다.

다른 도구와의 통합

Pulumi는 클라우드의 다양한 도구와 통합할 수 있습니다. 이러한 유연성을 통해 포괄적인 GitOps 워크플로가 가능합니다.

환경 관리

Pulumi는 구성이 다른 동일한 코드베이스를 사용하여 여러 환경(개발, 스테이징, 프로덕션)의 관리를 지원합니다. 이는 일관된 다중 환경 관리를 위한 GitOps 관행에 부합합니다.

종속성 관리

Pulumi는 리소스 간의 종속성을 처리하고 올바른 작업 순서를 보장합니다. 이는 상호 종속적인 구성 요소가 포함된 복잡한 GitOps 배포에 매우 중요합니다.

사용자 지정 리소스 공급자

Pulumi를 사용하면 사용자 지정 공급자를 생성하여 API 기반 서비스를 관리할 수 있습니다. 이를 통해 GitOps 관행이 표준 클라우드 오퍼링을 넘어 광범위한 리소스로 확장됩니다.

공동 작업 기능

Pulumi는 공유 상태 및 액세스 제어를 통해 팀 협업을 지원합니다. 이렇게 하면 팀 환경에서 GitOps 워크플로가 용이해집니다.

조직은 이러한 Pulumi 기능을 사용하여 인프라에 대한 GitOps 사례를 구현할 수 있습니다. 특히 세분화된 제어 또는 복잡한 로직이 필요하거나 일관된 단일 프레임워크 내에서 다양한 클라우드 및 온프레미스 리소스 세트를 관리하려는 시나리오에서 더욱 그렇습니다.

GitOps에 대한 Pulumi의 접근 방식은 GitOps 원칙을 준수하면서 인프라 관리에 범용 프로그래밍 언어의 성능과 유연성을 제공하기 때문에 고유합니다. 이는 익숙한 프로그래밍 언어로 작업하고 인프라 관리에 소프트웨어 엔지니어링 모범 사례를 적용하려는 팀에 특히 유리할 수 있습니다.

GitOps에서 Pulumi의 주요 차별화 요소는 표준 프로그래밍 언어를 사용하여 인프라를 정의하는 것입니다. 기존 GitOps 도구는 YAML 또는 도메인별 언어를 사용하는 경우가 많지만, Pulumi를 사용하면 더 복잡한 로직, 더 나은 코드 재사용, 기존 개발 워크플로와의 더 쉬운 통합이 가능합니다.

자세한 내용은 Pulumi 설명서를 참조하세요.