#Intro.
정말 오랜만에 글을 쓰는 것 같다. 그만큼 아는 게 없어서 그런지는, 알아야 될 게 많은 건지는 몰라도....
혹여나 글을 보시는 분이 계실수도 있기에 두서없고 보잘 거 없는 지식이지만 자주 적도록 하겠다.
나중에 필요하다면 Github도 활성화하도록 하겠다.
#1.Definition of Terraform.
“Write, Plan, and Create Infrastructure as Code”
테라폼은 먼저 간단히 말해 하시코프라는 회사에서 제공하는 클라우드 인프라 환경 배포 툴. 즉 PaaS와 SaaS를 관리.
사실 이러한 툴은 Ansible이나 Kubernates, Docker, Chef 등 여러 가지가 있고, 간단히 IAC라 지칭한다. 각각의 툴마다 좀 더 메인 테마들이 있다고 생각한다. IAC는 다른 글에서 좀 더 언급하겠다.
cf) IAC ==> Infra as a Code.
흔히 알고 있는 Ansible이나 Chef처럼 Provisioning한 도구라고 불리우지만, 테라폼은 다른 툴들에 비해 좀 더 클라우드에 특화된 다시 말해, 특정 클라우드 환경에 집중할 수 있게 도와준다.
cf) Provisioning ==> IT 인프라를 설정하는 프로세스. 사용자와 시스템에서 사용할 수 있도록 데이터와 리소스에 대한 액세스를 관리하는 데 필요한 단계를 의미. 간단히 관리에 필요한 단계적 절차라고 생각.
공식 사이트에서 누구나 확인할 수 있듯이 지원 가능 요소들이 정말 많고, 그냥 클라우드 플랫폼은 테라폼이 다 지원한다고 보면 된다.
#2.Features of Terraform.
사실 뭐 솔직히 공식 사이트만 봐도 테라폼에 대해 자세히 알 수 있기에 개인적인 테라폼의 느낌을 적어보겠다.
1. 어떻게 보면 빠른 시간 내 테라폼의 영향력이 상당해졌기에 호환성과 접근성 면에서 뛰어나다.
2. VCS를 함께 연동해서 쓰면 기록이 남기에 Before or After 관리가 쉽다.
2개의 장점만 봐도 쉽게 예측가능한 것처럼 이름대로 Infrastructure이기에 초기 단계에서 많은 시간을 요구한다.
이건 단순 테라폼만의 단점이 아니라 대부분 초기 시스템, 인프라 구축에는 많은 시간이 필요하다.
테라폼은 클라우드 인프라 상에 실제 리소스를 생성하는 것이기 때문에 작성한 스크립트 결과를 확인하려면 설계하고 계획한 모든 작업을 거쳐야 한다. 이 작업의 과정 속에 오류가 발생할 경우 스크립트 수정과 재실행을 반복하게 되는 만큼 오래 걸린다. 개인적으로 이러한 건 단점이라고 해야 되는 건가 싶기도 하지만, 그만큼 구축 단계는 중요한 부분이라고 말하고 싶다.
cf) VCS(Version Control System) ==> 버전 관리 시스템이라고 불리우는데 그냥 코드 관리 시스템이라고 봐도 무방.
종류는 Mercurial, CVS 등이 있지만 Git이 대표적.
#3.Summary.
2개의 장점만 봐도 쉽게 예측가능한 것처럼 이름대로 Infrastructure이기에 초기 단계에서 많은 시간을 요구한다.
이건 단순 테라폼만의 단점이 아니라 대부분 초기 시스템, 인프라 구축에는 많은 시간이 필요하다.
테라폼은 클라우드 인프라 상에 실제 리소스를 생성하는 것이기 때문에 작성한 스크립트 결과를 확인하려면 설계하고 계획한 모든 작업을 거쳐야 한다. 이 작업의 과정 속에 오류가 발생할 경우 스크립트 수정과 재실행을 반복하게 되는 만큼 오래 걸린다. 개인적으로 이러한 건 단점이라고 해야 되는 건가 싶기도 하지만, 그만큼 구축 단계는 중요한 부분이라고 말하고 싶다.
테라폼에 대해 약간 맛보기 정도 수준인 것이고, 테라폼에 대해 차근차근 알아 가도록 하겠다.
'#Infrastructure as Code > #Terraform' 카테고리의 다른 글
Components of Terraform. (0) | 2021.07.10 |
---|