Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Azure
- awskrug
- 애저
- 3티어 아키텍처
- 프로세스 관리
- 클라우드
- dockerfile
- docker
- 사용자 계정 관리
- aws사용자모임
- AI
- go
- 함수
- python
- terraform
- nexus
- jenkins
- maven
- it기사
- Linux
- 리눅스
- git hub
- AI챗봇
- 명령어
- open ai
- GIT
- 파이썬
- 변수
- AWS
- 표준 라이브러리
Archives
- Today
- Total
We are Architect
테라폼: 테라폼과 다른 코드형 인프라 도구 비교 (2) 본문
* 구성관리 vs 프로비저닝
- 셰프, 퍼핏, 앤서블, 솔트스택은 구성 관리 도구이다.
- 클라우드 포메이션, 테라폼, 오픈스택 히트는 프로비저닝 도구이다.
- 물론 구성 관리 도구가 프로비저닝 도구의 기능을 수행할 수도 있고 그 반대의 역할도 부분 가능하다.
- 그렇기 때문에 목적에 맞게 사용해야 한다.
- 혹은 도구를 섞어서 사용해야 하는 상황도 고려해야 한다.
* 가변 인프라 vs 불변 인프라
- 셰프, 퍼핏, 앤서블, 솔트스택과 같은 경우 관리 도구들은 가변 인프라를 구성하는 데 사용된다.
- 즉 계속해서 서버에 SW를 업그레이드를 자동으로 시키고 변경 기록을 작성시킨다.
- 지속적인 업그레이드는 버그가 발생 할 수도 있는 우려가 있다.
- 테라폼과 같은 프로비전 도구들은 불변 인프라를 구성하는 데 사용된다.
- 즉, 완전히 새롭게 모든 서버 및 SW를 설치한다.
- 그러면 완전히 모든것이 새롭게 설치되고 중간에 변경될 일이 없기 때문에 버그가 생길 우려가 덜하다.
* 절차적 언어 vs 선언적 언어
- 앤서블은 절차적 언어이다.
- 예를 들어 기존에는 10대가 존재하고 앤서블로 구성하였을 경우는 다음과 같다.
- ec2:
count: 10
image: ami-1234567
instance_type: t2.micro
- 여기서 5대를 추가적으로 구성해야한다. 그러면 이전에 사용되었던 코드는 유용하지 않기에 추가적으로 5대를 더 구현해 줘 여한다. 즉 수정이 불가하다는 소리다. 만약 10에서 15로 수정하였다면 서버는 총 15대가 추가 서버로 15대를 더 구성할 것이다.
# 앤서블
- ec2:
count: 10
image: ami-1234567
instance_type: t2.micro
- ec2:
count: 5
image: ami-1234567
instance_type: t2.micro
- 테라폼은 선언적 언어이다. 즉 과거에 있었던 상태를 인지하고 서버를 추가 하거나 제거하는 방법을 파악한다.
- 즉 기존에 몆개가 있었던 총 15대를 만들고 싶으면 코드를 수정하면 된다.
- 대신 다른 이미지에 애플리케이션을 배포하려면 코드를 추가적으로 작성시켜줘야 한다.
# 테라폼
resource "aws_instance" "example" {
count = 15
ami = "ami-123456"
instance_type = "t2.micro"
}
* 마스터 서버 유무
- 셰프, 퍼핏, 솔트스택 도구들은 인프라 상태를 저장하고 업데이트를 배포하기 위해 마스터 서버를 실행.
- 업데이트를 하려면 CLI클라이언트를 설치하고 서버에 새 명령을 실행해야 한다.
- 이런 도구들은 엔터프라이즈 콘솔과 같은 웹 인터페이스를 제공하고 상황을 쉽게 확인할 수 있다.
- 마스터 서버의 장점은 인프라 상태 관리를 할 수 있는 유일한 중앙 저장소 역할을 한다.
- 또 하나의 장점은 마스터 서버는 백그라운드에서 지속적으로 실행되어, 구성의 일관성을 유지할 수 있다.
- 무슨 소리냐면 누군가 서버를 수동으로 변경해도 마스터 서버에서 복원이 가능하다.
- 마스터 서버의 단점은 클러스터링 된 서버가 필요하다. 그리고 서버이기 때문에 유지관리도 필요하고 다른 서버와 통신할 방법과 마스터 서버에 접속할 수 있는 권한 및 보안을 신경 써야 한다.
- 셰프, 퍼핏, 솔트스택 도구들도 마스터 서버가 없는 환경에서도 실행할 수 있는 다양한 옵션을 제공한다.
- 반면 앤서블, 클라우드 포메이션, 오픈스택 히드, 테라폼은 마스터 서버가 없어도 사용 가능한 도구다.
- 물론 일부 서버는 마스터 서버에 의존할 수 있지만 이미 사용 중인 인프라의 일부이며 관리해야 할 추가적인 요소는 아니다.
* 에이전트의 유무
- 셰프, 퍼핏, 솔트스택 도구들은 서버에 소프트웨어를 설치해야 한다. 에이전트는 일반적으로 각 서버의 백그라운드에서 실행되며 구성 관리 업데이트의 설치를 담당한다.
- 그러나 앤서블, 클라우드 포메이션, 오픈스택 히드, 테라폼은 에이전트를 설치할 필요가 없다. 정확히 이야기 하면 일부는 사용하지만 일부는 인프라의 일부로 설치되어 있다.
* 커뮤니티의 활성정도
- 커뮤니티 활성화가 잘 되어 있으면 버그 수정 및 다양한 정보들을 얻을 수 있기 때문에 사용자가 증가한다.
- 그럼 해당 툴을 사용하는데 있어서 편리하기도 하고 다양하게 응용이 가능하다.
- 대표적으로 IaC 툴중에 Terraform, 앤서블, 그리고 최근 부상하는 플루미( Pulumi ) 등이 잘 커뮤니터가 활성화되어 있다.
* 성숙한 기술 vs 최첨단 기술
- 테라폼은 비교적 다른 IaC 툴들에 비해 최근나온 툴이다.
- 물론 기술이 그만큼 유용하고 또 응용이 가능하나 안정되지 않은 부분도 존재할 것이다.
- 반면 옛날 IaC툴들은 안정적인 면이 많을것이고 또한 숙련이 있어서 가이드라인 또한 잘되어 있을 수도 있다.
- 다만 옛날 기술이라 효율적이지 못한면도 존재한다.
'Terraform' 카테고리의 다른 글
테라폼 기본 사용법(3) (0) | 2025.01.10 |
---|---|
테라폼: 코드형 인프라 ? (1) (0) | 2025.01.05 |