Terraform 실전 · 모듈화 · 퀴즈
퀴즈: 모듈화
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
자식 모듈 안에 `provider` 설정 블록을 두면 안 되는 가장 큰 이유는?
- 같은 모듈을 두 번 호출하면 프로바이더 설정이 충돌해 두 번째 호출이 막힌다
- 그 모듈 호출을 코드에서 제거할 수 없게 되어 파괴 자체가 막힌다
- 모듈 안 프로바이더 설정이 루트 설정을 덮어써 루트 리소스까지 영향을 받는다
- 문법상 허용되지 않아 `init` 단계에서 곧바로 오류로 걸러진다
모듈 안에서 만든 리소스의 값을 루트에서 쓰려면?
- 자식 모듈에 `output` 을 정의하고 그것을 참조한다
- `module.<이름>.<리소스타입>.<리소스이름>` 으로 직접 참조한다
- 상태 파일을 직접 읽는다
- 같은 리소스를 루트에 한 번 더 선언한다
같은 모듈로 인스턴스를 두 벌 만들고 싶습니다. 올바른 방법은?
- 루트 디렉터리를 두 벌로 나눠 각각 따로 `apply` 한다
- 같은 `source` 를 서로 다른 호출 이름으로 두 번 선언한다
- 모듈 디렉터리를 통째로 복사해 이름만 다른 두 벌로 만든다
- 모듈 안 리소스마다 `count = 2` 를 넣어 두 벌씩 만들게 한다
`module.bundle.module.left.local_file.box` 라는 상태 주소가 뜻하는 것은?
- 같은 local_file.box 가 bundle 과 left 두 모듈에 중복 등록되어 주소가 합쳐졌다
- bundle 모듈이 두 번 적용되어 두 번째 적용분에만 left 라는 접두어가 붙었다
- bundle 모듈이 left 라는 이름의 리소스를 만들었고 그 타입이 local_file.box 다
- bundle 모듈 안에서 left 라는 이름으로 다시 모듈을 호출했고 그 안에 local_file.box 가 있다
모듈 입력값 검증을 `variable` 의 `validation` 으로 하는 이점은?
- 검증을 통과한 입력만 상태에 남아 모듈별 상태 크기가 눈에 띄게 줄어든다
- 모듈이 요구하는 프로바이더 버전을 변수 검증으로 함께 고정할 수 있다
- 잘못된 값이 모듈 경계에서 거부되어 오류가 어느 호출의 어느 변수 때문인지 바로 드러난다
- 잘못된 조합을 미리 걸러 계획 단계의 조회 횟수가 줄고 실행이 빨라진다
모듈을 나누는 기준으로 가장 실용적인 것은?
- 네트워크·컴퓨트·스토리지처럼 리소스 종류별로 나눈다
- 함께 바뀌고 함께 사라지는 것들을 한 모듈로 묶는다
- 모듈마다 파일 줄 수가 비슷해지도록 균등하게 나눈다
- 담당자를 한 명씩 붙일 수 있도록 팀 인원수에 맞춰 나눈다