해결된 질문
작성
·
154
답변 1
1
안녕하세요.
송주영입니다.
좋은 질문해주셔서 감사합니다.
VPC를 module로 만든 사례들도 많습니다.
하지만 제가 VPC에서는 모듈을 사용하지 않는 것은,
VPC는 한번 만들어지면 변화가 크지 않다, module내 코드 1개의 변경으로 전체 VPC가 변화해야할 것이 크게 없다.
VPC는 잘 안바뀌는 자원이다.
VPC는 각 형상, 서브넷 갯수, RouteTable 룰이 달라지는 경우 값이 달라지기 보다는 전체 자원 갯수가 달라지거나 하기 때문에 module 코드에 if 형태의 문이 많이 들어갈 수 있다.
Peering을 하면 한 곳은 request, accept 를 해야하는데, 이 문제가 복잡해질 수 있다. ( 3번의 예 )
위에 이러한 문제로 인해서 module로 VPC를 사용하지 않습니다.
물론 사용 방법은 회사마다 자유이지만, 저는 테라폼 코드가 복잡해지는 걸 원하지 않습니다. 코드처럼 사용하는걸 지양하는 편에 속합니다. yaml, json 같은 형식의 코드처럼 생각하는 경우에 가깝습니다.
물론 제 코드 밑에 vpc.tf 안에만 있는 자원이 아닌 다른 것들은 일부 모듈화 하거나 그럴 수 있는 있을 수 있을 것 같습니다. 이 문제는 우리의 서비스가 몇개인지, VPC가 몇개인지, region은 몇개인지, account는 몇개인지에 따라서 고도화를 해나가야 할 수 있다면, 그 방향으로 지향해야합니다.
즉 시간을 줄이고, readability를 향상 시킬 수 있는 어느 방법이 있다면, 그걸 사용해야 한다고 생각합니다.
예제 코드는 제 머릿속에서 나온 아직까지의 한계라고 생각해주시면 되겠습니다.ㅎ
제가 미처 생각하지 못했던 내용이 있었네요.
선생님께서 강의에서 계속 말씀하셨는데 자신도 모르게 테라폼을 코딩처럼 생각한 부분이 있었던 것 같습니다.
답변 감사드립니다.