• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

terraform으로 eks 구성 관련하여 질문 + 기타 질문

22.12.05 00:17 작성 조회수 402

0

안녕하세요, 현재 스타트업에서 일하고 있는 장선우라고 합니다. 팀에서 aws cloud를 terraform으로 관리하는 것을 도입중에 이 강의를 우선 듣게 되었습니다.

먼저 좋은 강의 감사합니다 :) 얼마전 인프콘 발표도 정말 인상깊게 들었는데, 정말 감사드려요.

저희는 현재 eksctl로 eks를 운영(helm, argocd활용) 하고 있습니다. terraform으로 이를 마이그레이션 하려고 할 때 몇가지 궁금증이 생겨 질문 드립니다.

 

1. eks에서 helm을 운영하는경우에, terraform provider helm을 사용하는 경우가 많나요? 아니면, terraform에서 eks만 띄워두고, helm은 따로 yaml파일로 사용하나요?

2. 혹시 후자인 경우에는 보통 repository는 분리해서 사용하나요? (아니면 tf폴더와 helm 템플릿 관련 폴더가 나눠져 있을까요?)

 

aws workshop 레퍼런스를 봤는데 해당 파일의 샘플앱은 kuberenets 템플릿을 yaml이 아닌 tf로 구성하고 있는데, 낯설게 느껴지기도 하고 helm에도 적용이 될지, 실제 현업에서도 사용하는 베스트 프렉트스 일지 궁금해서 질문 드립니다. (관련 레퍼런스는 여기 입니다.)

 

기타 질문

최근 '확장 가능한 테라폼 코드 관리'라는 자료를 읽게 되었습니다. 해당 자료에서는 확장성이나 커스텀을 위해 외부 모듈 사용 (e.g., terraform-aws-module) 을 지양해야 한다는 내용이 있었습니다. 같은 생각이신지 궁금합니다. 이 부분을 배제하고 terraform을 세팅하는 것이 좋을지 궁금해서 질문드렸습니다.

 

질문이 너무 길었네요. 강의 정말 감사드립니다.

답변 1

답변을 작성해보세요.

2

안녕하세요~!

양질의 질문 감사합니다~

많은분들이 이 질문을 같이 보았으면 좋겠네요ㅎ

 

eks에서 helm을 운영하는경우에, terraform provider helm을 사용하는 경우가 많나요? 아니면, terraform에서 eks만 띄워두고, helm은 따로 yaml파일로 사용하나요?

-> 일단 말씀하신 부분은 케이스 바이 케이스이긴 합니다. 하지만 저희 같은 경우는 Terraform 으로 eks 만 띄우고 helm 은 yaml 파일로 따로 관리합니다. 레포도 분리해서 쓰고 있습니다.

굳이 모든걸 terraform 으로 관리할 필요는 없다고 생각합니다.

중요한건 state, status 를 관리하는거니까요~

다른 코드를 참조할때도 최대한 쉽고 간단하고 easy to read, Readability 를 최우선으로 생각합니다.

쉽게 이해되고, 빠른 변경이 가능하면 사실 그 어떤 방법을 쓰더라도 상관 없다고 생각합니다.

 

같은 이유로 terraform-aws-module 같은걸 지양하는 편입니다.

물론 쓰는 경우도 있습니다. 그냥 다운로드 받아서 몇가지 값만 바꾸고 apply 해서 쓰는거라면 사용하는데, 우리 서비스를 구현할때는 안쓰는 방향으로 하고 있습니다.

테라폼 코드를 복잡하게 사용하면 그 장점이 퇴색된다고 생각합니다.

module 내부에서 module 을 참조하거나 원격 github repo URL 같은걸 참조하게되면,

코드를 읽기가 쉽지 않아서, 특히 module in module 같은건 강하게 지양합니다.

 

하지만 다양한 사례에서 쓰는 방법은 각각 입니다.

혼자 일하는 경우가 아니라면, 우리가 가장 쉽게 읽고, 변경하고, 실수를 줄일 수 있는 방법이 무엇인지 고민해보면 좋을 것 같습니다~

 

Seonu Jang님의 프로필

Seonu Jang

질문자

2023.02.12

답변 감사드립니다! 많은 도움 되었습니다.
강의 너무 잘 들었고 덕분에 팀에 테라폼을 점차 도입하고 있습니다.

주영님이 발표에서 해주신 말씀처럼 국내가 아니라 글로벌에서도 경쟁할 수 있는 역량을 목표로 개인으로서도 팀으로서도 노력하겠습니다 :)