- Published on
pulumi aws provider version: 안전하게 고정하고 관리하는 방법
- Authors

- Name
- Indo Yoon
Pulumi에서 AWS provider 버전은 코드의 패키지 의존성과 실행 환경의 플러그인 설치 상태를 함께 맞춰야 안전해요. 먼저 pulumi about과 pulumi plugin ls로 현재 상태를 확인하고, 패키지 파일에 원하는 버전을 명시한 뒤 pulumi up으로 일치시키는 흐름이 기본이에요. 버전을 올릴 때는 변경 범위를 작게 나누고 미리보기와 실제 배포를 분리하는 편이 좋아요.
한눈에 보기
Pulumi의 AWS provider는 AWS 리소스를 실제로 다루는 플러그인이에요. 언어별 SDK 패키지는 그 provider를 사용하는 코드 인터페이스 역할을 해요. 따라서 package.json, requirements.txt, go.mod, 프로젝트 파일 같은 의존성 선언과 실행 환경의 플러그인 설치 상태를 같이 봐야 해요.
- provider 버전은 AWS 리소스 동작과 기본값에 영향을 줄 수 있어요.
- Pulumi CLI 버전과 AWS provider 버전은 서로 다른 개념이에요.
- 코드에 버전을 고정하고, CI에서도 같은 버전을 설치하는 편이 재현성에 좋아요.
- 운영 스택에 적용하기 전에는
pulumi preview와 비운영 스택 검증을 먼저 해요. - 버전을 올린 뒤에는
pulumi about으로 실제 설치된 플러그인을 다시 확인해요.
provider 버전과 CLI 버전의 차이
Pulumi CLI는 스택을 계획하고 상태를 관리하는 도구예요. AWS provider는 CLI가 AWS API를 호출할 때 사용하는 리소스 플러그인이에요. 언어별 SDK 패키지는 TypeScript, Python, Go, .NET 같은 코드에서 리소스를 선언할 수 있게 해주는 라이브러리예요.
이 세 가지를 구분하지 않으면 “CLI는 최신인데 왜 다른 동작이 나오지” 같은 상황을 겪을 수 있어요. pulumi about은 현재 프로젝트에서 사용하는 CLI와 플러그인 정보를 보여줘요. pulumi plugin ls는 로컬에 설치된 플러그인 목록을 확인할 때 사용해요.
중요한 점은 코드의 SDK 패키지가 요구하는 provider 버전과 실행 환경에 설치된 플러그인 버전이 어긋나지 않게 관리하는 거예요. Pulumi는 실행 중에 필요한 플러그인을 자동으로 설치할 수 있지만, 운영에서는 자동 설치에만 기대기보다 버전을 명시하고 미리 준비하는 편이 안정적이에요.
버전 관리 방식 비교
| 방식 | 주로 쓰는 상황 | 확인할 곳 | 주의할 점 |
|---|---|---|---|
| 패키지 의존성 고정 | 일반적인 애플리케이션과 운영 스택 | package.json, requirements.txt, go.mod, 프로젝트 파일 | 잠금 파일도 함께 커밋해요 |
| 플러그인 수동 설치 | CI 이미지, 오프라인 환경, 배포 전 사전 준비 | pulumi plugin ls | 코드 의존성과 다른 버전을 설치하지 않아요 |
| 자동 설치에 맡김 | 로컬 실험과 빠른 확인 | pulumi up 실행 로그 | 실행 시점에 따라 버전이 달라질 수 있어요 |
표에서 볼 수 있듯이 운영 환경에서는 패키지 의존성 고정과 플러그인 사전 설치를 함께 쓰는 방식이 무난해요. 로컬에서는 자동 설치가 편하지만, CI나 배포 파이프라인에서는 같은 버전이 반복 설치되도록 명시하는 편이 좋아요.
단계별로 버전 확인하고 고정하기
먼저 프로젝트 디렉터리에서 현재 상태를 확인해요. pulumi about으로 CLI와 플러그인 정보를 보고, pulumi plugin ls로 로컬에 설치된 AWS provider를 확인해요. 스택별 설정이 아니라 프로젝트 의존성과 실행 환경이 기준이라는 점을 기억해요.
다음으로 사용할 AWS provider 버전을 정해요. 공식 레지스트리와 변경 기록을 확인하고, 운영에서 검증된 버전을 고르는 편이 좋아요. 새 major 버전은 동작 변경이 포함될 수 있으므로 바로 운영에 적용하지 않고 비운영 스택에서 먼저 확인해요.
그다음 언어별 패키지 파일에 버전을 명시해요. Node.js라면 npm install @pulumi/aws@<버전>처럼 설치하고 package.json과 잠금 파일을 함께 커밋해요. Python이라면 requirements.txt에 pulumi-aws==<버전> 형태로 고정하고, .NET이라면 프로젝트 파일의 패키지 참조 버전을 맞춰요. Go라면 모듈의 require 항목을 확인해요.
플러그인을 미리 설치하려면 pulumi plugin install resource aws <버전>을 사용해요. CI 이미지나 배포 서버에서 이 명령을 실행하면 실행 시점의 자동 다운로드를 줄일 수 있어요. 이미 다른 버전이 설치되어 있다면 pulumi plugin ls로 확인하고, 필요하면 pulumi plugin rm resource aws <버전>으로 정리해요.
마지막으로 pulumi preview로 변경 범위를 확인하고 pulumi up을 실행해요. 운영 스택이라면 상태를 내보내 백업해 두고, 배포 후 pulumi about으로 실제 사용된 플러그인 버전을 다시 확인해요. CI에서는 플러그인 디렉터리를 캐시하되, 캐시 키에 provider 버전을 포함해 다른 버전이 섞이지 않게 해요.
상황별 선택
신규 프로젝트라면 조직에서 검증한 안정 버전을 골라 의존성에 고정하는 방식이 좋아요. 최신 버전을 무조건 따라가기보다 AWS 리소스 변경과 배포 주기를 고려해요.
기존 운영 스택이라면 한 번에 큰 버전을 올리기보다 변경 범위를 나눠서 적용해요. 먼저 비운영 스택에서 pulumi preview와 실제 배포를 확인하고, 문제가 없을 때 운영 스택에 반영해요.
모노레포에서는 패키지마다 다른 AWS provider 버전을 쓰지 않도록 공통 버전을 정하는 편이 좋아요. 워크스페이스나 공통 의존성 파일로 버전을 맞추면 CI에서 예상하지 못한 플러그인 설치를 줄일 수 있어요.
CI/CD에서는 pulumi plugin install resource aws <버전>을 배포 전 단계에 넣고, 코드 의존성과 같은 버전을 사용해요. 자동 설치에 맡기면 네트워크 상태나 실행 시점에 따라 다른 버전이 선택될 수 있으므로 운영 파이프라인에서는 명시 설치가 안전해요.
긴급 롤백이 필요할 때는 패키지 의존성과 플러그인 설치 버전을 함께 되돌려요. 코드만 되돌리고 플러그인을 그대로 두면 다음 실행에서 불일치가 생길 수 있어요.
주의할 점
AWS provider의 major 버전 업그레이드는 리소스 기본값이나 스키마 변경을 포함할 수 있어요. 공식 변경 기록을 읽고, 운영 스택에 적용하기 전에 비운영 스택에서 미리 검증해요.
pulumi up이 필요한 플러그인을 자동으로 설치해 주더라도, 의존성을 고정하지 않으면 실행 환경마다 다른 버전이 선택될 수 있어요. 운영에서는 패키지 파일과 잠금 파일을 함께 커밋하고 CI에서도 같은 설치 절차를 사용해요.
로컬에 설치된 플러그인과 CI에 설치된 플러그인이 다르면 preview 결과가 달라질 수 있어요. 배포 전후에 pulumi about과 pulumi plugin ls로 확인하는 습관이 좋아요.
플러그인 캐시를 사용할 때는 캐시 키에 provider 버전을 넣어요. 캐시를 재사용하면서 버전이 섞이면 오래된 플러그인이 실행될 수 있어요.
자주 묻는 질문
Pulumi AWS provider 버전은 어디에서 확인하나요?
프로젝트 디렉터리에서 pulumi about을 실행하면 CLI와 플러그인 정보를 볼 수 있어요. pulumi plugin ls로 로컬에 설치된 AWS provider 목록을 확인하고, 언어별 패키지 파일의 의존성 버전도 함께 봐요.
package.json의 버전과 설치된 플러그인 버전이 다르면 어떻게 되나요?
코드가 요구하는 버전과 실행 환경의 플러그인 버전이 다르면 예상과 다른 동작이 나올 수 있어요. 패키지 의존성을 기준으로 pulumi plugin install resource aws <버전>을 실행해 버전을 맞춰요.
운영 중인 스택의 provider 버전을 바로 올려도 되나요?
바로 올리기보다 비운영 스택에서 먼저 검증하는 편이 안전해요. 공식 변경 기록을 확인하고 pulumi preview로 변경 범위를 본 뒤, 문제가 없을 때 운영에 적용해요.
CI에서 플러그인을 미리 설치하려면 어떻게 하나요?
배포 전 단계에서 pulumi plugin install resource aws <버전>을 실행해요. 코드 의존성과 같은 버전을 사용하고, 캐시를 쓸 때는 캐시 키에 해당 버전을 포함해요.
출처
관련 운영 글: Pulumi 스택 운영과 배포 점검 체크리스트에서 provider 버전 고정 이후의 배포 전후 점검 항목과 롤백 흐름을 함께 확인해 보세요.