terraform workspace

hyuckhoon.ko·2020년 12월 27일
0

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개의 댓글