terraform workspace

hyuckhoon.ko·2020년 12월 27일

What I learned in first year

목록 보기
21/146

실제 프로젝트를 진행하다보면
DEV,
TEST,
STAGING,
PRODUCTION 등
다양한 배포 환경이 필요하다.


하나의 프로젝트 내에 다양한 배포 환경이 있으니,
매번 배포 관련 settings 변수를 수정하는 것은 비효율적이다.



1. terraform workspace 명령어

docker-compose -f deploy/docker-compose.yml run --rm terraform

위와 같이 명령어를 입력하면
terraform이 제공하는 명령어 목록을 볼 수 있다.
특히, 배포 환경을 지정하는 workspace 명령어를 제공하고 있다.



docker-compose -f deploy/docker-compose.yml run --rm terraform workspace list

terraform workspace list를 통해
현재 workspace 리스트를 한 눈에 볼 수 있다.

입력 결과,
default 작업환경(workspace)만 있음을 알 수 있다.



2. dev 환경 생성하기

docker-compose -f deploy/docker-compose.yml run --rm terraform workspace new dev

위의 명령어를 입력하던 중 에러가 발생했다.


터미널에 403 에러 메시지와 함께 "expired token" 관련 에러였다.

현재 MFA 방식의 인증을 사용하고 있고,

(사용 중인 터미널)세션의 credentials 지속시간을 최대시간인 12시간으로 지정했었고, 그 세션이 만료가 된 것이었다.

구글링에선 만족스런 답변을 얻지 못했고,
작업중인 터미널을 다시 종료했고 새로운 터미널에서 세션 토큰을 새로 발급받았다.

aws-vault exec 'iamuser계정명' --duration=12h

아무튼,
dev workspace가 생성됐다.



이제 다시 workspace list명령어를 입력해보자.

docker-compose -f deploy/docker-compose.yml run --rm terraform workspace list



이러한 방식으로 다수의 workspace를 생성할 수 있다.

terraform 공식문서: https://www.terraform.io/docs/state/workspaces.html



0개의 댓글