티스토리 뷰
본 파트에서는 데브옵스(DevOps)에서 주로 사용하는 도구인 Terraform 자동화 도구에 대해 알아보겠다. 우선 IaC (Infrastructure as a Code), 형상관리 (Configuration Management), 그리고 이미지 빌드 (Image Build) 에 대한 내용을 알아본 뒤, 다음 글에서 실제로 Terraform 을 설치 후 환경 설정을 해 보겠다.
Terraform 은 IaC 의 대표적인 도구이다. 여기서 IaC 는 Infrastructure as a Code 의 약자이다. 말그대로 인프라 자원을 코드로 관리하는 것을 의미한다. 이러한 IaC 도구로는 Hashicorp 의 Terraform, AWS 의 CloudFormation, Pulumi, 그리고 Azure 의 ARM Template 등이 있는데, 나는 여기에서 Hashicorp 의 Terraform 을 주로 다루어볼 예정이다.
코드로 관리한다는 것의 의미
IaC, 형상관리, 이미지 빌드는 모두 코드로 관리하는 개념이라고 볼 수 있는데, 코드로 관리한다는 개념이 왜 중요할까?
우선 코드로 관리한다는 것은 사람이 직접 처리하는 것이 아니다. 예를 들어, 머신 100대에 동일한 작업은 각 100번씩 수행한다고 가정해 보자. 이 경우 사람이 직접 작업할 경우 중간에 실수를 할 확률이 매우 크다. 이런 상황에서 코드로 인프라를 관리하게 되면 재사용성이 좋아진다. 머신 (가상 환경 등) 1대에 대한 코드를 작성하게 되면 해당 코드를 통해 나머지 99대에 대한 처리를 자동으로 진행할 수 있다.
또한, 코드는 일관적인 상태를 나타내기 때문에 해당 코드로 작업한 100대의 모든 머신에 대해 일관성을 유지할 수 있다.
IaC의 버전 관리
코드는 결국 소프트웨어 개발에서 사용하는 것이라는 것은 모두 알 것이다. 이 점에서, IaC 또한 버전 관리 시스템 (VCS) 을 사용할 수 있다. 당연히 코드의 버전을 관리할 수 있고, 변경 내용 추적 (Auditing) 을 할 수 있다. AWS 자원을 수동으로 관리한다고 하면, 기존에는 CloudTrail 을 통해 Audit Log 로 모든 사항을 관리해야 하지만, 코드로 관리하게 되면 해당 코드의 변경 내용을 추적하여 Auditing 을 수행할 수 있다.
GitHub 와 같은 시스템을 사용한다고 하면 다른 사람과 함께 협업 (Collaboration) 을 하고 있고, Pull Request 와 같은 작업을 통해 Apply 를 통해 팀 내에서 인프라 환경을 체계적으로 관리할 수도 있다.
'인프라 > Terraform' 카테고리의 다른 글
Terraform 다루어보기 (AWS Provider) (0) | 2022.08.19 |
---|---|
Intellij HCL 설정하기 (0) | 2022.08.16 |
Terraform 다루어보기 (local_file) (0) | 2022.08.15 |
Terraform 소개 (0) | 2022.08.12 |
Terraform 설치 및 기본 설정 (0) | 2022.08.11 |
- Total
- Today
- Yesterday
- Android
- 테라폼
- env
- 메터리얼
- 머티리얼
- 도커
- Java
- 자바
- 자료형
- uiux
- dockerhub
- main
- Terraform
- 안드로이드
- DESIGN
- Material
- docker
- 디자인
- Operator
- cmd
- EC2
- 자격증명
- HCL
- 스타트업
- ecr
- dockerfile
- entrypoint
- AWS
- Container
- 컨테이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |