메뉴 건너뛰기

(*.155.195.240) 조회 수 246 추천 수 0 댓글 0
Atachment
첨부 '3'
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form
출처 https://btcd.tistory.com/20

1.png

▶ IAC

  1. 가상화 기술의 발전
  2. Iac 란
  3. Iac 종류

▶ Terraform

  1. Terraform 개념
  2. Terraform 장점
  3. Terraform 구성
  4. 사용관리 툴

들어가기전에..

IT산업에 종사하면서 도구의 사용법을 익히는 것도 중요하지만,
그 뒷 배경 또한 중요합니다.

오늘은 IAC의 배경부터 관련 도구는 무엇이 있으며,
어떻게 동작하는 지에 대해 알아보는 시간을 가지겠습니다.

▶ Iac

1. 가상화 기술의 발전
  • VM ware, Hyper-v와 같은 기술을 통해서 여러대의 서버를 더 많이 쉽게 만들 수 있게 되었습니다. 하지만 기하급수적으로 늘어나는 서버들에 대한 프로비저닝과 운영에 대한 이슈가 발생하였습니다. 인력을 무한정으로 늘릴 수 없었기 때문에 서버 구축과 운영에 대한 자동화가 필요했습니다. 이러한 배경에서 프로그래밍 코드로 인프라를 구축/운영할 수 있는 IAC 가 생겨나게 되었습니다.
2. Iac란?
  • IaC(Infrastructure as Code)는 코드로 인프라스트럭처를 관리한다는 개념으로 테라폼에서는 하시코프 설정 언어 HCL(Hashicorp Configuration Language)을 사용해 클라우드 리소스를 선언합니다.
    • 쉽게 말해, 인프라를 사람이 읽을 수 있는 코드 로 만들 수 있습니다. 이를 통해 버전 관리, 공유 및 재사용이 가능합니다.
3. Iac 종류
  • Iac는 영역별로 크게 두 종류로 나눌 수 있습니다.
Iac 종류설명종류
Provisioning Tool
(프로비저닝 도구)
♠ 일반적으로 운영팀의 담당자가 컴퓨터나 가상 호스트를 사용해 개발팀에서 필요한 라이브러리나 서비스를 설치 하는 것을 의미합니다. 프로비저닝 영역에서는 개발팀이 사용한 코드 버전과 동일한 버전을 사용해 네트워크, VM, DB 등을 구성합니다.◆ Terraform
◆ Cloudformation
SCM Tool
(구성 관리 도구)
♠ 구성관리는 성능부터 H/W 속성과 라이프사이클 전반에 걸친 요구사항, 설계 및 운영 정보 의 일관성 등을 설정하고 유지하기 위한   시스템 프로세스 입니다. 프로비저닝이 인프라에 대한 배포 위주에 진행된다면, 구성관리는  애플리케이션의 구성 설정을 관리 하는 영역입니다.◆ Chef
◆ Puppet
◆ Ansible


2.png

참조문서 : https://medium.com/cloudnativeinfra/when-to-use-which-infrastructure-as-code-tool-665af289fbde

▶ Terraform

1. Terraform 개념
  • 테라폼(Terraform)은 하시코프(Hashicorp)에서 오픈소스로 개발중인 클라우드 인프라스트럭처 자동화 를 지향하는 코드로서의 인프라스트럭처(IaC)도구입니다.
    • 쉽게 말해, 코드를 통해 인프라 서버를 구축/운영 할 수 있게 해주는 오픈 소스 소프트웨어입니다.

2. Terraform 장점

 

장점설명
자동화♠ 수동으로 서버를 생성하는 게 아닌  코드로 생성하기 때문에  서버 운영 및 관리가 모두 자동화  될 수 있습니다.
♠ 예를 들어, AWS에서 새로운 서버를 생성 하기 위해서 AWS 콘솔에 로그인할 필요없이 Terraform 코드를 실행시키기기만 하면 됩니다.
속도
&
안전
♠ 코드로 실행 되기 때문에 사람이 수동으로 작업하는 것 보다  훨씬 빠르며  또한 사람이 직접 할 때 생길 수 있는  실수들을 방지할 수 있습니다.
문서화♠ 모든 인프라가 코드로 기록 및 관리 되기 때문에  자동으로 문서화가 됩니다. 가장 큰 장점 중에 하나로, 많은 회사에서 인프라를 직접 구현하고 관리한 담당자를 제외하고는 전체 서버를 전부 파악하고 있는 사람이 없는 경우가 많습니다. 하지만 Terraform의 경우에는  새로 들어온 개발자라도 Terraform code를 보면 전체적인 구성을 이해 할 수 있습니다.
형상관리♠ git 을 통해 형상관리가 가능하며,  인프라의 변경 기록을 쉽게 볼 수 있습니다.
리뷰
및
테스트
♠ 수동으로 서버 작업을 할 때는, 실제로 실행하기 전에 리뷰 하는 것이 굉장히 힘들수 밖에 없었습니다. 그래서 문제가 발견 되었을 때는 이미 프로덕션 애플리케이션에 영향을 주고 난 후인 경우가 많았는데, Terraform의 경우  코드 리뷰와 테스트를 통해  문제가 실제로 발생 되는 것을 어느 정도  예방할 수 있습니다.

 

3. Terraform 테라폼 구성
구성은 간단하게 알아보고 자세한 내용은 다음 글에 올려드리겠습니다.

<Terraform 진행순서>

3.png

<기본 구성 개념>

구성설명
프로비저닝
(Provisioning)
♠ 어떤 프로세스나 서비스슬 실행하기 위한 준비 단계
♠ 크게 네트워크나 컴퓨팅 자원을 준비하는 작업
프로바이더
(Provider)
♠ 테라폼과 외부 서비스를 연결해주는 기능
♠ 프로바이더로는 AWS, GCP, Azure와 같은 범용 클라우드 서비스를 비롯해 Github, Datadog와 같은 특정 기능을 제공하는 서비스
리소스♠ 프로바이더가 제공해주는 조작 가능한 대상의 최소 단위
♠ 예를 들어 AWS 프로바이더는 aws_instance 리소스 타입을 제공하고, 이 리소스 타입을 사용해 Amazon EC2의 가상 머신 리소스를 선언하고 조작하는 것이 가능
계획
(Plan)
♠ 테라폼 프로젝트 디렉터리 아래의 모든 .tf 파일의 내용을 실제로 적용 가능한지 확인하는 작업
terraform plan
적용
(apply)
♠ 테라폼 프로젝트 디렉터리 아래의 모든 .tf파일의 내용대로 리소스를 생성, 수정, 삭제하는 일을 적용
♠ terraform apply
공식문서 : https://docs.microsoft.com/ko-kr/azure/governance/policy/assign-policy-terraform
4. 사용 관리 툴 
도구설명
CDKFT♠ Cloud Development Kit for Terraform
♠ 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 모델링 및 프로비저닝할 수 있는 오픈 소스 소프트웨어 개발 프레임워크
VSCode♠ Visual Studio Code Extension
♠ Terraform 언어 서버를 사용하여 VS Code에서 편집
Language Server♠ Sublime Text, vim 등과 같이 Language Server Protocol를 사용하는 편집기에서 편집
Console♠ 복잡한 상태 데이터 및 Terraform 표현식으로 작업할 때 인프라를 개발하고 디버그
공식문서 : https://www.terraform.io/docs/terraform-tools 

List of Articles
번호 제목 날짜 조회 수
» 테라폼(Terraform) - 개념, 장점, 관리툴 file 2024.10.01 246
75 Elasticsearch, Apache Lucene( 아파치 루씬 ) 기반의 Java 오... file 2024.09.22 320
74 Apache Nifi 의 구성요소, 아키텍쳐 file 2024.09.22 305
73 아파치 카프카(Apache Kafka)는 분산형 스트리밍 플랫폼 file 2024.09.22 296
72 쿠버네티스 시작하기 - Kubernetes file 2024.09.21 263
71 [NCP] VPC Peering file 2024.09.21 244
70 [AWS] VPC Peering file 2024.09.21 246
69 CIDR을 통해 알아보는 서브넷 마스크와 IP 클래스 2024.09.21 245
68 클라우드(Cloud) vs. 온프레미스(On-premise) file 2024.09.16 333
67 VPN(가상사설망) 프로토콜 비교 : SSL/L2TP/IPSec/PPTP file 2024.09.16 250
66 [Spring Cloud] 스프링 클라우드 란 무엇인가요? file 2024.08.30 238
65 {개발자}로 자라기 – 쿠버네티스, 왜 배워야 할까? file 2024.08.30 281
64 오토스케일링(Auto Scaling)이란? (AWS, 클라우드) file 2024.07.09 213
63 Docker 이해하기 -2 : 컨테이너 라이프 사이클 & CLI 이해하기 file 2024.07.08 240
62 Docker 이해하기 -1 : 기초 이론(아키텍처, 흐름, 주요 용어) file 2024.07.08 202
61 정부원격근무서비스(GVPN)를 통한 통합운영관리시스템(nTOPS, n... file 2024.06.14 470
60 국가정보자원관리원(NIRS) G클라우드 소개 file 2024.06.14 399
59 RHEV 4.0 Hypervisor 설치 방법 file 2024.06.14 249
58 클라우드에 'MSA' 적용이 필요한 이유 file 2024.05.29 306
57 MSA (Micro Service Architecture)란? 2024.03.15 250
목록
Board Pagination Prev 1 2 3 4 Next
/ 4