심볼릭 링크 관련하여 질문 드립니다.
질문은 부담없이 어떤거든 해주세요!
주영님이 설정하신 심볼릭 링크 관련하여 코드 재사용 및 중앙 관리를 하기 위함인 것 같다는 생각이 들긴 하지만, 주영님께 직접 답변을 듣고 싶어서 질문드립니다.
service 디렉터리 구조에서 저렇게 심볼릭 링크를 설정하신 이유가 무엇인지 디테일하게 답변해 주실 수 있을까요??
답변 3
2
옙 맞습니다~ 중앙관리와 중복으로 반복되는 코드를 관리하기 위함입니다.
특히 예를 들자면 과거에는 terraform 0.X 시절에는 상위/하위 호환이 완전히 되지 않았습니다.
그래서 어느 누군가가 0.0.1 버전만 올리고 apply 를 한다면, 모든 사람이 업그레이드를 해야하고,
모든 파일의 해당 버전 부분을 고쳤어야 했습니다~
그런식으로 관리 편의성으로 이런식으로 만들었습니다. 물론, 과거부터 사용한 코드이기 때문에,
지금은 local variable을 비슷한 방식으로 사용한다거나, tag 같이 hard-coded 한 작업을 더 효율화 할 수 있는 여지는 있습니다~
2
제 짧은 식견으로 답변드리자면, chad님의 추론이 맞다고 봅니다.
같은 계정 내의 리소스를 다른 리소스가 활용할 때는 outputs과 remote_state를 활용해서 재사용을 할 수 있지만 다른 계정일 경우에는 ARN을 참조해서 사용해야할 경우가 생깁니다. 매번 ARN을 콘솔 또는 CLI를 통해 확인하는 것은 매우 비효율적이므로 resource 생성한 후 반복적으로 활용할 것으로 예상되는 ARN 또는 특정 값은 global 변수로 중앙 관리하는 것이 효율적입니다.
또한 제 짧은 식견으로 sg, route53, lb, global과 같이 var_*로 분리한 이유를 추론해보자면 다음과 같습니다.
첫 번 째, 하나의 파일로 변수를 관리할 경우 해당 파일의 크기가 너무 커져 가독성이 떨어집니다. 수십개가 아닌 수백, 수천, 수십만개의 리소스를 관리한다고 가정하였을 때를 고려하고 디렉토리 및 파일 구조를 설계하는 것이 바람직하다고 봅니다.
두 번 째, 만약 Atlantis(https://www.runatlantis.io/)와 같은 Pull Request를 통해 Terraform 워크플로우를 자동화할 수 있는 오픈소스 셀프호스팅 도구를 사용할 경우에 불필요한 Plan을 하지 않도록 하기 위함입니다.
가령, var_lb.tf, var_route53 와 같이 분리된 변수 파일이 아닌 variables.tf를 Atlantis가 추적하도록 설정했다고 가정해봅시다. 해당 변수 파일을 모든 resource에서 참조하고 있고, LB와 관련된 변수를 변경하였을 경우에도 route53, sg 등 그외의 resource들에 대해 의도하지 않은 terraform plan 커맨드가 실행됩니다.
처음부터 고려하기엔 힘들 수 있습니다만, 많은 리소스를 구축, 운영/관리한다고 가정하고 설계하는 습관을 들인다면 어떻게 해야 효율적으로 관리포인트를 줄일지 설계할 수 있는 역량을 기를 수 있을 것입니다.
답변이 도움이 되시길 바랍니다!
저도 초/중급자이니 함께 공부해나가요!!! 🙂
1
병찬님, 의견 감사합니다. 많은 도움이 되었습니다!
주영님, 답변 감사합니다~ 과거 이야기까지 들을 수 있어서 너무 유익하네요!..
금요일 잘 마무리하시고 두 분 다 즐거운 주말 되세요~
맥북으로 RDP 연결 질문
0
11
1
라우팅 테이블 설정 중 궁금한게 있습니다.
0
26
1
수강 연장 가능하면 요청 드립니다.
0
14
2
user-service jwt
0
26
2
JPA Repository 질문이 있습니다!
1
28
2
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
30
1
젠킨스버전과 플러그인설치
1
26
2
cpu&memory 재설정하기에 질문이 있습니다.
1
33
2
시험 시작하기 전에 한 가지 질문 있습니다.
1
35
2
yml 작성하다가 에러 발생해서 문의 드립니다.
0
31
2
강의사이트 접속 에러 문의 드립니다.
0
24
2
모듈 관련 질문드립니다!
0
81
0
모듈과 .tf 파일 분할에 대해서 의견이 궁금합니다.
1
271
2
SSM VPC Endpoint 관련 질문 드립니다
0
275
2
세팅 질문입니다.
0
327
1
강의 자료 중 vpc를 module이 아닌 디렉토리의 복사 붙여넣기로 사용한 이유
1
289
1
backend로 설정한 s3 bucket의 destroy
0
324
1
.terraform 디렉토리에 관해
1
285
1
질문입니다.
2
226
2
AWS Paramater store 실습도중 Error: creating SSM Parameter (test-key): 에러 발생
1
284
1
안녕하세요. 깃헙 파일 관련 질문 드립니다.
1
269
1
Error: Cannot assume IAM Role 에러
1
313
1
Error: Cannot assume IAM Role 에러 관련 질문 드립니다.
1
551
4
안녕하세요.
1
354
2





